Flamtastic Drumputer - More Info & Explanations

"Drum-Speak" Textbox Explanation

DRUM-SPEAK Textbox Notes
  • List rudiment names found here, each separated by a space
  • The rudiment list must be the final line
  • Line wrapping cannot be interpreted properly so eliminate unnecessary linewraps
  • Complex
  • Use something like the following:
    	LET p1=chucka duzz
    	LET p2=bigidabigida
    	p1 roll p2 p2
    In this case the first two lines are defining variables and the last line is the actual pattern definition which substitutes the variables (Yes, I'm a computer programmer).

  • If you're wondering if it would have been easier to write:
    	chucka duzz roll bigidabigida bigidabigida
    you'd be right but I just wanted to show you the concept and then you can do something more elaborate later.
  • More Complex
    (& more powerful)
  • Use something like the following:
    	LET p1=chucka duzz
    	LET p2=bigidabigida
    	RAW p3=48,45,55X,55,55
    	p1 roll p3 p2
    The third line defines a RAW variable. In this case, you can totally ignore my previously defined rudiments and create your own. The structure of a RAW line is:
    	RAW varname=Note1,Note2,Note3,...,NoteX
    	and each note definition (NoteX) has the form:
    	NoteX=TVF   where T, V, and F are:
    T   (Note Type)
    Note TypeTicksDescription
    1120Quarter Note
    260Eighth Note
    340Eighth Note Triplet
    430Sixteenth Note
    520Sixteenth Note Triplet
    615Thirty-Second Note
    710Thirty-Second Note Triplet
    824Eighth Note Quintuplet (why not?)
    9185 of these are equal to 3 16ths in duration
    ???User-definable: Insert a line like SET ATICKS=### before you use an "A" note type. These can also be used for defining a large rest
    Anything else will cause an error
    Got a really weird subdivision/Note Type?
    Try the following:
    	SET TIMEBASE=###   Where ### is a multiple of 24
  • This will change the timebase of your pattern from the default of 120 to whatever you choose.
  • The "TimeBase" is also known as "Parts Per Quarter Note" and indicates to the MIDI player how fine a resolution to use.
  • The "SET ATICKS= ###" values will then have to be set with respect to the new TimeBase
  • Grace note Duration will also change accordingly (unless/until you change it with SET GRACETICKS=#)
  • Keep in mind that the bigger this number the more likely it is that your files will be bigger as a result.
  • This is a global setting for the entire file so make sure you pick a TimeBase that can handle all the note types you need for your piece (but be reasonable - I don't think you can go above 480)
    V   (Volume)
    Volume from 0 (rest) to 9
    F   (Flammed?)
    Optional. If included, it must be non-zero to indicate "ON"

    So, if you want to create a flamacue (4 16ths - 1st flammed, 2nd accented), you'd write:
    	RAW flamacue=45X,48,45,45
    And two swiss triplets (using 24th notes) would be (flams at volume 8, taps at volume 6):
    	RAW swisses=58X,56,56,58X,56,56

  • You can also do RAW Intro and Transition patterns like this:
    	RAW INTRO=4/4,16,16,26,26,26,26
    	RAW TRANSITION=4/4,16,16,26,26,46,46,46,46
    Note the differences:
  • The first item must be the time signature
  • These will over-ride the selected Intro/Transition pattern
  • Note Strings
    These are like a cross between LET and RAW statements. Note String declarations have the following form:
    RAW X=48X   '16th flammed
    RAW .=40    '16th rest
    RAW x=45    '16th tap
    RAW z=65,65 '2 32nd taps
    NOTESTRING varname=X...xxxxX.x.zzzz
    Here, every character in the string is a separate rudiment, on its own. And, it helps (though you don't need to follow this suggestion) if every rudiment used in the note string takes up the same amount of time so you can see the placement of the note in it's proper place, time-wise.

    In this way, the Drumputer can morph to be more like those other "Drum Machine" programs that give you 32 32nd notes and allow you to turn them on or off. But, in this case, each subdivision can be whatever value you want. Also, to aid in reading the note string, you can put spaces in the string (say, after every 4th subdivision) so the above could be:

    NOTESTRING varname=X... xxxx X.x. zzzz
    As well, you can define intro and transition patterns via NOTESTRING statements, too:
    NOTESTRING intro=4/4,X.X. .... X.X. .... Zzzzzzz. X.X. ....
    NOTESTRING transition=4/4,XX.. .... XX.. .... Zz.. Zz.. XX.. ....
    And just as in RAW definitions of Intro and Transition patterns the first part should be the Time Signature of the Intro/Transition
    Time Signatures
    If your pattern uses a single time signature, simply use
    SET TIMESIG=4/4        Any valid */4, */8 or */16 time signature can be put here
  • If you don't set the time signature it defaults to 4/4.
    If your pattern switches time signatures, you should use something like this:
    SET TIMESIG=7/8x6,5/8x6,4/4
  • In this case, you separate the time signatures by commas and indicate how many bars the time signature applies for. You can use the 'x', 'X', or '*' character to "multiply" the number of bars it applies for.
  • The last time signature in the list does not need the # of bars defined since it always lasts until the pattern ends or repeats.
  • Try the "Time" exercise on the Examples page to see this in use.
  • The Metronome tracks will respect these time signatures, too (that is, if they're turned on, the Bar metronome track will "sound" at the beginning of each bar and the Beat metronome will sound on each beat whether it's a 16th note, 8th note or quarter note -- you should therefore probably turn the beat metronome off unless the time signature is */4.)
  • Other
    The following can also be inserted:
    Generally, the SET statements allow you to lock settings within your pattern
    You can use a semi-colon (;) to separate statements (or use a normal linebreak)
    You can also use an underscore (_), anywhere, as a line-continuation character
    COMMENT the rest of this line is ignored
            You can also use REM or the ' character to indicate a comment follows
    SET STANDALONE=YES or NO           See the Multiple Voices page for more on this.
                                       This MUST be used before any other SET statements.
                                       (This is only for the Windows Standalone version)
    SET INTRO=IntroName                For now you must use one of my pre-defined patterns
    SET TRANSITION=TransitionName      Like SET INTRO=...
    SET TEMPO=positive integer         any tempo from 30-350
    SET TEMPOCHANGE=integer value      (positive/negative value or 0)
    SET GRACETICKS=value from 2-5      use this to "thicken" or "thin out" your flams
    SET GRACEVOLUME=volume value       "should" be quieter than following beat
    SET PLAYTIMES=positive integer     How many time to play?
    SET REPEATS=positive integer or 0  equals PLAYTIMES-1
    SET PLAYBEAT=YES or NO             Turns on/off Beat Metronome
    SET BEATVOLUME=volume value        Beat Metronome Volume
    SET VOICEBEAT=voice number         See the Multiple Voices page for more on voices
    SET PLAYBAR=YES or NO              Turns on/off Bar Metronome
    SET BARVOLUME=volume value         Bar Metronome Volume
    SET VOICEBAR=voice number          See the Multiple Voices page for more on voices
    SET PLAYRELEASE=YES or NO          Turns on/off Release.
    SET FLAMRELEASE=YES or NO          Flam the release?
    SET RELEASEVOL=volume value        How loud is the release
    SET TITLE=Title of the piece       Will insert this into the MID file
    SET AUTHOR=Author's name           Will insert this into the MID file
    SET TRANSCRIBER=Your name          Will insert this into the MID file
    SET CASESENSITIVE=YES or NO        Dictates whether variable names must be referenced using propercase
                                       (Default is NO - if YES, you can have two different variables named "X" and "x")
    SET DEFAULTS=various               See the Multiple Voices page for more on this
    SET TRACKVOICES(#)=voices list     ditto
    SET TRACKVOLUMES(#)=volumes list   ditto
    SET TRACKINSTRUMENT(#)=Instr't #   ditto
    SET TRACKBANK(#)=Bank #            ditto - the following BANK/PATCH settings are really only valid
                                       with Soundfonts
    SET TRACKPATCH(#)=Patch #          ditto - this is slightly different than SET TRACKINSTRUMENT(#)
    SET BARBANK(#)=Bank #              ditto
    SET BARPATCH(#)=Patch #            ditto
    SET BEATBANK(#)=Bank #             ditto
    SET BEATPATCH(#)=Patch #           ditto
    Multiple Voices
    This is covered in detail on this page

    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

    Future Enhancements?
    Accelerando /
    I think this is beyond the scope of this program/site. If you need this ability, I'd take the output that you get from this site and import it into other MIDI sequencing (editing) software.
    Tempo changes per repeat are handled, though.
    Visual NotationThis is now available! (see the QuickLicks screens)
    ActiveX DLLThis is now available! (see the Downloads screen). It allows you to compose Drumputer opuses from within, say, Excel, Word or VB script!
    Visual Basic App
    This is now available! Go here to download it!

    The History of the FlamTastic Drumputer
    1991?Created a little dBase III+ database app to take rudiment names and print pre-defined characters on a dot-matrix printer
    1992Used the above application to write a snare solo for a young man who shall remain nameless but who went on to better rudimental adventures.
    1997Resurrected as a Visual Basic 3 application. But now the focus was on creating MIDI output. Visual notation limited to crude bitmaps
    1998Attempts to create a font to apply to the VB application prove frustrating
    September 1999I learned Perl and how to use it for CGI scripts
    November 1, 1999Masochistically, I decided to transfer my old VB3 application to a web-based form (front-end) and Perl-based server (back-end)
    Limited to a single line of pre-defined rudiment names
    November 28, 1999Released for Beta-Testing
    January, 2000LET, SET, RAW statements implemented making the entered text become a scripting language used for making MIDI files
    February 20, 2000Multiple Voices implemented (see this page)
    February 2, 2001Removed need for [ ] characters around user-defined rudiments / subpatterns
    February 2, 2001You can now override my predefined rudiments
    (i.e. RAW roll=68,67,66,65,84 will override my "roll" rudiment)
    February 11, 2001Track volume settings can be changed
    September 30, 2001Incorporated "Marching Percussion" SoundFont and the STANDALONE options and bugs fixed (mainly, other tracks start after intro finishes on track 1)
    November 16, 2003MultiTrack variables are now available allowing Vertical composing. Also, soundfont usage fixed for SB Live and SB Audigy cards
    April, 2004Finally bought the domain drumputer.com
    September, 2004Started working on Windows Stand-alone version in VB 6
    October, 2004Decided it would be a good idea to package main functionality in an ActiveX DLL and then use that DLL as the basis for future Drumputer-related apps
    November, 2004Started playing with browser-based Javascript and found out I could manipulate page contents dynamically - cool - then I decided I'd revisit my Font/Bitmap idea and, long-story-short, came up with the QuickLicks webpages
    November, 2004Adding the same image editing capabilities to the DLL would really help with future development
    December, 2004Parallel development of the DLL and the "Exercise Generator" (from where the online "Randomizer" idea came) leads to the idea of "QuickLicks Plus"
    May, 2005Beta release of the "Randomizer" and the full set of "QuickLicks" online apps (Randomizer, 3 QuickLicks Editing screens, QuickLicks Plus)

    Who Am I?
  • I am a past member and instructor with the Kiwanis Kavaliers Drum And Bugle Corps from Waterloo, Ontario    (Snare 1982-1984, Pit 1987, Snare 1988, Instructor 1989-1995)
  • I am a past member of the Cardinal Cadets Drum And Bugle Corps from Scarborough, Ontario (1977-1981)
  • I have been drumming in the Drum Corps activity since I was 9 years old (Fall of 1976)
  • I am a computer programmer by trade
  • I am the webmaster for the Kiwanis Kavaliers.
  • I live in Ottawa, Ontario, Canada
  • I've known most of the best drummers from southern Ontario for the past 2 decades (And live vicariously through their accomplishments, thank you very much)

    Sound Quality is directly related to your sound card's MIDI drum synthesizing cababilities
    Good CardsOK CardsPoor Cards
  • SB AWE Cards
  • SB Live Cards
  • SB Audigy Cards
    Make sure they support "Wave Synthesis"
  • SB 16
  • SB Ensoniq 128 PCI
  • Motherboard
    integrated sound

  • If you have any problems email me (include the name of your soundcard with as much detail about it you can give)