A5000 Remote v1.1
(c) 2008 Padre P.C. / Atrabilis Sunrise / P.C.M.
This is an index of the HTML documentation.
A5000 Remote is a program for Windows/MacOS which lets you press and turn the buttons and knobs on your Yamaha A3000/A4000/A5000 sampler via your computer. It is basically a ripoff of Richard Millican's A3000Rmt program for Windows. While A3000Rmt can be used for standard operations on A4000/A5000 samplers, several goodies such as the 'Text Entry' command would only work with an A3000. The purpose of A5000 Remote is to be fully A-series compatible (despite the name!).
A5000 Remote also provides useful tools, such as configurable hotkeys, a 'Text Edit' routine, a Midi Thru input, and a macro interpreter (compatible with A3000Rmt macros!)
Technical note: the application was coded in C++ using wxWidgets, which is a cross-platform GUI library, and RtMidi, a set of C++ classes that provides a common API for realtime MIDI input/output across Linux (ALSA), SGI, Macintosh OS X (CoreMidi), and Windows (Multimedia) operating systems. The idea behind this was to keep an open door for Linux/Mac versions. A5000 Remote became cross-platform with the MacOS version of 1.1 build811. As for Linux versions... there are simply too many distributions! RPMs should be made available for Mandriva and OpenSuse though. Hopefully in the future I will take some time to clean up source code a bit and make it OpenSource.
This program is freeware. You may copy, distribute and rant about it freely as long as you always include this file in distributions.
Since it is free, I take absolutely no responsibility for ANY damage WHATSOEVER, direct, indirect, physical, mental, financial, social, etc. as a result of using this software.
- Yamaha A4000 or A5000 sampler (only tested with OS v1.50, but it should work smoothly with any version)
- Yamaha A3000 sampler (NOT tested, since I don't have one: use at your own risk! Warning: 'Text Edit' will only work with OS v2.0!)
- IBM PC running Windows (only tested with XP), or Apple running Mac OSX (Universal Binary only tested with Leopard 10.5.2). Linux versions currently in progress...
- Working MIDI interface with MIDI out connected to the Axk's MIDI in. Note that the program only sends information, so you don't need your sampler connected back to your computer.
Launch A5kRemoteSetup, install to a convenient location and run the application.
A dialog should appear. If it doesn't, drop me an email!
If all goes well and a dialog appears, you'll firstly need to set your MIDI output device and device ID in the pull-down lists. The values you set these to will be stored in a configuration file so that next time you run the program, you won't need to do this.
Now power up your Axk and make sure your PC's MIDI out is going somewhere near its MIDI in, and you should be off...
The 'Settings' menu is located between the 'File' and '?' menus. You can use it to:
- Reset all: MIDI ports, Device ID, Pause Time, Hotkeys, Macros, etc...
- See what the hotkeys are and/or configure your own
The interface reacts to unused keys only, so make sure your selection is not already used by another command before crushing your keyboard to pieces. Tab, Enter, Escape, etc. are forbidden too.
- Set a new Pause Time value
Pause Time is a value (in milliseconds) for which the program will pause between each sysex message sent out. The reason for this is that the Axk takes time to update itself after each button press, so inundating it with button presses is bound to end in tears. If you do have problems, try increasing this value. 200 works reliably for me, so I made it the default value.
- Turn on/off the Text Edit warning message
- Select your sampler model (A3000, A4000 or A5000)
Sampler model selection is used for text entry routines and macro compatibility checks.
The dialog is divided into 5 groups:
The top-left group is the setup group, and contains MIDI related settings.
- The first pull-down list is used to activate a MIDI Thru port: any message received by the MIDI port you've selected here will make its way to the MIDI output port.
DON'T try to connect your sampler's MIDI Out to the MIDI Thru port. This is useless, plus you may end up with a MIDI feedback loop (trust me: this is not something you want to try!).
You may find this option very useful if you have a MIDI keyboard connected somewhere or if your MIDI interface doesn't support multiclient connections. Of course this setting is optional, you can leave the selection to '< off >' if you wish.
- The second pull-down list is used to select the MIDI Output port to which your sampler's MIDI In is connected.
- The third and last pull-down list is used to set your device ID (check your sampler, device ID is usually set to 1).
The group below the settings group is the text entry group.
Entering text on Axk samplers can be a real chore, especially with front panel knobs getting buggy over the years. This little 'Text Edit' box was my main motivation for programming A5000 Remote, since I've never been able to get A3000Rmt's Text Entry to work on my A5000, nor could I use bZone for Volume names
BEFORE USING THIS MODE, MAKE SURE YOUR SAMPLER IS IN A TEXT ENTRY MODE SITUATION (e.g. right after 'Rename' for A4000/A5000's). IF YOUR SAMPLER IS NOT IN THIS MODE, AND YOU HIT THE 'SEND' BUTTON, VERY BAD THINGS MAY HAPPEN TO IT, AND THERE WILL BE TEARS !
Once you're in a text entry situation, type some text into the edit control and hit 'send'. Read and respond to the warning if any (depends on your settings), then sit back and enjoy the show.
In order to help you with max character lengths, I added the two 'Program' and 'Sample/Volume' radio buttons. The first one will limit the text entry to 8 characters, which is the maximum length for Program names, the second one to 16 characters, which is the limit for Sample, Samplebank and Volume names.
When you start to find the warning annoying, you can turn it off via the 'Text Edit Warning' check-box in the 'Settings' menu.
The group below the Text Edit group, and at the bottom left of the dialog, is the 'Knobs' group.
The 5 knobs here simulate the knobs on your sampler. Clicking on the textual button is the same as pressing in a knob on the Axk. Clicking on the up arrow is the same as turning the knob to the left, and clicking on the down arrow is the same as turning the knob to the right.
The up and down arrows also have hidden features: if you hold < Ctrl > down whilst clicking on an arrow, it will increase or decrease the related value by 5 (instead of 1). This 'fast spin' option also works when using a hotkey instead of clicking on an arrow.
While debugging the application I noticed that 'fast spin' control doesn't work with Knob1, which sticks to +/-1 increments. A3000Rmt has the same problem (at least with an A5000 OS v1.50), and to be honest I think it comes from the sampler.
The main group to the right of the dialog contains an approximate layout of the remaining buttons on your Axk. Pressing one of these buttons will just cause the sampler to think you pressed the related button.
The final group is hidden away inside the mode group, and contains 2 controls:
- The combo-box control lists all available macros. These macros are just text files (*.rm5 or *.rmt) located in the 'Macros' directory (from the .exe rootdir). An additionnal 'Browse' command will let you look for external macro files and add them to the combo-box. While those won't be saved when the application stops, you can still set up your own default macros, by adding/removing *.rm5 or *.rmt files to/from the 'Macros' folder.
- The 'Run' button executes the currenly selected macro in the list.
Technical note: both *.rm5 and *.rmt files are regular text files. The *.rmt convention was defined by Richard Millican for A3000Rmt. Since I modified a few things on my own, I prefered to use a new *.rm5 convention. A5000 Remote won't care about macro files extensions, so it doesn't really matter...
In the MacOSX version, an extra ::ZONA:: group appears in black on the bottom-right group. For some reason this is the only way to set focus off the Text Edit group, which is required when using the hotkey feature. Simply click on ::ZONA:: once each time you can't use hotkeys because Text Edit has focus in the application.
A macro file (*.rm5 or *.rmt) contains a list of commands which are sent to the Axk. Each command should be on a separate line and start at the left of the line. The whole file is case insensitive.
Since I implemented every keyword from the A3000Rmt macro specification, previous *.rmt files should work smoothly with A5000 Remote (I actually only added the 'SendText' command to it). HOWEVER:
- While A3000Rmt macros are compatible with A5000 Remote, this does NOT mean that A3000 macros will necessary work on A4000/A5000!.
- In A3000Rmt, a 'Knob Up' command causes the knob to be turned clockwise, while a 'Knob Down' command causes it to be turned anti-clockwise. In A5000 Remote, A3000Rmt's Up and Down are inverted !!! 'Knob Up' will cause an anti-clockwise turn and 'Knob Down' a clockwise turn. I'm sorry about that, I could have made it the other way, but since on A4000/A5000s an anti-clockwise turn makes the cursor go up and vice-versa, I found the Up=CW / Down=ACW association to be more convenient.
Any text below which is enclosed with [ ]'s is optional.
Any line starting with anything but a macro keyword is treated as comments and ignored. Such lines can occur anywhere in the file.
The following information tags are recognized by the application and will appear in a dialog box when your macro is selected:
TITLE "My Title"
DESCRIPTION "This is my macro description"
AUTHOR "My Name"
COMPATIBILITY A3000/A4000/A5000
The COMPATIBILITY tag is interpreted by the application and compared to the sampler model you selected in the 'Settings' menu. If your sampler model (A3000, A4000 or A5000) does not appear in the compatibility list or if you defined no compatibility list at all, a dialog box will appear to warn you each time you run the macro.
The following commands mimic the actions of the mode buttons (going down) on the Axk:
PLAY
EDIT
REC[ORD]
DISK
UTIL[ITY]
The following commands mimic the actions of the mode buttons (going across) on the Axk:
FN1
FN2
FN3
FN4
FN5
FN6
The following commands mimic the actions of the command buttons on the Axk:
COMMAND
ASSIGN[ABLE]
AUDITION
The following commands mimic the actions of pressing COMMAND with one of the command buttons:
CTRLASSIGN[ABLE]
CTRLAUDITION
The syntax for pressing and turning knobs is slightly more evolved. It consists of the knob name followed by a parameter:
KNOB1 1
KNOB2 -1
KNOB3 UP
KNOB4 DOWN
KNOB5 PRESS
A numeric parameter specifies how much the knob is to be turned, with negative values denoting an anti-clockwise motion and positive values a clockwise one. The maximum value for a turn is 63, so the extremes are:
KNOB 63
KNOB -63
The UP and DOWN values are just pseudonyms for -1 and 1. PRESS causes the knob to be pressed in / pushed.
Knob1 will stick to +/-1 increments no matter what value you put in. See Instructions §2.3 for details.
The PAUSE command will cause the program to pause by the specified number of milli-seconds before executing the next command:
PAUSE 10
PAUSE 1000
This value will be used in addition to the global pause parameter in the main dialog. The maximum value for a pause is currently 5000, which is 5 seconds
The LOOP command causes the entire file to be repeated by the specified number of times.
The following macro (in a file of its own) would cause the audition button to be pressed twice, with a pause of 500 milli-seconds between each press:
LOOP 2
AUDITION
PAUSE 500
A message-box can be popped up on the screen and the macro temporarily paused, or aborted, depending on the user's action.
BOX OK "This is a simple message box with an OK button in. Pressing OK will continue running the macro."
BOX OKCANCEL "This is an OKCANCEL message box. Pressing OK will continue running the macro. Pressing CANCEL will stop it."
The OKCANCEL variety is handy for exiting loops and so forth...
MIDI notes can be sent via the NOTE command:
NOTE ON 1 60 120
PAUSE 500
NOTE OFF 1 60 50
The syntax here is: NOTE < ON|OFF > < channel > < pitch > < velocity >
Remember to send the appropriate note off's after the required pause, or you'll get hung notes...
The idea behind it is that you can build up little phrases and use them rather to test than a simple audition.
Text can be sent via the SENDTEXT command:
SENDTEXT "My Text"
As always, make sure your sampler is ready to receive text entries (after 'Rename'), and make sure your text has the correct character length (8 chars max for Programs, 16 chars for Samples/Samplebanks/Volumes)
1.0 (2008/07/??) - First try at it, sent to the YamahaA5000 Yahoogroup
1.1 (2008/08/17) - Hotkeys, macros, max char length, midi thru, splash screen, documentation, bug fixes
1.1 build809 (2008/09/13) - Bug fixes, sampler compatibility checks, macro information dialog, first try at an A3000 'Text Edit' routine
1.1 build811 (2008/11/25) - Minor changes, new icon, MacOSX version now available!
Windows: Available, tested successfully with XP
Linux: In progress, nice results while beta-testing/debugging with Mandriva 2008 and OpenSuse 10.2
Macintosh OS X: Available, Universal Binary tested successfully with Leopard 10.5.2
TODO: Linux versions, MacOS and A3000 'Text Edit' beta-tests (users: feedback please!), source code cleanup
NEEDED: Macintosh computer, Yamaha A3000 Sampler, time, beta-testers
Comments, bug reports, ideas and large sums of cash are always welcome (penis enlargement proposals are NOT!).
Email me directly at: a5k_remote@p-c-m.org (with 'A5000 Remote' somewhere in the title)
Note: if this mailbox happens to receive too much spam because of bots I may have to shut it down, in this case try to find a contact anywhere at http://www.p-c-m.org/, or look for a project called 'Atrabilis Sunrise' in Google.
Thanks to Richard Millican for A3000Rmt.
Also thanks to Peter for bZone, Jay for A3kDisky, the late A3K-list, the (late?) a-list@ampfea.org, the YamahaA5000 Yahoogroup, and anyone who helped.
Padre P.C.
August 17th, 2008