How to do "Multiple Voices"

Make sure you read the More Info page fairly thoroughly before reading this page.

The things that you read here are "in addition to" what was explained on the "More Info" page (an "addendum" if you will). That is, nothing you read here changes what you read before (Hmmm... I should explain that better sometime).
See the Examples page for a couple of "Multiple-Voice" Exercises.

Multiple voice considerations
Track Instruments & Voices
  • You have the option of using 4 different tracks
  • Each track can be assigned to a different instrument
  • Each track can have 6 different voices assigned/used

    *** These options can be over-ridden in Standalone mode.
  • Setting Track Instrument
    Use the following (the values {see list} here are the track defaults):
    SET TRACKINSTRUMENT(1)=129         Sets Track 1 to General Midi Drums
    SET TRACKINSTRUMENT(2)=118         Sets Track 2 to "Melodic Tom"
    SET TRACKINSTRUMENT(3)=118         Sets Track 3 to "Melodic Tom"
    SET TRACKINSTRUMENT(4)=129         Sets Track 4 to General Midi Drums
  • Instruments 1 to 128 are "melodic" or "chromatic" (each note number is a melodic semi-tone from the next)
         (You could set the instrument to anything from 1 to 128 but you'd still only get to use 6 pitches from each instrument.)
  • Instrument 129 (or 0) is special. Each note number actually corresponds to a specific drum voice as listed here
    N.B. - The Drumputer plays notes to their full time value (i.e. tied to the next note) so your best bet, when using melodic/chromatic instruments is to stick with percussive ones (and/or those with short "sustain")
  • Setting Track Voices
    Use the following (the values here are the track defaults):
    SET TRACKVOICES(1)=40,35,42,46,50,45     'Snare,Bass,Closed HH,Open HH,HiTom,LoTom
    SET TRACKVOICES(2)=101,94,87,80,73,108   'Corresponds to note numbers found here
    SET TRACKVOICES(3)=69,62,55,48,41,34     'Corresponds to note numbers found here
    SET TRACKVOICES(4)=40,35,42,46,50,45     'Same as Track 1
    Setting Track Volumes
    Use the following (the values here are the track defaults):
    SET TRACKVOLUMES(#)=10,23,36,49,62,75,88,101,114,127     '9 values - must be between 1 and 127
    Each item is the MIDI equivalent that corresponds to the volume value that you assign in a raw note definition.
    This was added because, in some cases, you might find that some tracks can use a volume "boost" to bring them up to the other tracks. This allows you to write all tracks with the same relative volume AND have them audibly sound the same (i.e. volumes at drumputer level "3" on different tracks can all sound just "as loud" as each other).
    This is a very sound-card-specific setting and shouldn't be expected to have the same effect somewhere else.
    Changing Tracks
    Simply insert a line like "TRACK #" where # is 1,2,3,4 like this:
    roll roll roll roll
    TRACK 2
    dut dut dut dut rest rest
    TRACK 3
    rest rest dut dut dut dut
    You don't need to put in "TRACK 1" if it is the first one defined.

    The old rules still apply. That is, these "rudiment" lists, even when multiple tracks are used, should come last.

    * NEW IN VERSION 3.0 *
    MultiTracks Mode (SET MULTITRACKSMODE=ON) allows you to compose vertically (i.e. the familiar "ABAC", "AABA", "ABCA" song forms, to name a few) All rudiments and patterns are defined as normal. But you also have to define MULTITRACKS variables like so:
    MULTITRACKS partA=track1patternA track2patternA track3patternA
    MULTITRACKS partB=track1patternB track2patternB track3patternB
    MULTITRACKS partC=track1patternC track2patternC track3patternC
    ' and then your final line could look something like this:
    partA partB partA partC
    The individual components that make up the MULTITRACK variable (i.e. the "track#patternA" in the example above) should each be identical in the amount of time they take up. And each MULTITRACK variable should have the same # of items (they all have to reference the same amount of tracks). But, there's no reason why partB should be the same length as partA or partC, though. The individual parts that the variable is composed of, if it's not obvious by the example, each represent a track. So, each MULTITRACKS variable should have the same number of parts, each taking up the same amount of time.

    And, as in non-Multitracks mode, a list of MULTITRACKS variables (not the MULTITRACKS definitions) should be the final line(s).

    Multi-Voiced Notes
    Voices are denoted by the letters "A" thru "F". Consider the following:
    RAW a=25>A+B+C      'Play 8th note, Volume 5 on voices A + B + C
    RAW b=25+B+C        'Play 8th note, Volume 5 on voices A + B + C
    RAW c=25>B+C        'Play 8th note, Volume 5 on voices B + C ONLY
    RAW d=25>D          'Play 8th note, Volume 5 on voice D ONLY
    RAW e=25            'Play 8th note, Volume 5 on voice A ONLY (default voice)
    Notice that rudiments a and b produce the same result
  • Voice "A" is the default voice. It is used unless the note is redirected to another voice
  • The ">" symbol is used to indicate voice redirection
  • The "+" symbol is used to indicate voice unisons
  • Multi-Voiced Releases
    You can extend the SET PLAYRELEASE setting like this:
       SET PLAYRELEASE=NO,A+B,A,A+B+C+D+E        'Info after "NO" is ignored
       SET PLAYRELEASE=YES,A+B,A,A+B+C+D+E       'This will play release on Voice A+B of track 1,
                                                 'Voice A of track 2, and Voice A-E of track 3
       SET PLAYRELEASE=YES,A+B,,A+B+C+D+E        'Same as above but Track 2 doesn't play the release



    Click here for more on Marching Percussion Soundfont usage
    If you have Virtual Drumline by TapSpace Publications you can use:
    SET DEFAULTS=VIRTDRUMLINE,2        'The 2 indicates that you've installed it in bank 002. Edit as appropriate

    which is the equivalent of:
       'the above will apply for 8 tracks if SET STANDALONE=TRUE
       SET TRACKVOICES(1)=80,79,81,40,48,50   '(Snare, Snare Gak, Snare Ping, Stick Click,Crash,RideBell)
       SET TRACKVOICES(2)=74,72,69,67,65,38   '(Tenors with Gak on voice F)
       SET TRACKVOICES(3)=74,72,69,67,65,77   '(Basses with Higher drum on voice F)
       SET TRACKVOICES(4)=46,58,49,48,57,55   '(YamahaCrash1,ClosedHH,OpenHH,HHfoot,RideBell,RidePing)
       SET TRACKVOLUMES(#)=21,49,79,90,97,104,111,119,127   '(for each of tracks 1-4 or 8 - VDL Soundfont is quiet)


    If you insert the following (must be at top of script):
    this will give you the option of using 8 tracks, setting up 31 note types (22 User-definable - i.e. SET ATICKS=... to SET VTICKS=...) and 24 Voices (voice characters "A" thru "X"). See "The Magic Flute" on the Examples page to see how this is used.

    Why did I do this?
    I wanted to allow the drumputer to do "real" music that used more than 6 pitches and the more note types defined the cleaner your scripts can be.

    Why only for the Standalone version (not for the web)?
    Every time you push the "Let's Hear It" button in the online version to generate your file, programs are run on my Internet Service Provider's (ISP - "", Toronto, Ontario, Canada) computer. I have to ensure that the program that runs on their servers is fairly efficient or they're liable to get P.O'd (after all, I'm only one of roughly 5,000 users so I can't have my Drumputer hogging all their computing resources. This allows me to ensure them that I'm taking steps to write a more efficient program from their standpoint and therefore they'll leave the Drumputer alone.

    And, because of these increased capabilities it will require more memory to run (you probably won't notice it) but, again, my ISP would.


    Midi Melodic "Percussive" Instruments
    113Tinkle Bell
    115Steel Drums
    117Taiko Drum
    118Melodic Tom
    119Synth Drum
    120Reverse Cymbal
    The following is not a "melodic" instrument
    129 or 0General Midi Drums
    General MIDI Drum Voice Assignments
    35   Acoustic Bass Drum
    36   Bass Drum 1
    37   Side Stick
    38   Acoustic Snare
    39   Hand Clap
    40   Electric Snare
    41   Low Floor Tom
    42   Closed Hi-hat
    43   High Floor Tom
    44   Pedal Hi-hat
    45   Low Tom
    46   Open Hi-hat
    47   Low-mid Tom
    48   High-mid Tom
    49   Crash Cymbal 1
    50   High Tom
    51   Ride Cymbal 1
    52   Chinese Cymbal
    53   Ride Bell
    54   Tambourine
    55   Splash Cymbal
    56   Cowbell
    57   Crash Cymbal 2
    58   Vibraslap
    59   Ride Cymbal 2  
    60   High Bongo
    61   Low Bongo
    62   Mute High Conga
    63   Open High Conga
    64   Low Conga
    65   High Timbale
    66   Low Timbale
    67   High Agogo
    68   Low Agogo
    69   Casaba
    70   Maracas
    71   Short Whistle
    72   Long Whistle
    73   Short Guiro
    74   Long Guiro
    75   Claves
    76   High Wood Block
    77   Low Wood Block
    78   Mute Cuica
    79   Open Cuica
    80   Mute Triangle
    81   Open Triangle

    OctaveNote Numbers


    General MIDI Instrument List

    1. Acoustic Piano
    2. BrtAcou Piano 3. ElecGrand Piano 4. Honky Tonk Piano
    5. Elec.Piano 1 6. Elec.Piano 2 7. Harsichord 8. Clavichord
    Chromatic Percussion
    9. Celesta 10. Glockenspiel 11. Music Box 12. Vibraphone
    13. Marimba 14. Xylophone 15. Tubular Bells 16. Dulcimer
    17. Drawbar Organ 18. Perc. Organ 19. Rock Organ 20. Church Organ
    21. Reed Organ 22. Accordian 23. Harmonica 24. Tango Accordian
    25. Acoustic Guitar 26. SteelAcous. Guitar 27. El.Jazz Guitar 28. Electric Guitar
    29. El. Muted Guitar 30. Overdriven Guitar 31. Distortion Guitar 32. Guitar Harmonic
    33. Acoustic Bass 34. El.Bass Finger 35. El.Bass Pick 36. Fretless Bass
    37. Slap Bass 1 38. Slap Bass 2 39. Synth Bass 1 40. Synth Bass 2
    41. Violin 42. Viola 43. Cello 44. Contra Bass
    45. Tremelo Strings 46. Pizz. Strings 47. Orch. Strings 48. Timpani
    49. String Ens.1 50. String Ens.2 51. Synth.Strings 1 52. Synth.Strings 2
    53. Choir Aahs 54. Voice Oohs 55. Synth Voice 56. Orchestra Hit
    57. Trumpet 58. Trombone 59. Tuba 60. Muted Trumpet
    61. French Horn 62. Brass Section 63. Synth Brass 1 64. Synth Brass 2
    65. Soprano Sax 66. Alto Sax 67. Tenor Sax 68. Baritone Sax
    69. Oboe 70. English Horn 71. Bassoon 72. Clarinet
    73. Piccolo 74. Flute 75. Recorder 76. Pan Flute
    77. Blown Bottle 78. Shakuhachi 79. Whistle 80. Ocarina
    Synth Lead
    81. Lead1 Square 82. Lead2 Sawtooth 83. Lead3 Calliope 84. Lead4 Chiff
    85. Lead5 Charang 86. Lead6 Voice 87. Lead7 Fifths 88. Lead8 Bass Ld
    Synth Pad
    89. Pad1 New Age 90. Pad2 Warm 91. Pad3 Polysynth 92. Pad4 Choir
    93. Pad5 Bowed 94. Pad6 Metallic 95. Pad7 Halo 96. Pad8 Sweep
    Synth F/X
    97. FX1 Rain 98. FX2 Soundtrack 99. FX3 Crystal 100. FX4 Atmosphere
    101. FX5 Brightness 102. FX6 Goblins 103. FX7 Echoes 104. FX8 Sci-Fi
    105. Sitar 106. Banjo 107. Shamisen 108. Koto
    109. Kalimba 110. Bagpipe 111. Fiddle 112. Shanai
    113. TinkerBell 114. Agogo 115. SteelDrums 116. Woodblock
    117. TaikoDrum 118. Melodic Tom 119. SynthDrum 120. Reverse Cymbal
    Sound F/X
    121. Guitar Fret Noise 122. Breath Noise 123. Seashore 124. BirdTweet
    125. Telephone 126. Helicopter 127. Applause 128. Gunshot

    The above table is "1-based" (i.e. the values go from 1-128). A LOT of computer/MIDI references
    will refer to MIDI "Patches" in a 0-based (0-127) way. So be aware of that.
    If you have any problems email me