DRUM-SPEAK Textbox Notes | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Simple | ||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||
Complex | ||||||||||||||||||||||||||||||||||||||||||||||||
LET p1=chucka duzz LET p2=bigidabigida p1 roll p2 p2In 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). chucka duzz roll bigidabigida bigidabigidayou'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) | ||||||||||||||||||||||||||||||||||||||||||||||||
LET p1=chucka duzz LET p2=bigidabigida RAW p3=48,45,55X,55,55 p1 roll p3 p2The 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:
So, if you want to create a flamacue (4 16ths - 1st flammed, 2nd accented), you'd write: RAW flamacue=45X,48,45,45And two swiss triplets (using 24th notes) would be (flams at volume 8, taps at volume 6): RAW swisses=58X,56,56,58X,56,56 RAW INTRO=4/4,16,16,26,26,26,26 RAW TRANSITION=4/4,16,16,26,26,46,46,46,46Note the differences: | ||||||||||||||||||||||||||||||||||||||||||||||||
Note Strings | ||||||||||||||||||||||||||||||||||||||||||||||||
These are like a cross between LET and RAW statements. Note String declarations have the following form:SET CASESENSITIVE=YES 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.zzzzHere, 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. zzzzAs 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 useSET TIMESIG=4/4 Any valid */4, */8 or */16 time signature can be put here If your pattern switches time signatures, you should use something like this: SET TIMESIG=7/8x6,5/8x6,4/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 MULTITRACKSMODE=YES or NO ditto 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 / Ritardando | 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 Notation | This is now available! (see the QuickLicks screens) |
ActiveX DLL | This is now available! (see the Downloads screen). It allows you to compose Drumputer opuses from within, say, Excel, Word or VB script! |
Stand-alone 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 |
1992 | Used the above application to write a snare solo for a young man who shall remain nameless but who went on to better rudimental adventures. |
1997 | Resurrected as a Visual Basic 3 application. But now the focus was on creating MIDI output. Visual notation limited to crude bitmaps |
1998 | Attempts to create a font to apply to the VB application prove frustrating |
September 1999 | I learned Perl and how to use it for CGI scripts |
November 1, 1999 | Masochistically, 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, 1999 | Released for Beta-Testing |
January, 2000 | LET, SET, RAW statements implemented making the entered text become a scripting language used for making MIDI files |
February 20, 2000 | Multiple Voices implemented (see this page) |
February 2, 2001 | Removed need for [ ] characters around user-defined rudiments / subpatterns |
February 2, 2001 | You can now override my predefined rudiments (i.e. RAW roll=68,67,66,65,84 will override my "roll" rudiment) |
February 11, 2001 | Track volume settings can be changed |
September 30, 2001 | Incorporated "Marching Percussion" SoundFont and the STANDALONE options and bugs fixed (mainly, other tracks start after intro finishes on track 1) |
November 16, 2003 | MultiTrack variables are now available allowing Vertical composing. Also, soundfont usage fixed for SB Live and SB Audigy cards |
April, 2004 | Finally bought the domain drumputer.com |
September, 2004 | Started working on Windows Stand-alone version in VB 6 |
October, 2004 | Decided 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, 2004 | Started 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, 2004 | Adding the same image editing capabilities to the DLL would really help with future development |
December, 2004 | Parallel development of the DLL and the "Exercise Generator" (from where the online "Randomizer" idea came) leads to the idea of "QuickLicks Plus" |
May, 2005 | Beta release of the "Randomizer" and the full set of "QuickLicks" online apps (Randomizer, 3 QuickLicks Editing screens, QuickLicks Plus) |
Who Am I? |
---|
|
Sound Quality is directly related to your sound card's MIDI drum synthesizing cababilities | ||
Good Cards | OK Cards | Poor Cards |
---|---|---|
Make sure they support "Wave Synthesis" | integrated sound |