home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-05 | 7.0 KB | 306 lines | [04] ASCII Text (0x0000) |
- ( FORTH DRUM MACHINE -- FOR SOUND CANVAS )
-
- ( DRUM SOUNDS: CHANNEL 9=STANDARD, CHANNEL 10=CM64/32 )
-
- DECIMAL
-
- : DRUM
- CREATE C, DOES> C@ 9 TO CHANNEL DUP ON OFF ;
-
- 27 DRUM HIGHQ 28 DRUM SLAP 29 DRUM PUSH
- 30 DRUM PULL 31 DRUM STICK 32 DRUM CLICK
- 33 DRUM METRO 34 DRUM BELL
-
- 37 DRUM SIDE 39 DRUM CLAP
- 35 DRUM KICK2 36 DRUM KICK1
- 40 DRUM SNARE2 38 DRUM SNARE1
-
- 41 DRUM LOTOM2 43 DRUM LOTOM1
- 45 DRUM MIDTOM2 47 DRUM MIDTOM1
- 48 DRUM HITOM2 50 DRUM HITOM1
-
- 42 DRUM HIHATC 44 DRUM HIHATP 46 DRUM HIHATO
-
- 49 DRUM CRASH1 57 DRUM CRASH2 55 DRUM SPLASH
- 51 DRUM RIDE1 59 DRUM RIDE2 53 DRUM RIDEBELL
- 52 DRUM CHINESE 54 DRUM TAMBOURINE
- 56 DRUM COWBELL 58 DRUM VIBRA
-
- 60 DRUM BONGOH 61 DRUM BONGOL
- 62 DRUM CONGAHM 63 DRUM CONGAHO 64 DRUM CONGAL
- 65 DRUM TIMBALEH 66 DRUM TIMBALEL
- 67 DRUM AGOGOH 68 DRUM AGOGOL 69 DRUM CASABA
- 70 DRUM MARACAS 71 DRUM WHISTLEH 72 DRUM WHISTLEL
- 73 DRUM GUIROS 74 DRUM GUIROL 75 DRUM CLAVES
- 76 DRUM WOODH 77 DRUM WOODL
- 78 DRUM CUICAM 79 DRUM CUICAO 80 DRUM TRIANGLEM
- 81 DRUM TRIANGLEO 82 DRUM SHAKER 83 DRUM JINGLE
- 84 DRUM BELLTREE 85 DRUM CASTANET
- 86 DRUM SURDOM 87 DRUM SURDOO
-
- ( DRUM MACHINE PATTERNS - FROM BOOK 200 DRUM MACH PATS)
-
- 36 DRUM BD ( : BD KICK1 ; )
- 38 DRUM SD ( : SD SNARE1 ; )
- 43 DRUM LT ( : LT LOTOM1 ; )
- 47 DRUM MT ( : MT MIDTOM1 ; )
- 50 DRUM HT ( : HT HITOM1 ; )
- 42 DRUM CH ( : CH HIHATC ; )
- 46 DRUM OH ( : OH HIHATO ; )
- 49 DRUM CY ( : CY CRASH1 ; )
- 37 DRUM RS ( : RS SIDE ; )
- 39 DRUM CP ( : CP CLAP ; )
- 56 DRUM CB ( : CB COWBELL ; )
-
- 0 PARAMETER STOPFLAG
-
- 15 PARAMETER SFXCHNL
-
- : SFX
- CREATE C, DOES>
- STOPFLAG IF C@ SFXCHNL TO CHANNEL OFF 0 TO STOPFLAG
- ELSE C@ SFXCHNL TO CHANNEL ON
- THEN ;
-
- : STOP ( EX: STOP RAIN )
- 1 TO STOPFLAG ;
-
- 76 SFX LAUGH 77 SFX SCREAM 78 SFX PUNCH
- 79 SFX HEART 80 SFX FOOT1 81 SFX FOOT2
- 82 SFX APPLAUSE 83 SFX CREAK 84 SFX DOOR
- 85 SFX SCRATCH 86 SFX WINDCHIME 87 SFX ENGINE
- 88 SFX CARSTOP 89 SFX CARPASS 90 SFX CARCRASH
- 91 SFX SIREN 92 SFX TRAIN 93 SFX JET
- 94 SFX HELI 95 SFX STARSHIP 96 SFX GUN
- 97 SFX MACHGUN 98 SFX LASER 99 SFX EXPLOSION
- 100 SFX DOG 101 SFX HORSE 102 SFX BIRDS
- 103 SFX RAIN 104 SFX THUNDER 105 SFX WIND
- 106 SFX WAVES 107 SFX STREAM 108 SFX BUBBLE
-
- ( RHYTHM WORDS )
-
- : INTRO
- STICK QN //
- STICK QN //
- STICK QN //
- STICK QN // ;
-
- : ENDINGA AC CY BD QN // ;
- : ENDINGB AC CH BD QN // ;
-
- : THEEND ENDINGA ;
-
- ( USE RHYTHM FOR INTERACTIVE MODE )
- : ENDING ( <NEW-RHYTHM-WORD> )
- [ ' THEEND ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( USE RHY= INSIDE COLON DEFINITIONS )
- : END=
- [ ' THEEND ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : BAR INTRO ;
-
- : BARS 0 DO BAR LOOP ;
-
- ( USE RHYTHM FOR INTERACTIVE MODE )
- : RHYTHM ( <NEW-RHYTHM-WORD> )
- [ ' BAR ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( USE RHY= INSIDE COLON DEFINITIONS )
- : RHY=
- [ ' BAR ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT1 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN1 ( <NEW-RHYTHM-WORD> )
- [ ' PAT1 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT1=
- [ ' PAT1 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT2 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN2 ( <NEW-RHYTHM-WORD> )
- [ ' PAT2 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- : PAT3 INTRO ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT2=
- [ ' PAT2 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- ( INTERACTIVE MODE )
- : PATTERN3 ( <NEW-RHYTHM-WORD> )
- [ ' PAT3 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT3=
- [ ' PAT3 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT4 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN4 ( <NEW-RHYTHM-WORD> )
- [ ' PAT4 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT4=
- [ ' PAT4 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT5 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN5 ( <NEW-RHYTHM-WORD> )
- [ ' PAT5 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT5=
- [ ' PAT5 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT6 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN6 ( <NEW-RHYTHM-WORD> )
- [ ' PAT6 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT6=
- [ ' PAT6 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT7 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN7 ( <NEW-RHYTHM-WORD> )
- [ ' PAT7 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT7=
- [ ' PAT7 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT8 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN8 ( <NEW-RHYTHM-WORD> )
- [ ' PAT8 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT8=
- [ ' PAT8 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- : PAT9 INTRO ;
-
- ( INTERACTIVE MODE )
- : PATTERN9 ( <NEW-RHYTHM-WORD> )
- [ ' PAT9 ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : PAT9=
- [ ' PAT9 ] LITERAL FIND ( ON STK: BAR'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
-
- ( FILL INS )
-
- : FILLIN INTRO ;
-
- ( USE FILLIN= FOR INTERACTIVE MODE )
- : FILLIN= ( <NEW-RHYTHM-WORD> )
- [ ' FILLIN ] LITERAL FIND
- OVER !
- [ FIND EXIT ] LITERAL SWAP 2+ ! ;
-
- ( INSIDE COLON DEFINITIONS )
- : FILL=
- [ ' FILLIN ] LITERAL FIND ( ON STK: FILLIN'S-PFA, NEW-WORD'S-CFA )
- [COMPILE] LITERAL [COMPILE] LITERAL COMPILE !
- ; IMMEDIATE
-
- HEX
-
- : GO
-
- CR CR
- ." SPACE TO FILLIN, ESC TO STOP" CR
- ." <-- --> CHANGE SPEED: " GETSPEED .
-
- BEGIN
- BEGIN
- BAR
- USERKEY @ 0= NOT
- UNTIL
- USERKEY @
- DUP
- CASE
- 15 OF GETSPEED 1+ DUP SETSPEED . ENDOF
- 08 OF GETSPEED 1 - DUP SETSPEED . ENDOF
- 20 OF FILLIN ENDOF
- 30 OF FILLIN ENDOF
- 31 OF PAT1 ENDOF
- 32 OF PAT2 ENDOF
- 33 OF PAT3 ENDOF
- 34 OF PAT4 ENDOF
- 35 OF PAT5 ENDOF
- 36 OF PAT6 ENDOF
- 37 OF PAT7 ENDOF
- 38 OF PAT8 ENDOF
- 39 OF PAT9 ENDOF
- 41 OF RHY= PAT1 ENDOF
- 42 OF RHY= PAT2 ENDOF
- 43 OF RHY= PAT3 ENDOF
- 44 OF RHY= PAT4 ENDOF
- 45 OF RHY= PAT5 ENDOF
- 46 OF RHY= PAT6 ENDOF
- 47 OF RHY= PAT7 ENDOF
- 48 OF RHY= PAT8 ENDOF
- 49 OF RHY= PAT9 ENDOF
- ENDCASE
- 1B = UNTIL
- THEEND
- ;
-