This patch demonstrates the use of pattr objects to store several attributes of a note-generating algorithm, and pattrstorage to store and recall preset values for all of those pattrs. In order to use the presets already designed for this patch, you will first need to download the file called notestreams.json and place it somewhere in the Max file search path.
This example (taken from Tutorial 37 in the original Max tutorials) demonstrates one way the passpct program, from the example "Pass a certain percentage of bangs", could be used. In order for this patch to work properly, you'll need to download that patch, passpct.maxpat, and store it in the Max file search path.
This patch provides a virtual emulator of the popular Behringer BCF2000 hardware MIDI controller.
Even if you don't have a BCF2000, this patch allows you to replicate it onscreen. The patch allows you to control other MIDI devices just as if you did have the hardware controller. Use the umenu to select the port to which you want to transmit, then use the emulator patch to send MIDI control messages.
To generate a series of numbers in Max that outline a sinusoidal shape, you can use the sin() function in the expr object. As the argument in the sin() function goes from 0 to 2π (6.283185), the output will be the sine of that value, going from 0 up to 1, down to -1, and back up to 0. So, by feeding a series of numbers into expr, you can generate numbers that follow that sinusoidal pattern.
This example shows how to create a MIDI “trill” effect, with a randomized rhythm, triggered when a particular incoming MIDI value is detected or when a specified audio amplitude threshold has been reached.
Pitch transposition of MIDI notes is easy; you simply add (or subtract) some number of semitones to the pitch value. However, whenever you transpose a MIDI note-on message you have to make sure to transpose the corresponding note-off message by the same amount. Otherwise, the note will not get turned off and you'll get a "stuck" note that never ends.
This example shows a way to use the table object as a “lookup table” to play either a major or minor scale via the noteout object.
This example shows how to use the gate object to route midi note data to different patcher objects that could be used for a variety of processing options.