3.9 version

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

3.9 version

Post by Mr. Kibernetik »

This release will be dedicated to playing musical notes.
Information below is subject to change during development.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New commands will be added:

NOTES LOAD f$
loads musical composition in *.MID format from file [f$].

NOTES PLAY
starts/resumes playing of musical composition, loaded with NOTES LOAD or NOTES SET command.

NOTES STOP
stops playing of musical composition.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New command will be added:

NOTES INSTRUMENTS f$
sets bank of instruments in Soundfont2 or DLS format from file [f$].
NOTES INSTRUMENTS DEFAULT
sets default bank of instruments.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New function will be added:

NOTES_TIME ()
returns current playback time.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New function will be added:

NOTES_LENGTH ()
returns length of musical composition.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

Default musical instruments
Piano:
0 Acoustic Grand Piano
1 Bright Acoustic Piano
2 Electric Grand Piano
3 Honky-tonk Piano
4 Electric Piano 1
5 Electric Piano 2
6 Harpsichord
7 Clavinet

Chromatic Percussion:
8 Celesta
9 Glockenspiel
10 Music Box
11 Vibraphone
12 Marimba
13 Xylophone
14 Tubular Bells
15 Dulcimer

Organ:
16 Drawbar Organ
17 Percussive Organ
18 Rock Organ
19 Church Organ
20 Reed Organ
21 Accordion
22 Harmonica
23 Tango Accordion

Guitar:
24 Acoustic Guitar (nylon)
25 Acoustic Guitar (steel)
26 Electric Guitar (jazz)
27 Electric Guitar (clean)
28 Electric Guitar (muted)
29 Overdriven Guitar
30 Distortion Guitar
31 Guitar harmonics

Bass:
32 Acoustic Bass
33 Electric Bass (finger)
34 Electric Bass (pick)
35 Fretless Bass
36 Slap Bass 1
37 Slap Bass 2
38 Synth Bass 1
39 Synth Bass 2

Strings 1:
40 Violin
41 Viola
42 Cello
43 Contrabass
44 Tremolo Strings
45 Pizzicato Strings
46 Orchestral Harp
47 Timpani

Strings 2:
48 String Ensemble 1
49 String Ensemble 2
50 Synth Strings 1
51 Synth Strings 2
52 Choir Aahs
53 Voice Oohs
54 Synth Voice
55 Orchestra Hit

Brass:
56 Trumpet
57 Trombone
58 Tuba
59 Muted Trumpet
60 French Horn
61 Brass Section
62 Synth Brass 1
63 Synth Brass 2

Reed:
64 Soprano Sax
65 Alto Sax
66 Tenor Sax
67 Baritone Sax
68 Oboe
69 English Horn
70 Bassoon
71 Clarinet

Pipe:
72 Piccolo
73 Flute
74 Recorder
75 Pan Flute
76 Blown Bottle
77 Shakuhachi
78 Whistle
79 Ocarina

Synth Lead:
80 Lead 1 (square)
81 Lead 2 (sawtooth)
82 Lead 3 (calliope)
83 Lead 4 (chiff)
84 Lead 5 (charang)
85 Lead 6 (voice)
86 Lead 7 (fifths)
87 Lead 8 (bass + lead)

Synth Pad:
88 Pad 1 (new age)
89 Pad 2 (warm)
90 Pad 3 (polysynth)
91 Pad 4 (choir)
92 Pad 5 (bowed)
93 Pad 6 (metallic)
94 Pad 7 (halo)
95 Pad 8 (sweep)

Synth Effects:
96 FX 1 (rain)
97 FX 2 (soundtrack)
98 FX 3 (crystal)
99 FX 4 (atmosphere)
100 FX 5 (brightness)
101 FX 6 (goblins)
102 FX 7 (echoes)
103 FX 8 (sci-fi)

Ethnic:
104 Sitar
105 Banjo
106 Shamisen
107 Koto
108 Kalimba
109 Bag pipe
110 Fiddle
111 Shanai

Percussive:
112 Tinkle Bell
113 Agogo
114 Steel Drums
115 Woodblock
116 Taiko Drum
117 Melodic Tom
118 Synth Drum

Sound effects:
119 Reverse Cymbal
120 Guitar Fret Noise
121 Breath Noise
122 Seashore
123 Bird Tweet
124 Telephone Ring
125 Helicopter
126 Applause
127 Gunshot

Notes for percussions (track №9)
27 High Q
28 Whip
29 Scratch Push
30 Low Bongo
31 Stick Click
32 Square Click
33 Metronome Click
34 Metronome Bell
35 Bass Drum
36 Kick Drum
37 Snare Cross Stick
38 Snare Drum
39 Hand Clap
40 Electric Snare Drum
41 Floor Tom 2
42 Hi-Hat Closed
43 Floor Tom 1
44 Hi-Hat Foot
45 Low Tom
46 Hi-Hat Open
47 Low-Mid Tom
48 High-Mid Tom
49 Crash Cymbal
50 High Tom
51 Ride Cymbal
52 China 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 Conga Dead Stroke
63 Conga
64 Tumba
65 High Timbale
66 Low Timbale
67 High Agogo
68 Low Agogo
69 Cabasa
70 Maracas
71 Whistle Short
72 Whistle Long
73 Guiro Short
74 Guiro Long
75 Claves
76 High Woodblock
77 Low Woodblock
78 Cuica High
79 Cuica Low
80 Triangle Mute
81 Triangle Open
82 Shaker
83 Sleigh Bell
84 Bell Tree
85 Castanets
86 Surdu Dead Stroke
87 Surdu

Note numbers
12-C0 24-C1 36-C2 48-C3 60-C4 72-C5 84-C6 96-C7 108-C8
13-C#0 25-C#1 37-C#2 49-C#3 61-C#4 73-C#5 85-C#6 97-C#7 109-C#8
14-D0 26-D1 38-D2 50-D3 62-D4 74-D5 86-D6 98-D7 110-D8
15-D#0 27-D#1 39-D#2 51-D#3 63-D#4 75-D#5 87-D#6 99-D#7 111-D#8
16-E0 28-E1 40-E2 52-E3 64-E4 76-E5 88-E6 100-E7 112-E8
17-F0 29-F1 41-F2 53-F3 65-F4 77-F5 89-F6 101-F7 113-F8
18-F#0 30-F#1 42-F#2 54-F#3 66-F#4 78-F#5 90-F#6 102-F#7 114-F#8
19-G0 31-G1 43-G2 55-G3 67-G4 79-G5 91-G6 103-G7 115-G8
20-G#0 32-G#1 44-G#2 56-G#3 68-G#4 80-G#5 92-G#6 104-G#7 116-G#8
21-A0 33-A1 45-A2 57-A3 69-A4 81-A5 93-A6 105-A7 117-A8
22-A#0 34-A#1 46-A#2 58-A#3 70-A#4 82-A#5 94-A#6 106-A#7 118-A#8
23-B0 35-B1 47-B2 59-B3 71-B4 83-B5 95-B6 107-B7 119-B8

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

Playing musical notes can be done (a) in real time or (b) from loaded musical composition:
(a) Playing notes in real time is performed with NOTES MIDI command. So, your device can be used as a MIDI synthesizer. Description of MIDI commands is out of scope of this manual.
(b) Playing notes from loaded musical composition can be done in several steps:
* loading musical composition from file with NOTES LOAD command or from musical notation with NOTES SET command.
* start/stop playing of musical composition with NOTES PLAY/NOTES STOP commands. Musical playing does not block program execution and is performed in background while program is running.
* after finishing musical composition, playing is not stopped automatically. To detect end of playing NOTES_TIME() and NOTES_LENGTH() functions are used.

Total 16 musical tracks are available for playing notes. According to MIDI standard, 10-th track is used for percussions only.

Default musical instruments can be used (see "Instruments" section) or they can be loaded from files in Soundfont2 or DLS formats with NOTES INSTRUMENTS command.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New commands will be added:

NOTES MIDI t, cmd,a,b
sends MIDI command to device, where [t] - track number (0..15), [cmd] - MIDI command, [a], - command parameters (description of MIDI commands is out of scope of this manual). For example, commands:
NOTES MIDI 3,12,19
NOTES MIDI 3,9,60,127
set instrument number 19 for track 3 and start playing C4 note with volume 127 on 3-rd track.

NOTES SET a$,b$,...
sets musical composition from musical notation. Each specified string value [a$], [b$], ... is a separate musical track, written in musical notation according to the rules:
* letters "C", "D", "E", "F", "G", "A", "B" are notes "do", "re", "mi", "fa", "sol", "la", "si"
* letter "R" is a rest
* characters "#" and "$" make sharp and flat notes: C#, D$
* octave is a number after note: E3, D#5
* letters "W", "H", "Q", "I", "S", "T" are duration of following notes, where "W"=whole, "H"=half, "Q"=quarter, "I"=eighth, "S"=sixteenth, "T"=thirty second: HC#
* character "." means that next note is one and a half times longer: Q.C
* letter "V" with integer number (0..127) set volume of following notes: V60C#
* character ":" preceding with integer number set musical instrument number: 123:C
* musical instrument bank number (if present in bank of instruments) can be specified before instrument number, separated with character "/": 2/12:E
* chord is set with notes in round brackets: (EGB)
* octave number, note duration, volume, instrument number are not necessary to specify for each and every note - they affect all following notes until the value is changed
* all other characters in musical notation are just ignored and can be used for notation convenience
Up to 16 musical tracks can be used. Track number 10 is for percussion instruments. In percussions each note means separate instrument. List of instruments is given in "Instruments" section.
By default, 4-th octave, one fourth note duration, volume 127, instrument number 0 are used.
Examples:
NOTES SET "c c# d d# e f f# g g# a a# b"
NOTES SET "12:c5cggaahg qffeeddhc"
NOTES SET "(egb)ccc (fac5)d4dd","19:we2 f"
NOTES SET ,,,,,,,,,"c2cc icqc icqc c"

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New command will be added:

NOTES TEMPO n
sets tempo to [n] for already loaded musical composition or for newly created with command NOTES SET musical compositions. Default tempo is 120.

User avatar
Mr. Kibernetik
Site Admin
Posts: 4786
Joined: Mon Nov 19, 2012 10:16 pm
My devices: iPhone, iPad, MacBook
Location: Russia
Flag: Russia

Re: 3.9 version

Post by Mr. Kibernetik »

New command will be added:

NOTES SAVE f$
saves musical composition to *.MID file [f$].

Post Reply