Macro syntax help

Sometimes it's the simple stuff that catches us out....

I was trying to build a Macro that selects every patched channel. but I can't figure out a way to just select just the Patched channels.

I can select the Unpatched channels. The inverse of that will select all channels. (Query is_in Unpatched / Query isn't in Unpatched)

I can do a [1 Through 5,000], but depending upon flexi states, that would literally grab 1 through 5,000.

(I can't command a specific Flexi state from the macro, can I?)

 

I can easily do this in person, but building a Macro has really caught me out.

 

In case it helps, I was going to build a few macros to auto-build some I-Palettes & C-Palettes on patched channels.

Thanks!

Parents
  • Let me go one step farther....
    Is there a guide to building Macros?
    Given that the commands that you would use in real time don't work in Macro form, I'm finding my current task impossible.
    Right now, I just spent 45 minutes figuring out how to switch to the IP tab....
    ... I still haven't figured it out. but I'm giving up.
  • Regarding switching the tabs from macros,  you don't really have to think about that,  just record the macro and it will include what is needed.

    I recorded this macro and when you run it, it lets you enter an Intensity Palette number and then continues, selects all patched channels and stops for you to enter an intensity value and then converts it to a by type pallet.

    I just let it record it and then edited where I had typed in the actual palette number and intensity and replaced that with a wait for enter.  (I should really have edited it bit more and removed the duplicated first line thats not needed, but it just recorded what I actually did)

     

  • Hi,

    not the most elegant solution, but you could do it like shown in the attachment.

    ( I usually have a "dump" group 9999 to temporarily put stuff in... )

    Cheers,

    Matthias

     

  • I've been trying to Build macros, not Learn them.
    Just tried that and OMFG so many [Clear_CmdLine] & reduncacy.

    I never would have figured this out.

    ....

    So I just spent the past 15 minutes "Learning" this macro.

    I had to do it 3 times because I made a typo twice & couldn't edit a fix.

    I got it done. . . . It doesn't do anything.

    This notion that you can learn a macro and the macro will do it is a big lie.

     

    So I'm back at square 1.

  • Well, obviously this Macro wasn't cleaned up..I just wanted to point out a suggestion and scrambled this together quickly in ETCnomad ;)
  • All I'm looking for is an instruction manual some place.
    There HAS to be instructions some place.
  • The Eos manual has content on Macros, not sure if it has what you are looking for:
    www.etcconnect.com/.../Default.htm
  • I read the manuals.
    Both the old & the new.
    It shows HOW to record macros.... but it makes no notice of syntax details.
    I followed the instructions... [Learn] (macro number) (commands) [Learn] and I got the above macro that does nothing.

    It works fine as long as your macro is [5] [At] [FF] [Enter]

    It's infuriating.
    Having to delete my macro it took 5 minutes to make because I made a typo is infuriating.
  • ok I think there are two issues with the macro you recorded.

    One I don't think what you typed when learning the macro actually is the correct commands to put channels in an intensity pallete even if you weren't recording a macro.  I'm pretty sure you actually need to press edit when you are on the intensity pallet to  get to a table screen of the channels to type in the channel list.  (you could edit you macro and insert the edit key before the 1 thru 9999

    One thing to note is when learning a macro the desk is still executing what you type in, in the normal way,  so if as you  were recording the macro it didn't actually create the intensity pallete you were expecting then its not going to work as a macro either.  

    Macros are just simple recordings of key strokes,  so if you make a mistake you can correct it just as you normally would and type the right thing.  You end up with a messy bit in the macro but its easy to delete the error and remove clears that were the recording of your correction it afterwards,  so you don't really have to start again a re record, just fix it as you go and clean up later.

    The other issues is that labels don't work in macros.  (No the documentation doesn't tell you that but post on this forum mention it)

    The following is a working version of the first part of your macro.

    It was simply recorded and then I edited out the unnecessary Clear_CmdLines that it had recorded (I also edited out a correct as I actually pressed the wrong button at one point)

    Whilst you could enter that into the macro directly its way easier to use learn as then as you record the macro you get told about error and you can see if what you are doing is working.  then afterwards you can edit and tweak as required to be more useful or flexible etc.

     

  • So I spent the past 6 hours on this macro and I kind of have something that works..... but I have to use two macros.

    I changed my order of operations from creating one IP at a time to creating & labelling first, then setting intensity values.

    In this macro, all of my IPs get created and labelled...

    ... but then when I go to assign values in Blind, the macro dies.

    I put the exact same syntax (just the second part) into a second macro and that works fine in adding my intensity values.

    but no matter what I try, I can't get a single macro to do this job.

    I can't even link the second macro from the first unless I delete all of the failed intensity value commands, so obviously something is killing it.

    ~~

    Also, the Flexi_Patch command does not alter my Flexi state like I hoped it would.

    ( a P.S. to Mike A: Labels work fine in my macros as long as macros are not in Background mode. [Edit] made no difference in anything.)

    P.P.S. to ETC, Why are Tab_Down & Tab_Up not virtual keys in the Macro editor? You can't use any keyboard command to get a {shift/tab+?} to work unless you reLearn the entire macro. :(

  • Actually you are experiencing the issue with labels that I was talking about.

    Bascially they break macros in a weird way that stops them running properly as you observerved.

    There are other posts on this forum about it eg

    https://community.etcconnect.com/control_consoles/f/eos-family/22982/macro-stops-after-labeling-a-palette

    https://community.etcconnect.com/control_consoles/f/eos-family/23820/fill-groups-with-macros/80549#80549

    As ChrDuda  says in that post "Sadly macros and labeling don't really mix very well. Macros seem to just terminate after the labeling. .....  If you call each step in it's own macro it works. This problem has been around for quite a while and it might be a bug."

    As he says the solution is to call the second macro from the first.  I dont know why when you tried that it didn't work as I have done the following two macros

     

    and 495 is

     

    I dont know how you got it to work without the Edit being in there as if you are on the intensity pallet tab and just start typing a number it interprets it as an intensity pallet number you normally have to press the edit softkey to get it to switch to the summary or table view to actually see and set channels in a pallet

  • THANK YOU!

    That makes perfect sense... I thought you were referring to my one & done problem so I was incredulous. Now I get what you mean. . . . . and I got it.

    I just had to change the order of operations to enter text labels last and now I have it doing exactly what I wanted. . . .

    .... although I can't get it to trigger the correct flexi state.

     

    (and no, I'm on the Blind tab invoking IPs, the default is Channel.)

  • I can drop it if you want but I still don't think you are actually recording those intensities into the intensity pallet.

    Your on the cue in blind and yes that is channel by default but as soon as it does the Intensity pallete command it switches to the Intensity pallete tab and then its defaulting to IP. If you change the order so you do the channel numbers first before the IP commands you are then actually setting the channels in the cue to the intensity pallet not recording a new intensity pallet. I think if you delete the intensity pallets and then run the macro again, I don't think it will record them.

    (I did create a macro with exactly your first lines and it gives a syntax error at the @ when exectuted (I didn't put the enter on the line so I could see what the command was as with the enter you wont see the error in the command) as its not got channels selected at that point.)

    Hand run you macro ie just manually key in each command (or copy the full macro and delete the end parts of it so you can see how it progresses) and then you get to see what's going wrong.
  • At this point, I'm amused by this whole endeavour.
    I came here looking for help and got very little useful information.
    Most of what I got back was flat out wrong and didn't work or misleading.
    I find it very endemic of the systemic failure surrounding the creation of macros on EOS.
    There are so many tricks & tips and defaults that do not translate to macro form.

    ...and now that I got something that works and ran it about 20 times to verify, I'm told it's impossible for it to work.
    I'm very amused.
    Most of my success here I attribute to you telling me WHY something is impossible, and then me doing it.

    I had to come back & run my macro a few dozen more times after your last statement.
    Worked fine every time.
    * Default Blind is the Cue list.
    * Invoking an IP then transforms the Blind Tombstones into the IP Tombstones.
    It does not switch to the IP List View.
    (in fact, that's why I had to call up the Tab_Down 22 Tab_Up command to actually switch to the IP List View.)
    * Nothing in my active cuelist has been altered.
    * No error messages.
    * Switching blind views between IPs and cues or CPs and then back to IPs shows my data is there & saved.
    * Using the new IPs in Live, it displays the levels I set.

    I recorded the macro via Learn & edited it. . . It works fine. (except for the Flexi_Patch of course)
    I hand entered commands on the command line. . . It works fine.
    Why you switch to IP ListView I have ZERO understanding of.
    Maybe it's because I'm building this on Nomad & once I get to my Ion, everything will fall apart. I don't know.

    Right now, I'm eager to solve your problem so I can see if it affects me. :Þ
Reply
  • At this point, I'm amused by this whole endeavour.
    I came here looking for help and got very little useful information.
    Most of what I got back was flat out wrong and didn't work or misleading.
    I find it very endemic of the systemic failure surrounding the creation of macros on EOS.
    There are so many tricks & tips and defaults that do not translate to macro form.

    ...and now that I got something that works and ran it about 20 times to verify, I'm told it's impossible for it to work.
    I'm very amused.
    Most of my success here I attribute to you telling me WHY something is impossible, and then me doing it.

    I had to come back & run my macro a few dozen more times after your last statement.
    Worked fine every time.
    * Default Blind is the Cue list.
    * Invoking an IP then transforms the Blind Tombstones into the IP Tombstones.
    It does not switch to the IP List View.
    (in fact, that's why I had to call up the Tab_Down 22 Tab_Up command to actually switch to the IP List View.)
    * Nothing in my active cuelist has been altered.
    * No error messages.
    * Switching blind views between IPs and cues or CPs and then back to IPs shows my data is there & saved.
    * Using the new IPs in Live, it displays the levels I set.

    I recorded the macro via Learn & edited it. . . It works fine. (except for the Flexi_Patch of course)
    I hand entered commands on the command line. . . It works fine.
    Why you switch to IP ListView I have ZERO understanding of.
    Maybe it's because I'm building this on Nomad & once I get to my Ion, everything will fall apart. I don't know.

    Right now, I'm eager to solve your problem so I can see if it affects me. :Þ
Children
  • Sorry actually you are correct, that syntax does work as well as mine. I tried it again, so dont know what i did wrong earlier.

    So you can do it either way.

    None of this is actually anything to with EOS macros being strange and the reason there is no documentation on their syntax is because they are simply recordings of what you would type anyway. So the syntax of an eos macro is simply the same syntax as a normal EOS command (which the whole manual is pretty much the documentation for).
  • So the root cause of my initial statement was the Labels flummoxing the whole works. I totally acquiesce to that.

    but that you HAVE to Learn every macro because it's impossible to create them via the Edit mode caused me quite some consternation too. and before you say that all commands are available via virtual buttons... No. They are not.
    Having to re-enter a 100 command macro three different times because I made a mistake and that one command isn't available via edit mode ruins my day.

    I still can't figure out why the Flexi_Patch command isn't working.
    On a debugging sense, this is worse than programming in BASIC.
    So I expect to spend a few more days trying to get one macro to work.

    but just saying that Macros work exactly like as if you were entering commands live is proven to be false.
    There are totally quirks that cause things to fail and it's infuriating to be told otherwise.
    People don't always use the Best Practices when there are easier ways to do it live.
    I just feel as if there should be better attention given to the subject of macro creation than just the basic "Learn Macro, Edit Macro, Delete Macro".
    The very concept of a macro is to do complex things easily. So thinking that that'd be easy isn't ideal.
    ~IMHO

    Thanks all!
Related