[RWP] Extending reaper with Reascript Macros

Jim Snowbarger Snowman at SnowmanRadio.com
Sat May 25 21:38:40 EDT 2013


Indigo, it sounds like you did the right things.
Is the alt+upArrow and alt+downArrow key working at all?
When you are stopped, can you change the volume setting with those keys?
You didn't unmap that action assignment, did you?


----- Original Message ----- 
From: "Indigo" <33indigo at charter.net>
To: "Reapers Without Peepers" <rwp at reaaccess.com>
Sent: Saturday, May 25, 2013 8:08 PM
Subject: Re: [RWP] Extending reaper with Reascript Macros


> Hi Jim,
> There is a method that avoids the automation returning to what it was 
> before automation, which is called fill; meaning it fills out to the end 
> of track with the last setting when you quit automating.
> I just noticed it today in a forum' and I'll try to get it to you.
> I tried automating with alt+up/down arrows today, not much success.
> Could you please do a step by step for me, assuming no prior knowledge.
> At the tab key for the track; I set automation mode to write; I hit enter 
> to keep that setting; I activated volume in the Track View's envelope 
> submenu; I pressed the spacebar to play; heard no change in volume when I 
> tried to raise volume with alt+up/down arrow.
>
> When I hit stop and changed write to read; I could hear no change in 
> volume, even though the edit menu showed I was undoing Automation when I 
> went there; so I must have been writing something.
> I'm sure I've left out essential steps.
> Better to look ignorant than to learn nothing; so what am I doing wrong?
>
> As to the slow macro for nudge volume up or down, there definitely is a 
> better method for repeating the nudge action.
> I'll look at the actions and find it, something that creates a cycling 
> feedback of the same action that's bound to go faster than repeating an 
> action again and again.
>
> You know, we could even use the physical mouse to draw our envelopes, 
> since there's a mouse modifier that limits the mouse to vertical or 
> horizontal movement only.
> Horizontal movement only, would be good for panning; or just use 
> horizontal moves for every activated parameter; decrement with left and 
> increment with right moves.
> I'll try to think about how to incorporate that into a custom action to 
> use it for automation.
> The physical mouse  is bound to change volume or other settings quicker 
> than any screen buttons or repeated commands.
> Nothing beats a physical fader, though.
> I'll bet practically everyone running Reaper has at least 1 control on 
> their midi keyboard that transmits CC messages.
> Man, I used my first control surface in 1986,either an old Akai MM16 or a 
> Yamaha MC1,both of which were easy enough to use; and are still working. 
> nothing could be easier than just using any old control surface.
>
> Also, if it's only to draw a fadeOut at the end of a song; there are a 
> bunch of actions designed to do just that; avoiding drawing fadeout with a 
> button.
>  You could imbed the action marker in the track at the proper place to 
> trigger the fadeOut with a choice of several actions; like one that begins 
> action at the end of measure; another that begins action when the cursor 
> passes across the action marker.
> I found actions with various degrees of steepness of ramp for the volume 
> envelope.
> I'll try to get those action numbers and post them; or if I work up more 
> energy; just incorporate them into a custom action.
> OreoMonster's explanation of stacking actions to make a custom action is 
> very easy, easier than it is to write out the explanation.
> Indi
>
>
>
>
> On 5/25/2013 7:51 PM, Jim Snowbarger wrote:
>> Hi guys,
>> Regarding automating from the keyboard.
>> I created two custom actions, one for increasing and one for decreasing
>> track volume.
>> Since I wanted to go in 1db steps, and reaper alt up and down arrow
>> goes  in .05 db baby steps
>> The first approach was to make my custom actions consist of 20 track:
>> numdge volume up commands.
>> Twenty of them.  These actions do in fact now move in 1db steps, and
>> they are recorded in automation.  Unfortunately, they are a bit
>> sluggish, and can only move at a rate of about 10 db per second.  That
>> is what the poster meant by poor performers.  Anybody brought up on
>> hardware faders on good old analog consoles would feel like they were
>> mixing with led boots on.
>> Very sluggish, not at all agile.
>>
>> So, my second approach was to painfully dig through all the sws
>> extensions. I found a pair of xenakio actions, down around item 1326 in
>> the main list, which bump the selected track volumes by 1 db, and
>> created a pair of hot keys mapping to those.
>> Those are much faster, still not the old analog snappiness, but almost
>> acceptable.
>> But, they don't appear to record in automation.
>> So, that's too bad.
>>
>> And yes, as Chris mentioned, when I record automation, and move my fader
>> somewhere, then stop the transport, the volume flops right back to where
>> it was.
>> So, you play the file, and get this nice slow fade, followed by a sudden
>> jump back to the original volume at the point where I stopped recording.
>> I'm not sure why it doesn't leave it there.
>>
>> And, the undo history is a mess.  Even if you check the little checkbox
>> in the action definition about consolidating undo history, undoing
>> whatever you did in your last automation  session is pretty hairy.
>> But, it seems like just doing it over erases the automation you recorded
>> in the previous session.  Seems like I remember having problems in
>> Sonar, where it recorded that in overdub mode, and you would get a mix
>> of conflicting controller messages.  but, this seems to do overwrite
>> mode, so that's nice.
>>
>> But, about automation modes.  This was partially described by one if
>> Indigo's snips.  It tseems that , touch, means that, when you stop
>> moving your fader, the automation recording stops too.  The transport
>> continues to move, but the volume reverts back to where it was just
>> before you started moving the control.  So, it's for modifying the
>> control slightly during a short passage, then returning it back to the
>> original without you actually having to do the work to get it back there.
>>
>> Latch, makes less sense.  It seems like latch prevents you from
>> modifying voluem at all.  I was hoping that might cause it to stay where
>> you  put it after you stop recording automation.  But, that doesn't seem
>> to be the case.
>>
>> More later, should I actually manage to learn any.
>>
>>
>>
>>
>>
>>
>>
>> ----- Original Message ----- From: "Indigo" <33indigo at charter.net>
>> To: "Reapers Without Peepers" <rwp at reaaccess.com>
>> Sent: Friday, May 24, 2013 3:25 PM
>> Subject: Re: [RWP] Extending reaper with Reascript Macros
>>
>>
>>> Thanks, TheOreoMonster,
>>> Sounds easy enough.
>>> I know how to drag in Wineyes, which is what I use on my actual daw,
>>> so that's no problem.
>>> I should learn how NVDA drags.
>>>
>>> By the way, you can get the action list online, which has some
>>> advantages, especially if you save a copy of it in your documents
>>> folder; just to spend time looking for useful actions.
>>> Yes, you can also save a document copy of the actions list from Reaper
>>> itself, but it won't have all the SWS and Xenakios actions until you
>>> download them.
>>>
>>> Here's a link to the actions list online, and look at the SWS and
>>> Xenakios actions.
>>> Those are already scriptts, which you can include among the native
>>> Reaper actions; so you're making a script calling scripts.
>>> http://wiki.cockos.com/wiki/index.php/Action_List_Reference
>>>
>>> To get the SWS actions, go to:
>>> http://www.standingwaterstudios.com
>>>  and sign up, download the installer; then install it, then you can
>>> download all those SWS actions into Reaper.
>>> I notice that Snapshots are a big feature in the SWS and Xenakios
>>> actions, but don't know if they're used the same way Sonar uses
>>> Snapshots.
>>> I also notice that one of the SWS actions is to run the action marker
>>> currently under the cursor.
>>> There also are actions to wait until the end of the current loop that
>>> is playing; or the current measure that's playing, to run an action.
>>> You have a bunch of auto actions to imbed into the music tracks.
>>> Thanks,
>>> Indi
>>>
>>> On 5/24/2013 12:12 PM, Monkey Pusher wrote:
>>>> in the actions list dialogue box just pass where you can assign a
>>>> short cut to an action in the action list is Custom Action. click on
>>>> the new button  just past the  words custom action.. It will  bring up
>>>> a new dialog. there is a filter edit box you can use to search for
>>>> action, An edit box to name your custom actions, and tehn two tables
>>>> of list like the action list dialog has. The first one is where u
>>>> select the actions  yo want. You drag them into the second dialogue
>>>> box in the order you want to chaing them in. Once done You save it.
>>>> check the show in actions list check mark if u want to be able to find
>>>> it in the normal action list. and click ok. Back in the normal action
>>>> list, you can find it and assign a short cut key to it like would any
>>>> other action.
>>>>
>>>> On 5/24/13, Indigo <33indigo at charter.net> wrote:
>>>>> I've assigned shortcuts to single actions, but don't know how to chain
>>>>> actions together yet, just haven't got round to trying it.
>>>>> Many things are simpler than we think when we finally try them.
>>>>> Thanks for your tip,
>>>>> Indi
>>>>>
>>>>> On 5/24/2013 7:41 AM, TheOreoMonster wrote:
>>>>>> for most macro style things you may not even need to write a
>>>>>> script. You
>>>>>> can make custom actions by chaining together a number of different
>>>>>> actions
>>>>>> and assigning them shortcut key
>>>>>>
>>>>>> On May 19, 2013, at 12:25 PM, Indigo <33indigo at charter.net> wrote:
>>>>>>
>>>>>>> Yeh, I intend to write the script I need, to start a recording,
>>>>>>> then wait
>>>>>>> a certain number of seconds before executing the next action, then
>>>>>>> stop
>>>>>>> recording at the end of measure.
>>>>>>> I don't like having to time it in seconds to get a 2 or 4 measure
>>>>>>> recorded loop; since that will break when I change tempo
>>>>>>> sufficiently.
>>>>>>> I thought I found something in the ReaScript help about recording 2
>>>>>>> beats;.
>>>>>>> If I can find that action again; I could string enough of those
>>>>>>> together
>>>>>>> to make 2 or 4 measures.
>>>>>>> I don't comprehend why there isn't an action for record 1 measure,
>>>>>>> or why
>>>>>>> the length of recording in preferences doesn't change to measures 
>>>>>>> and
>>>>>>> beats when I change the project settings to measures/beats.
>>>>>>> When you learn that reaper itself is made of thousands of these
>>>>>>> scripts,
>>>>>>> you understand why it is amazingly malliable, also why there are 
>>>>>>> huge
>>>>>>> gaps in its features that need filling.
>>>>>>> It's for sure not perfect, but it is changeable; ; given enough
>>>>>>> time and
>>>>>>> energy.
>>>>>>> When we learn enough, I'll bet we can counter any breakages that
>>>>>>> might
>>>>>>> occur with future versions as they might occur.
>>>>>>> That help file you get with alt+h, then arrow down to HTML Files 
>>>>>>> Auto
>>>>>>> Generated, then arrow right to 3 lists, mouse modifiers, ReaScript
>>>>>>> and
>>>>>>> actions is nothing short of mind dazzling.
>>>>>>>
>>>>>>> I can just feel the huge power for us in the mouse modifiers.
>>>>>>> We'll run the mouse with its power with a shortcut.
>>>>>>> I had that way back in Atari ST days, when I used a simple macro
>>>>>>> recorder
>>>>>>> to record the mouse moves and clicks my sighted wife did, then
>>>>>>> edited out
>>>>>>> the extra time; leaving only enough time for the computer to carry
>>>>>>> out
>>>>>>> the actions.
>>>>>>> Mouse moves went fast as light.
>>>>>>> No sighted user could move the mouse that fast.
>>>>>>> Oh, Jim, I discovered the right click context menu with the
>>>>>>> actions list;
>>>>>>> which also has a selection to copy the ID's to clipboard.
>>>>>>> Once you click on Show ID's, they remain displayed anywhere you go
>>>>>>> in the
>>>>>>> actions list.
>>>>>>> Here's a page from the forums, explaining the difference between
>>>>>>> scripts,
>>>>>>> macros, actions and Auto Hot Key scripts to Reaper.
>>>>>>> This tells me that we're better off working with native actions and
>>>>>>> scripts that don't get broken easily, as AHK scripts can:
>>>>>>> Snip:
>>>>>>> Cockos Confederated Forums > REAPER Forums > JS and ReaScript
>>>>>>> Discussion
>>>>>>> Reaper/custom/extension action command IDs and strings
>>>>>>> 12-02-2009, 06:51 AM
>>>>>>>    #1
>>>>>>> schwa
>>>>>>> Administrator
>>>>>>> : 7,276
>>>>>>> Default Reaper/custom/extension action command IDs and strings
>>>>>>>
>>>>>>> This will be of interest only to extension developers, ReaScript
>>>>>>> authors,
>>>>>>> and AutoHotKey users.
>>>>>>>
>>>>>>> For context:
>>>>>>>
>>>>>>> Reaper native actions are the set of actions that appear in the
>>>>>>> action
>>>>>>> dialog (press the ? key) for all users.
>>>>>>>
>>>>>>> Reaper custom actions are action lists (essentially macros) that are
>>>>>>> created by users, and appear at the top of the action list as
>>>>>>> "Custom:
>>>>>>> actionname".
>>>>>>>
>>>>>>> ReaScript allows users to create scripts in Python that do many of
>>>>>>> the
>>>>>>> same things that extensions can do. ReaScripts can be loaded as
>>>>>>> actions
>>>>>>> and appear in the action dialog as "Custom: scriptname".
>>>>>>>
>>>>>>> Reaper extensions are compiled add-ins created by developers (such
>>>>>>> as the
>>>>>>> redoubtable SWS and Xenakios) to add functionality to Reaper. 
>>>>>>> Regular
>>>>>>> users download and install the extensions, and the extended 
>>>>>>> functions
>>>>>>> then appear in the action dialog as (for example) "SWS: actionname".
>>>>>>>
>>>>>>> AutoHotKey is a 3rd-party application, nothing to do with Reaper,
>>>>>>> that
>>>>>>> can be used to create macros that send commands directly to
>>>>>>> windows on
>>>>>>> your screen.
>>>>>>>
>>>>>>> Every native, custom, and extension action in Reaper has a command
>>>>>>> ID.
>>>>>>> This is a unique number that identifies the action. ReaScript
>>>>>>> users can
>>>>>>> invoke any action via functions like RPR_Main_OnCommand and
>>>>>>> RPR_MIDIEditor_OnCommand. SWS extension users can use the command
>>>>>>> IDs in
>>>>>>> SWS marker actions. AHK users can invoke any action by sending the
>>>>>>> command ID to the Reaper window.
>>>>>>>
>>>>>>> No other users will ever care about command IDs. If you don't fit
>>>>>>> any of
>>>>>>> the descriptions in the previous paragraph (or if you don't
>>>>>>> understand
>>>>>>> any of this) then you don't need to worry about it and can happily 
>>>>>>> go
>>>>>>> back to recording whatever awesome music you were just about to
>>>>>>> record.
>>>>>>>
>>>>>>> You can see command IDs for each action by scrolling to the right
>>>>>>> in the
>>>>>>> action dialog. Only Reaper native actions have command ID numbers
>>>>>>> that
>>>>>>> never change. These are the only command ID numbers that are
>>>>>>> completely
>>>>>>> safe to use in any of these contexts.
>>>>>>>
>>>>>>> Custom, ReaScript, and extension actions are assigned command ID
>>>>>>> numbers
>>>>>>> when Reaper starts up. This is because Reaper doesn't know until
>>>>>>> it loads
>>>>>>> how many non-native actions will be added. Therefore, these
>>>>>>> command ID
>>>>>>> numbers can change from run to run. For example if you add or
>>>>>>> delete a
>>>>>>> custom action, ReaScript, or extension dll, or if the extension
>>>>>>> itself is
>>>>>>> updated, then any or all of the non-native command ID numbers can
>>>>>>> change.
>>>>>>> The ID numbers themselves can't be relied on unless the set of
>>>>>>> non-native
>>>>>>> commands never changes.
>>>>>>>
>>>>>>> Non-native actions are stored with a command ID string that Reaper
>>>>>>> uses
>>>>>>> at load time to assign unique command ID numbers. The command ID
>>>>>>> string
>>>>>>> never changes and can be relied on.
>>>>>>>
>>>>>>> ReaScript authors should use RPR_NamedCommandLookup to convert
>>>>>>> non-native
>>>>>>> command ID strings to numbers within the script. Otherwise, the
>>>>>>> script
>>>>>>> isn't guaranteed to always work.
>>>>>>>
>>>>>>> Unfortunately AHK users don't have a choice, AHK doesn't have
>>>>>>> anything to
>>>>>>> do with Reaper so it doesn't have any way to look up command ID
>>>>>>> numbers.
>>>>>>> Whenever non-native actions change, AHK scripts that use non-native
>>>>>>> actions may break and will need to be updated.
>>>>>>> End Snip.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 5/18/2013 10:43 PM, Jim Snowbarger wrote:
>>>>>>>> I think the first step on this is to install Python on your 
>>>>>>>> machine,
>>>>>>>> and
>>>>>>>> learn to write the simplest possible Python script.  That's about
>>>>>>>> where
>>>>>>>> I am right now.  Your python scripts can be as complicated as you
>>>>>>>> can
>>>>>>>> imagine, but they dont' have to be.  You won't need to be a Python
>>>>>>>> expert to string actions together.  It looks like that will be 
>>>>>>>> quite
>>>>>>>> simple.  About how to tell Reaper what hot key to connect to the
>>>>>>>> script,  Haven't gotten there yet.  But, this link Indigo
>>>>>>>> provided is
>>>>>>>> pretty instructive.  So, it's all there.
>>>>>>>>
>>>>>>>> time,  all it takes is time.  Anybody got enough of it?
>>>>>>>>
>>>>>>>> ----- Original Message ----- From: "Nadine Jahns"
>>>>>>>> <beats4thenation at gmail.com>
>>>>>>>> To: "Reapers Without Peepers" <rwp at reaaccess.com>
>>>>>>>> Sent: Friday, May 17, 2013 2:49 AM
>>>>>>>> Subject: Re: [RWP] Extending reaper with Reascript Macros
>>>>>>>>
>>>>>>>>
>>>>>>>>> Cool! I really have to try this out next week, when I'm back home!
>>>>>>>>> Yesterday i looked shortly in the reascript documentation and
>>>>>>>>> totally
>>>>>>>>> got lost :)!
>>>>>>>>>
>>>>>>>>> Am 17.05.2013 um 04:43 schrieb "Jim Snowbarger"
>>>>>>>>> <Snowman at SnowmanRadio.com>:
>>>>>>>>>
>>>>>>>>>> Well, there you go.  Once you can bind a script to a hot key, 
>>>>>>>>>> your
>>>>>>>>>> home free.  All  you need to do to string actions together is
>>>>>>>>>> to have
>>>>>>>>>> multiple lines, each containing this api call, with the
>>>>>>>>>> appropriate
>>>>>>>>>> action number.
>>>>>>>>>>
>>>>>>>>>> It's worth mentioning, in case anybody else other than me doesn't
>>>>>>>>>> already know, to get the action numbers to show, you don't have 
>>>>>>>>>> to
>>>>>>>>>> scroll right, as described.  Just right click on the action, down
>>>>>>>>>> arrow to show action ID'S, and press enter.
>>>>>>>>>>
>>>>>>>>>> Time to learn to write a simple REAScript, and bind it to a hot
>>>>>>>>>> key.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> ----- Original Message ----- From: "Indigo" 
>>>>>>>>>> <33indigo at charter.net>
>>>>>>>>>> To: "Reapers Without Peepers" <rwp at reaaccess.com>
>>>>>>>>>> Sent: Thursday, May 16, 2013 12:06 PM
>>>>>>>>>> Subject: [RWP] Extending reaper with Reascript Macros
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Python programming language and ReaScript, which uses Python, 
>>>>>>>>>>> can
>>>>>>>>>>> get complex, but I understand this to say that I can call any
>>>>>>>>>>> action
>>>>>>>>>>> with this API script; and; I'm assuming that I can list more
>>>>>>>>>>> than 1
>>>>>>>>>>> action, though this isn't stated here.
>>>>>>>>>>> I'm going to buy the e-book: Reaper 4 Unleashed; about $10 USD,
>>>>>>>>>>> which claims to get you going with custom actions, keymaps,
>>>>>>>>>>> etcetera.
>>>>>>>>>>> I'm already finding already written custom actions in Reaper's
>>>>>>>>>>> resources link, also in the Cockos forums.
>>>>>>>>>>> Here's the quote from the Wiki on ReaScript:
>>>>>>>>>>> Snip:
>>>>>>>>>>> top  Calling REAPER Actions
>>>>>>>>>>>
>>>>>>>>>>> You can call any REAPER action from ReaScript by using the API
>>>>>>>>>>> function
>>>>>>>>>>>
>>>>>>>>>>> RPR_Main_OnCommand(actionnumber, 0)
>>>>>>>>>>>
>>>>>>>>>>> Find the action number for a given action by opening the Actions
>>>>>>>>>>> list, and scrolling the window right to reveal an extra
>>>>>>>>>>> column. For
>>>>>>>>>>> example, from ReaScript you would call the REAPER action "Item:
>>>>>>>>>>> Split item under mouse cursor" like this:
>>>>>>>>>>>
>>>>>>>>>>> RPR_Main_OnCommand(40746, 0)
>>>>>>>>>>>
>>>>>>>>>>> If you use ReaScript as an advanced macro language, this is
>>>>>>>>>>> the only
>>>>>>>>>>> API function you need to know.
>>>>>>>>>>> End Snip.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://www.reaper.fm/sdk/reascript/reascript.php
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> RWP mailing list
>>>>>>>>>>> RWP at reaaccess.com
>>>>>>>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> RWP mailing list
>>>>>>>>>> RWP at reaaccess.com
>>>>>>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> RWP mailing list
>>>>>>>>> RWP at reaaccess.com
>>>>>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> RWP mailing list
>>>>>>>> RWP at reaaccess.com
>>>>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> RWP mailing list
>>>>>>> RWP at reaaccess.com
>>>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> RWP mailing list
>>>>>> RWP at reaaccess.com
>>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> RWP mailing list
>>>>> RWP at reaaccess.com
>>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>>
>>>>
>>>> _______________________________________________
>>>> RWP mailing list
>>>> RWP at reaaccess.com
>>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>>
>>>
>>> _______________________________________________
>>> RWP mailing list
>>> RWP at reaaccess.com
>>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>>>
>>
>>
>>
>> _______________________________________________
>> RWP mailing list
>> RWP at reaaccess.com
>> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
>
> _______________________________________________
> RWP mailing list
> RWP at reaaccess.com
> http://reaaccess.com/mailman/listinfo/rwp_reaaccess.com
> 






More information about the Rwp mailing list