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.

    MULTITRACKS Mode
    * 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
    

     

    SOUNDFONT USAGE

    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:
       SET TRACKBANK( 1)=2;SET TRACKBANK( 2)=2;SET TRACKBANK( 3)=2;SET TRACKBANK( 4)=2
       SET TRACKPATCH(1)=0;SET TRACKPATCH(2)=1;SET TRACKPATCH(3)=5;SET TRACKPATCH(4)=7
       SET BARBANK=2;SET BANKBEAT=2;SET BARPATCH=7;SET BEATPATCH=1
       '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)
       SET VOICEBEAT=36;SET VOICEBAR=46

    STANDALONE OPTIONS

    If you insert the following (must be at top of script):
    SET STANDALONE=TRUE
    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 - "Canaca.ca", 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
    Instrument
    Number
    Instrument
    Name
    113Tinkle Bell
    114Agogo
    115Steel Drums
    116Woodblock
    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
    CC#DD#EFF#GG#AA#B
    001234567891011
    1121314151617181920212223
    2242526272829303132333435
    3363738394041424344454647
    4484950515253545556575859
    5606162636465666768697071
    6727374757677787980818283
    7848586878889909192939495
    896979899100101102103104105106107
    9108109110111112113114115116117118119
    10120121122123124125126127    

     

    General MIDI Instrument List

    Piano
    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
    Organ
    17. Drawbar Organ 18. Perc. Organ 19. Rock Organ 20. Church Organ
    21. Reed Organ 22. Accordian 23. Harmonica 24. Tango Accordian
    Guitar
    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
    Bass
    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
    Strings
    41. Violin 42. Viola 43. Cello 44. Contra Bass
    45. Tremelo Strings 46. Pizz. Strings 47. Orch. Strings 48. Timpani
    Ensemble
    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
    Brass
    57. Trumpet 58. Trombone 59. Tuba 60. Muted Trumpet
    61. French Horn 62. Brass Section 63. Synth Brass 1 64. Synth Brass 2
    Reed
    65. Soprano Sax 66. Alto Sax 67. Tenor Sax 68. Baritone Sax
    69. Oboe 70. English Horn 71. Bassoon 72. Clarinet
    Pipe
    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
    Ethnic
    105. Sitar 106. Banjo 107. Shamisen 108. Koto
    109. Kalimba 110. Bagpipe 111. Fiddle 112. Shanai
    Percussive
    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 (include the name of your soundcard with as much detail about it you can give)