[RWP] Extending reaper with Reascript Macros
Jim Snowbarger
Snowman at SnowmanRadio.com
Sat May 25 22:10:58 EDT 2013
Indigo, the other thing that occurs to me about your alt up down arrow
experiment, did you do the tweak to the envelopes last?
Did, the automation mode stay on write whiel you did that.
I think I was able to record these moves without messing with that envelopes
thing.
----- 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