"|"                 "almost-bar"                                      IMM					MANX
( -- )
Usage: "|" ... This word is almost equal to | , but does not compile synchronisation code. Typical use is when a bar only contains a DUPLICATES DUPLICATE REDO BIS or ENCORE statement. You do then not want this "meta bar" itself to be counted in the display set up by .bars? . The correct useage of this word is also very important when a score is prepared for a network of metallophones. In this case repetitions may happen at different places in the parts, resulting in rendez-vous point not expected by the other players.
See also: | L: DUPLICATES DUPLICATE REDO .. BIS
&                                                                     MANX
( -- )
Separates parts of a parallel construct. For example, if one voice plays /4 d1 g1 and the other one /8 rest d2 rest g2 , then we say:
	{{ /4 d1 g1  &  /8 rest d2 rest g2 }} 

Note: This construct can not be nested.
See also: {{ }}
(IDENT)                                                               IMMEDIATE					MANX
Allows a definition to access its own name.
The dictionary entry address (dea) of the definition is compiled as a literal. This is definitely non-standard. On systems that don't have the words @LATEST , LATEST or LAST you may consider compiling the name of the definition as a string, using C" . This works just as well, is standard, wastes space and is definitely ugly.
+ART                                                                  MANX
( n -- )
Increase (relatively) the articulation of the current PART by the factor n (positive or negative!).
See also: +VOL +TEMPO
+TEMPO                                                                MANX
( mul div -- )
Sets the tempo to be mul/div times as fast.
		 98 100 +TEMPO  ( play 2% slower)
102 100 +TEMPO ( play 2% faster)

The command can be issued anywhere, but the Conductor PART is the safest place to put it. When used in the Conductor PART , skip to the next place to adjust the timing of with rest and/or WHOLE rest
	2 /4 MEASURE  200 MM  /4 rest  8 10 +TEMPO /4 rest ||


+VOL                                                                  MANX
( mul div -- )
Increase (relatively) the volume of the current PART by the factor mul/div.
-aluminium                                                            MANX
( -- )
Marker for the words compiled from ALUMINIUM.FRT . This file contains a driver for the aluminium metallophone (which has percussion).
-brass                                                                MANX
( -- )
Marker for the words compiled from BRASS.FRT . This file contains a driver for the brass metallophone (no percussion).
-defs                                                                 MANX
( -- )
Marker for the words compiled from DEFS.FRT . This file contains utilities, global data and execution vectors.
-midirw                                                               MANX
( -- )
Marker for the words compiled from MIDIRW.FRT . This file contains all MIDI utilities.
-pcspeaker                                                            MANX
( -- )
Marker for the words compiled from PCSPEAKER.FRT . This file contains a driver for the PC-speaker.
-relays                                                               MANX
( -- )
Marker for the words compiled from RELAYS.FRT . This file contains a multiplexer for two metallophones.
-synth                                                                MANX
( -- )
Marker for the words compiled from SYNTH.FRT . This file contains a driver for a General MIDI synthesizer.
-tie                                                                  MANX
( -- )
Releases a tied note. Example: /4 tie- a2 ... -tie a2 A tied note is kept in its sustain phase (if the instrument is able to do this) for the indicated period. This word can be used just before, or inside a chord:
		-tie { a2 f2 g3 } 
or { -tie a2 f2 g3 }
or {ARP a2 f2 -tie g3 }

When used before a chord, -tie is applied to all elements of the chord. Used inside a chord, -tie applies to all notes following in the input stream, until } tie- or -tie- is encountered. Outside a chord -tie only works on the immediately following note.
See also: -tie- tie-
-tie-                                                                 MANX
( -- )
Can be used as a visual reminder that the following note is still being tied. Does not actually do anything.
	| 4 /4 measure  /1 tie- a2  | /1 -tie- a2  | /1 -tie a2 || 

This word can be used just before, or inside a chord:
		-tie- { a2 f2 g3 } 
or { -tie- a2 f2 g3 }
or {ARP a2 f2 -tie- g3 }

When used before a chord, -tie- is applied to all elements of the chord. Used inside a chord, -tie- applies to all notes following in the input stream, until } tie- or -tie is encountered. Outside a chord -tie- only works on the immediately following note.
See also: tie- -tie
..                                                                    MANX
( -- )
Used to indicate the range of bars to be played by BIS .
	13 .. 26 BIS  ( play bars 13 upto 26 inclusive)


See also: BIS
.INFO                                                                 MANX
( -- )
Print information about the current SCORE .
.MIDI-STATUS                                                          MANX
( -- )
Prints an overview of all MIDI related variables (timing, current track, tape counter etcetera).
.MM                 "dot-m-m"                                         MANX
( -- )
Print the current metronome value (in quarter notes per minute).
See also: MM SET-TEMPO
.SONG                                                                 MANX
( -- )
Print the name of the current SCORE .
.STAT                                                                 MANX
( -- )
Prints information about MANX's state, e.g. MIDI status, song name, general song info, metronome, current part, current program ...
.TRACK-SCORE                                                          MANX
( u "name" -- )
Extracts all events for track u from MIDI-file name and tries to format them into an executable MANX representation. The results depend on the complexity of name and at present are not very useful. Results depend on last invocation of AS-PERCUSSION or AS-VOICED . Only note-on and note-off messages are processed.
See also: AS-PERCUSSION AS-VOICED
.TRACKS                                                               MANX
( "name" -- )
Prints all text messages present in the MIDI-file name . In general, this shows how many tracks are in name and what instruments they are assigned to.
.USAGE                                                                MANX
( -- )
Prints the number of events that are stored in the 'track' structures. These 'tracks' are used by BUILD-MIDI and the PLAY-xx words.
See also: BUILD-MIDI PLAY-TRACK PLAY-FULL
.WHO                                                                  MANX
( -- )
Prints the network statistics, e.g. who is conductor, the serial port that is used, ensemble or solo.
/+                                                                    MANX
( u1 u2 -- u3 )
Divide u1 by u2. Round the result.
/ART                                                                  MANX
( -- )
Restore previous articulation, saved with /ART .
See also: \ART
/TEMP                                                                 MANX
( -- )
Restore previous tempo, saved with /TEMP .
See also: \TEMP
/VOL                                                                  MANX
( -- )
Restore previous loudness, saved with /VOL .
See also: \VOL
/bars                                                                 MANX
( -- u )
Returns the maximum number of bars allowed by the hardware (memory limitations).
/l0                                                                   MANX
( ?? -- ?? )
The contents of /l0 are used when L0 is executed or force-metallo? is set to TRUE. /l0 contains the pulse width in milliseconds of all following notes (until another articulation command is found or force-metallo? is turned off).
See also: L0 force-metallo? Articulation Control
/xxx                                                                  MANX
( -- )
MANX fixed note lengths are shown in the following table.
	/4    ( set length to quaver)
/4. ( set length to dotted quaver or three eights )

/1 /1. /2 /2. /3 /3. /4 /4.
/5 /6 /6. /7 /8 /8. /9 /9.
/10 /11 /12 /12. /13 /14 /15 /16
/16. /17 /24 /24. /32 /32. /48 /48.
/64 /64. /96 /96. /128 /128. /192 /192.


2,                                                                    MANX
( d -- )
Comma a double number in the dictionary data space.
3DROP                                                                 MANX
( n1 n2 n3 -- )
Drop the three top values from the data stack.
<<                                                                    MANX
( u1 u2 -- )
Squeeze a number of notes into a time slot that is actually too short or too long. This is useful in combination with {{ & and }} to build cross rhythms.
	/4 c2  5 4 << /16 g3 b2 c3 d2 a1 >>  

This plays 5 sixteenth notes in the time of a quarter (4 sixteenths). The construct can be nested but there is no compiler security!
>>                                                                    MANX
( -- )
Ends a 'time squeeze'. See << for an explanation.
>ARP                                                                  MANX
( i*index i -- )
Plays the notes corresponding to the i indexes on the data stack, making it sound the same like an ARPEGGIO . The following is equivalent:
	N? c3 N? e3 N? g3  3 >ARP   ==   {ARP c3 e3 g3 }


See also: >CHORD PERFORM-NOTE N?
>CHORD                                                                MANX
( i*index i -- )
Plays the notes corresponding to the i indexes on the data stack, making it sound the same like a CHORD . The following is equivalent:
	N? c3 N? e3 N? g3  3 >CHORD   ==   { c3 e3 g3 }


See also: >ARP PERFORM-NOTE N?
ACCEL                                                                 MANX
( time delta -- )
Starts an acceleration. The tempo of all the instruments is increased by delta over a period of time * (current note length). Range of delta is from 0 to 100. The response curve of delta can be edited, 100 corresponds to 3 times faster. The response curve of ACCEL is complementary with that of RITARD .
	100 /4 mm 3 /4 90 accel cis3 es3 gis3 .mm cis2 cis3 .mm


See also: RITARD
ARPEGGIO                                                              MANX
( -- )
Replays a chord initialized by {ARP or { .
	/16 { c3 f3 a3 c4 f4 }     /4 arpeggio   
/16 {arp c3 f3 a3 c4 f4 } /2 arpeggio chord


See also: CHORD
AS-PERCUSSION                                                         MANX
( -- )
When executed before .TRACK-SCORE , disassembly will be as percussion events.
See also: .TRACK-SCORE AS-VOICED
AS-VOICED                                                             MANX
( -- )
When executed before .TRACK-SCORE , disassembly will be as normal instrument events.
See also: .TRACK-SCORE AS-PERCUSSION
Articulation-Control                                                  MANX
( -- )
Standard articulation commands are supported:
	Legato		(8/8)	or L8
Tenuto (7/8) or L7
Portato (6/8) or L6
Non-Legato (5/8) or L5
Staccatissimo (1/8) or L1

Non-standard names and possibilities are:
	L4		(4/8)
L3 (3/8)
L2 (2/8)
L0 fixed time (see VALUE /l0)


BANK0                                                                 MANX
( -- )
The extra instruments on BOSS and Roland synthesizers need a control change message for controller #0. This implements a 'bank switch'. However, when such a program change is requested by name, the bank can not automatically reset to the default (bank 0) again. Use BANK0 <instrument name> reprogram to get the instrument from the default set, BANK2 <instrument name> reprogram to get the instrument with the same name from BANK2. For your convenience, some especially useful variants (like Mandolin, a variant of BANK0 Acoustic-Guitar-(steel) in BANK2) have gotten their own names.
	Guitar-Feedback \ equivalent to BANK1 Guitar-Harmonics


BANK1                                                                 MANX
( -- )
The extra instruments on BOSS and Roland synthesizers need a control change message for controller #0. This implements a 'bank switch'. However, when such a program change is requested by name, the bank can not automatically reset to the default (bank 0) again. Use BANK0 <instrument name> reprogram to get the instrument from the default set, BANK2 <instrument name> reprogram to get the instrument with the same name from BANK2. For your convenience, some especially useful variants (like Mandolin, a variant of BANK0 Acoustic-Guitar-(steel) in BANK2) have gotten their own names.
	Guitar-Feedback \ equivalent to BANK1 Guitar-Harmonics


BANK2                                                                 MANX
( -- )
The extra instruments on BOSS and Roland synthesizers need a control change message for controller #0. This implements a 'bank switch'. However, when such a program change is requested by name, the bank can not automatically reset to the default (bank 0) again. Use BANK0 <instrument name> reprogram to get the instrument from the default set, BANK2 <instrument name> reprogram to get the instrument with the same name from BANK2. For your convenience, some especially useful variants (like Mandolin, a variant of BANK0 Acoustic-Guitar-(steel) in BANK2) have gotten their own names.
	Guitar-Feedback \ equivalent to BANK1 Guitar-Harmonics


BECOMES                                                               IMM						MANX
( u1 "standard name" -- )
Attach a new percussion instrument to one of the standard names (plok plok2 bell-tree).
	Bass-Drum-1 BECOMES plok


See also: plok plok2 bell-tree
BIS                                                                   IMM						MANX
( n1 n2 -- )
Re-executes the bars from n1 to n2 inclusive. Normally this will be the only command between two consecutive | commands. This word only works for compiled or interpreted *.SCO files, not for *.MID files getting PLAY-xx-ed.
See also: REDO ENCORE
BUILD-MIDI                                                            MANX
( "name" -- )
Convert the MANX commands in the file name.SCO to a binary general MIDI file name.MID. The output file can be played back on any General MIDI compatible instrument. This includes most modern synthesizers or soundcards, the metallophones built by the Dutch Forth-gg, and the PC-speaker. Note that the file extension for name must be SCO. Example:
	  BUILD-MIDI hong1  ( reads hong1.sco, generates hong1.mid )


CHORD                                                                 MANX
( -- )
Replays a chord initialized by { or {ARP .
	/16 { c3 f3 a3 c4 f4 }     /4 chord   /2 chord chord
/16 {arp c3 f3 a3 c4 f4 } /4 chord /2 chord arpeggio


See also: ARPEGGIO
CHORD0                                                                MANX
( -- )
Also CHORD1..CHORD9 . There a 10 temporary chord storage locations available. These locations can be made current using SET and then filled with { ... } or {ARP ... } . Executing their name replays the chord or arpeggio.
		/4 { c3 e3 g3 } chord   ( standard)
SET chord0 /4 { c2 e2 g2 } chord0 ( sounds the same)

SET chord0 /4 { c2 e2 g2 }
SET chord1 { c2 e3 }
/8 chord0 chord chord1 ( chord0 chord1 chord1 )


See also: SET CHORD ARPEGGIO
CLEAR-MIX                                                             MANX
( -- )
Initializes the event storage locations. Clears all stored events and resets the 'tape counter'. Most useful in combination with MIX and NMIX .
CMT                                                                   MANX
( c-addr u -- )
Writes the string specified with c-addr u to the current MIDI file ( BUILD-MIDI ) or to the display (interactive mode). Comments should be enabled with MCOMMENTS-ON . For technical reasons the string length must be larger than 3 and smaller than 125 characters (bytes).
See also: MCOMMENTS-ON MCOMMENTS-OFF
CRESC                                                                 MANX
( time delta -- )
Starts a crescendo. The volume of the current instrument is increased by delta over a period of time * (current note length). Range of delta is from 0 to 100.
	piano  3 /4 90 cresc  cis3 es3 gis3   cis2 cis3


See also: DIMIN
DAND                                                                  MANX
( d1 d2 -- d3 )
Double precision AND .
See also: AND
DIMIN                                                                 MANX
( time delta -- )
Starts a diminuendo. The volume of the current instrument is decreased by delta over a period of time * (current note length). Range of delta is from 0 to 100.
	Fortissimo  3 /4 90 dimin  cis3 es3 gis3   cis2 cis3


See also: CRESC
DINVERT                                                               MANX
( d1 -- d2 )
Double precision INVERT .
See also: INVERT
DOR                                                                   MANX
( d1 d2 -- d3 )
Double precision OR .
See also: OR
DUMP-MIDI                                                             MANX
( "name1" "name2" -- )
Reads the MIDI-file name1, interprets the result and places the ASCII representation into the file name2. Note: Percussion is expected on channel 9, per the GM specification.
DUPLICATE                                                             IMM						MANX
( -- )
Used within a PART . The immediately preceding bar is compiled again.
	 | c1 e1 g1   ( 1)
| duplicate
||

Plays bar 1 twice.
See also: PART DUPLICATES |
DUPLICATES                                                            IMM						MANX
( u -- )
Used within a PART . The immediately preceding bar is compiled u times.
	 | g1 e1 c1   ( 2)
| 3 duplicates
||

Plays bar 2 four times.
See also: PART DUPLICATES |
Dynamic-Control                                                       MANX
( -- )
The following table shows the words controlling the loudness with which an instrument plays its notes.
	Fortissimo	Forte	Mezzo-forte	
Mezzo-piano Piano Pianissimo


See also: VOL +VOL VOLUME! CRESC DIMIN
ENCORE                                                                IMM						MANX
( n1 n2 -- )
Re-executes the bars from n1 to n2 (not including n2). Normally this will be the only command between two consecutive | commands. This word only works for compiled or interpreted *.SCO files, not for *.MID files getting PLAY-xx-ed.
See also: REDO BIS
ENSEMBLE                                                              MANX
( -- )
ENSEMBLE enables the Conductor. The machines freeze when no Conductor is appointed, or when there is no Conductor part. Otherwise, different parts will play together, synchronizing at each new bar marker.
See also: SOLO
ERROR-OFF                                                             MANX
( -- )
Resets the I/O vectors to the state saved by ERROR-ON .
See also: ERROR-ON
ERROR-ON                                                              MANX
( -- )
Saves the I/O vectors on a special stack. Sets the I/O to output to the terminal screen. This is useful to print error messages and warnings from within words that write to memory or to file.
See also: ERROR-OFF
GCD                                                                   MANX	
( n1 n2 -- n )
Finds the greatest common divisor n of the numbers n1 and n2.
HIT                                                                   MANX
( u -- )
Hit the percussion instrument corresponding to u .
	Bass-Drum-1 HIT

Consult MIDIRW.FRT for a list of valid percussion numbers.
See also: PNOTE
INDIRECT-ARR                                                          MANX
compiling ( "name" -- ) Build a structure that can pretend to be just any DARRAY . The structure can be changed with ' darray-name IS name . executing ( ?? -- ?? ) The execution behavior is the same as for any DARRAY , but the only TO-messages supported are FROM TO and 'OF .
INDIRECT-VAL                                                          MANX
compiling ( "name" -- ) Build a structure that can pretend to be just any VALUE . The structure can be changed with ' value-name IS name . executing ( ?? -- ?? ) The execution behavior is the same as for any VALUE , but the only TO-messages supported are FROM TO and +TO .
INFO"                                                                 MANX	
( text" -- )
Put additional information into a MIDI file as a single text record of up to 255 characters. The string can be printed with the word .INFO . Parse text delimited by a " character, ignoring leading delimiters. Usage: INFO" any text"
See also: .INFO
INIT-SR                                                               MANX
( -- )
Set up the serial port for use by the Conductor.
Instrument-Switching                                                  MANX
( -- )
Presently, MANX can be used to generate scores for an orchestra of nine musicians. The names of the player-switches can be found in the following table. Executing one of these switch names from the keyboard will direct all following input to the instrument connected to that name.
	  I-AM-PLAYER0  Flute reprogram  c2 c3  ( play c2 c3 on flute)
I-AM-PLAYER1 Voice-Oohs reprogram c2 ( sing c2 )
I-AM-PLAYER0 c1 ( c1 on flute again )

I-AM-CONDUCTOR I-AM-PERCUSSION I-AM-PLAYER0
I-AM-PLAYER1 I-AM-PLAYER2 I-AM-PLAYER3
I-AM-PLAYER4 I-AM-PLAYER5 I-AM-PLAYER6


Instrument-names                                                      MANX
( -- c-addr u )
The following words push a string identifying a player. This string is used by PART to decide whether the text following in the input stream is for the current player and should be compiled.
	Conductor	Percussion	Player0
Player1 Player2 Player3
Player4 Player5 Player6


See also: PART
L:                  "label-define"                                    IMM				MANX
( "name" -- )
Can only be used inside a PART . Defines a new label called name . This label can be used just like a constant and returns the bar number at the place in the PART where L: executed.
		L: intro
| c3 e3 g3
| intro REDO


LOG2                                                                  MANX
( u -- log2[u] )
Find the logarithm (base 2) of the number u.
MCOMMENTS-OFF                                                         MANX
( -- )
When playing back, comments and bar markers in (MANX generated) MID files are ignored. When recording: comments and bar markers are not put in the MID file.
See also: CMT MCOMMENTS-ON
MCOMMENTS-ON                                                          MANX
( -- )
When playing back, comments and bar markers in (MANX generated) MID files are displayed on the screen. When recording: comments and bar markers are put in the MID file. Note: the Player14 info overwrites the Conductor information.
See also: CMT MCOMMENTS-OFF
MEASURE                                                               MANX
( b -- )
Sets up the instrument to play b beats to the bar. Each beat has a time value corresponding to the latest note length executed. Logically speaking it will occur as the first word in the first bar of the Conductor PART , but it can be executed any number of times thereafter, or in other parts.
	Conductor PART  | 0  3 /4 MEASURE .. | .. ||
Conductor PART | 0 /4 3 MEASURE .. | .. ||


MIDI-names-General                                                    MANX
The following is a list of the Standard MIDI instrument names. 12-String-Guitar Accordion Accordion-Italian Acoustic-Bass Acoustic-Bass-Drum Acoustic-Grand-Piano Acoustic-Guitar-(nylon) Acoustic-Guitar-(steel) Acoustic-Snare Agogo Alto-Sax Applause Bagpipe Banjo Baritone-Sax Bass-Drum-1 Bassoon Bird-Tweet Bottle-Blow Brass-2 Brass-Section Breath-Noise Brite-Acoustic-Piano Bubble Burst-Noise Cabasa Castanets Celesta Cello Chinese-Cymbal Choir-Aahs Chorus-Guitar Chorused-Piano Church-Bell Church-Organ Church-Organ-2 Clarinet Claves Clavinet Closed-Hi-Hat Contrabass Coupled-Hps Cowbell Crash-Cymbal-1 Crash-Cymbal-2 Detuned-EP-1 Detuned-EP-2 Detuned-Organ-1 Detuned-Organ-2 Distortion-Guitar Dulcimer Electric-Bass-(finger) Electric-Bass-(pick) Electric-Grand-Piano Electric-Guitar-(clean) Electric-Guitar-(jazz) Electric-Guitar-(muted) Electric-Snare English-Horn Feedback-Guitar Fiddle Flute Flute-Key-Click French-Horn Fretless-Bass Funk-Guitar FX-1-(rain) FX-2-(soundtrack) FX-3-(crystal) FX-4-(atmosphere) FX-5-(brightness) FX-6-(goblins) FX-7-(echoes) FX-8-(sci-fi) Glockenspiel Guitar-Feedback Guitar-Fret-Noise Guitar-Harmonics Gunshot Hammond-Organ Hand-Clap Harmonica Harpsichord Hawaiian-Guitar Helicopter Hi-Bongo Hi-Mid-Tom Hi-Wood-Block High-Agogo High-Floor-Tom High-Q High-Timbale High-Tom Honky-tonk-Piano Jetplane Jingle-Bell Kalimba Koto Lead-1-(square) Lead-2-(sawtooth) Lead-3-(calliope-lead) Lead-4-(chiff-lead) Lead-5-(charang) Lead-6-(voice) Lead-7-(fifths) Lead-8-(bass+lead) Lo-Bongo Long-Guiro Long-Whistle Low-Agogo Low-Conga Low-Floor-Tom Low-Mid-Tom Low-Timbale Low-Tom Low-Wood-Block Mandolin Maracas Marimba Melodic-Tom Music-Box Mute-Cuica Mute-Hi-Conga Mute-Surdo Mute-Triangle Muted-Trumpet Oboe Ocarina Open-Cuica Open-Hi-Conga Open-Hi-Hat Open-Surdo Open-Triangle Orchestra Orchestra-Hit Orchestral-Harp Overdriven-Guitar Pad-1-(new-age) Pad-2-(warm) Pad-3-(polysynth) Pad-4-(choir) Pad-5-(bowed) Pad-6-(metallic) Pad-7-(halo) Pad-8-(sweep) Pan-Flute Pedal-Hi-Hat Percussive-Organ Piccolo Pizzicato-Strings Rain Recorder Reed-Organ Reverse-Cymbal Rhodes-Piano Ride-Bell Ride-Cymbal-1 Ride-Cymbal-2 Rock-Organ Sea-shore Shaker Shakuhachi Shamisen Shanai Short-Guiro Short-Whistle Side-Stick Sine-Wave Sitar Slap Slap-Bass-1 Slap-Bass-2 Soprano-Sax Splash-Cymbal Square-Click Steel-Drums Sticks String-Ensemble-1 String-Ensemble-2 Synth-Bass-1 Synth-Bass-2 Synth-Bass-3 Synth-Bass-4 Synth-Brass-1 Synth-Brass-2 Synth-Brass-3 Synth-Brass-4 Synth-Drum Synth-Voice SynthStrings-1 SynthStrings-2 SynthStrings-3 Taiko-Drum Taisho-Koto Tambourine Tango-Accordion Telephone-Ring Tenor-Sax Timpani Tinkle-Bell Tremolo-Strings Trombone Trumpet Tuba Tubular-Bells Ukelele Vibraphone Vibraslap Viola Violin Voice-Oohs Whistle Woodblock Xylophone
MIDI-names-ROLAND                                                     MANX
The following names are specific to Roland/BOSS percussion instruments and drum sets. Brush-Slap Brush-Swirl Brush-Tap CCastanets CClosed-Hi-Hat Concert-BD-1 Concert-BD-2 Concert-Cymbal1 Concert-Cymbal2 Concert-SD-1 Concert-SD-2 COpen-Hi-Hat CPedal-Hi-Hat CRide-Cymbal Timpani-A Timpani-A# Timpani-B Timpani-C Timpani-C# Timpani-D Timpani-D# Timpani-E Timpani-F Timpani-F# Timpani-F1 Timpani-G Timpani-G# Orchestra-Set Brush-Set TR-808-Set Electronic-Set Jazz-Set Power-Set Room-Set Standard-Set
MIX                                                                   MANX
( u "name" -- )
Appends track u of MIDI-file name to the current in-memory track. The result can be listened to with PLAY-MIX .
MM                  "m-m"                                             MANX
( n -- )
"Maeltzel Metronome". Set the metronome to n notes (of the current length) per minute.
	120 /4 MM  \ set 120 quarter notes per minute


See also: .MM +TEMPO SET-TEMPO
MPRINTING-OFF                                                         MANX
( -- )
Suppresses the echoing of events to the screen in the PLAY-xx and DUMP-MIDI words.
See also: MPRINTING-ON PRINTING-OFF PRINTING-ON
MPRINTING-ON                                                          MANX
( -- )
Enables the echoing of events to the screen in the PLAY-xx and DUMP-MIDI words. Useful for analyzing non-MANX MIDI files.
See also: MPRINTING-OFF PRINTING-OFF PRINTING-ON
N?                                                                    IMM						MANX
( "name" -- u )
Inspects the note name and extracts a note value suitable for use with PERFORM-NOTE .
	N? c3  PERFORM-NOTE  ( equivalent to c3 )


See also: PERFORM-NOTE
NMIX                                                                  MANX
( i*n i "name" -- )
Clears the current in-memory track. Mixes the i tracks of the MIDI-file name . Places the result into the current memory track. The result can be listened to with PLAY-MIX .
	2 9  2 NMIX godzilla.mid   PLAY-MIX
( Mixes track 2+9 of godzilla.mid and plays it aloud )


NOOP                                                                  MANX
( -- )
Do nothing.
Note-names                                                            MANX
( -- )
The following list declares all valid MANX note names. When a note name is executed a sound with a determined pitch is generated. The length of the note is set by one of the standard note length commands ( see /xxx \yyy ).
	a0   .. a9	ais0 .. ais9	as0  .. as9	b0   .. b9	
bes0 .. bes9 bis0 .. bis9 c0 .. c9 ces0 .. ces9
cis0 .. cis9 d0 .. d9 des0 .. des9 dis0 .. dis9
e0 .. e9 eis0 .. eis9 es0 .. es9 f0 .. f9
fes0 .. fes9 fis0 .. fis9 g0 .. g9 ges0 .. ges9
gis0 .. gis9
A#0 .. A#9 Ab0 .. Ab9 Bb0 .. Bb9 B#0 .. B#9
Cb0 .. Cb9 C#0 .. C#9 Db0 .. Db9 D#0 .. D#9
E#0 .. E#9 Eb0 .. Eb9 F#0 .. F#9 Fb0 .. Fb9
Gb0 .. Gb9 G#0 .. G#9


PART                                                                  IMM				MANX
( c-addr u -- )
Usage: name PART Checks the ENVIRONMENT to see if c-addr u is the name of an instrument the hardware is able to emulate. If false, skip all words up to and including || . If true, compile the following text into an array to tell the hardware how to emulate the characteristics of the named instrument.
  	   Metallophone PART ...  c1 e1 g1 ... ||

Play three notes on a metallophone if the hardware is able to do so. A PART should have at least one MEASURE command.
PERFORM-NOTE                                                          MANX
( u -- )
Play the note corresponding to the value u. The value u can be found by applying N? to a note or pnote .
	/4 3 PERFORM-NOTE  


See also: N?
PLAY-FULL                                                             MANX
( "name" -- )
Mixes all tracks in the MIDI-file name into one giant track, using NMIX , then plays the result (m-printing not supported). Some MIDI files contain the same information in different 'mixes', to support low- mid- and hi-quality output devices, and thus will sound very 'funny'. Try one of the other PLAY-xx words, or use .TRACKS for analysis and NMIX for synthesis. The maximum number of tracks supported is 64.
PLAY-MIX                                                              MANX
( -- )
Plays the in-memory track mix generated by a previous PLAY-FULL or similar command. Saves some start up time when experimenting with control and program changes.
PLAY-SESSIONh                                                         MANX
( "name" -- )
Like PLAY-FULL but for MIDI-files delivered with the SESSION programma bundled with the PRO-AUDIO Spectrum16 soundcard. Plays the high-quality tracks.
PLAY-SESSIONl                                                         MANX
( "name" -- )
Like PLAY-FULL but for MIDI-files delivered with the SESSION programma bundled with the PRO-AUDIO Spectrum16 soundcard. Plays the low-quality tracks.
PLAY-TRACK                                                            MANX
( u "name" -- )
Read track u of the MIDI-file name and directly send the data to the output devices. The events are not stored. MPRINTING-xx works.
PLAY-WP                                                               MANX
( "name" -- )
Like PLAY-FULL but for MIDI-files delivered with WordPerfect's Presentations 2.0 .
PNOTE                                                                 MANX
compiling: ( u "name" -- ) Create a new word name that will 'hit' the percussion instrument corresponding to the constant u when executed. Bass-Drum-1 PNOTE kick

executing: ( -- )

Hit the percussion instrument corresponding to u .
	kick ( equivalent to   Bass-Drum-1 HIT )

Consult MIDIRW.FRT for a list of valid percussion numbers.
See also: HIT
PRINTING-OFF                                                          MANX
( -- )
Switches-off printing the names of MANX commands before they are executed.
See also: PRINTING-ON MPRINTING-ON MPRINTING-OFF
PRINTING-ON                                                           MANX
( -- )
Prints the name of every MANX command before that one is executed.
See also: PRINTING-OFF MPRINTING-ON MPRINTING-OFF
RECORD-MIDI         "record-midi"                                     MANX
( -- )
Get and store events received at the MIDI port. Stop processing when any channel buffer becomes full or when the user presses a key on the terminal. The MIDI device that is to be recorded should reset its running status before starting to send. This can be done by e.g. doing a local program change before invoking the recorder.
REDO                                                                  IMM						MANX
( u -- )
Re-executes bar u . The value u is most easily remembered by labelling a bar with L: name . Execution of name puts the correct u on the data stack. REDO can be executed from the keyboard. It uses the latest SCORE and current PART . In this case the need may arise to execute a bar that has no label. You can use the fact that the | points are numbered sequentially, starting at 0, and that the optional label generates a named constant that pushes this sequence number.
See also: BIS
RESET1-1                                                              MANX
( u -- )
Reset specified bit u of the brass metallophone interface. Remark: Only exists when the word testing is defined.
RESET1-2                                                              MANX
( u -- )
Reset specified bit u of the aluminium metallophone interface. Remark: Only exists when the word testing is defined.
RITARD                                                                MANX
( time delta -- )
Starts a ritardando. The tempo of all the instruments is decreased by delta over a period of time * (current note length). Range of delta is from 0 to 100. The response curve of delta can be edited, 100 corresponds to 3 times slower. The response curve of RITARD is complementary with that of ACCEL .
	100 /4 mm 3 /4 90 ritard cis3 es3 gis3 .mm cis2 cis3 .mm


See also: ACCEL
SCORE                                                                 MANX	
( "name" -- )
Usage: SCORE name Used when compiling *.SCO files. The name of the piece. This will be the name of the Forth word to use when the piece is to be executed. Parse name delimited by a space, ignoring leading delimiters. Create a dictionary entry for name. Set up an array of bars.

Execution: ( -- )

A pointer to the array is fed to the instrument machine and the score is played.
SET                                                                   IMM						MANX
( "name" -- )
Make name the storage location for the { and {ARP data. The name must be one of CHORD0 .. CHORD9
SET1-1                                                                MANX
( u -- )
Set specified bit u of the brass metallophone interface. Remark: Only exists when the word testing is defined.
SET1-2                                                                MANX
( u -- )
Set specified bit u of the aluminium metallophone interface. Remark: Only exists when the word testing is defined.
SILENCE                                                               MANX
( -- )
Shuts off all sounds.
SOLO                                                                  MANX
( -- )
SOLO disables SYNC so that an instrument plays without waiting for the Conductor (which may not be there!).
See also: ENSEMBLE
TERMINAL                                                              MANX
( -- )
Set all vectors to terminal interaction. This may be necessary after some (compile) errors have occurred. The MANX mode is echoed at the first line of the .STATUS or .MIDI-STATUS output.
TEST-1-NOTE                                                           MANX
( x u -- )
Set devoffs to 0 and continuously play note x on both metallophones, using a pulsewidth of u milliseconds. devoffs1 and devoffs2 are NOT reset to their previous values. Stop by pressing any key. Remark: Only exists when the word testing is defined.
TEST-NOTES                                                            MANX
( u -- )
Set devoffs to 0 and play all notes on both metallophones in sequential order, using a pulsewidth of u milliseconds. devoffs1 and devoffs2 are NOT reset to their previous values. Stop by pressing any key. Remark: Only exists when the word testing is defined.
TEST-SR1                                                              MANX
( u -- )
Test the brass metallophone hardware by shifting a '1' around. Each output stays high for u milliseconds. Remark: Only exists when the word testing is defined.
TEST-SR2                                                              MANX
( u -- )
Test the aluminium metallophone hardware by shifting a '1' around. Each output stays high for u milliseconds. Remark: Only exists when the word testing is defined.
VOL                                                                   MANX
( u -- )
Set (absolutely) the volume of the current PART to u percent of the maximum possible.
VOLUME!                                                               MANX
( u1 c-addr u2 -- )
Can only be used in the conductor part. The c-addr u2 describes a PART name. The u1 is a new volume

(range: 0 ... 100).

This word enables the Conductor to control the balance of individual parts.
	23 Player0 volume! 

Interactive use:
	I-am-Player0   23 Player0 VOLUME! 
(here it is easier to say I-am-Player0 23 VOL)


See also: VOL
WHOLE                                                                 MANX
( -- )
Sets the note length to the length of one complete bar.
See also: MEASURE
WRITE-MIDI?                                                           MANX
( "name" -- bool )
Reads the file name.SCO, converts the text in it to a stream of MIDI events and writes these to the file name.MID . The MIDI header information of these files is wrong when bool is FALSE . At least one extra execution of WRITE-MIDI? corrects this (returns TRUE ).
[--]                                                                  MANX
( -- )
The next note or 'hit' is played much more Legato . Multiple invocation allowed.
	/4 c2 [--] e2 g2     ( g2 is very short)


[-]                                                                   MANX
( -- )
The next note or 'hit' is played more Legato . Multiple invocation allowed.
		/4 c2 [-] e2 g2     ( g2 is short)
/8 [-] plok plok2 ( plok2 is short)


[..]                                                                  MANX
( -- )
The next note or 'hit' is played much more Staccatissimo . Multiple invocation allowed.
	/4 c2 [..] e2 g2    ( e2 is much shorter)


[.]                                                                   MANX
( -- )
The next note or 'hit' is played more Staccatissimo. Multiple invocation allowed.
		/4 c2 [.] e2 g2    ( e2 is short)
/8 [.] plok plok2 ( plok is short)


[>>]                                                                  MANX
( -- )
Extra emphasis on the next note or 'hit'. Multiple invocation allowed.
	/4 c1 [>>] e1 c1 ( e1 is MUCH louder)


[>]                                                                   MANX
( -- )
Emphasizes the next note or 'hit'. Multiple invocation allowed.
		/4 c2 [>] e2 g2     ( e2 is louder)
/4 c1 [>] [>] e1 c1 ( e1 is MUCH louder)
/8 [>] plok plok2 ( plok is loudest)


[v]                                                                   MANX
( -- )
De-emphasizes the next note or 'hit'. Multiple invocation allowed.
		/4 c2 [v] e2 g2     ( e2 is piano)
/4 c1 [v] [v] e1 c1 ( e1 is very silent)
/8 [v] plok plok2 ( plok2 is loudest)


[vv]                                                                  MANX
( -- )
Extra de-emphasis on the next note or 'hit'. Multiple invocation allowed.
	/4 c1 [vv] e1 c1 ( e1 is very silent)


\ART                                                                  MANX
( -- )
Save current articulation on a stack.
See also: /ART
\Fortissimo                                                           MANX
( -- )
Also: ..\Pianissimo etc. Set a loudness for the following word only.
		c3 \Fortissimo des2  gis3
c3 \Fortissimo theme gis3


\L0                                                                   MANX
( -- )
Also: \L1..\L8. Set an articulation for the following word only.
		c3 \L3 des2   gis3
c3 \L3 theme gis3


\LONG                                                                 MANX
( -- )
Next note is played 10% longer than actually notated.
See also: \SHORT
\SHORT                                                                MANX
( -- )
Next note is played 10% shorter than actually notated.
See also: \LONG
\TEMP                                                                 MANX
( -- )
Save current tempo on a stack.
See also: /TEMP
\VOL                                                                  MANX
( -- )
Save current loudness on a stack.
See also: /VOL
\yyy                                                                  MANX
( u -- )
MANX variable note lengths are shown in the following table.
	3 \12  ( set length to three twelfths)

\1 \2 \3 \4 \6 \8 \9 \12
\16 \24 \32 \48 \64 \128 \192 \384
\480 \960 \2304


aluminium?                                                            MANX
( -- bool )
Set to TRUE when the piece of sound hardware you actually have available is a 37-note (aluminium) metallophone with 3 percussion instruments. Every sound output is channelled to this device.
bar-lock?                                                             MANX
If this value is set to TRUE , the bars of different PARTs are strictly time-locked. When this is not wanted ('human feel' or when the time signature differs) bar-lock? should be set to FALSE . The default (bar-lock? is true) makes it very easy to see that a *.SCO still is buggy: during a BUILD-MIDI messages are printed that inform you that very large (more than 10 ticks) adjustments have been made to certain bars.
brass?                                                                MANX
( -- bool )
Set to TRUE when the piece of sound hardware you actually have available is a 37-note (brass) metallophone with no percussion. Every sound output is channelled to this device.
channeltouch                                                          MANX
( u -- )
Set the MIDI channel aftertouch for the current channel to u. See midirw.frt
chorus                                                                MANX
( u -- )
Set the chorus effect for the current channel to u. See midirw.frt
com#                                                                  MANX
This value contains the number of the serial port used to SYNC the available instruments. As com2 is used for the mouse on many systems, it is advised to set 1 TO com# . A serial port is not needed when the number of instruments is less than 3 (it is possible to have one computer control up to two devices).
See also: ENSEMBLE SOLO
devoffs                                                               MANX
( ?? -- ?? )
Impersonates devoffs1 or devoffs2 , depending on the active track.
devoffs1                                                              MANX
( ?? -- ?? )
This system value controls the offset between the note asked for (by MANX) and the note that really gets played on the brass metallophone.
devoffs2                                                              MANX
( ?? -- ?? )
This system value controls the offset between the note asked for (by MANX) and the note that really gets played on the aluminium metallophone.
drivermax#n                                                           MANX
( -- u )
The number of notes that can be played simultaneously by the current driver. For the PC-speaker this is 1, for a MIDI synthesizer at least 28, for the metallophones it is 37.
env-attack                                                            MANX
( n -- )
Set the relative filter and amplitude envelope attack rate on the current channel. Allowable range: 0 .. 100 See midirw.frt
env-decay                                                             MANX
( n -- )
Set the relative filter and amplitude envelope decay rate on the current channel. Allowable range: 0 .. 100 See midirw.frt
env-release                                                           MANX
( n -- )
Set the relative filter and amplitude envelope release rate on the current channel. Allowable range: 0 .. 100 See midirw.frt
force-metallo?                                                        MANX
When force-metallo? is set to TRUE , the articulation changes to L0 and stays that way, even when L1 .. L8 , Legato , Staccatissimo etcetera are executed. The command is active when compiling .SCO files for use with percussion instruments. It has effect also when directly sending keyboard data to an attached metallophone. Note however that nothing happens when replaying binary data.
guitar?                                                               MANX
( -- bool )
Set to TRUE when the piece of sound hardware you actually have available is a 1-note mechanical guitar without percussion. Every sound output is channelled to this device.
kb-transpose                                                          MANX
( n -- )
When recording user input ( RECORD-MIDI ) the contents of this value (say n) are used to transpose the input over n semitones.
max#n                                                                 MANX
( -- u )
The maximum number of simultaneous notes the hardware can play.
octave                                                                MANX
( n -- ) | ( -- n )
Shift all instruments (except percussion) up or down over n octaves. This value can be modified by the user.
pan                                                                   MANX
( u -- )
Place the current channel at position u in the stereo sound field. The value 0 corresponds to extreme left, 100 to extreme right. See midirw.frt
pc-speaker?                                                           MANX
( -- bool )
Set to TRUE when the piece of sound hardware you actually have available is a (PC) speaker. Every sound output is channelled to this device.
pitchbend                                                             MANX
( u -- )
Set the MIDI pitchbend for the current channel to u. See midirw.frt
polytouch                                                             MANX
( u -- )
Set the MIDI polyphonic aftertouch for the current channel to u. See midirw.frt
portamento                                                            MANX
( bool -- )
When TRUE , switch on the MIDI portamento effect for the current channel. See midirw.frt
See also: portatime
portatime                                                             MANX
( u -- )
Set the MIDI portamento time for the current channel to u. Has an audible effect only after executing TRUE portamento . See midirw.frt, portamento
replay-speed                                                          MANX
( ?? -- ?? )
Every word that reads data from a MIDI-file will adjust the replay speed of the events according to the formula: replay_speed == stored_speed replay-speed */ So 90 100 TO replay-speed plays a MIDI-file 10% slower than its maker intended.
reprogram                                                             MANX
( u -- )
Switch to synthesizer patch u . The GM standard defines the possible u-values. MANX allows symbolic names to be used, like Acoustic-Grand-Piano or Orchestral-Harp .
rest                                                                  MANX
( -- )
A rest. A rest has a length, but makes no sound (it is mute).
reverb                                                                MANX
( u -- )
Set the reverberation effect for the current channel to u. See midirw.frt
sostenuto                                                             MANX
( bool -- )
When TRUE , switch on the MIDI sostenuto effect for the current channel. See midirw.frt
sustain                                                               MANX
( bool -- )
When TRUE , switch on the MIDI sustain effect for the current channel. See midirw.frt
synth?                                                                MANX
( -- bool )
Set to TRUE when the piece of sound hardware you actually have available is a General MIDI synthesizer with a full set of percussion instruments. Every sound output is channelled to this device.
tie-                                                                  MANX
( -- )
Ties a note. Example: /4 tie- a2 ... -tie a2 A tied note is kept in its sustain phase (if the instrument is able to do this) until -tie for the same note is encountered. This word can be used just before, or inside a chord:
		tie- { a2 f2 g3 } 
or {ARP tie- a2 f2 g3 }
or { a2 f2 tie- g3 }

When used before a chord, tie- is applied to all elements of the chord. Used inside a chord, tie- applies to all notes following in the input stream, until } -tie or -tie- is encountered. Outside a chord tie- only works on the immediately following note.
See also: -tie -tie-
transpose                                                             MANX	
( n -- ) | ( -- n )
Shift all instruments (except percussion) up or down over n semitones. This value can be modified by the user.
tremolo                                                               MANX
( bool -- )
When TRUE , switch on the MIDI tremolo effect for the current channel. See midirw.frt
See also: tremotime (not available)
tvf-cutoff                                                            MANX
( n -- )
Set the relative filter cutoff frequency on the current channel. Allowable range: 0 .. 100 See midirw.frt
tvf-resonance                                                         MANX
( n -- )
Set the relative amount of filter peaking on the current channel. Allowable range: 0 .. 100 See midirw.frt
vibrato-delay                                                         MANX
( n -- )
Set the relative vibrato delay on the current channel. Allowable range: 0 .. 100 See midirw.frt
vibrato-depth                                                         MANX
( n -- )
Set the relative vibrato depth on the current channel. Allowable range: 0 .. 100 See midirw.frt
vibrato-rate                                                          MANX
( n -- )
Set the relative vibrato rate on the current channel. Allowable range: 0 .. 100 See midirw.frt
{                                                                     IMM						MANX
( -- )
Groups a number of notes, delimited by } , into a chord (or arpeggio). The notes in a chord (arpeggio) are executed in parallel instead of sequentially.
See also: {ARP CHORD ARPEGGIO
{ARP                                                                  IMM						MANX
( -- )
Groups a number of notes, delimited by } , into an arpeggio (or chord). The notes in the arpeggio (chord) are executed in parallel instead of sequentially.
See also: { CHORD ARPEGGIO
{{                                                                    MANX
( -- )
Starts the first part of a parallel construct. For example, if one voice plays /4 d1 g1 and the other one /8 rest d2 rest g2 , then we say:
	{{ /4 d1 g1  &  /8 rest d2 rest g2 }} 

Note: This construct can not be nested.
See also: & }}
|                   "bar"                                             IMM					MANX
( -- )
Usage: | ... Stops execution of the previous bar (if any) and initiates compilation of the next bar. Compiles a call to a synchronisation routine (see "|" ). Each bar is a :NONAME definition whose execution token is stored at index n (0.../bars-1) in a static array. instrument_name PART sets up the pointer to the start address of this array (during compilation AND execution). It is possible to duplicate a number of bars using n DUPLICATES or DUPLICATE . In this case the execution tokens of the last bar are used to fill the "gap" :
	 | c1 e1 g1   ( 1)
| duplicate
| g1 e1 c1 ( 2)
| 3 duplicates
| b1 a1 c1 ( 3)
||

Plays bar 1 twice, bar 2 4 times and bar 3 once. Also the words L: ( label), REDO .. and BIS are possible:
	L: intro
| c2 e2 g2
| intro redo
...
L: bar2
...
L: bar8
...
| b2 a2 c2
| bar2 .. bar8 bis
| intro redo
||


See also: "|" L: DUPLICATES DUPLICATE REDO .. BIS
||                  "end"                                             IMM					MANX
( -- )
Appends the xt of a silencer to the current array of execution tokens. This will stop the instrument interpreter and return control to the Forth outer interpreter.
}}                                                                    MANX
( -- )
Delimits a parallel construct. For example, if one voice plays /4 d1 g1 and the other one /8 rest d2 rest g2 , then we say:
	{{ /4 d1 g1  &  /8 rest d2 rest g2 }} 

Note: This construct can not be nested.
See also: & {{
-manx                                                                 MANX
( -- )
Marker for the words compiled from MANX.FRT. This file contains the top level music language words.
Valid HTML 3.0 free counter