An invasion of armies can be resisted, but not an idea whose time has come.
– Victor Hugo
This section contains some ideas that will hopefully spur you to even more interesting and creative uses of PatchMaster.
Hitting ESCAPE sends all-notes-off messages to every output instrument on all 16 MIDI channels. Hitting ESCAPE a second time sends individual note off messages to every note on all 16 channels to every output instrument.
predicates.rb defines methods on Integer and Array that might be useful to you when writing filters or triggers. Most of the Array methods apply themselves to the first byte, so for example these two are equivalent:
From One, Many
You can turn one note into multiple notes either by setting up two different connections that connect the same input to the same output, or by writing a filter that turns one message into multiple like this:
This also shows the use of the predicate method
note? which returns true
for note on, note off, and poly pressure messages.
This One Goes to 11
Use start bytes or messages to set initial volumes for instruments, for example resetting all instrument’s volumes to 127.
Use PatchMaster to play notes! A patch’s start bytes can be used to play one or more notes-on messages, and the stop bytes can be used to play the corresponding note-off messages.
And Now, a Massage from the Swedish Prime Minister
You don’t have to enter message byte arrays manually. You can build up the
message using Ruby code, storing it in a variable, and then hand that
variable to the
message method. See
Messages can be sent not only from the keyboard but also from a trigger or a filter by calling
To get the message’s bytes, for example within a filter, use
Method to Your Madness
You can write your own methods in the PatchMaster file and call them from triggers and filters. Your method has access to the PM::PatchMaster methods and instance variables — for example, @outputs is the array of all output instruments.
Use the time to modify the MIDI data. Here’s an example filter that increases or decreases volume based on the time — essentially an LFO that is modulating amplitude.
You might want to set up a song that helps you tune your instruments by sending the proper program changes and entering note on and note off commands that play the tuning note on different synths. (Yes, you actually had to tune most older synths.) For example,
- Start message: program changes and note-ons for reference synth A and another synth (B).
- Stop message: note-off for synth B.
- Start message: program change and note-on for synth C.
- Stop message: note-off for synth C.
- Start message: program change and note-on for synth D.
- Stop message: note-offs for synth D and reference synth A.
When you enter the name of a song list, song, or patch on the screen, you need not type the whole name. Just use the shortest unique prefix of the name. Actually, you can type any regular expression. Also, you needn’t worry about matching upper and lower case; all name comparisons are case-insensitive (the regular expression is automatically made to match case-insensitively).