Plays sound files and lists of notes.
PLAY filename (PLAY filename TRUE) (PLAY) PLAY [list]
PLAY causes the given sound file to be played. If PLAY is used with a word as input, Logo assumes a file name for a waveform file, with an extension of “.WAV”. Logo plays this file in the background, returning immediately. If the second input to PLAY is TRUE, Logo plays the file repeatedly. Stop playing a sound file by using (PLAY) with no inputs.
If the input is a list, Logo causes the computer’s synthesizer to play musical notes as specified by its input list. PLAY will accept lists as input that contain special musical commands, such as the note and octave to play, and the length of time to sound the note. The following elements can be included in a list that is input to PLAY.
Musical Notes: A B C D E F G P (for pause)
Note prefixes: An integer immediately preceding a note determines its duration. 1 is a whole note, 2 is a half note, 4 is a quarter note, 8 is an eighth note, etc.
Note suffixes: # following a note indicates it is a sharp note, b following a note indicates it is a flat note; . following a note extends its duration to 3/2 time when appended to the note. An integer between 0 and 6 sets the octave for the note.
Octaves: O followed by an integer between 0 and 6 sets the octave which is preset to 4. O# raises one octave, Ob lowers one octave.
Logo treats words that start with a number, followed by “E”, and end with a number, as numbers in scientific notation! Logo reads the value “8E5”, therefore, as 8 * 105. If you run into this problem, you will see error messages like “Invalid note: 80000”. In this case, you must use the “O” command to change the octave and omit the octave following the letter “E”. So, instead of using “8E5”, use “O# 8E Ob”, assuming that you are in octave 4.
Tempo: T followed by an integer sets the tempo in units of quarter notes per minute. T is preset to 120.
Note length: L followed by an integer sets the default note length if no duration is specified with the individual note. L is preset to 4 (for quarter notes).
Reset: R resets note length, octave, tempo, and staccato to their preset values. Changes in these values are preserved during multiple calls to PLAY unless they are changed again or reset to their preset values. Also, all playing of music is stopped.
MIDI Output channel: M followed by a value from 1 to 16 selects a MIDI output channel. Each channel is capable of playing chords using a specific instrument. Channel 10 is reserved for drums sounds, where every note is a specific drum sound.
Instruments: I followed by an instrument number selects a specific instrument for a channel.
Volume: V followed by a number between 0 and 127 sets the volume for the following notes or chords.
Staccato: S followed by a number between 0 and 99 sets the staccato effect for the following notes or chords. The higher the value is, the shorter the note is played. S0 is perfect legato. The value is preset to 10.
Chords: A list within the PLAY list is treated as a chord. The highest values for intervals and length specifiers are used. PLAY [C [C E G O# C] Ob E] will play a C, a chord ending with a high C and an E.
The plus (+) sign: Causes all following notes to be played as long as possible until a pause is found or the list ends.
Standard MIDI Instrument Assignments
The standard MIDI instrument assignments are based on the MIDI Manufacturers Association (MMA) General MIDI Mode specification. Following are the standard MIDI assignments.
Piano, Chromatic Percussion, Organ
0 Acoustic grand piano
16 Hammond organ
1 Bright acoustic piano
17 Percussive organ
2 Electric grand piano
10 Music box
18 Rock organ
3 Honky-tonk piano
19 Church organ
4 Rhodes piano
20 Reed organ
5 Chorused piano
14 Tubular bells
23 Tango accordion
Guitar, Bass, Strings
24 Acoustic guitar (nylon)
32 Acoustic bass
25 Acoustic guitar (steel)
33 Electric bass (finger)
26 Electric guitar (jazz)
34 Electric bass (pick)
27 Electric guitar (clean)
35 Fretless bass
28 Electric guitar (muted)
36 Slap bass 1
44 Tremolo strings
29 Overdriven guitar
37 Slap bass 2
45 Pizzicato strings
30 Distortion guitar
38 Synth bass 1
46 Orchestral harp
31 Guitar harmonics
39 Synth bass 2
Ensemble, Brass, Reed
48 String ensemble 1
64 Soprano sax
49 String ensemble 2
65 Alto sax
50 Synth. strings 1
66 Tenor sax
51 Synth. strings 2
59 Muted trumpet
67 Baritone sax
52 Choir Aahs
60 French horn
53 Voice Oohs
61 Brass section
69 English horn
54 Synth voice
62 Synth. brass 1
55 Orchestra hit
63 Synth. brass 2
Pipe, Synth Lead, Synth Pad
80 Lead 1 (square)
88 Pad 1 (new age)
81 Lead 2 (sawtooth)
89 Pad 2 (warm)
82 Lead 3 (calliope lead)
90 Pad 3 (polysynth)
75 Pan flute
83 Lead 4 (chiff lead)
91 Pad 4 (choir)
76 Bottle blow
84 Lead 5 (charang)
92 Pad 5 (bowed)
85 Lead 6 (voice)
93 Pad 6 (metallic)
86 Lead 7 (fifths)
94 Pad 7 (halo)
87 Lead 8 (brass + lead)
95 Pad 8 (sweep)
|120 Guitar fret noise|
|121 Breath noise|
|123 Bird tweet|
|124 Telephone ring|
General MIDI Percussion Key Map
The standard MIDI drum effect assignments are based on the MIDI Manufacturers Association (MMA) General MIDI Mode specification. Following are the standard MIDI assignments. They can be used as note values on channel 10. The command PLAY [M10 N55] would cause the Splash Cymbal to sound.
|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 Hi-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 Hi Bongo||61 Low Bongo|
|62 Mute Hi Conga||63 Open Hi Conga||64 Low Conga|
|65 High Timbale||66 Low Timbale||67 High Agogo|
|68 Low Agogo||69 Cabasa||70 Maracas|
|71 Short Whistle||72 Long Whistle||73 Short Guiro|
|74 Long Guiro||75 Claves||76 Hi Wood Block|
|77 Low Wood Block||78 Mute Cuica||79 Open Cuica|
|80 Mute Triangle||81 Open Triangle|
PLAY [O4 C E G O5 [C E G O6 C]] PLAY “BIRD1