File: CHANGELOG

package info (click to toggle)
din 5.2.1-5
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,180 kB
  • ctags: 2,511
  • sloc: cpp: 9,369; sh: 6,563; ansic: 2,977; tcl: 1,770; makefile: 283
file content (806 lines) | stat: -rw-r--r-- 44,871 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
March 20, 2013:
!!! din-5.2.1 !!!
FIX drawing tips twice! :(
March 20, 2013:
!!! din-5.2 !!!
NEW tips display that shows tips for each instrument/editor
FIX unfold console when user presses F1 to display detailed help
FIX when user presses b, dont state change when gater state is already changing
FIX text/value field precision set to 1/100 - thats enough isnt it? :)
FIX changed feedback and volume curves for better sound delay

March 14, 2013:
!!! din-5.1 !!!
NEW folding corrections made on proprietary portable release back into Free release
March 6, 2013:
!!! din-5.0 !!!
!!! factory reset required for upgrade from *any* version:
    see http://dinisnoise.org/faq/#factory !!!
NEW merged CHANGELOG from unreleased din-4.3.
NEW Author's Note with a request for donation.
NEW draw baseline of oscilloscope to help picking & moving easier
FIX save & load curve editor assignments
FIX left click + mouse-move (not drag!) on parameters to move parameters
    dialog on keyboard-keyboard.
FIX Toggling while fade-in/out happens in Voice, Gater, Delay buttons.
FIX Press ESC to leave command mode
FIX remember parameter slider positions on keyboard-keyboard
FIX fade out on quit
FIX remove finished notes in the background on keyboard-keyboard
FIX INTERNAL rollup code in console
FIX INTERNAL removed get-curve-editor command
FIX INTERNAL correct init of vars in keyboard-keyboard class
FIX INTERNAL correct init of widget::focus
FIX INETERNAL correct init of on_color & off_color in checkbutton class

October 1, 2012:
!!! wip din-4.3 !!!

NEW filled_button - a button that is filled with some color (part of
    GUI library) - used on parameter sliders (see below)
NEW created parameters dialog for keyboard-keyboard. visually edit
    attack time, decay time, pitch bend & note volume!

    to operate slider, left-click on the slider and mouse-move to
    change value
NEW right-click on parameters titlebar and mouse-move to move the dialog.
    right-click again to drop!
NEW min/max dialog for editing parameter limits.
    click on the filled button at the left of a parameter slider to
    show/hide min/max dialog
NEW set-var commands for din variables attack_time, decay_time,
    pitch_bend and note_volume also updates the GUI.
    eg., set-var attack_time 0.15 ;# updates attack_time slider
         set-var decay_time 5 ;# updates decay_time slider
         set-var pitch_bend 50 ;# updates the pitch_bend slider
NEW on exit, din waits until all launched keyboard-keyboard notes have faded out
NEW tweaked parameters of keyboard-keyboard and gave better defaults.
BUG resize screen and parameters dialog may disappear; workaround:
    resize to last good size.
FIX click or ALT+F4 on window close button doesnt quit din. must quit
    thru ESC, ESC again.

September 25, 2012:
!!! din-4.2.1
!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
FIX phrasor continues playing on microtonal-keyboard when instrument is keyboard-keyboard
September 21, 2012:
  !!! din-4.2
  !!! factory reset required for upgrade from *any* version:
      see http://dinisnoise.org/faq/#factory !!!
  NEW voice, gater & delay fade in/out at start, during operation & at exit.
  NEW auto-fold the console during verbose parameter change (FM/AM depth/bpm etc)
  *** tweaked the compressor & delay feedback/volume curves for better defaults
September 18, 2012:
  !!! din 4.1 !!!
  !!! factory reset required for upgrade from *any* version:
      see http://dinisnoise.org/faq/#factory !!!
  NEW Compressor checkbox on microtonal-keyboard & keyboard-keyboard
  NEW show names of donors to the DIN is Noise project on the ticker

September 2, 2012:
  !!! wip: 4.1 !!!
  FIX font definition with y > 0 for correct positioning of ui elements like buttons, checkboxes etc.
  FIX pushed the ticker down to the bottom
  FIX start resolution is 800 x 600 instead of 640 x 480. done in 4.0, forgot to note in CHANGELOG
August 31, 2012:
  !!! din-4.0 !!!
  NEW Donate button and a ticker message - sorry folks, lost my patronage and my situation is dire :(
  FIX click and release on button triggers click on the button instead of just click
August 30, 2012:
  !!! wip: din-4.0 !!!
  NEW drones fade in and out on din load/exit!
  NEW drones fade in on creation!
  NEW drones fade out on delete!
  NEW visually move the sustain on attack editor on keyboard-keyboard
  NEW sustain saved with attack curve library
  FIX proper onion skin toggling on all editors
August 8, 2012:
  !!! wip: din-4.0 !!!
  FIX notes that were bent stay bent when new note is launched
  NEW save/reload mouse position on keyboard-keyboard for better mouse based pitch bending
  NEW save/reload of number of trail points & handle size of all drones
May 14, 2012:
  !!! wip: din-3.6 |||
  FIX data files stored in /usr/local/share/din instead of /usr/local/var/din
  NEW change the trail size of each drone (+ and -), selected drones or all drones
  NEW change size of a drone (9 & 0), selected drones or all drones
May 08, 2012:
  !!! din-3.5 !!!
  +++ save/load variable delta_bpm
  *** INTERNAL: moved SAMPLE_DURATION calculation to audio_out::set_sample_rate
  *** INTERNAL: revised console.h/.cc
  *** INTERNAL/FIX?: moved console text color constants to main.cc
  FIX MIDI connnected to MIDI connected in audio.cc - thanks Ian Morrison
  NEW drone trails! press + and - on microtonal-keyboard to increase & decrease trail length
  NEW drone handle size - press 9, 0 on microtonal-keyboard
  NEW press o on curve editor to overlay din microtonal-keyboard or keyboard-keyboard on the curve editor
        useful for editing drone modulation curves and watching the drone modulation shapes change
  FIX memory leak on keyboard-keyboard when fully decayed notes are removed
  NEW mouse driven pitch bend on keyboard-keyboard! move mouse either side
      of dotted vertical line to pitch bend.  pitch bend applies to
      all notes. to zero pitch bend bring mouse back to the dotted
      line.  change pitch bend amount from command mode:
          set-var pitch_bend 100 ;# upto 100 hz
          sv pb 100 ;# short form

      mouse driven pitch bend overrides MIDI driven pitch bend. use one or the other :)

  NEW variable trail_length for drone trail lengths:
        set-var trail_length 10 ;# trail has 10 points
        sv tl 10 ;# short form

      can also be set from the ui as listed above
  NEW din.desktop and din.png files to help packagers (look in ~/.din/data)

April 17, 2012:
  !!!!  din-3.0 !!!!
  !!!!  factory reset required for upgrade from *any* version: see
        http://dinisnoise.org/faq/#factory !!!!
        +++ visual drone modulation +++
          +++ j - toggle modulation target: voice or drones
          +++ y, u - decrease/increase FM depth of selected drones or all drones
                     or the lead voice when there are no drones.
          +++ r, t - decrease/increase AM depth of selected drones or all drones
                     or the lead voice when there are no drones.
          +++ F7, F8 -  decrease/increase FM bpm of selected drones or all drones
                        or the lead voice when there are no drones.
          +++ F9, F10 - decrease/increase FM bpm of selected drones or all drones
                        or the lead voice when there are no drones.
          +++ press 3 on microtonal-keyboard to edit the drone modulation curves
              pink for AM
              cyan for FM
          +++ automagically save and load modulation on drones
        +++ k - toggle drone anchor drawing
        +++ smoother increase / decrease of drone master volume

March 4, 2012:
  !!!!  din-2.0 !!!!
  !!!!  factory reset required for upgrade from *any* version: see
        http://dinisnoise.org/faq/#factory !!!!
  +++:  quantise bezier curve pattern generated by morse-code
        command to n beats:

          morse-code sos ;# quantise to 1 beat (default)
          morse-code sos 2.5 ;# quantise to 2 and half beats
          mc sos 3 ;# short form; quantise to 3 beats

          ;# the bezier curve pattern is on copy curve
          ;# just paste (LCTRL + v) on any curve in any curve editor
  +++:  detect when a MIDI device connects or disconnects with din
  +++:  press keys on the MIDI keyboard and launch notes. support from
        C-1 (MIDI note on # = 0) to G9 (MIDI note on # = 127).
  +++:  support for retuning intervals, velocity curves and pitch
        bending.
  fix:  fixed decay failure when note volume at start of decay is -ve

February 11, 2012:
  !!!!  din-1.9.5 !!!!
  !!!!  factory reset required for upgrade from *any* version: see
        http://dinisnoise.org/faq/#factory !!!!
  fix:  shoot of volume when sustain is larger than x value of last vertex on attack
        curve!
  +++:  add new variable auto_connect_outputs to control if din will
        auto connect its output to system audio outputs.  yes by default.

          set-var auto_connect_outputs 1 ;# auto connects next time din starts
          sv aco 0 ;# short form; disables auto connect
  ***:  reworked (yet again) the result handling of Tcl interpreter

January 15, 2012:
  !!!! din-1.9.4 !!!!
  ***: changed curve-value command to retain existing x or y values of a vertex or tangent position.
  ***: rewrote the result handling of Tcl interpreter
December 22, 2011:
  !!!! din-1.9.3 !!!!
  !!!!  factory reset required for upgrade from *any* version: see
        http://dinisnoise.org/faq/#factory !!!!
  +++:  new changer patch to automagically change the key of din every
        n seconds
  fix:  fixed Bus Error / Segmentation fault due to bad result clearing
        in the  Tcl interpreter.
December 08, 2011
  !!!!  din-1.9.2 !!!!
  !!!!  factory reset required for upgrade from *any* version: see
        http://dinisnoise.org/faq/#factory !!!!
  fix:  size of boxes in keyboard-keyboard is constant irrespective of
        note volume
  +++:  added new variable delta_time
          set-var delta_time 0.1 ;# 1/10 sec delta
        delta_time is used for changing attack and decay time thru their
        keyboard short cuts ie attack time & decay time change in
        delta_time steps.

November 27, 2011:
  !!!! din-1.9.1 !!!!
  !!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!!
  fix: version number on title bar matches version number of din.
  fix: immediately insert vertex when there is only one curve in a curve editor
  fix: immediately draw scratch curve when there is only one curve in a curve editor
  fix: doesnt enter command mode when ALT + TAB is pressed
  ***: changed name of din board to microtonal-keyboard
  +++: new keyboard short cuts for attack time & decay time on keyboard-keyboard
  +++: f11, f12 to change octave shift bpm on microtonal keyboard & keyboard-keyboard
  +++: SPACE to toggle delay on keyboard-keyboard
  ***: changed waveform of keyboard-keyboard from sine to the waveform on microtonal-keyboard.
  ***: LALT -> SPACE on sine composer to avoid clash with ALT + TAB
November 16, 2011:
  !!!! din-1.9 !!!!
  !!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!!
  fix: disabled exit Tcl command that quits & crashes din
  fix: disabled application of sine harmonic composer output to non waveforms (ie gater patterns, fm/am patterns etc)
  +++: added 33 new Bezier curve waveforms to the waveforms library
  +++: added display of Fast Fourier Transform (FFT) of Bezier curve waveforms
  +++: added display of samples for 2 cycles of a waveform at a particular pitch
  ***: labelled the octave shift patterns & added a new octave shift pattern (snap-4th)
  ***: can now toggle sine harmonic composer, fft and samples display (see curve_editor.hlp) on waveform editors
November 6, 2011:
  !!!! din-1.8.6 !!!!
  !!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!!
  fix: saved & restored note-volume
  +++: separate waveform (ie oscillator) for voice on din board & voices on keyboard-keyboard
  +++: added new waveforms to library. beziered pulse (with different duty cycles) & saw waveforms
  +++: added attack & decay patterns library
  +++: midi clock sync & midi start messages syncs bpm components
  ***: optimised solver (see solver.cc)
October 29, 2011:
  !!! din-1.8.5.0 !!!
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
  +++ keyboard-keyboard
    press a key to play a note
      keys of the computer keyboard mapped to notes of the scale over a
      range of 3 octaves
  *** reassigned curve editors for keyboard-keyboard
  !fix! bezier curve solver returns upper y when slope is infinity (returned lower y prior)
October 5, 2011:
  !!! din-1.8 !!!
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
  *** optimised visible range calculation when scrolling on din board
  +++ added shrutis.tuning -- divides the octave into 22 intervals
      based on the Indian classical music tradition.
        tuning set shruti ;# load shruti tuning
  +++ color coded text messages to the terminal.
  --- removed unlimited resonators due to complexity in editing & management;
      now there is only 1 oscillator ie waveform to voice the lead sound.
  --- removed channels response due to complexity in editing & management
      volume of waveform is determined by height of the mouse in playing area -
      @bottom volume is 0; @top volume is wave_volume (see variable wave_volume below)
  +++ added variable wave_volume to set waveform volume ie oscillator volume:
    set-var wave_volume 0 ;# mutes voice (also by pressing SPACE on din board)
    set-var wave_volume 1 ;# max volume - will be *very* loud
    set-var wave_volume 0.125 ;# default volume
    set-var wave_volume 2.8 ;# crazy volume accepted (ie not clipped)
    set-var wave_volume -1 ;# negative volume accepted but will invert waveform
  --- removed strength & channel editors due to removal of resonators & channels response concepts.
  *** changed curve editor assignments due to removal of above editors
      press F1 on din board to see new assignments
  --- removed stereo gaters due to complexity in editing & management.
      now there is just 1 gater (called gr) applied to L & R
  *** the lead voice is now mono
  *** the drones have always been mono
  *** the delays remain stereo
September 8, 2011:
  !!! din-1.7.3 !!!
  !fix! segfault due to undefined order of initialisation of global variables on some versions of g++.
August 23, 2011:
  !!! din-1.7.2 !!!
  *** revamped start-end patch to support multiple MIDI #CC assignments
    *** in command mode, type help start-end or read the file ~/.din/start-end.help.tcl for complete information.
August 19, 2011:
  !!! din-1.7.1 !!!
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
  +++ parameter limit labelling on all curve editors
  +++ beat/value marker with realtime update on all beat/value editors (gater, modulation & octave_shift)
  *** improved default octave shift pattern
  !fix! recompute visible ranges after resizing a range
August 17, 20011:
  !!! din-1.7 !!!
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
  *** din audio output range is 0.1 Hz to infinity Hz.
  +++ num-octaves command
    num-octaves 4 ;# span current scale to 4 octaves
    num-octaves 28 ;# span current scale to 28 octaves
    preserves  existing drones & range size mods
  +++ current octave labelling
  +++ cursor info mod (absolute volume printed at all times instead of 0 under playing area and 1 above playing area)
  +++ key note colored green on all octaves
  +++ save/reload drone phases

July 26, 2011:
  !!! din-1.6.6 !!!
  !!! factory reset required if upgrading: see http://dinisnoise.org/faq/#factory !!!
  !fix! more accurate selection of drones (inbox selection instead of radial selection)
  +++ new variable delta_bpm (or dbpm); gater bpm changes by delta_bpm for each f9/f10
    eg., set-var delta_bpm 5 ;# increases/decreases bpm by 5 beats for gaters, am, fm & octave shift modules
  +++ new variable drone_handle_size (or dhs)
    eg., set-var drone_handle_size 14 ;# default is 7; doubles the size of the drone handles
  *** f9/f10 - decreases/increases both gaters bpm at the same time.
    *** lshift + f9/f10 - decreases/increases left gater bpm ie gl
    *** lctrl + f9/f10 - decreases/increases right gater bpm ie gl
  *** improved handling of gater bpm change and fm/am depth change
July 20, 2011:
  !!! din-1.6.5 !!!
  !!! factory reset required if upgrading: see http://dinisnoise.org/faq/#factory !!!
  !fix! segmentation fault when opening window on ATI/Intel graphics cards
  *** sine -> waveform key shortcut changed to left_alt instead of right_control
July 3, 2011:
  !!! din-1.6.4 !!!
  --- removed dependency on SDL
  +++ optimised mouse, keyboard & OpenGL handling using Xlib. din is now an X11 application.
  *** restored drone master volume to default instead of 0 ie quiet
June 11, 2011:
  !!! din-1.6.3 !!!
  !!! factory reset required if upgrading: see http://dinisnoise.org/faq/#factory !!!
  *** optimised mouse capture
  --- removed FFT on waveform; no dependency on FFTWF library anymore
  *** faster startup (no FFT wisdom calculation) & performance (no FFT calculation waveform edit/change)
  !fix! clear drones when scale changes
May 28, 2011:
  !!! din-1.6.2 !!!
  !!! factory reset required if upgrading !!!
  *** silence drones when drones loaded to avoid shock volume change.
  *** fixed volume variable to go from 0 to 1 instead of 0 to 0.99xxx
  *** added interval check (clamps to 1 to 2) in tone ranges
  +++ 2600.patch.tcl : google insight banned words -> morse code -> music.
  --- removed superfluous feedback/volume setting from delay.cc/h code
  !fix! drones not resizing/repositioning when range size changed with LCTRL + mouse move
  *** reordered keyboard handling in din::handle_input (..)
May 16, 2011:
  !!! din-1.6.1 !!!
    !!! factory reset required !!!
    +++ new volume variable accesible in Tcl interpreter; goes from 0 to 1
      *** changed start-end.patch.tcl to allow use of mouse or midi slider to go from start/end and apply command
      +++ added drone_master_volume to possibilities for going start->end
    +++ cursor info display shows frequency & volume
    +++ show_frequency variable change to show_cursor_info
    +++ din irc bot video
May 9, 2011:
  !!! din-1.6 !!!
  +++ new patch start-end to go from a start to end value and execute a command for each inbetween value
    +++ see start-end.patch.tcl & start-end.help.tcl for more information
May 1, 2011:
  !!! din-1.5.9 !!!
  --- gaters command. gaters state stored in din_info
  *** oscilloscope colors saved on exit
  *** renamed short name of some commands
April 17, 2011:
  !!! din-1.5.8.0 !!!
    +++ get-beat <list of components> [all|first|last]
      +++ get-beat fm all returns current beat, first beat and last beat of fm
      +++ get-beat am first returns first beat of am
    *** frequency display switches correctly between phrasor cursor & mouse cursor
    *** lop alias load-patch, lp alias list-patches & asd alias assign-drones in droner
    +++ [ & ] keys for decreasing, increasing phrasor jog
    +++ i to toggle display of frequencies on notes & under mouse cursor

April 6, 2011:

  !!! din-1.5.7 !!!
  +++ timenow variable contains time elapsed in seconds from din start
  +++ loop procedure to run user defined Tcl code at every din loop
    proc loop {} {
      ;# this runs every din loop
      echo $timenow ;# just print number of seconds elapsed since din start on console
    }
  +++ list-patches command to list patches
  +++ load-patch command to load a patch
  +++ picth intervals as vars eg., $1, $2b, $3b, $3, $4, $5b, $5, $6b $6, $7b, $7 & $8
  +++ piano notes as vars eg., $C, $Db $D, $Eb, $E, $F, $Gb, $G, $Ab $A, $Bb $B. $C is 261.626, $A is 440
  *** doesnt select sine composer and/or fft levels on curve editor when curve edit is in progress
  +++ documentation for most of din commands

April 1, 2011:
  !!! din-1.5.6 !!!
  *** completely optimised for JACK instead of compatibility with both OSS and JACK.
    *** see revision 2201 at http://code.google.com/p/din/source/detail?r=2201 for more information.
March 29, 2011:
  !!! din-1.5.5 !!!
  *** octave shift is faster (we shift once every audio out like before but we dont find shifts per sample) and more accurate (no floating point drift)
  *** the beat of fm, am, gaters always progresses (am_vol/am_depth/fm_depth & mouse height determines their use in sound)
  *** changed octave_shift curve name from octave_shift to os for easier handling on the command line
  +++ added 2 patterns to octave shift library
  !fix! fixed bug in solver::operator (float x) --> (see din-1.5.5/src/solver.cc)

March 28, 2011:
  !!! din-1.5.4 !!!
  +++ added variable jog for phrasor jogging
    +++ set-var jog 3 ;# default jog
    +++ set-var jog 30 ;# warp speed jog!
    +++ sv j 30 ;# short form
    +++ get-var jog ;# returns jog value
    +++ gv j ;# short form
  +++ left_alt + enter resets taptarget bpms ie equivalent to command set-now $taptarget 0 --> used to match beat of external sounds
  +++ added configure.ac check for tcl.h in addition to tcl8.5/tcl.h
  *** optimised beat2value.cc/h that drives the gaters, fm, am & os
  *** bot is insecure to allow full remote operation of din.
    *** bot will connect to password protected irc channels only.
    !!! use it among friends. not enemies !!!
    *** bot always connects at your command (see din-1.5.4/src/bot.cc & din-1.5.4/include/bot.h)

March 25, 2011:
  !!! din-1.5.3 !!!
  *** factory reset required, see http://dinisnoise.org/faq/
  !fix! fixed compressor response when input audio sample hits xmax boundary - stays at max instead of going to min
  !fix! get-drone command and ~/.din/droner.tcl
  +++ display name of jack connection on din title bar
  +++ new variable show_frequency to toggle frequency display under mouse and frequencies of notes of the scale
    +++ set-var show_frequency 1 ;# displays frequency under mouse & frequency of all notes in all the octaves
    +++ set-var show_frequency 0 ;# hides frequency under mouse & frequency of all notes in all the octaves
    +++ set-var sf 1 ;# sf is short for show_frequency
    +++ sv sf 0 ;# sv is short for set-var; sf is short for show_frequency
    +++ din saves show_frequency state when it quits and restores it when you start din again
  *** tweaked ~/.din/scoper.tcl to allow easy entry of midi slider/knob values
  *** documented ~/.din/2600.tcl
  --- oss midi support & other unused procs in ~/.din/init.tcl

March 20, 2011:
  !!! din-1.5.2 !!!
  *** factory reset required, see http://dinisnoise.org/faq/
  +++ can specify number of samples used to construct the profile curve in sine harmonic composer (was 100 samples).
    +++ set-var num_sine_samples OR nss, get-var num_sine_samples ORR nss
    +++ ' and \ keys in waveform editor to decrease/increase num_sine_samples 1 at a time
    *** use large number of samples to accurately profile a curve that has large number of harmonics
    *** experiment with num_sine_samples to change timbre
  +++ save/load vertex labelling on curve editors
March 14, 2011:
  !!! din-1.5.1 !!!
  *** factory reset required, see http://dinisnoise.org/faq/
  +++ constant size vertex/tangent handles in all editors
    +++ initial handle size specified in ~/.din/globals
  +++ vertex labelling in all editors
    +++ press l in an editor (but *not* on a curve vertex/tangent cos thats for making curve linear) to toggle
  +++ scales can have an unlimited number (previously 16) of notes, hence an unlimited number of ranges (previously 64)
    !!! din remains a 3 octave instrument !!!
  *** set-bpm <list of components> <list of bpms>, get-bpm <list of components>
  +++ set-now <list of components> <list of nows>, get-now <list of components>
  +++ get-drone selected, set-drone <list of drones> <list of volumes>
    *** droner.tcl to support microtonal chord progressions via MIDI
  --- removed mouse interpolation
  --- reinstated original subdivision for curve generation as new subdivision scheme
      introed in din-1.5 doesnt work for octave shift (will revisit)
  +++ delete-disabled-resonators command updated to allow all resonators to be deleted
  *** optimised resonator picking and disable/enable/enable all
  --- removed curve_editor::randomise (..) and rnd_miny_maxy --> unused feature
  !bug! deleteing all resonators when mouse capture is applied crashes din (segmentation fault)
  !bug! unpredictable curve loss when moving curve in strength editor (segmentation fault on quit)
February 15, 2011:
  !!!! din-1.5 release !!!!
  !fix! mirroring tangents caused 1st subdivided point to lie on the curve so no further subdivision hence no profile.
  !fix! midi ring buffer deallocation in audio::alloc
  +++ mouse x, y interpolation for click/tick/glitch free sound on long periods
  +++ midi-pitch-bend, midi-program-change support (thanks Peter Nelson - http://fuzzle.org/~petern/)
  +++ experimental get-selection command to get selected items from current curve editor
  +++ can create, edit and remove drones while phrasor is playing a phrase
    +++ tonex, toney for finding tone on din board
  *** midi_cc -> midi-cc, midi_note_on -> midi-note-on, midi_note_off -> midi-note-off, midi_clock -> midi-clock, midi_start -> midi-start
    *** changed scoper.tcl, midimap.tcl, 2600.tcl
  --- removed curve_editor::scale ()
  +++ <cstdlib> to bot.cc
  +++ add sample_rate change callback.
  +++ add buffer_size change callback altho we dont support buffer size change in din. would require a restart.
  *** optimised malloc in JACK MIDI.
February 9, 2011
  !!!! release: din-1.4.3 !!!!
  !!!! factory reset required. see http://dinisnoise.org/faq/ for more information.
  !++! fps, usleep vars to bring down CPU usage (thanks Peter Nelson - http://fuzzle.org/~petern/)
  !++! full JACK MIDI support (thanks Peter Nelson - http://fuzzle.org/~petern/)
  !--! jettisoned RtMidi support -> tagged in svn for din-OSS use.
  !--! no requirement of alsa sound library hence din is fully cross-platform. porters rejoice!
  +++ <space> to mute/unmute resonators @ din board.
  +++ marked the low (1-, 2b-, 2-, 3b-, 3- etc) & high octave (1+, 2b+, 2+, 3b+, 3+ etc) on din tone board
  +++ changed set-bpm command to accept multiple bpm targets and values
  +++ changed get-bpm command to print bpms of multiple bpm targets
  +++ changed set-var command to accept multiple vars and values
  +++ changed get-var to print values of multiple vars
  +++ undo-redo on curve editors does undo-redo of window position too
  +++ save-restore exact din board position, oscilloscope position
    +++ better default view of din board showing key note when launched for 1st time
  +++ new vars zoom & pan added to control zoom and pan variables in curve_editor
  +++ scroll, zoom & pan now loaded from settings.tcl instead of din_info
  *** midimap.tcl sourced in init.tcl for default midi_cc, midi_note_on/off, midi_clock & midi_start
  *** tweak of handle sizes in curve editors for easier editing for new user
  !fix! load-resonators doesnt fail when resonators file doesnt exist
  !fix! default resonator strength is simple linear curve instead of bezier curve for easier initial editing.
  !fix! tangents dont mirror by default in drone editor
January 27, 2011:
  ++ add resonator with <left shift> + r in strength editor.
  -- removed resonator::MAX_RESONATORS - add as many resonators as you like
  ++ delete-disabled-resonators Tcl command
  ++ new hires clock
  ** mark curve segments in curve_editor
  ** list_resonators -> ls-resonators command name change
  ** editor name change: morse_code -> morse-code
  !fix! add drone clears selected drones
  !fix! oscilloscope not selected when selecting drones
  !fix! configure.ac now checks for OpenGL, Tcl, libircclient & libasound2
January 21, 2011:
  !! release: 1.4.1 !!
  ++ ultra drone editing - multiple drone creation, moving around the board and delete
  ++ infinite volumes - change height of the keyboard to get as many volume levels as you like.
  ++ integrated jack/oss into same code base
January 14, 2011:
  * infinite volumes - change the height of the infinite keyboard to get as many volume levels as you like
January 13, 2011:
  * integrating jack/oss api in same code base
January 10, 2011:
  * din-1.4 : first release into the wild
  * fast multi bezier curve (ie multi_curve) solver with infinite points and bezier curves
  * WIP: new website design @ dinisnoise.org
December 30, 2010:
  * bot uses safe interpreter when connected to irc channel
December 29, 2010:
  * esc 2 times from din board to quit din -- waits for ESC_WAIT (1.25 seconds between ESC presses).
  * fixed oscillator_strength marker display, default globals tuning file spec and default din_info
December 28, 2010:
  * set_bpm --> set-bpm and other commands names changed. no underscore, use hypen instead to separate command words in a command name - easy to type.
  + added equivalent help files
December 27, 2010:
  * fixed key repeat speed bug when MIDI is on
  * tweaked the jag font
  * WIP: infinite curve points, infinite resonators ---> not adequately tested; @alejo: dont package
December 16, 2010:
  * help.tcl, set_text_color to set console text color, faster command lookup from command list
December 15, 2010:
  * help for commands is via help.tcl script -- we will use this script to also produce command reference documentation
  at dinisnoise.org soon.
December 11, 2010:
  * bot:
      * disabled exec command from Tcl interpreter when bot connects to irc. exec enabled again when bot disconnects.
      * new disconnect subcommand with custom disconnect message. eg., bot disconnect message
  * key: command changed to print nearest note name (eg., key note) & value (eg., key value).
  * scale: new scale command. list, get, set, add, remove & find are subcommands. eg., scale set major
  * tuning: new tuning command. list, set & get are subcommands. eg., tuning set et
  * bpm: new bpm command. list, set, get, reset, style (set & get subcommands) are subcommands. eg., bpm set fm 240
  * delay: new delay command. set, get are subcommands. list coming soon. delay set {l r} 5000 ;# sets delay time of both channel to 5 seconds.
  * taptarget variable to control what component (gl gr fm am or os) gets affected when tap bpm is used. eg., set taptarget {gl gr}
  * console: stays in command mode when TAB pressed until ESC or TAB is pressed again.  used to leave command mode when ENTER was pressed.
  * BUGFIX: delay haywire fix when delay time is 1 second ie 1000 msecs.

November 30, 2010:
  * bot input/output is queued and processed in input loop
  * |BUG| fix multi line output of commands to IRC. no lines sent.
November 24, 2010:
  * tonic limited to 40 to max_frequency possible in given sample rate
  * display key and completion of octave shift --> since octave shift is general we call it modulating up/down instead of octave up/down.
October 11, 2010:
  @oss:
  !!!after 4 years figure out that ive been calculating everything in the audio thread. so no matter how fast a processor we have, calculations cant be performed faster than
  the rate at which the audio thread is called. fixed this at least now. this opens the way for the power of multi-core processors & GPUs.!!!
  ***tcl interp back in main thread***
  ---removed command scheduling in console as tcl interp is back in main thread ---
  ***viewport struct changed, creates default or restores last viewport on constructor ***
  ***audio_out::write changed to accept audio buffer to read for writing from main thread ***
  ++++++
  concept of a bunch of audio buffers in main thread that is filled continously one after another.
  give a written buffer when audio thread wants one. important to keep a good number of audio buffers but not too many
  so that main thread is not writing the same buffer the audio thread wants to read.  if all buffers are written
  but none read so far, main thread will stop writing anymore and wait for audio thread to read some.
  ++++
  ***better commenting and messages on shell console***
September 29, 2010:
  @@@ sort of back in the groove again.
  @@@ wip though as trying to have 1 Tcl interpreter in audio thread for accessing samples later
  [!!!] FIXED resizing window
  [!!!] FIXED abrupt level change when moving from editors back to board
  [+++] can continue to play with the mouse when in command mode. tracks cursor in editors.
September 12, 2010:
  +++ get_scope/set_scope, get_drone/set_drone and scoper.tcl, droner.tcl
August 05, 2010:
  [***/+++]: midi command fleshed out with list, open, close options.
  [+++]: midiopenall, midicloseall tcl cmds available for one-shot open/close of midi input devices
  [+++]: midimapper.tcl - displays midi output on console. to invoke issue command: scr midimapper
August 03, 2010:
  [mod] param value messages on the console
  [bug] segfault on load_scale of bhoopali - couldnt recreate!
July 31, 2010:
  *** back to working on font again
      ***changed set_font_size to change cell size, char spacing & headroom
      ***get_font_size simply prints 4 numbers
      ***created help files of set_font_size & get_font_size
      ***changed save_settings.tcl to include font size params so we dont save them in the font file itself. this is good.
July 30, 2010:
  !+++! tap bpm, set taptarget {gl gr fm am os}. change taptarget to change whose bpm is affected.
        eg, set taptarget {fm am os} only sets fm, am & octave shift bpm to tapbpm.
July 28, 2010:
  *** worked on timing of keypress (keypressedd(..) in input.h)
July 27, 2010:
  !fix! western notation display didnt update correctly when key was set to a numeric value.
  !fix! no overwriting of console command line
  +++ wrap around of console command history
  +++ notation saved into settings.tcl
  +++ ~/.din/init.tcl for custom Tcl scripts to be loaded at startup.
  +++ set_kb_layout/kbl <layout> command. kbl us sets to us layout. kbl uk sets uk layout.
July 23, 2010:
  !!!check b4 din workshop at usurp gallery, london
  *** will try to make a live cd with this version
  +++ new sound patterns added (one, one-lr, two, two-1, three, many)
July 19, 2010:
  !!!+++ experimental MIDI support using modified RtMidi library
  !!!source ~/.din/midi.tcl after install; turn on gaters and move any sliders u have to change the gater bpm
  !!!set min 0; set max 240; set which g ;# set which fm will change fm bpm.
July 18, 2010:
  * Happy birthday to self! jag turns 35. a hub. a dad. not a millionaire. Only want to do what I do now at 40 - maybe also want to be more famous and print money.
  *** phrasor optimisation, draw a red marker to id phrase start during a recording so its easy to finish at that point,
  *** phrasor playback starts at beginning of last recorded phrase
  !!! bug fix in phrasor when pausing doesnt leave mouse at the right note, these bugs introed because we move from absolute to relative mouse calculation
  !!! bug fix no jump of mouse when phrasor is playing and u leave board to the editors and come back.
  !!! test required.
July 15, 2010:
  * changed name of waveform from noname to wave in file data/one - the one resonator file
  * removed key get from key command its available as getv key
July 14, 2010:
  +++set_curve_editor, get_curve_editor to place different curve editors on different screens.
July 11, 2010:
  +++!!! din-1.1.2 - jack, oss (branch) support updated.
  +++ delay feedback, volume curves, only time is value
  *** fixed undo/redo/copy/paste bug on multi_curve
  *** fixed morse code trailing spacings and morse code is now on copy curve to paste
  +++ save_settings.tcl to save settings into ~/.din/settings.tcl which is loaded on next din start

June 03, 2010:
  * din-1.1 RC.
  * cleaned up documentation
  * sa command is gone. tonic/key is substitute.
May 31, 2010:
  +++ Tcl interpreter is the din command line.
  +++ Oscilloscope fully moveable and resizeable.
  +++ message announcing current curve editor
  *** fixed note marking in strength editor
  !!! Oscilloscope drawing optimised with single call to glDrawArrays instead of glBegin() ..glVertex3f..glEnd ()
May 18, 2010:
  *** Tcl/Tk integration getting mature
  !+++! experimental linebreaking and wordwrap added to console - disabled by default
  +++ new variable sa so can do gv sa
  --- removing tcl command - no longer required as Tcl/Tk interpeter is the din command line

May 15, 2010:

  !+++! experimental tcl/tk integration.
    +++ new tcl command - syntax tcl <tcl_command>
    * this will let us script din with tcl and also make custom uis using tk.
    +++ sa.tcl. to bring up ui, do tcl source ~/.din/sa.tcl

  *** mouse capture replay doesnt warp the mouse, draws a cross indicating playback position.

May 13, 2010:
  +++ morse code -> bezier curve -> waveform/am/fm/gaters/octave_shift
    *** editable beizer curve based patterns for dot, dash, inner spacing, letter spacing and word spacing.

May 5, 2010:
  +++!!!*** jack is now trunk
  +++!!!*** oss is a branch https://din.googlecode.com/svn/branches/oss
  *** oss is faster than jack but allows no collaboration.
  +++ oscilloscope is back on jack
  *** major renames of many files in din/data
  *** optimised keyboard handling in curve_editor.cc/h, din.cc/h
  *** new gater patterns, new octave shift patterns, tastier defaults
April 27, 2010:
  !!! experimental jack support
  +++ autoconnect to system:playback_1 and system:playback_2 ports to start playing audio
April 26, 2010:
  *** optimised keyboard handling
April 25, 2010:
  +++drones can be created to any tone. can be snapped to a note.
  +++gaters on/off command
  +++snap_drones var to setv/getv commands
      sv snap_drones 0 or 1
      gv snap_drones
  +++reenabled the drone editor
April 23, 2010:
  rc 1.0.6
  ++sa/key display on pressing ;
  --drones are synced only on startup
  **pfx changed to p in bot command
April 22, 2010:
  prepping for version 1.0.6
  +++bot::setset()
  +++tests if bot is running when outputing mesg with it
  ***gate->g, gate-l->gl, gate-r->gr, all->a in set_bpm, get_bpm, set_style, get_style commands
April 18, 2010:
  prepping for version 1.0.6.
    +octave shift with controllable bpm and progress curve.
    +octave shift editor (press 7)
    +octave_shift.lib - library of octave shift progress curves.
    *libircclient expected at /usr/lib/ and /usr/include/libircclient - need to change this to use pkg-config.
April 15, 2010:
  * check b4 openlab opennight #4
  * reworked solver so that custom min and max handlers can be used to get looping (in waveform) but ping-pong (in gaters, fm, am)
      * inlined these functions but if they were not inlined then maybe slightly slower (nanoseconds? microseconds? testing needed)
  * default is ping-pong on gaters, fm, am
April 12, 2010:
  ---removed multi_curve copy constructor and operator=, color and name restored after default copy.
  ***chrono uses <ctime> ie CLOCKS_PER_SEC and clock() for timing instead of sample based timing. can therefore use it for non-audio timing.
  ***mouse command changed for relative mouse movement instead of absolute positioning. making it selectable is a better goal.
  !!!removed otransmit code in osc.cc and osc(..) removes timers as timer struct removed from chrono.h/cc. no problem for osc recieve.
  ***using SDLK keycodes in curve library handling in curve_editor.
  !!!fixed bug in osc due to stringstream/tokenizer mixup.
April 5, 2010:
  +++get_font_size command
  +++xsize and ysize are cell width and cell height for font can be set independently
  ***updated set_font_size command to handle xsize and ysize
  xxxhopefully fixed the font save bug - was writing a null character b4.
  ***updated cell_size code to prevent squash/stretch of font when varying its xsize and ysize***
April 3, 2010:
  +++tokenizer.cc/.h - ditching stringstream
  !!!font size bug still persists - do not use set_font_size command!!!
  +++ircu.patch - patch for ircu irc server ircd undernet to allow messages to flood the channel
  so that din can send and receive data freely without any limits.
march 31, 2010:
  +++varun: happy birthday.
  ***+++ irc bot cleaned up, with doc
  ***fixed (assuming strongly) kerning and font size bug
  ---all .hlp files from data
march 25, 2010:
  +++ added doc directory. will move all help files here in the future.
      but its not ready yet. so we use help files in data.
  +++ added mouse <x> <y> command, untested but no harm if not used.
  +++ octave shift shortcuts changed to z and x due to keymap issue on non english keyboards. need to check this.
march 23, 2010:
  $$$ work in progress: 1.0.5.1
  *** enhanced sa command to apply octave modifiers to values not just note names. mouse warp toggle added too.
  +++ added octave shift short cut [].
  +++ brought am, fm, gate-l, gate-r parameters as keyboard shortcuts
  +++ FIXED BUG: creating a drone outside the ranges didnt create the drone on the correct note.
  *** using keycodes instead of characters ie SDLK_SLASH instead of / character to check slash so
      that it works on all keyboards.
  --- replaced din_help.txt with din.hlp.
march 20, 2010:
  $$$ release 1.0.4.1.
  *** if no audio, din continues to work. can edit resonators and drones.
  *** better selection of drones.
  +++ aout command to control OSS audio parameters. can also edit ~/.din/audio_prefs.
march 16, 2010:
  !!!+++ ditched portaudio and moved to oss. portaudio was using oss anyway. with direct oss can set many audio buffer parameters.+++!!!
  !!!testing required on this oss port!!!
march 12, 2010:
  ** made basic install of din easy such that its a gateway to explore more complex features of din.
  +++ allow din board height to be changed allowing finer or coarser volume control.
march 08, 2010:
  + sine wave -> bezier curve: export sine wave generated with the sine_mixer as a bezier waveform. 100 vertices with folded tangents generated. a ui/command to  reduce/control number of generated points desired.
  + bezier curve -> sine wave: import fft levels of a bezier waveform into sine levels and alter the drawn sine wave. only partially correct as it doesnt import phase information from the fft. works when phase is 0.
  + clear/erase harmonic by pressing 'c' over sine levels.
  ! use resonator names from file instead of resetting to default name/numbering.
  + current curve editor var in uis_t to keep track of the current curve editor so we can run curve commands on the console.
  + curve_name command to set the curve name. possible due to previous feature.
  * worked on resonators in file: resonators, one
december 18, 2009:
  ** bug fixed: pan and zoom with shift+a/d and shift+q/e
november 20, 2009:
  assigned curve names, save and load curve names when curves are loaded. default name is noname.
  fixed bug: can change resolution of curves in modulation and gater editors.
november 13, 2009:
  mouse position saved and restored on din board
    TODO: but must be done for all ui screens and must also restore window position
november 11, 2009:
  console rollup state saved/restored
  removed numeric notation of ranges as it doesnt work for keys other than C. will revisit later.
november 9, 2009:
  removed set_bg command - no range color filling, just plain looking ui. its the sound we are after.
  notation support: indian (S r etc), western (C C# etc) and numeric (1 2b etc)
  optimised solver.h/cc again to return last result when y cannot be solved for given x.
  FIXED BUG: In console, if you clear text (press backspace), and rollup console - crash
  fixed colors used for drawing ranges, phrasor position and drone makers
november 4, 2009:
  *** cleaned up the trunk
  !!! optimised the configure.ac and Makefile.am
  +++ BUGS
october 15, 2009:
  ***marked position of phrasor when paused
october 14, 2009:
  +++get_kern command to get character kerning in the font.
  +++added {}`| characters to the font
october 10, 2009:
  !!!!++++multicore support added
  +++xset m 0 0 to reset mouse to zero acceleration and threshold when
     din, and restore upon exit.
october 9, 2009:
  !!! fixed ranga backdrop drawing bug
  +++ added support for audio out via alsa dmix so that you could play
      an audio clip in the background and play din over it.
  *** preparing for release of din. version 1.
may 7, 2009:
  +++fft.cc, fft.h - separated fft engine from curve editor
  ***worked on the resonators
may 6, 2009:
  +++ added ability to move the mouse in curve editors with the keyboard
  +++ vary the pan and zoom speeds