Subversion Repositories DIN Is Noise

Rev

Rev 1 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 - 1
set common {
2
  {Press Backspace to clear console}
3
  {Press Backquote to fold/unfold console}
4
  {Press F1 for complete help}
5
  {Press TAB to enter or leave command mode}
6
}
7
 
8
set keyboard_keyboard {
9
  {Press 1 to play the microtonal-keyboard}
10
  {Press any key below to play a note}
11
  {Press more than one key to play chords}
12
  {Move mouse away from dotted line to bend pitch}
13
  {Green keys are key notes}
14
  {Green key to Green key is an octave of the scale.}
15
  {Press z to shift down an octave}
16
  {Press x to shift up an octave}
17
  {Click on Delay to toggle stereo Delay}
18
  {Play with Parameters!}
19
  {Click once and move mouse to move sliders!}
20
  {Press 2 to edit waveform of the notes}
21
  {Press 3 to edit attack of the notes}
22
  {Press 4 to edit decay of the notes}
23
  {You will see dotted crosses when MIDI is available}
24
  {Press white notes, see white boxes; press black notes, see black boxes}
25
  {Size of the boxes proportional to MIDI velocity}
26
  {Press 5 to edit MIDI velocity}
27
  {Press 6 to edit DIN's delay lines}
28
  {Press 7 to edit octave shift}
29
  {Press 8 to edit morse code patterns}
30
}
31
 
32
set single_insert {
33
  {Press i to insert a vertex}
34
}
35
 
36
set undo_redo {
37
  {Press z to undo}
38
  {Press LSHIFT & z to redo}
39
}
40
 
41
set library {
42
  {Press 9 to assign previous curve from library}
43
  {Press 0 to assign next curve from library}
44
}
45
 
46
set curve_editor {
47
  {Press w a s d keys to pan}
48
  {Press q e to zoom}
49
  {Press f on a vertex and move mouse to move vertex}
50
  {Press f again to stop moving vertex}
51
  {Press x to snap in x}
52
  {Press y to snap in y}
53
  {Press b to snap in both x & y}
54
  {Press n to move freely}
55
  {Press v on a vertex to delete}
56
}
57
 
58
set quit_editor {
59
  {Press Escape to quit editor}
60
}
61
 
62
set keyboard_keyboard_waveform {
63
  {A cycle of waveform shown here}
64
  {Edit waveform to change the timbre of the notes}
65
}
66
 
67
set attack {
68
  {Attack curve shown here}
69
  {Edit attack curve to change the attack of the notes}
70
  {Sustain is part of the attack curve}
71
  {Click on the blue triangle and move mouse to set sustain}
72
}
73
 
74
set decay {
75
  {Decay curve shown here}
76
  {Edit this curve to change how the notes decay}
77
}
78
 
79
set velocity {
80
  {MIDI velocity curve shown here}
81
  {Edit this curve to determine the note volume at a given velocity}
82
}
83
 
84
set double_insert {
85
  {To insert vertex, press i to pick curve, then i again to insert}
86
}
87
 
88
set delay {
89
  {Delay is stereo, 1 for L and 1 for R}
90
  {feedback and volume curves are shown}
91
  {One curve for every channel ie 2 feedback & 2 volume curves}
92
  {feedback-L is cyan & feedback-R is yellow}
93
  {volume-L is red & volume-R is green}
94
  {To move the entire curve, LSHIFT + f on left most vertex}
95
  {Move feedback curve beyond max (or -max) to overdrive delay!}
96
  {Use set-delay command to set the duration of a delay line}
97
  {eg., set-delay left 5000 sets left channel delay to 5 seconds}
98
  {eg., set-delay right 10000 sets right channel delay to 10 seconds}
99
  {eg., set-delay all 1000 sets left & right channel delay to 1 second}
100
  {delay time is in milliseconds for fine control}
101
}
102
 
103
set octave_shift {
104
  {Octave shift curve shown here}
105
  {Edit curve to determine how the key note shifts an octave}
106
  {But, you dont have to shift octaves! Can shift to any microtone/interval!}
107
  {Use set-bpm command to control the speed of octave shift}
108
  {eg., set-bpm os 60 causes an octave shift in 1 second}
109
}
110
 
111
set gater {
112
  {Gater curve shown here}
113
  {Applied on lead voice to make it beat}
114
  {Edit the curve to change the shape of the beat}
115
  {Use set-bpm command to change BPM}
116
  {eg., set-bpm gr 30 beats the lead voice 30 times a minute}
117
  {Use set-style command to alter beat progression}
118
  {eg., set-style gr pong reverses beat shape at the end of the beat}
119
}
120
 
121
set modulation {
122
  {ampltitude (magenta) and frequency (cyan) modulation curves shown here}
123
  {carrier is the lead voice. modulators are the AM and FM curves}
124
  {x is beat. y is modulation depth}
125
  {Use the set-bpm command to set modulation rate}
126
  {eg., set-bpm fm 240 sets frequency modulation rate to 240 BPM}
127
  {eg., set-bpm am 30 sets ampltitude modulation rate to 30 BPM}
128
  {Use the set-var command to set FM depth and AM depth}
129
  {eg., set-var fm_depth 100 sets FM depth to 100 Hz}
130
  {eg., set-var am_depth 0.1 sets AM depth to 0.1 of max volume}
131
}
132
 
133
set drone_modulation {
134
  {frequency (cyan) and ampltitude (magenta) modulation curves for drones shown here}
135
  {They affect how the modulating drones move in frequency (x) & amplitude (y) axes}
136
  {Press o to overlay the current instrument on the editor}
137
}
138
 
139
set microtonal_keyboard {
140
  {Press 1 to play the keyboard-keyboard}
141
  {x is pitch. y is volume}
142
  {Click on Voice to toggle lead voice}
143
  {Click on Delay to toggle stereo delay}
144
  {Move mouse into the playing area to play the instrument!}
145
  {Glissando, Vibrato & Tremolo are all easy & accurate!}
146
  {Press a and d to scroll left and right}
147
  {Press w and s to scroll up and down}
148
  {Press z to shift down an octave}
149
  {Press x to shift up an octave}
150
  {Press f to start recording a phrase}
151
  {Press v to stop recording and play immediately!}
152
  {Press g to clear previously recorded phrases}
153
  {Press <- and -> to scratch the phrase, [ and ] to adjust jog}
154
  {Press q to create a drone}
155
  {Keep pressing q and move mouse to spray drones!}
156
  {Click and drag to select a bunch of drones}
157
  {Press e and move mouse to move selected drones}
158
  {Press c to destroy selected drones. Watch out! No undo :)}
159
  {Press 9 and 0 to change size of drones}
160
  {Press r and t to modulate the volume of the drones}
161
  {Press y and u to modulate the pitch of the drones}
162
  {Press F7 and F8 to change speed of drone pitch modulation}
163
  {Press F9 and F10 to change speed of drone volume modulation}
164
  {Press - and + to let modulating drones leave a trail}
165
  {Press b or click on Gater button to toggle Gater}
166
  {Gater causes the lead voice to beat}
167
  {Press j to switch modulation target between voice & drones}
168
  {Press i to toggle the pitch & volume information display}
169
  {Use notation command to change to western notation}
170
  {eg., notation western}
171
  {Use key command to change key of the scale}
172
  {eg., key C sets key to middle-C}
173
  {key Bb -1 sets key to Bb nearest to middle-C}
174
  {Use list-scale command to list available scales}
175
  {Use load-scale command to load an available scale}
176
  {eg., load-scale minor5 loads the minor pentatonic scale}
177
  {Press 2 to edit lead voice waveform}
178
  {Press 3 to edit shape of drone modulation in pitch (x) & volume (y) axes}
179
  {Press 4 to edit lead voice modulation curves}
180
  {Press 5 to edit the shape of the beat}
181
  {Press 6 to edit delay feedback & volume curves}
182
  {Press 7 to edit octave shift progression}
183
  {Press 8 to edit drone waveform}
184
}
185
 
186
set microtonal_keyboard_waveform {
187
  {One cycle of waveform shown here}
188
  {Edit this waveform to change the timbre of lead voice}
189
}
190
 
191
set drone {
192
  {One cycle of Waveform shown here}
193
  {Edit the waveform to edit the timbre of all drones}
194
}
195
 
196
set morse_code {
197
  {Bezier curve patterns for dot, dash, inner, letter and word spacing shown here}
198
  {Use morse-code command to convert text to morse code}
199
  {eg., morse-code sos}
200
  {Paste the generated pattern into any curve on any curve editor!}
201
}
202
 
203
set compressor {
204
  {Compressor curve shown here}
205
  {Edit curve to determine how DIN massages output samples to stay between -1 and 1}
206
}
207
 
208
set ALL_TIPS(keyboard-keyboard) [concat $keyboard_keyboard $common]
209
set ALL_TIPS(keyboard-keyboard-waveform) [concat $keyboard_keyboard_waveform $curve_editor $single_insert $undo_redo $library $quit_editor]
210
set ALL_TIPS(attack) [concat $attack $curve_editor $single_insert $undo_redo $library $quit_editor]
211
set ALL_TIPS(decay) [concat $decay $curve_editor $single_insert $undo_redo $library $quit_editor]
212
set ALL_TIPS(velocity) [concat $velocity $curve_editor $single_insert $undo_redo $library $quit_editor]
213
set ALL_TIPS(delay) [concat $delay $curve_editor $double_insert $undo_redo $quit_editor]
214
set ALL_TIPS(octave-shift) [concat $octave_shift $curve_editor $single_insert $undo_redo $library $quit_editor]
215
set ALL_TIPS(microtonal-keyboard) [concat $microtonal_keyboard $common]
216
set ALL_TIPS(microtonal-keyboard-waveform) [concat $microtonal_keyboard_waveform $curve_editor $single_insert $undo_redo $library $quit_editor $common]
217
set ALL_TIPS(drone-modulation) [concat $drone_modulation $curve_editor $double_insert $undo_redo $quit_editor $common]
218
set ALL_TIPS(modulation) [concat $modulation $curve_editor $double_insert $undo_redo $quit_editor $common]
219
set ALL_TIPS(drone) [concat $drone $curve_editor $single_insert $undo_redo $library $quit_editor $common]
220
set ALL_TIPS(gater) [concat $gater $curve_editor $single_insert $undo_redo $library $quit_editor $common]
221
set ALL_TIPS(morse-code) [concat $morse_code $curve_editor $double_insert $undo_redo $quit_editor $common]
222
set ALL_TIPS(compressor) [concat $compressor $curve_editor $single_insert $undo_redo $quit_editor $common]
223
 
224
set TIPS {}
225
set NUM_TIPS 0
226
set SECTION {}
227
 
228
proc get-tip {section} {
229
 
230
  global ALL_TIPS
231
  global TIPS NUM_TIPS TIP_ID
232
  global SECTION
233
 
234
  if {$section ne $SECTION} {
235
    set SECTION $section
236
    if {[catch {set TIPS $ALL_TIPS($section)}]} { set TIPS {}}
237
    if {[catch {set tip_id $TIP_ID($section)}]} { set tip_id 0}
238
    set NUM_TIPS [llength $TIPS]
239
  } else {
240
    if {[catch {set tip_id $TIP_ID($section)}]} { set tip_id 0}
241
  }
242
 
243
  set tip [lindex $TIPS $tip_id]
244
  incr tip_id
245
  if {$tip_id >= $NUM_TIPS} {set tip_id 0}
246
  set TIP_ID($section) $tip_id
247
  return $tip
248
 
249
}
250