Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
iPhone/iPad owners - here's a couple of "controllers" for you
Introducing iReaPhone, a remote controller for Reaper. This works whenever you are within Wifi range of your network.
iReaPhone is written in AutoHotkey and runs on your iPhone using Air Display from http://avatron.com/apps/air-display and provides a one-track-at-a-time control surface. It reads Reaper's project file (.rpp) and then displays the relevant values. iReaPhone and iReaPad (coming soon) have rendered my Frontier Tranzport obsolete. As a result of the soon-to-be-presented iReaPad (and AC-7 Core, but that's another story) my BCF2000 is also put away in a cupboard in my garage.
To get started fire up Air Display and iReaPhone, then drag a .rpp file to anywhere on the iReaPhone window.
Note that you may first need to open iReaPhone.ini in a text editor and change the path in the [ReaperLocation] section to your path.
iReaPhone provides functions via a tabbed interface. The Trans(port) tab provides volume and pan sliders with "nudge" buttons. Mute, solo, arm, freeze, phase and FX bypass buttons are provided and operate on the selected track (which may be the master track). Also included are master mode (mono/stereo) and master FX bypass buttons. In addition, transport controls are included in this tab.
The Close button tells Reaper to save the current project and exit. iReaPhone also closes. The current project path\filename is saved in iReaPhone.ini which will be read next time iReaPhone is run.
The View Mixer button toggles Reaper's mixer panel on/off.
Zoom To Project should be self-explanatory.
Sync With Reaper tells Reaper to save the current project. iReaPhone then reads the project file and updates its display accordingly. This action may be necessary if you bypass iReaPhone to directly change anything in Reaper.
The File/Edit and View/Man(age) tabs provide buttons which can save you navigating menus or remembering shortcuts. The Sel(ect) tab allows you to select tracks, including the master track.
In the animation shown above all the mouse gestures are really fingertip gestures on the iPhone's touch sensitive screen.
The animation starts in the Trans(port) tab with the volume of track 2 being adjusted, first with the slider, then with the '+' nudge control. Observe the value being displayed at this time. Similarly then for pan. Mute etc. are then controlled; observe how the display changes. Finally in this tab, the next track is selected.
Then follows a brief look at the buttons provided in the File/Edit and View/Man(age) tabs. In the Sel(ect) tab track 4 is selected.
Back to the Trans(port) tab showing that track 4 is indeed selected. A few seconds is then played using the Play/Pause button. At this time watch the Big Clock in the top right-hand corner. This is simply Reaper's Big Clock, reduced in size and moved to the iPhone screen. This seems like a Good Idea.
The attached zip file contains the AutoHotkey script, an icon, iReaPad.ini and a "compiled" version of the application.
Note that I am not presenting a completed application, just an idea. I expect that with use I'll keep changing it. I have included the AutoHotkey script so that anyone who uses it may modify it for their own purposes.
Note the display arrangement shown below, especially the x and y values, in my case -1600 and 1024. These values are included in iReaPhone.ini and will need to be changed to suit your own display arrangement.
It's not perfect, has its limitations, but give it a try - see what you think.
Coming soon - iReaPad with multiple volume faders...
Last edited by alanofoz; 06-30-2012 at 07:29 PM.
Reason: Slightly revised version
Location: Adelaide, South Australia (originally from Geelong)
Posts: 5,598
Alan, I'm certainly interested in this. I am currently using AC-7 on my iPhone 3G (iOS 4.2.1) which works really well but I really like the implementation of REAPER specific functions you're showing here.
Would this run on my ageing iPhone 3G?
BTW - I notice you're originally from Geelong. This may be a long shot but you didn't happen to have anything to do with dB Concert Sound by any chance did you?
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Quote:
Originally Posted by Dannii
Alan, I'm certainly interested in this. I am currently using AC-7 on my iPhone 3G (iOS 4.2.1) which works really well but I really like the implementation of REAPER specific functions you're showing here.
It certainly is Reaper specific, and easily changed to suit individual users. Later this morning I'll post more details about this.
Quote:
Originally Posted by Dannii
Would this run on my ageing iPhone 3G?
If Air Display works on iOS 4.2.1 I think it should. I'm currently on 4.3.1. I couldn't find anything on the Avatron web site re iOS versions; I imagine that if you go to the App store from your phone you'll find the answer.
Quote:
Originally Posted by Dannii
BTW - I notice you're originally from Geelong. This may be a long shot but you didn't happen to have anything to do with dB Concert Sound by any chance did you?
Sorry, that was a long shot. I moved from Geelong to Adelaide in 1965 after graduating in Electrical Engineering. Still a happy Cats supporter though
Totally OT, after a couple of years in Adelaide I moved to Sydney, a few more years and I crossed paths with Geoff Francis (aka nicholas) quite often before he moved to Tassie. Now crossing cyber paths on this forum. Small world!
Still get back to Geelong a few times a year, Mum still lives in Belmont & needs regular visits from offspring in 3 different states!
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Most of the interface from iReaPad/iReaPhone is done via shortcuts to Reaper's actions, many of them being SWS extensions. Some are via the SWS ReaConsole.
The shortcuts must be defined in Reaper's Actions list. I have attached the full list of the actions I have used, many of them defined just for these apps. The shortcuts chosen often have no logical resemblance to the action, but that's OK because you don't need to remember them. The list includes many of the standard shortcuts.
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Attached: (Now in post #20) zip file for iReaPad containing AutoHotkey scripts, icon, iReaPad.ini and a "compiled" version.
As mentioned earlier, these apps have their limitations. Main ones being that you can only control one fader at a time, and you must release the fader before the change is effected. Basically a limitation set by AutoHotkey.
Good things include 16 volume faders plus master in the iPad version and the range of functions controlled by buttons. And of course, the button functions can easily be changed to suit each individual.
If you wish to make changes you'll need to have AutoHotkey (http://www.autohotkey.com/) installed. This is free and worth having anyway. Then you'll be able to run from the script. Without being very proficient in Autohotkey you should be able to re-assign buttons to different Reaper actions (or groups of actions, equivalent to writing a macro in Reaper). I suppose I should provide an example - probably tomorrow.
Last edited by alanofoz; 12-29-2011 at 09:08 PM.
Reason: Attached file replaced - see post #20
Interesting, so AutoHotkey runs also on iPhone and iPad, good to know. I looked into your iPhone script and can recommend a different strategy which will work always, independently of any hotkey definitions. Using this method you can define even more granular definitions for hotkeys, thanks to AutoHotkey, compared to what is available in Reaper. For example you could differentiate among LControl/Alt/Shift <-> RControl/Alt/Shift. Or you could use MODES, and in each mode your hotkeys would behave differently. In short you have unlimited possibilites.
We define a function first:
ReaperLove(ID)
{
global
Postmessage,0x111,ID,,,ahk_class REAPERwnd
return
}
Then use it in scripts, here a few examples:
Code:
!F1:: ; goto previous marker
{
ReaperLove(40172)
return
}
!F2:: ; goto next marker
{
ReaperLove(40173)
return
}
Control & ESC::
{
ReaperLove(40110) ; View: Toggle track zoom to minimum height off 40110
ReaperLove(40295) ; View: Zoom out project 40295
ReaperLove(41150) ; Envelope: Hide all envelopes for all tracks 41150
return
}
!F6:: ; show buss hide rest, same as ..showbusshiderest
{
ReaperLove(_SWSTL_SHOWALL) ; SWS: Show all tracks _SWSTL_SHOWALL
ReaperLove(40297) ; +Track: Unselect all tracks 40297
ReaperLove(_XENAKIOS_SELTRAXWITHBUSS) ; _XENAKIOS_SELTRAXWITHBUSS
ReaperLove(_SWS_TOGTRACKSEL) ; Invert track selection _SWS_TOGTRACKSEL
ReaperLove(_SWSTL_HIDE) ; SWS: Hide selected track(s) _SWSTL_HIDE
ReaperLove(40297) ; Track: Unselect all tracks 40297
return
}
!F5:: ; ..showresthidebus
{
ReaperLove(_SWSTL_SHOWALLTCP) ; SWS: Show all tracks in TCP 53239 _SWSTL_SHOWALLTCP
ReaperLove(40297) ; Track: Unselect all tracks 40297
ReaperLove(_XENAKIOS_SELTRAXWITHBUSS) ; _XENAKIOS_SELTRAXWITHBUSS
ReaperLove(_SWS_TOGTRACKSEL) ; Invert track selection _SWS_TOGTRACKSEL
ReaperLove(_SWSTL_SHOWEX) ; SWS: Show selected track(s) hide others _SWSTL_SHOWEX
ReaperLove(40297) ; Track: Unselect all tracks 40297
return
}
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Quote:
Originally Posted by TonE
Interesting, so AutoHotkey runs also on iPhone and iPad, good to know.
Sort of... You need Air Display which turns your iThingy into an additional monitor via Wi-Fi. The touch sensitive screen is the key.
Quote:
I looked into your iPhone script and can recommend a different strategy which will work always, independently of any hotkey definitions....
Your approach looks fascinating, I'll give it close attention in the next few days. Need to take a little break from this ATM & catch up on a few other things - I see the entrance to the dog-house looming large.
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Part way through modifying the code according to TonE's recommendation. Going slowly - there's potential for errors here otherwise. The new strategy works well though.
To be honest I just saw the screenshots of iReaPhone and was like hey that interface would look epic on the iPad using Lemur.
You get a nice fancy interface similar to the one you've designed on the iPad, supporting MIDI, OSC etc. Connection is seamless.
I'm guessing you know you're way around mapping/scripting in Reaper, you just need a copy of 'Lemur' on your iPad. While I have no clue about scripting, I have a decent eye for the GUI. I'm already working on some useful templates for the way I work, but unfortunately, I have no idea on how to link it with Reaper.
I was thinking along the same lines as your app, with toolbox shortcuts... and something similar to the TouchOSC Logic template for controlling the mixer.
I haven't dug deep enough with Lemur and my current schedule might keep me busy, but would definitely love to jump on board, once someone with the right knowledge joins in.
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Finished modifying iReaPad with TonE's idea.
Original attachment deleted, new one added here.
I've also made a change affecting iReaPad.ini. It now contains values MouseX and MouseY. These co-ordinates determine the location of the mouse cursor after an action has completed. Typically you would want the cursor to move to somewhere in Reaper (definitely not on the iPad screen).
OriginX and OriginY should also be changed here according to the values shown at "Position:" in the Display Setting window (see post #1 in this thread).
See post #29 for an update
Last edited by alanofoz; 06-30-2012 at 07:27 PM.
Reason: Code updated.
I looked into Functions.ahk, for all SWS extension ID's you should use their long names. Example:
Instead of:
Snapshots:
{
TTMessage = SWS: Open snapshots window (Toggle)
GoSub, ShowToolTip
ReaperLove(53167) ; SWS: Open snapshots window
MouseMove, MouseX, MouseY ; move cursor away from iPad
return
}
It should be:
Snapshots:
{
TTMessage = SWS: Open snapshots window (Toggle)
GoSub, ShowToolTip
ReaperLove(_SWSSNAPSHOT_OPEN) ; SWS: Open snapshots window
MouseMove, MouseX, MouseY ; move cursor away from iPad
return
}
This is also explained in the sws extensions manual, as those ID to string mappings might change in future sws-extension-versions. Just to make them more robust against unwanted behaviours in future.
SWS: Open snapshots window off 53167 _SWSSNAPSHOT_OPEN
Awesome stuff this and nice to give away for free.
Don't have either iPhone or iPad, only Samsung Galaxy pad, but I suppose the general idea here is portable to Android should someone more clever than me want to?
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Quote:
Originally Posted by V'ger
Awesome stuff this and nice to give away for free.
Don't have either iPhone or iPad, only Samsung Galaxy pad, but I suppose the general idea here is portable to Android should someone more clever than me want to?
If Air Display or equivalent is available for Android it should be possible. Doesn't appear to be though, hope I'm wrong.
This looks pretty cool. : ) However, I must be one of the dying breed of humans who likes a few physical buttons when possible instead of a touchscreen, so I guess I will use my Tranzport until it is dead.
However, I must be one of the dying breed of humans who likes a few physical buttons when possible instead of a touchscreen, so I guess I will use my Tranzport until it is dead.
No, you are not alone. Touchscreen is bad for music, bad for typing. So what remains? Clicking and pushing, if this is the correct term, probably not.
Is it possible to give the step by step setup for using this? It sounds pretty cool but I have no idea where to place all of the files. I understand Air Display goes on both the computer and the phone....after that, what ????
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Mini Manual
This is a rehash of post #1 modified for iReaPad. Make sure you look at post #2 for revised images.
iReaPad is written in AutoHotkey and runs on your iPad using Air Display from http://avatron.com/apps/air-display and provides a pseudo control surface. It reads Reaper's project file (.rpp) and then displays the relevant values. iReaPhone and iReaPad have rendered my Frontier Tranzport obsolete. As a result of iReaPad (and AC-7 Core, but that's another story) my BCF2000 is also put away in a cupboard in my garage.
What you need:
(i) Reaper running on a PC
(ii) An iPad
(iii) Air Display
(iv) Autohotkey
If you wish to customise the functions (or anything else, including layout etc. etc.) a small amount of ahk programming knowledge is necessary. Actually, the more the better; ahk is extremely useful in many other ways.
Before starting you need to tell iReaPad the “location” of the iPad screen. See the last part of these instructions, with the Display Properties images.
Note that you may first need to open iReaPad.ini in a text editor and change the path in the [ReaperLocation] section to your path.
To get started fire up Air Display and iReaPad, making sure that Reaper and iReaPad are both “looking” at the same project file. See below in the paragraph describing the “Project File” section of the Toolboxes tab.
iReaPad provides functions via a tabbed interface. The functions provided by the buttons generally need no explanation – give them all a try. All may be changed to suit yourself. You don’t need any real knowledge of AutoHotkey programming. Just study the code for one of the existing functions and you should be able to make any changes you require. Yeah, I know what you’re thinking, but it’s really not hard.
One function might be worth explaining – the Big Clock function. Obviously it activates/de-activates Reaper’s big clock, but to be useful it really should be visible on the iPad. I normally size and position it to the right of the tabs, with the always-on-top pin activated. For an example see post #2 of this thread.
There is a section in the Controls tab labelled “Selected Track”. This allows you to control several functions for the selected track. Tracks are selected in the “Select Track” section or by tapping the Sel buttons in the mixer tabs. Note that the master track may be selected here.
The Transport functions include volume and pan sliders with "nudge" buttons. Mute, solo, arm, freeze, phase and FX bypass buttons are provided and operate on the selected track (which may be the master track). Also included are master mode (mono/stereo) and master FX bypass buttons. In addition, transport controls are included in this section.
The Close button tells Reaper to save the current project and exit. iReaPad also closes. The current project path\filename is saved in iReaPhone.ini which will be read next time iReaPhone is run.
Synchronise tells Reaper to save the current project. iReaPad then reads the project file and updates its display accordingly. This action may be necessary if you bypass iReaPad to directly change anything in Reaper.
Hide Children will hide/unhide children of folder tracks in both the MCP and the Mixer tabs in iReapad. This is also reflected in the labels on the buttons in the “Select Track” section. For more info tap the Help button.
In order to do anything, iReaPad needs to know what Reaper project you are working with. Under the “Project File” section click Browse. This will invoke Reaper’s File Open dialogue. Choose a file, (remember that at this pointyou are working directly in Reaper – cannot be done remotely) then in iReaPad tap Open. Reaper and iReaPad are now referencing the same project file. Again, in this and all other tabs refer to the Help.
The attached zip file (in post #20) contains the AutoHotkey script, an icon, iReaPad.ini and a "compiled" version of the application.
Note that I am not presenting a completed application, just an idea. I expect that with use I'll keep changing it. I have included the AutoHotkey script so that anyone who uses it may modify it for their own purposes.
Note the display arrangement shown below, especially the co-ordinates shown, in my case -2944 and 1080. These values are included in iReaPad.ini and will need to be changed to suit your own display arrangement. To determine these values, in the Display properties window, drag the iPad monitor, in my case 2, in the direction you desire and note the values shown, as indicated in the left image. When you release the mouse button, the monitor will snap to its “real” position as shown in the right image. Experiment until you find a position you like. My placement below a corner means that the mouse pointer will only disappear from the main monitor(s) when you move it past a CORNER. If you place the iPad monitor near the edge of a main monitor it is very easy to “lose” the mouse pointer – it can too easily move to the iPad when you want it to stay on a main monitor. This may or may not be an issue to you.
Last edited by alanofoz; 06-30-2012 at 07:31 PM.
Reason: Minor update - see post #34
This is really the best fit between Reaper and a touchscreen device i've seen so far. So many functionalities in a small screen. Many thanks for this.
Unfortunately my reaper installation is on another unit than C:
Consequently, iReaPhone doesn't open at all. Would it be possible to modify the exe file so that it could accept any other location?
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Quote:
Originally Posted by jico27
This is really the best fit between Reaper and a touchscreen device i've seen so far. So many functionalities in a small screen. Many thanks for this.
Thanks, I made it to suit my own workflow. If others like it , so much the better.
Quote:
Originally Posted by jico27
Unfortunately my reaper installation is on another unit than C:
Consequently, iReaPhone doesn't open at all. Would it be possible to modify the exe file so that it could accept any other location?
Oops! I should have allowed for that.
Are you saying that iReaPhone doesn't open at all, or that it gives an error message? This is what happens when I try to reproduce the problem.
In any case it should now be fixed. Go to my first post and download again. With the new version you'll need to open iReaPhone.ini in a text editor and change the path in the [ReaperLocation] section to your path.
Last edited by alanofoz; 06-30-2012 at 07:30 PM.
Reason: typo
Are you saying that iReaPhone doesn't open at all, or that it gives an error message? This is what happens when I try to reproduce the problem.
You're right it was an error message.
Quote:
Originally Posted by alanofoz
In any case it should now be fixed. Go to my first post and download again. With the new version you'll need to open iReaPhone.ini in a text editor and change the path in the [ReaperLocation] section to your path.
It works fine now with the new install. I've modified reaper installation location and also the folder and project locations in the .ini file.
No more error messages. Thank you.
Now, do i have to change all the existing shortcuts in reaper or is there a way to import your text file as a sort of ReaperKeyMap file?
Now, do i have to change all the existing shortcuts in reaper or is there a way to import your text file as a sort of ReaperKeyMap file?
Sorry, forget about this. I now understand iReaPhone works fine with a standard config (i was using an already customized one, so it couldn't work properly).
I suppose that I would have to change anything in the .ahk file to adapt it to my customized config. Am i right?
Also, I just would suggest that we could reduce the iReaPhone page to the size of the remote, so that we could use the rest of the screen for reaper.
Would that be possible?
You did a great job with iReaPhone/iReaPad. I guess many reaperites will appreciate your approach of this reaper touchscreen control and the fact that it works on apple devices as well as the ones with an android system.
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
Quote:
Originally Posted by jico27
I suppose that I would have to change anything in the .ahk file to adapt it to my customized config. Am i right?
Yes. I've really only presented an idea here. If it works for anybody as is, great, but the .ahk file is there for those who wish to change it for their own workflow.
Quote:
Originally Posted by jico27
Also, I just would suggest that we could reduce the iReaPhone page to the size of the remote, so that we could use the rest of the screen for reaper.
Would that be possible?
It would be possible, but I doubt it would be practical on the iPhone screen. Even on the iPad I don't see it as being desirable. Depends on your workflow though.
Quote:
Originally Posted by jico27
You did a great job with iReaPhone/iReaPad. I guess many reaperites will appreciate your approach of this reaper touchscreen control and the fact that it works on apple devices as well as the ones with an android system.
I did some ahk to emulate a mackie, a while back,using the computer keyboard. Also one to convert another controller to a mackie. I did not release the source, because it was such a mess.
I probably should... see my sig.
Which version of ahk are you using? L?
I just picked up AirDisplay and am anxious to try it out.
Thanks again!
Now - the only thing I am worried about is my audio interfaces do not like working with wireless on...
Also - having trouble with screen size when ireapad.exe opens it is full screen, I can't seem to make it smaller ... I hit the button to take it off full screen it shrinks to taskbar, so I can never drag it over to Ipad.
I tried to run script, ireapad.ahk and it tells me "#Include file"Toolboxes.ahk" cannot be opened.
Last edited by flipotto; 10-29-2012 at 10:06 AM.
Reason: add problems with resize.
Location: Oz - Blue Mountains NSW, formerly Geelong
Posts: 944
flipotto, I'm currently holidaying in New Zealand & just about to leave a motel. If we have internet access this evening I'll reply to some of your questions. Not sure if I can address all of them before we get home next week though.
flipotto, I'm currently holidaying in New Zealand & just about to leave a motel. If we have internet access this evening I'll reply to some of your questions. Not sure if I can address all of them before we get home next week though.
Cheers,
Alan
Thanks Alan,
No worries, I'm watching a hurricane finally reach this far inland, Virginia. Not sure how long the power will hold out...
I am going to look at the src again, not sure why it does not want to open the #include file. It shouldn't be a problem.
Also - I see in the ireapad.ahk file that you used basic 1.0 whatever, ahk. So that's good for me, since I don't have ahk-L yet.
Seems like it should load straight to the ipad monitor.
EDIT - found .ini entry that made it fill my screen, perhaps that was an auto created thing... I don't remember.
I am able to run it from the script now, not sure what my problem was with that before.
So I made it smaller. Now I can test it.