![](https://max.reginaldbain.com/wp-content/uploads/2023/10/Random_GM_Drum_Beat_Template-1-1024x880.png)
Program Description
- This program generates a random drum beat using the default General MIDI Drum Kit.
- The patcher combines the code of two previous tutorial patchers: 10b_GM_Drums & 07c_Weighted_Random_Rhythm.
- Tempo and Pulse:
- The tempo is 108 b.p.m. and the default pulse is set to the 1/16 note via optional arguments (tempo 108 1 16).
- I discovered these tempo and pulse settings through many real-time interactive trial and error runs of the program.
- My artistic goal was to find a set of percussion instruments, tempo, and pulse that established a convincing “groove”.
- Instrument Selection:
- The random and sel objects work together to map the six possible random outcomes (0-5) to six carefully chosen percussion instruments.
- Percussion Instruments:
- Via the sel object, here is how the pseudorandom outcomes map:
- 0, 1 & 2 map to low (43), middle (47) and high (50) toms, respectively.
- 3 maps to Side Stick/Rim Shot (37).
- 4 & 5 map to high (60) and low(61) bongos, respectively
- To create a convincing groove, I used a relatively small number of related percussion instrument groups. Also note that the timbral groups have probabilities: toms (50%), bongos (33%), and 1 other timbre (8%).
- Via the sel object, here is how the pseudorandom outcomes map:
- Humanized Velocity
- I created a subpatcher called humanize that randomly varies the default velocity 90 by about 36% above and below 90. The resulting velocity range 58-122 provides a sense of percussive accent and wider palette of timbral variation with the six instruments.
- Weighted Random Rhythm
- To change the default isochronous pulse coming out of tempo into a rhythm, I used another random/sel object pair to create four possible pulse durational outcomes: 1/8, 1/16, 1/16 & 1/16. 75% of the time, the duration will be a 1/16 note. 25% of the time, the durational will be an 1/8. This results in a relatively steady stream of 1/16th notes that will have an 1/8th syncopation on occasion.
- By using durations based on powers of 2 – that is, 1/16 = 1/(2^4); 1/8 = 1/(2^3)) – I created a very traditional-sounding rhythm. But you may choose any numbers you like. There is an infinite world of rhythmic proportions waiting for you to explore them!
Object Reference
Updated: 10/21/23