Subversion Repositories DIN Is Noise

Rev

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

Rev Author Line No. Line
2261 jag 1
DIN Is Noise 60 WIP:
2314 jag 2
 
2326 jag 3
to do:
4
 
5
  * voice fm/am also like beater
6
      based on beats
7
  * paste replace, append, insert on curve editors
8
  * beat labels every beat upto maybe 64 beats
9
  * beat 'doubler' widget
10
      eval every whole audio buffer
11
      start, end, times
12
        start, end dont have to be on same beat
13
  * curve selection
14
      copy & paste
15
  * curve scaling
16
      3 boxes
17
        left edge, right edge anchors
18
        move middle box edge to scale contents
19
          dry running with ghost profile draw
20
            execute at right time eg., at some beat position
21
  * binaural drones, binaural triggered notes on keybkeyb, mondrian
22
      * set unset toggle of binaurality
23
      * change separation
24
      * change justification
2320 jag 25
to fix:
26
 
27
  ! launched binaural drone separation must be = to launcher !
28
  ! Menu > Tools > Paste does paste append, must add Paste Append !
29
 
2314 jag 30
  on curve editor:
31
 
32
    /* paste append on curve editor */
33
 
34
    /* insert after last vertex appends to curve */
35
 
2326 jag 36
complete:
37
 
2304 jag 38
  * improved oscilloscope display
39
    * better labeling
40
      * with distortion hinting
2305 jag 41
  /* will not exit if recording in progress *\
2304 jag 42
  /* cross hair on the only selected drone *\
2324 jag 43
  * improved Show anchors on Menu > Drone Params > Visuals
44
    * instead of drawing line from drone position to
45
      bottom, cross hairs
46
    /* opacity *\
2320 jag 47
 
2308 jag 48
  /*
49
    turn DIN into a fully binaural syntheszer
2305 jag 50
 
2308 jag 51
      in Settings screen:
52
        toggle DIN Is Binaural
53
        default justification
54
          left, right, random
55
        default separation (in Hz)
56
          4 hz
57
 
58
      if DIN Is Binaural is ON,
59
        a new drone
60
          if left justified
61
            L @ hz, R @ hz + separation
62
          if right justified
63
            L @ hz - separation, R @ hz
64
 
65
          change seperation from Drone Params > Modulation > Separation
66
 
67
        in Mondrian,
68
          a ball triggers note/tone
69
            if left justified
70
              L @ hz, R @ hz + separation
71
            if right justified
72
              L @ hz - separation, R @ hz
73
 
74
          change separation per ball via
75
            Menu > Params > Separation
76
 
77
 
78
 
2263 jag 79
  * command get-var fps returns requested fps, got fps
80
    ^ internal
2324 jag 81
 
2230 jag 82
DIN Is Noise 59:
2207 jag 83
  /*
2209 jag 84
    track phrase position while scrubbing
2230 jag 85
      Menu > Voice > Track
2244 jag 86
        default is off
2207 jag 87
  *\
88
 
2230 jag 89
  /*
90
    record multiple mouse phrases on the phrasor:
91
      press f to record a phrase. move mouse.
92
        press f again to stop recording and start playing
93
      press f to record another phrase. din appends this phrase to existing phrase.
94
        press f again to stop recording and start playing from the start
95
      press g to clear all phrases
96
  *\
2209 jag 97
 
2174 jag 98
  /*
99
 
2256 jag 100
    Gater is now called Beater in preparation for the new beat engine in DIN (still WIP
101
    as of 59)
2174 jag 102
 
2233 jag 103
    edit beat pattern in beat pattern editor
104
      press 5 from microtonal-keyboard or Menu > Editors > Beater
105
    new beat patterns in the library
2242 jag 106
    use 9 and 0 keys to go thru beat patterns
2174 jag 107
 
2233 jag 108
    in the beat pattern editor:
109
 
110
      press F3 to halve current BPM
111
      press F4 to double current BPM
112
      press F5 to shift key up an octave
113
      press F6 to shift key down an octave
114
 
2244 jag 115
    on the microtonal keyboard:
116
 
117
      press F3 to halve current BPM
118
      press F4 to double current BPM
119
 
2174 jag 120
  *\
121
 
2230 jag 122
  in a curve editor:
2177 jag 123
 
2230 jag 124
    /*
2186 jag 125
 
2230 jag 126
      increase/decrease size of tangent of a curve
2186 jag 127
 
2256 jag 128
      click+pick a tangent of a curve and press f or Menu > Tools > Size tangent
129
      and just mouse up and down to size tangent
2177 jag 130
 
2230 jag 131
    *\
2209 jag 132
 
2230 jag 133
    /*
2209 jag 134
 
2230 jag 135
      pin / unpin vertices & tangents of a curve in a curve editor
2209 jag 136
 
2230 jag 137
      choose Menu > Tools > Pin / Unpin
2256 jag 138
      and click+pick a vertex or tangent. ESC to stop.
2224 jag 139
 
2230 jag 140
      or click-pick a vertex or tangent and press p to pin/unpin. click to stop.
2221 jag 141
 
2230 jag 142
      why pin?
2209 jag 143
 
2256 jag 144
        pinned vertices and tangents dont rotate when curve rotates.
145
        pinned tangents dont move when their vertex moves
2230 jag 146
 
147
          try it on shapeforms!
148
          watch fft!
149
 
150
    *\
151
 
2244 jag 152
    /*
153
        press ' to draw/hide snapping guides or Menu > Tools > Draw
154
        press g to draw/hide cursor or Menu > Tools > Draw cursor
155
        press u to restore view too on undo/redo or Menu > Tools > View too
156
    *\
157
 
2256 jag 158
  /* press SHIFT when clicking into a text/value field to clear its contents *\
159
 
160
  /* timestamps on log file at start and shutdown of program *\
161
 
2254 jag 162
  * changes to default parameters in binaural drones instrument
2255 jag 163
    * start pitch is 128 Hz
164
    * justification is left
165
    * scale notes at C D G B when C = 128 hz (if A = 432 Hz)
2244 jag 166
 
2256 jag 167
  * default tuning is pythagoras for all instruments
2255 jag 168
    * tuning is global ie applies to all instruments
2254 jag 169
 
2244 jag 170
  * Menu > Tools > Fold tangents with Selection only ON, folds just the selected tangent
171
    and if you select a vertex folds both its tangents
2242 jag 172
 
2244 jag 173
  * improved delay lines
174
  * optimised handling of parameter spinners in UI *
175
 
2256 jag 176
  * boxes not filled by default in Mondrian
177
 
2147 jag 178
  :( mouse returns to last position on all screens :)
2106 jag 179
  :( bug asked user to select drones when no drones were selected and drone volume change was attempted :)
2135 jag 180
  :( fixed bug not saving inner, letter and word spacing curves on morse code module :)
2180 jag 181
  :( fixed fold tangents only folding tangents of the selected vertex then stopping, instead of offering
182
     to fold other tangents until canceled by user :)
2174 jag 183
 
2094 jag 184
DIN Is Noise 58:
2091 jag 185
  /*
186
    position affects velocity and acceleration vectors
187
      instead of just velocity vectors
188
        Menu > Drone Tools > Position affects Vectors
189
  *\
2077 jag 190
  /* rotate acceleration *\
191
  /* rotation direction switch on velocity, accelerations *\
2076 jag 192
  /* reverse orbital direction *\
2082 jag 193
  * drone & voice volume displayed on microtonal keyboard is absolute not %
2094 jag 194
  * improved documentation, see https://dinisnoise.org/docs/
195
  :( fixed visual modulation behaviour on drones :)
2082 jag 196
  - removed Boost library requirement to build DIN Is Noise from source code.
2075 jag 197
 
2070 jag 198
DIN Is Noise 57:
2038 jag 199
 
2070 jag 200
	:( fixed crash if Scale notes label on Settings page was clicked :)
201
  :( fixed reset of note polygon radius in Mondrian :)
202
  :( fixed lingering close button when switching ui screens using keyboard short cuts :)
2047 jag 203
 
2027 jag 204
  /*
2028 jag 205
      auto pause can now pause auto rotation or pause auto flip
2070 jag 206
      direction of rotation of launched drones
2027 jag 207
 
2028 jag 208
        set at Auto pause section in Menu > Drone Params > Defaults
2027 jag 209
  *\
2028 jag 210
 
2038 jag 211
  /* 0 limit on drone master volume, AM and FM depths *\
2028 jag 212
 
2008 jag 213
  /*
2028 jag 214
    change of keyboard shortcuts for better drone handling on the
215
    microtonal keyboard
2017 jag 216
 
2028 jag 217
    middle mouse click to set drone scale / rotate center (pink cross)
218
    to mouse cursor
219
 
2011 jag 220
    f - find drone center of selected drones
2028 jag 221
					voice phrase recorder shares this shortcut
222
						but only triggers if voice is active
2017 jag 223
 
224
    r - rotate selected drones about center
2026 jag 225
 
2017 jag 226
    t - scale selected drones about center
2028 jag 227
 
2026 jag 228
      hold SHIFT to scale only vertically (only volume changes)
229
      hold CTRL to scale only horizontally (only pitch changes)
2017 jag 230
 
2008 jag 231
    SPACE - freeze / thaw drones
2017 jag 232
 
2038 jag 233
    For selected drones:
234
 
235
      n - clear drone selection
236
 
237
      y, u - change AM depth and bpm
238
      o, p - change FM depth and bpm
239
 
240
      - - change handle size
241
      = - change trail length
242
 
2058 jag 243
      j - flip drone motion
244
 
245
            flips drone velocity
246
 
247
              try on launched drones after turning on
248
              Menu > Drone Defaults > Select on Creation
249
 
250
            and AM/FM direction
251
 
252
              try on drones of a drone pendulum
2070 jag 253
              or a drone mesh
2058 jag 254
 
2008 jag 255
  /*
1993 jag 256
 
2047 jag 257
  /*
258
    new keyboard shortcuts for mouse slider
259
 
260
      ` - toggle ~ on parameter spinner
261
 
262
 
263
  *\
264
 
2068 jag 265
  /*
266
    while moving drone center (the pink cross):
267
 
268
      SHIFT to move along vertical
269
      CTRL to move along horizontal
270
  *\
271
 
2070 jag 272
  /*
273
    On Gravity:
274
 
275
      tip -> mouse - gravity tracks mouse
276
      tip -> drone -  gravity tracks drone tip
277
                      instead of touching it
278
 
279
                        only works after
280
                        Tip to drone
281
 
282
  *\
283
 
2073 jag 284
  /*
285
 
286
    String of characters to bit pattern to box fill texture
287
    in Mondrian. A cheap experiment with polygon stippling
288
    in OpenGL.
289
 
290
      OFF by default
291
      Click Menu > Misc > Texture to toggle
292
      sd)s is default string. Change and see!
293
      Also change Step.
294
 
295
  */
296
 
2068 jag 297
  * improved drone AM and FM position set
2028 jag 298
  * improved Sine Mixer
2038 jag 299
  * improved binaural drones instrument
2049 jag 300
  * improved mouse slider
2069 jag 301
  * improved cursor cross hairs
2028 jag 302
 
1966 jag 303
DIN Is Noise 56:
1965 jag 304
 
1987 jag 305
  /*
306
    new drone movements: rail and strafe
307
 
308
      rail moves a drone along its velocity vector
309
      strafe moves a drone lateral (perpendicular) to the velocity vector
310
 
311
        access rail and strafe using Drone Tools > Move / Rail / Strafe option list
312
          click on the option to activate
313
          then just move mouse up or down to rail or strafe
314
 
315
      interesting fx possible if the drone velocity vectors are
316
      auto rotating / flipping / pausing when railing or strafing!
317
  *\
318
 
1986 jag 319
  /*
320
      new auto pause for auto rotating drone velocity and/or accleration vectors
321
 
1987 jag 322
      basically, pause rotating every few seconds for a few seconds
323
        set values of 'every few seconds' and 'for a few seconds' from:
1986 jag 324
          Drone Params > Defaults for new drones OR
325
          Drone Params > Motion for existing drones
1987 jag 326
  *\
1986 jag 327
 
1987 jag 328
  /*
329
      new auto flip (= change direction of) rotation of curves on
1969 jag 330
      any curve editor
1987 jag 331
  *\
1969 jag 332
 
1987 jag 333
  /*
1969 jag 334
    new Curves tab on Menu of all curve editors
335
      lists curves available for editing
336
      can turn on/off curves for better/easier & targeted editing
1987 jag 337
  *\
1969 jag 338
 
1967 jag 339
  * improved FFT display and handling on waveform editors
1965 jag 340
  * improved waveform display on keyboard-keyboard
1966 jag 341
  * improved auto flip of rotation of velocity/acceleration vectors of drones
342
  @ launched drones from muted drones are not muted (default until DIN55)
1967 jag 343
    @ they serve no purpose, you can just select the launcher and
344
      stop launching :)
1970 jag 345
  - Fractaliser does not change curve name on apply
346
  ! fixed Menu > Drone tools > Immortalize to turn mortal launched drones immortal
1969 jag 347
  ! fixed resizing of Sine_Mixer harmonics/phases widget when moving Sine_Mixer
1952 jag 348
 
1928 jag 349
DIN Is Noise 55:
350
  /*
351
      an overhaul of Gravity
352
 
353
      as before, you can click and move the base or
354
      the tip of the gravity arrow to adjust its position,
355
      direction and strength.
356
 
357
      to (auto) animate the gravity arrow:
358
 
359
        assign a drone to base of gravity
360
        assign another drone to tip of gravity
361
 
362
        move or visual FM / AM modulate one or both these drones
363
        and gravity moves accordingly.
364
 
365
        animating gravity influences the trajectory of launched
366
        drones :)
367
 
1933 jag 368
      click 'Base to manual' and 'Tip to manual' to detach
369
      assigned drones from base and the tip respectively.
1928 jag 370
 
1933 jag 371
      you can now manually edit the base and tip again.
1928 jag 372
 
1933 jag 373
      click 'Select base', 'Select tip' or 'Select both'
1928 jag 374
      to select the assigned drones. Useful for moving,
375
      for visual AM/FM, to mute them etc.
376
 
377
      eg., you could mute the assigned drones by clicking
378
      'Select both' and then Menu > Drone Tools > Mute
1933 jag 379
 
1928 jag 380
  /*
381
 
382
  /* adjust position/phase of visual drone modulation (AM and FM)
383
 
384
      Menu > Drone Params > AM Position
385
      Menu > Drone Params > FM Position
386
 
387
      eg., at 0 position with AM and FM BPMs equal, the trail/path
388
      of the modulating drones is elliptical.
389
 
390
  /* set AM BPM to FM BPM of drones and vice-versa
391
  /* flip velocity direction of launched drone with respect to the launcher
392
     if -ve flag is set in drone velocity defaults
1934 jag 393
  /* opacity parameter for oscilloscope
1928 jag 394
  * optimised oscilloscope
395
    * faster sample add
396
    * faster drawing
1934 jag 397
  * changed shape of drone handles
398
  * optimised snap lines drawing on curve editors
1938 jag 399
  ! fixed OpenGL drawing bugs for affected OpenGL drivers on Windows !
1928 jag 400
    ! in oscilloscope !
401
    ! in waveform display on waveform editors !
1938 jag 402
    ! when hz/vol displayed on drones !
403
  ! fixed crash if drones as they are fading in when creating drone mesh
404
    are modulated or moved !
1916 jag 405
 
1898 jag 406
DIN Is Noise 54:
1894 jag 407
 
408
  NEW in DIN54:
409
 
1888 jag 410
  /*
1895 jag 411
    Drones Per Launch and Launches Per Minute for drone launchers
1898 jag 412
      Until DIN53.1 you could launch only 1 drone per launch.
413
      In DIN54, you can launch a bunch of drones every launch with
1896 jag 414
      launches per minute.
1894 jag 415
 
416
      Change drones per launch / launches per minute of an existing
417
      launcher from Menu > Drone Params > Motion > Drones Per Launch or
418
      Menu > Drone Params > Motion > Launches Per Minute
419
 
1898 jag 420
      for new launcher set in defaults:
1894 jag 421
 
422
      Menu > Drone Params > Defaults > Drones Per Launch
423
        default = 1
424
      Menu > Drone Params > Defaults > Launches Per Minute
425
        default = 60
426
 
427
      Tip:
428
 
429
        When there are many drones launched every launch, they will all launch
430
        along the direction (of velocity) of the launcher.  Their trajectory will
431
        therefore overlap, turn on Menu > Drone Params > Defaults > Velocity | Randomize
1898 jag 432
        to randomize their launch directions
1894 jag 433
  /*
434
 
435
  /*
436
    drone velocity modulation:
1891 jag 437
      affects all launched drones
1898 jag 438
      specify how amount of velocity (actually the speed!) changes from birth to death of a drone
439
        default is constant ie no change from velocity (ie the speed) at birth
440
          this is the behaviour in DIN53.1
441
 
1891 jag 442
      edit the change curve from Menu > Editors > Drone velocity modulation
1888 jag 443
  /*
1891 jag 444
  /*
1894 jag 445
    in Gravity widget:
1891 jag 446
      Size:
1894 jag 447
          if turned ON, gravity size continuously expands or contracts to Mouse or
448
          (1st selected) Drone position !warning! Big gravity sizes can move drones
449
          fast to max volume and get loud!
1891 jag 450
 
451
      To Screen + : puts base of gravity vector to the center of the screen
452
      To drones + : puts base of gravity vector to the center (magenta arrow) of selected drones.
453
        To drone  : puts base of gravity vector to the (first) selected drone.
454
  /*
1897 jag 455
 
456
  /* save/load color sliders /*
457
 
1891 jag 458
  + draw gravity vector when UI is off
459
  * draw drone trails even if drones are off visible note / pitch ranges
1890 jag 460
  ! fixed: drones bounced only once irrespective of Menu > Drone Params > Defaults > Bounces parameter !
461
    ! bug introduced in DIN53 :( !
1889 jag 462
  ! fixed: potential (null pointer) crash when turning UI on/off from microtonal keyboard !
1890 jag 463
  ! fixed: sudden increase in loudness (sorry!) when frozen drones are deleted but then
464
           thawed, frozen and deleted again and again !
465
  ! fixed: restore oscilloscope display state when UI is turned off and on !
1892 jag 466
  ! fixed: timing (introduced in DIN53.1 due to change of alarm.cc/h) of auto split / delete boxes in mondrian !
1898 jag 467
  ! fixed: deleted drones not de-selected !
1890 jag 468
 
1879 jag 469
DIN Is Noise 53.1:
470
  ! fixed : runaway launch of drones when Drone Params > Defaults > Generations
471
            is > 1 (higher the value worse the outcome!) and Drones Per Minute = 0
472
            due to wrong initialisation of this drone parameter after DIN restart /
473
            reload
474
 
475
  Update ASAP to DIN53.1
1867 jag 476
DIN Is Noise 53:
1865 jag 477
 
1864 jag 478
  /*  new in DIN53:
1865 jag 479
 
1867 jag 480
        launched drones launch drones that launch drones that launch drones....!
1865 jag 481
 
1864 jag 482
          use Drone Params > Defaults > Generations to set the number of times this can happen
1865 jag 483
 
1864 jag 484
            if Generations = 1,  A drone launcher launches drones (@ a Drones Per Minute)
485
            that die at the end of their lifetimes. This is default and the only behaviour until DIN 52.
1867 jag 486
            if Generations = 2, A drone launcher launches drones that launch drones.
487
            if Generations = 3, A drone launcher launches drones that launch drones that
1865 jag 488
            launch drones too.
1867 jag 489
            if Generations = 4, 5, 6, ... this quickly escalates into a population explosion of drones;
490
            lots of drones birthing lots of drones, living their life out and waiting to die can get
491
            very loud (especially if the Compressor isnt ON), slow down DIN and maybe even your computer
492
            beyond rescue. Be careful! :)
1864 jag 493
 
1865 jag 494
            Ways to prevent this population explosion are: keep Generatons low (Menu > Drone Params
495
            > Defaults), keep Drones Per Minute (DPM) and Lifetime on the original
496
            launcher low (Select drone launcher and adjust values from Menu > Drone Params > Motion) and
497
            keep the Fall time low (the fade-out time for drone after being killed, from Menu > Drone
498
            Params > Defaults)
499
 
1864 jag 500
            The launched drones take the DPM and Lifetime of their parent so editing carefully the
501
            parameters of the original launcher is important.
502
 
503
  /*  new default Drones Per Minute (DPM) on a drone launcher (Menu > Drone Params > Defaults). Assigns a
504
      DPM when making a drone launcher.  Turn on ~ to assign a DPM at random.
505
 
1860 jag 506
  * re: Auto rotation of drone velocity/acceleration vectors:
507
      changed Degrees Per Second to Degrees Per Tick
1867 jag 508
 
1864 jag 509
  /* re: Menu > Drone Params > Defaults > Bounces
1860 jag 510
      when set to 0, launched drones dont bounce off the bottom of the microtonal keyboard
1864 jag 511
        but are killed immediately (behaviour until DIN 52)
1863 jag 512
      when set to -1, drones dont bounce off the bottom of the microtonal keyboard at all:
513
        but they are not killed either, they just live their life(time) out
1864 jag 514
 
1868 jag 515
  /* gravity base and tip dont move ie stay fixed as you scroll the microtonal keyboard in DIN53.
516
     this is because gravity is now in 'object space' along with the drones and microtonal ranges.
517
     until DIN52, gravity was in 'UI space' along with UI controls.
518
 
1864 jag 519
  * repositioned drone arrow UI elements
1866 jag 520
 
521
  ! fixed : DIN not quitting when frozen drones present !
1871 jag 522
  ! fixed : change size of gravity vector when its modulating !
1866 jag 523
 
1821 jag 524
DIN Is Noise 52:
1806 jag 525
 
1821 jag 526
  \ walked back some changes introduced in DIN 51
1806 jag 527
    \ the drone tracked by gravity does not change when the selection changes
1804 jag 528
  \ renamed drone arrow parameter called Head to Neck
1825 jag 529
 
530
  /* new gravity size modulation for DIN 52
531
 
1836 jag 532
      change the size (aka strength/magnitude) of gravity vector over bpm:
1828 jag 533
        on the gravity widget, turn on Modulate
1826 jag 534
          bpm = speed of gravity size modulation
1828 jag 535
          depth = how far to 0 gravity drops
1826 jag 536
            depth = 1, goes all the way to 0 and back in 1 beat
537
            depth = 0.5, goes from starting size to half size and back in 1 beat
538
            depth = 0, no size modulation ie size does not change at all
1836 jag 539
            default depth = 1
1826 jag 540
 
541
          set an initial size using gravity presets or click on Change Size
1836 jag 542
          and move the mouse up or down. keep Modulate off when doing this.
1825 jag 543
 
1826 jag 544
          click Edit to edit the size modulation curve for interesting fx.
1825 jag 545
  /*
546
 
1835 jag 547
  + press q to toggle drone wanding when Menu > Drone Tools > Wand is selected
1827 jag 548
    ! was always in Add drone mode until DIN 51.x
1836 jag 549
  + optional tracking of drones when connecting them with Menu > Drone Tools > Connect
1821 jag 550
    + enable / disable @ Menu > Drone Tools > Track
1825 jag 551
    + if enabled on connection: drone 1 points to drone 2 points to drone 3 and so on
552
    + if disabled on disconnection: selected drones stop tracking any other drone
1813 jag 553
  + select drone on creation
554
    + Menu > Drone Params > Defaults > Select on Creation
1815 jag 555
    + drone is not selected by default
1816 jag 556
    + useful for looking at pitch/volume info of launched drones as they fly past
1818 jag 557
  + white = noise interpolator curve
1821 jag 558
    @ Menu > Editors > Noise Interpolator
1818 jag 559
  + white = drone that makes noise
1821 jag 560
    \ was grayscale in DIN 51.x
1822 jag 561
  + color of velocity vector of drone = color of drone
562
    \ was green in DIN51.x
1827 jag 563
  + constrain magnitude of drone velocity +/ acceleration to be > 0
1828 jag 564
    + click on 0 checkbutton on the Menu > Drone Params > Motion > Velocity or Acceleration to toggle
1827 jag 565
      + if enabled, magnitude of velocity +/ acceleration will always be > 0
1828 jag 566
      + if disabled, magnitude of velocity +/ acceleration can go < 0 ie will reverse movement or
567
        orbiting
1807 jag 568
  + browsed drone marker color is color of the browsed drone
1821 jag 569
    \ was green in DIN51.x
570
  * improved drone arrow drawing
1802 jag 571
  * improved note/frequency labeling on microtonal ranges
1804 jag 572
  * improved 'with left/center/right fixed' menu item on Menu > Ranges
1802 jag 573
  * new default volume distribution curve to have value increase (linearly)
1812 jag 574
    after 100% instead of staying at 100%. upto 200% now.
1821 jag 575
  * improved drone > < noise progress display
1828 jag 576
  <> moved (and renamed) Menu > Drone Params > Move under Gravity to Menu > Drone Tools > Balloon
577
      still does the same thing:
578
        releases (like gas balloons :) anchored drones
579
          these are now launched drones and die at the end of their lifetimes.
580
  <> moved Snap drones to notes / Position affects velocity from Menu > Drone Params > Motion to
581
     Menu > Drone Tools
582
  <> moved Bounces, rebound Speed% and drone bounce behaviour from Menu > Drone Params > Motion to
583
     Menu > Drone Params > Defaults as they apply equally to all launched drones
1831 jag 584
  * replaced drone Rise Time Min and Max spinners with a Rise time spinner
1830 jag 585
    + turn on ~ to generate a random rise time (default is 50% to 100% of Rise time) on drone creation
586
      + change range of randomness by editing %~ field
1831 jag 587
  * replaced drone Fall Time Min and Max spinners with a Fall time spinner
1830 jag 588
    + turn on ~ to generate a random fall time (default is 50% to 100% of Fall time) on drone removal
589
      + change range of randomness by editing %~ field
1829 jag 590
  + drones can bounce ahead, back or ahead/back
1839 jag 591
  + can select drones while voice phrasor plays
1831 jag 592
  + reinstated (from din-5.2.1 release!) a form of indian notation for notes
593
    + from Settings screen, choose notation = indian
1841 jag 594
  + a launched drone lifetime = lifetime of launcher or if ~ is active on Menu > Drone Params > Defaults > Lifetime
595
    a randomisation based on ~% of the lifetime of the launcher
596
 
1804 jag 597
  ! fixed bug when setting snap left/right values
598
  ! fixed mouse wheel scrolling of UI when hovering over label widget
1841 jag 599
  ! gravity continues tracking drone as its moved around or when scrolling microtonal keyboard
1804 jag 600
 
1792 jag 601
DIN Is Noise 51.1:
1795 jag 602
 
1792 jag 603
  * improved DIN font *
604
  ! fixed drone arrow defaults save/load !
1793 jag 605
 
1782 jag 606
DIN Is Noise 51:
1778 jag 607
 
1781 jag 608
   + drone is anchored or launched on creation
1764 jag 609
      anchored means stays fixed at the place of creation
1828 jag 610
      launched means 'flies' off based on its velocity and prevailing gravity
1753 jag 611
        try with Menu > Drone Tools > Add / Wand
1764 jag 612
      set at Menu > Drone Params > Defaults
1778 jag 613
 
1782 jag 614
  + set velocity +/ acceleration vectors of drones to presets via Menu > Drone Params > Motion > Set velocity/acceleration
1764 jag 615
    + presets are +ve or -ve vertical, horizontal, velocity, acceleration and zero
1778 jag 616
 
1731 jag 617
  + auto flip (clock < > anti-clock) auto rotating velocity/acceleration vectors every some degrees
1782 jag 618
    + via Menu > Drone Params > Auto flip > Set / Unset / Toggle
1764 jag 619
    + default 'every some degrees' is 90 degrees
1778 jag 620
 
1767 jag 621
  + gravity
1764 jag 622
    + presets for gravity vector
623
       0, left, right, up and down
1759 jag 624
    + gravity tracks mouse position
1763 jag 625
      + click Gravity > Mouse
1759 jag 626
    + gravity tracks the first among selected drones
1763 jag 627
      + click Gravity > Drone
1778 jag 628
        ! as drone selection changes, gravity may track a different drone !
1759 jag 629
      - removed Menu Drone Params > Track gravity
1778 jag 630
 
1782 jag 631
  + mesh polygon filling per drone color
1781 jag 632
 
633
  * color of a launched drone is same as color of the launcher
634
    * try changing color of the launcher as drones are launched
635
 
636
  * changed color of velocity/acceleration vectors to move away from green (used for selection) and red (used for errors)
637
    * cyan = color of velocity vector of all drones
638
    * (reddish) magenta = color of acceleration vector of all drones
639
 
1782 jag 640
  * changed arrow visualisation of velocity +/ acceleration vector of all drones
1767 jag 641
    * Head
642
      * edit the position of the arrow tip
1782 jag 643
        * can go 'above' the vector tip ie > 1.0
644
        * can go 'below' the drone location ie < 0.0
645
        * can be on the body ie 0 <= tip <= 1.0
1767 jag 646
    * Shoulder Position
647
      * edit position of the arrow's shoulder tips
648
    * Shoulder Width
649
      * edit width of the arrow's shoulder
1778 jag 650
    + Cap or Decap the arrow
651
 
1782 jag 652
  + set default arrow head, shoulder position and width, cap from Menu > Drone Params > Defaults
1785 jag 653
    + used when adding & wanding drones
1782 jag 654
    + change existing drone's velocity/acceleration vector arrow params via Menu > Drone Params > Visual
1778 jag 655
 
1760 jag 656
  + improved geometric chuck
1783 jag 657
    + on a chuck with N drones, the first N - 1 drones have trail set to 0
1749 jag 658
      + the last drone has trail set to 10000
1750 jag 659
    + toggle auto reset trails
660
      + Menu > Drone Params > Chuck > Auto reset trails
1765 jag 661
    + 2 changes above aid visualisation and experimentation instead of manual trail
1759 jag 662
      resize/reset every time after changing a chuck param
1750 jag 663
    + toggle chuck outline
1749 jag 664
      + click Menu > Drone Params > Chuck > Draw chuck outline
1759 jag 665
      + aids screenshotting
1785 jag 666
    + chuck outline drawn per drone color
1778 jag 667
 
1782 jag 668
  * default scale/rotate drones center to microtonal keyboard center
1778 jag 669
 
1782 jag 670
  * default selected range to C Eb
1778 jag 671
 
1759 jag 672
  + mouse wheel on microtonal keyboard to scroll along horizontal
673
    + press SHIFT and scroll to scroll along vertical
1778 jag 674
 
1781 jag 675
  * short form of echo command is .
1778 jag 676
 
1764 jag 677
  * improved bpm handling of drone pendulums and meshes
1778 jag 678
 
1759 jag 679
  * improved drone trail handling/display
1778 jag 680
 
1753 jag 681
  * close menu after setting modulation direction
1778 jag 682
 
1764 jag 683
  ! fixed bug in zoom of curve editor when mouse slider is active !
1763 jag 684
  ! fixed draw crosshairs on drone mesh preview !
1749 jag 685
 
1725 jag 686
DIN Is Noise 50.2 :
687
 
688
  :( fixed bug in drone modulation editor introduced in DIN 50 :)
1727 jag 689
  + set velocity/acceleration vector of drone(s) to vertical, horizontal, -velocity, -acceleration
1725 jag 690
  * UI dialog position improvements
691
 
1714 jag 692
DIN Is Noise 50.1 :
693
 
694
  :( fixed wrong Velocity and Acceleration directions on Auto Rotate :)
1720 jag 695
  :( fixed range modulation width/height spinner bug introduced in DIN50 :)
1714 jag 696
  * improved item list handling
697
 
1710 jag 698
DIN Is Noise 50:
1657 jag 699
 
1697 jag 700
  /* Wand drones into existense using Drone Tools > Wand
1676 jag 701
 
1697 jag 702
    /* tool toggles between Add and Wand modes
1685 jag 703
 
1708 jag 704
    /* In Add mode (the only mode until DIN49.1), you add a new drone by
705
       left clicking on the microtonal keyboard. You click and drag to
706
       'spray' new drones.
1685 jag 707
 
1708 jag 708
    /* In Wand mode (new in DIN 50), you simply wave the mouse to add drones on
709
       the microtonal keyboard. Use the Wand distance (Drone Params > Defaults)
710
       to control how close or spaced out the drones are to each other.
1677 jag 711
 
1697 jag 712
  /* new Drone Params > Defaults tab to set defaults for some drone parameters:
1677 jag 713
 
1697 jag 714
    /* wand distance - distance to move the mouse before DIN adds a drone in Wand mode.
1689 jag 715
 
1708 jag 716
      ! smaller distance means drones are created close together
717
      ! larger distance means drones are more spaced out
1689 jag 718
 
1697 jag 719
    /* type of drones wanded/added:
1689 jag 720
 
1697 jag 721
      1. immortal - drone forever until deleted << default and the only type until DIN49.1
1706 jag 722
      2. mortal - die after their lifetime << drones launched from another drone are this type
723
      3. reincarnate - die after their lifetime only to be (re)born immediately! << new to DIN 50!
1697 jag 724
 
725
    -> type of sound made by drones:
726
 
1706 jag 727
      -> moved from Drone > Tools in DIN 49.1
1697 jag 728
      -> drones a pitch/volume
729
      -> noise @ pitch/volume
730
 
1711 jag 731
    -> Drone rise (min, max), fall (min, max), lifetime and handle size.
1697 jag 732
      -> rise, fall times moved here from Settings screen
733
 
1708 jag 734
  /* Drone Tools > Immortalize to make drones immortal
1697 jag 735
  /* Drone Tools > Mortalize to kill drones after their lifetime
736
  /* Drone Tools > Reincarnate - drones rebirth after their death, immediately!
737
 
1708 jag 738
  /* Auto rotate Velocity or Acceleration or Both of selected drones from
739
     Drone Params > Motion tab
740
     /* @ RPM
741
     /* Clockwise or Anti-clockwise
742
     /* Start, Stop or Toggle
1697 jag 743
 
744
  /* Set AM and FM directions to
745
    /* Vertical, Horizontal, Velocity or Acceleration
746
    /* Until DIN 49.1:
1708 jag 747
      /* AM direction = Vertical
748
      /* FM direction = Horizontal
1697 jag 749
 
1708 jag 750
    !
751
      interesting fx possible via auto rotating velocity +/ acceleration and using them
752
      as modulation directions. also interesting to launch drones from auto rotating
753
      velocities.
754
    !
755
 
1699 jag 756
  /*
757
    DIN 50 introduces a virtual geometric chuck inspired by the geometric chuck,
1708 jag 758
    a drawing machine from the 19th century! DIN's chuck, made with a bunch
759
    of drones, not only draws (via drone trails) but also sounds notes
760
    (via snapping), drones or noises!
1699 jag 761
 
762
    To begin, select a bunch of drones and
763
      choose Drone Tools > Chuck
1706 jag 764
        DIN creates a geometric chuck with these drones
1708 jag 765
          Minimum 2 drones
766
          Good start = 3 drones
1699 jag 767
          Each drone rotates about the other
768
          1st drone is central, rotates about nothing, so stays still
769
            You can move this drone around and move the whole chuck
1708 jag 770
              The 2nd drone rotates about the 1st,
771
                The 3rd drone rotates about the 2nd,
772
                  and so on
1699 jag 773
 
774
          Browse the selected drones of the chuck with Drone Tools > Browse drone
775
          or press <- and -> to select a drone in the chuck and
776
 
777
          Adjust the speed at which this drone rotates about the other
778
          (Drone Params > Chuck > Speed), the distance at which it rotates
779
          (Drone Params > Chuck > Length), flip the direction of rotation
1708 jag 780
          (anti-clockwise < > clockwise) (Drone Params > Flip), pause/go
781
          (Drone Params > Chuck > Toggle) the rotation and draw a trail
782
          (Drone Params > Chuck > Trail length). Recommend trail on the last
1710 jag 783
          drone of a chuck to make drawing like the real geometric chuck
1699 jag 784
 
1749 jag 785
          Set Angle per turn to speed up (large angle) or slow down (small angle) the rotation
1708 jag 786
          of all the drones of (all) chuck(s).
1699 jag 787
 
1708 jag 788
          The drones of the chuck sound the pitch/volume they are on the microtonal keyboard.
789
          You can mute/unmute any / all of the drones of the chuck.
790
            Drone Tools > Mute, Drone Tools > Unmute
791
          You can convert any / all of the chuck's drones to noise (Drone Tools > Drone > Noise) or
1706 jag 792
          vice-versa.
1708 jag 793
            Drone Tools > Drone 2 Noise, Drone Tools > Noise 2 Drone
1699 jag 794
          You can snap drones of the chuck to sound notes
1708 jag 795
            Drone Params > Motion > Snap drones to notes > Set
796
 
1699 jag 797
  *\
798
 
1712 jag 799
  + stop drone decay (and death) if frozen
800
  + retime decay time of deleted drone(s) if you select drone(s) and delete again
801
 
1697 jag 802
  * change FM depth (like AM depth) by moving along vertical on mouse slider
803
    * moved along horizontal until DIN 49.1
804
  * change FM bpm (like AM bpm) by moving along vertical on mouse slider
805
    * moved along horizontal until DIN 49.1
806
  * helps with moving drones along circular paths at different speeds
1689 jag 807
  * improved value spinner UI
1663 jag 808
  * improved find_nearest_note (..) performance
809
  * improved drone trail performance
1710 jag 810
  * improved console text & value display
1651 jag 811
 
1642 jag 812
DIN Is Noise 49.1:
813
 
814
  ! fixed : crash from 'delays' editor when menu toggled and plugin browser fold toggled !
1643 jag 815
  /* multiple channel MIDI support
1635 jag 816
 
817
DIN Is Noise 49:
1610 jag 818
 
1615 jag 819
  /* position (instead of modulation until DIN48) affects velocity vector of drones
820
 
821
  /* Set center for rotation and scaling of drones:
822
 
823
    Menu > Drone Tools > Auto Center uses average center of selected drones
1625 jag 824
    Choose Menu > Drone Tools > Set to mouse and Click on it to set center to
825
    point under mouse cursor. Click to stop.
826
      You can also click and just move the magenta cross that marks the center
1615 jag 827
 
1610 jag 828
  on mouse slider:
829
 
830
  /* warp mouse position when rolling wheel
831
  /* press / to toggle warp mouse at boundary
1628 jag 832
 
1630 jag 833
  * improved the drone selector / drone mesh/pendulum preview on microtonal keyboard
834
 
835
  * show hz/vol for selected drones only (instead of all drones until DIN48)
836
 
1631 jag 837
  ! fixed: flip (using ` key shortcut) between instruments loads the correct editors !
1630 jag 838
 
1628 jag 839
  EXPERIMENTAL:
840
 
1629 jag 841
  /*  when scaling or rotating drones, change scale or angle increments using mouse slider (see
842
      DIN 48 CHANGELOG below for how to do this) to change scaling +/ rotation 'speed'
1607 jag 843
 
1629 jag 844
 
1596 jag 845
DIN Is Noise 48:
1553 jag 846
 
1601 jag 847
  /*  create drone pendulum based on number of drones instead of spacing
848
 
849
  /* convert selected pitched drones to noising drones and vice-versa.
850
    + CTRL + . to convert selected pitched drones to noising drones
851
      or Menu >> Drone Tools >> Drone > Noise
1558 jag 852
    + CTRL + , to convert selected noising drones to pitched drones
1573 jag 853
      or Menu >> Drone Tools >> Noise > Drone
1554 jag 854
 
1552 jag 855
  /* mute and unmute selected drones
1559 jag 856
    + SHIFT + , to mute selected drones or Menu > Drone tools > Mute
857
    + SHIFT + . to unmute selected drones or Menu > Drone tools > Unmute
1552 jag 858
 
1573 jag 859
  /* Zero and Reset gravity from Gravity widget
860
 
861
  /* Zero velocity of drones
862
 
1560 jag 863
  /* Start and End angles for geometry > sound plugins on curve editor
864
    + ie., Circler, Rose_Milker and Lissajous
1596 jag 865
      + you can now turn a part - an arc - of rose and lissajous curves into waveforms/envelopes/modulators!
1555 jag 866
    + Phase for Spiraler
1596 jag 867
      + End angle found from Turns
1552 jag 868
 
1582 jag 869
  /* Start, End points in Countries plugin on curve editors
870
 
871
    + turn 'arc' of a 'country polygon' into waveform/envelope/modulator
872
 
1592 jag 873
  /* set Phase of each harmonic in Sine_Mixer
1562 jag 874
 
1592 jag 875
    + press g to toggle between harmonics and phase 'levels'
876
    + Phase levels is blue
877
      + goes from 0 deg (bottom) to 360 deg (top)
878
 
879
  /* press f to toggle paint harmonics (or phase) in Sine_Mixer
880
 
1573 jag 881
  /* overlay last screen (instrument or editor) on curve editor
1564 jag 882
 
1577 jag 883
  /* !EXPERIMENTAL! mouse slider increment scaling
1571 jag 884
 
885
    When using mouse slider:
886
 
887
      press , to set increment to 1/N of original increment
1572 jag 888
      press . to set increment to Nx of original increment
1571 jag 889
      press 1,2,3...9 sets N = 1,2,3...9
890
      press 0 to set N = 10
891
      default N = 10
892
 
1552 jag 893
  /* if selected drones exist, set initial menu tab to Drone Params on microtonal keyboard
894
 
1555 jag 895
  * ` to flip to last screen
1532 jag 896
      * flip between editors
897
      * flip between instruments
1547 jag 898
 
1552 jag 899
  * improved curve editor
900
    * curve samples display, curve component picker, cursor display
901
 
1562 jag 902
  * improved auto splitting 'box that has a ball' in Mondrian
903
    * results in better trapping of ball(s) in box(es) :)
904
 
1596 jag 905
  ! fixed dont warp mouse when mouse slider activation aborted !
906
  ! fixed add/remove gravity widget on menu toggle !
1566 jag 907
  ! fixed load/save of launched drones !
1564 jag 908
  ! fixed reset velocity & gravity !
1557 jag 909
  ! fixed crash when clearing all harmonic bookmarks and moving sine mixer !
1539 jag 910
  ! fixed name of radius curve in spiraler plugin !
1547 jag 911
  ! fixed drones per minute as float instead of int !
1603 jag 912
  ! removed release location from the title bar as COVID-19 has grounded me in Chennai, India :( !
1539 jag 913
 
1530 jag 914
DIN Is Noise 47.1 @ Chennai, India
915
  * improved Spinner UI control
916
  ! removed 2 sets of log messages that may affect performance !
1514 jag 917
DIN Is Noise 47 @ Chennai, India
1527 jag 918
  + Menu > Drone Params now split into 3 tabs:
919
    + Modulation:
920
      + has controls to edit drone modulation parameters like AM/FM depth, BPM
921
    + Visual:
922
      + has controls to edit drone trail length, handle size,
923
        connection stiffness (see below), colors (see below) etc
924
    + Motion:
925
      + controls to edit drone parameters like velocity, acceleration,
926
        drones per minute, lifetime etc
1517 jag 927
 
1527 jag 928
  + On the mouse slider
929
    + when you can slide both horizontally and vertically:
930
      + press SHIFT to slide just vertically
931
      + press CTRL to slide just horizontally
1510 jag 932
 
1527 jag 933
  /* connect and disconnect drones
934
    + Workflow:
935
      + select a bunch of drones (eg., Menu > Drone Tools > Select all drones)
936
      + Menu > Drone Tools > Connect
937
        + DIN connects drones in selection order
938
          + points one drone to next
939
            + last drone points in the direction second last drone points
1517 jag 940
 
1527 jag 941
            + To select drones in desired order, select drones one at a time by
942
              click+moving a box around a drone and use SHIFT / CTRL keys while
943
              selecting to add to existing selection or remove a drone from selection
1517 jag 944
 
1527 jag 945
        + Steps @ 1 connects drones successively, this is default
946
          Steps @ 2 connects alternate drones
947
          Steps @ 1 2 does both
948
            try other steps sequences:
949
              eg., 1 3 5 OR 1 2 4 etc
950
              !note! separate steps with SPACE not comma
1517 jag 951
 
1527 jag 952
      + Just select a drone and move (Menu > Drone Tools > Move) and all the
953
        connected drones move to keep their original distance on connection.
1517 jag 954
 
1527 jag 955
          'But then one lizard (or iguana) moved, and all moved'
956
            - VS Naipaul, Among the Believers
1517 jag 957
 
1527 jag 958
        + Use Connection Stiffness parameter to control the 'elasticity' of
959
          the connections (Menu > Drone Params > Visual)
960
            + This is a global parameter, affects all connections among all drones
961
      + Menu > Drone Tools > Disconnect to disconnect the connected drones
962
        + Select a drone in the middle of a chain and disconnect splits the chain in two
963
        + Select the 'head' drones of two different chains and connect to merge the two
964
          chains into one
1517 jag 965
 
1527 jag 966
  /*  new curve & curve editor to sculpt amplitude (aka depth) & bpm of
967
      drone pendulum's drones
968
    + access using Menu > Editors > Drone Pendulum
969
    + edit curves even after creating drone pendulums!
970
      + affects drone pendulums selected drones belong to
971
      + use Menu > Overlay Instrument on the editor to see the effects of the
972
        edits while making them.
1517 jag 973
 
1527 jag 974
  /* new color sliders to set the color of selected drones
975
    + 2 sets of 3 sliders (1 for Red, Green and Blue).
976
      + Top set called Top
977
      + Bottom set called Bottom
978
      + Select some drones and
979
        + change color to Top to set color of all selected drones to the RGB of Top sliders
980
        + change color to Bottom to set color of all selected drones to RGB of Bottom sliders
981
        + change color to Blend to set color of all selected drones to RGB blended from Top to Bottom sliders
982
          + first selected drone color is from the Top sliders
983
          + last selected drone is from the Bottom sliders
984
          + other drones take inbetween colors
1517 jag 985
 
1527 jag 986
          + To select drones in desired order, select drones one at a time by click+moving a box
987
            around a drone and use SHIFT / CTRL keys while selecting to add or remove drone to an
988
            existing selection
1517 jag 989
 
1527 jag 990
        + change color to Random to set random colors on all selected drones
991
          + not truly random but a random color between RGB of Top and Bottom sliders
992
            + useful as colors are random but still from a certain part of the spectrum
1517 jag 993
 
1527 jag 994
      + If drones are noise, their color is grayscale, derived from just the Red channel of Top
995
        and/or/both Bottom sliders, based on the chosen scheme.
996
      + If you edit a color slider, DIN hides the menu so you can see the edits better, hit ESC or click on Close
997
        to finish/abort
1517 jag 998
 
1527 jag 999
  /* abort octave shift
1000
    + useful to take the key note away from 'piano notes' into 'weird' pitches yet still have 'scales' based on
1001
      this new key 'note'.
1002
        + without Abort this was still possible by editing the octave shift curve
1003
          (Menu > Editors > Octave Shift)
1004
    + to set the key back to a note, goto Settings screen and use the Key spinner
1005
    + click Menu > Misc > Abort on Microtonal-Keyboard, Mondrian and Binaural Drones instruments
1006
      + or press SHIFT + ESC
1007
    + click Abort button on Keyboard-Keyboard
1008
      + or press n
1517 jag 1009
 
1527 jag 1010
  /* edit arrow width, depth for each drone
1011
    + until DIN46, this was global
1012
    + very useful for snake/centepede like visualisations of connected drones
1517 jag 1013
 
1527 jag 1014
  * scale drones
1015
    * press CTRL to scale along horizontal
1016
    * press SHIFT to scale along vertical
1517 jag 1017
 
1527 jag 1018
  + moved Scale, Rotate drones to join Move in Menu > Drone Tools
1019
  + SHIFT + e to scale selected drones
1020
  + CTRL + e to rotate selected drones
1517 jag 1021
 
1527 jag 1022
  + press ` to flip between current instrument and last used curve editor
1517 jag 1023
 
1527 jag 1024
  + detach Spinners from Menu when using the < and > buttons to decrease/increase values
1521 jag 1025
 
1527 jag 1026
  * Optimised GUI controls
1027
    * field, spinner etc
1518 jag 1028
 
1527 jag 1029
  \0/ fixed crash when browsing waveforms on keyboard-keyboard
1030
  \0/ fixed search field in countries
1031
  \0/ fixed value field in number for bits of char
1514 jag 1032
 
1457 jag 1033
DIN Is Noise 46.2 @ Chennai, India
1527 jag 1034
  * optimised GUI controls a bit
1035
  * improved mirroring curve about horizontal, vertical axes
1036
    + new horizontal, vertical local axes
1037
  + new seed curves in fractaliser plugin
1038
  ! fixed bug in identifying and setting audio devices !
1039
    ! introduced in DIN 46 :( !
1457 jag 1040
DIN Is Noise 46, 46.1 @ Chennai, India
1527 jag 1041
  !+! what is fixed when modulating microtonal range?:
1042
        + left, right or center
1043
  !+! voice is voice or noise on microtonal keyboard
1044
      + voice intones the pitch under mouse cursor
1045
        + volume of voice is mouse's height above the bottom of the microtonal keyboard
1046
      + noise makes noise with frequency content related to pitch under cursor
1047
        + volume of noise is mouse's height above the bottom of the microtonal keyboard
1048
  !+! presets for superformula geometry > waveform/envelope/modulation curve plugin
1049
    + Click on Browse on Superformula page on a curve editor
1050
      + Mouse wheel or move up and down to browse the shapes
1051
        + Apply or Auto Apply
1052
  + toggle draw mesh outline
1053
  + improved scale/rotate drones
1054
  + improved selection of point modulators
1055
  + improved selection of sine mixer bookmarks
1056
  ! fixed modulate checkbutton set when Menu > Ranges > Toggle !
1057
  ! fixed window resize throws off mouse cursor on microtonal keyboard !
1058
  /!/ zooming curve editor when mouse captures are paused does not update visual !
1441 jag 1059
 
1426 jag 1060
DIN Is Noise 45 @ Chennai, India
1527 jag 1061
  ! fixed internal bug in noise generator !
1062
    + results in improved noise :)
1063
  + keys can trigger notes or noise on keyboard-keyboard
1064
    + ie keys from computer keyboard or MIDI keyboard
1065
    + press ENTER to toggle
1066
  - removed black/white notes display from MIDI keyboard input
1067
    + colored notes displayed instead
1068
  + balls can trigger notes or noise in Mondrian
1069
    + Select balls
1070
      + and Menu > Balls Triggers Note <> Ball Triggers Noise
1071
      + or press ENTER
1072
      + if there is no selection, all balls will trigger note (default)or noise
1426 jag 1073
 
1370 jag 1074
DIN Is Noise 44 @ Chennai, India
1355 jag 1075
 
1527 jag 1076
  !+! new noise generator in DIN Is Noise!
1077
    + using drone UI
1078
    + choose if a drone drones a pitch or makes noise
1079
      + Menu > Drone Tools > Drone is Drone OR Drone is Noise
1080
        + OR SHIFT + q
1081
      + when a drone makes noise:
1082
        + a low frequency 'drone' makes low frequency noise
1083
        + a high frequency 'drone' makes high frequency noise
1084
        + manipulate drones ie move, modulate, launch, orbit to
1085
          manipulate noises!
1086
        + choose Menu > Editors > Noise Interpolator to
1087
          + edit the noise sample interpolator curve
1088
 
1089
  + use drone pendulum's parameters to turn rows and/or columns
1090
    of a drone mesh into drone pendulums! :)
1091
      + works best when you make all drones of the mesh at the same time
1092
        + so set In seconds to 0
1093
        + and make drones in:
1094
          + ascending or descending rows
1095
          + ascending or descending columns
1096
      + apply to AM BPM and/or FM BPM to turn rows and/or columns of drone
1097
        mesh as drone pendulums!
1098
 
1099
  + flip button to flip start/end bpm of drones in drone pendulum
1336 jag 1100
 
1527 jag 1101
  + harmonic bookmarks on Sine Mixer
1102
    + click on + to bookmark selected harmonics
1103
    + click on - to delete selected bookmarks
1104
    + click on x to delete all bookmarks
1105
    + click bookmark to select harmonics linked to it
1106
      + SHIFT click to select more bookmarks
1336 jag 1107
 
1527 jag 1108
  + DIN switches menu to:
1109
    + Drone Params when drones selected
1110
    + Voice when Voice is enabled
1111
    + Ranges when a range is selected
1393 jag 1112
 
1527 jag 1113
  + new microtonal keyboard shortcuts:
1114
    + SHIFT + f selects range under cursor
1115
    + CTRL + f to switch between change note to note and change note by octave
1116
    + CTRL + v to change both notes (to another note or by octave) of current range
1117
    + CTRL + g to change left note (to another note or by octave) of current range
1118
    + CTRL + h to change right note (to another note or by octave) of current range
1119
    + SHIFT + b to change height of current range
1120
    + CTRL + b to change height of entire microtonal keyboard
1401 jag 1121
 
1527 jag 1122
  + rearranged menu items on Drone Params
1123
    + brought drone AM depth and FM depth together
1124
    + brought drone AM BPM and FM BPM together
1125
    + moved Rotate and Scale drones to Drone Params tab from Drone Tools tab
1411 jag 1126
 
1527 jag 1127
  + new ~ checkbutton on all spinners to toggle random increment
1128
    + click > on spinner to edit random increment
1129
      + in field after ~ label
1130
      + default is -100% to 100% of steady increment ie value in +- field
1411 jag 1131
 
1527 jag 1132
  + press ESC to abort active octave shift on current instrument
1411 jag 1133
 
1527 jag 1134
  + press g to toggle draw cursor guide on curve editors
1135
    + useful for aligning curve components
1136
    + activate with keyboard shortcut only, may appear on menu in future
1376 jag 1137
 
1527 jag 1138
  * improved turn and speed ball operator on Mondrian
1139
    + using new noise / random algorithm!
1336 jag 1140
 
1527 jag 1141
  * improved bezier curve generation
1362 jag 1142
 
1527 jag 1143
  * improved expression evaluation in numeric fields
1362 jag 1144
 
1527 jag 1145
  * improved warper default curves
1396 jag 1146
 
1527 jag 1147
  * improved waveforms library
1396 jag 1148
 
1527 jag 1149
  ! fixed bug: DIN may crash when deleting a vertex of curve that has point modulation !
1150
  ! fixed bug: make absolute values of a binaural pair available for editing
1151
               when selection changed from multiple pairs to one pair. !
1152
  ! fixed bug: num pad + and - to change slit size on Mondrian !
1153
  ! fixed bug: non decaying notes when ball volume < 0 on Mondrian !
1154
  ! fixed bug: in display of Selected Range number on Microtonal Keyboard!
1155
  ! fixed bug: reposition drones when left note of first range, right note of last range changed !
1156
  ! fixed bug: in 2600 patch !
1157
  ! fixed typo: paris instead of pairs in binaural drones instrument !
1300 jag 1158
 
1278 jag 1159
DIN Is Noise 43 @ Chennai, India
1527 jag 1160
  + move groups of harmonics on sine mixer
1161
    + shift + click harmonic on sine mixer to select / deselect
1162
    + moving one of the selected harmonics moves all the selected harmonics
1163
      'But then one lizard (or iguana) moved, and all moved'
1164
        - VS Naipaul, Among the Believers
1165
      + but shift when moving moves just the selected harmonic
1166
    + all, none, invert buttons for gross selection
1167
  + resize phrase position slider
1168
    + DIN saves/reloads slider
1169
  + change both notes of selected range using mouse slider
1170
    + Use Menu > Ranges > Change note? > Both
1171
  - removed Change Left note, Change Right note menu items in Menu > Ranges
1172
    + replaced with Change note? Left Right Both menu items
1173
  + scrub / scratch point modulations
1174
    + click on Scrub and move up or down
1175
  + Sync on Point Modulator
1176
    + workflow is
1177
      + select modulations
1178
        + pause
1179
        + sync
1180
        + play
1181
  + voice volume minimum can be < 0 [voice waveform flips]
1182
  + spinner to set absolute drone master volume
1183
    + drone master volume can be < 0 [drone waveform flips]
1184
  - removed mute drones button
1185
      * just spin drone master volume to 0
1186
  + save/load auto apply state on sine mixer
1187
  + save/load drone selection state
1188
  + save/load drone frozen state
1189
  + save/load plugins fold state for each curve editor
1190
  + save/load auto select launched drones flag
1191
  + turn on/off UI in all screens, not just in instruments
1192
    * optimised
1193
  + click repeat of Apply button and key repeat of shortcut r for continous apply
1194
    of plugin output to curve
1195
    + useful/interesting when point modulating custom sin/cos/radius curves etc
1196
  + drones per minute is floating point instead of integer
1197
  * improved phrase handling for voice on microtonal keyboard
1198
  * improved plugin browser on curve editors
1199
  * changed default drone handle size to 3
1200
  ! fixed bug: turning on/off ui on point modulator may crash DIN42 !
1201
  ! fixed bug: pressing shift/ctrl effected selection box when not previewing mesh !
1202
  ! fixed bug: changing parameters on Number plugin didnt update preview !
1203
  ! fixed bug: frozen drones saved to disk thawed on reload !
1204
  ! fixed bug: didnt save/load turns on spiraler !
1205
  ! fixed bug: rotate/scale of drones happened in UI loop, now moved to audio loop !
1206
  ! fixed bug: stopped gravity editing when menu displayed !
1229 jag 1207
 
1141 jag 1208
DIN Is Noise 42 @ Chennai, India
1527 jag 1209
  Dedicated to Dad, Mr Narasimhan Sampath [06-10-1943 >> 16-04-2019]
1210
  +++ Point Modulator on all curve editors, new for DIN42 +++
1211
    + modulate any point on any bezier curve along horizontal (ie X) and
1212
      vertical (ie Y) axis over BPM
1213
      + eg., when done on a waveform, leads to timbral modulation, look @ the FFT :)
1214
          + try on shapeforms too!
1215
          + try on decays, delay feedback and volumes, pitch and range modulation
1216
            curves etc etc!
1217
    + to modulate, click on the + button on the Point Modulator panel
1218
      + now pick a point on curve (any vertex or tangent) to modulate
1219
        + DIN draws a dotted line joining a state button to the point on curve
1220
          + nothing is modulating yet
1221
        + change X depth to modulate the point along horizontal axis over BPM
1222
          + the point should start moving along the horizontal
1223
        + change Y depth to modulate the point along vertical axis over BPM
1224
        + change X BPM and Y BPM to change the rate ie speed of modulation of the point
1225
        + when more than one point is modulating,
1226
          + click on None to deselect all modulating points
1227
          + click on a point's state button to change modulation params for just that point.
1228
            + use the X depth/BPM, Y depth/BPM spinners to change the params
1229
          + use All, None and Invert to select more than one state button and thus more than
1230
            one point.
1231
            + use the X depth/BPM, Y depth/BPM spinners to change params for selected points
1232
    + press play button to toggle point modulation of selected points
1233
    + press kill button to kill point modulations of selected points
1234
    + point modulations are saved [and loaded] to [from] disk :)
1200 jag 1235
 
1527 jag 1236
  +++ Captures - mouse capture panel on all curve editors, new for DIN42 +++
1237
    + play, pause and kill captures
1238
    + To record a mouse capture, position mouse on the curve item
1239
      that you want to assign the mouse capture, choose Menu > Mouse capture > Start,
1240
      move mouse as you please and click or ESC to finish.
1241
    + To assign the mouse capture, choose Menu > Mouse capture > Assign and pick
1242
      the curve item to assign the mouse capture.  You can assign the same mouse
1243
      capture to other items by repeating the same.
1244
    + mouse capture is *not* saved to disk [maybe in a future release]
1200 jag 1245
 
1527 jag 1246
  + Overlay pitch and volume distrubution on microtonal-keyboard:
1247
    + Menu > Misc > Overlay pitch distribution
1248
    + Menu > Misc > Overlay volume distribution
1249
    + Pixels Per Level
1250
      + more pixels, less acurate rendering of distribution but faster
1251
      + less pixels, more accurate rendering of distribution but slower
1252
      + Default is 5 pixels
1253
  + Mirror whole curve or curve vertex/tangent about Horizontal and Vertical axis
1254
  + Swap 2 curves [experimental, only works on editors with 2 curves]
1255
  - removed Close button from Menu
1200 jag 1256
 
1124 jag 1257
DIN Is Noise 41 @ Chennai, India
1527 jag 1258
  +++ non-linear pitch and volume distributon on all microtonal-keybard ranges +++
1259
    ! until DIN 40, pitch increased steadily from left note to right note on all
1260
      microtonal ranges !
1261
    ! until DIN 40, volume increased steadily from the bottom to the top on all
1262
      microtonal ranges !
1263
    + in DIN 41, edit the pitch distribution curve to non-linearly change the pitch
1264
      when going left to right in a microtonal range.
1265
        + Menu > Editors > Range Pitch & Volume
1266
    + in DIN 41, edit the volume distribution curve to non-linearly change the volume
1267
      when going from bottom to top of a microtonal range.
1268
        + Menu > Editors > Range Pitch & Volume
1269
    + Voice and Drones all pick up changes to range width+height, range pitch+volume curves
1270
    + Press INSERT on microtonal-keyboard to toggle overlay of volume distribution
1271
    + Press END on microtonal-keyboard to toggle overlay of pitch distribution
1122 jag 1272
 
1527 jag 1273
  +++ drone pendulum +++
1274
    + inspired by wave pendulum toy/experiment from physics
1275
    + Menu > Drone Tools > Create drone pendulum
1276
      + click and drag a box to create drone pendulum
1277
      + spacing determines the number of drones made along orientation
1278
        + low spacing = large number of drones
1279
          high spacing = small number of drones
1280
      + orientation
1281
        + vertical
1282
          + frequency changes more than volume
1283
            + change FM depth, bpm for interest
1284
        + horizontal
1285
          + volume changes more than frequency
1286
            + change AM depth, bpm for interest
1122 jag 1287
 
1527 jag 1288
  + press SHIFT or CTRL to square the selection box
1289
    + SHIFT chooses lesser of width or height
1290
    + CTRL chooses greater of width or height to square mesh
1291
    + squaring useful when creating mesh and drone pendulums
1292
 
1293
  + ESC or Right click from Settings screen to come back to previuos screen
1122 jag 1294
 
1527 jag 1295
  - removed F8 = mouse capture assign and F9 = mouse capture delete
1296
    - Please use Menu > Tools > Mouse capture > Assign or Delete
1123 jag 1297
 
1527 jag 1298
  ! FIXED: curve picker display !
1299
  ! FIXED: menu items on curve editor !
1101 jag 1300
 
1088 jag 1301
DIN Is Noise 40 @ Chennai, India.
1527 jag 1302
  + Wrap checkbutton on Sine Mixer to toggle wrapping of harmonics when sliding them
1303
      - always wrapped harmonics until DIN 39
1088 jag 1304
 
1527 jag 1305
  + defered creation of drones of the drone mesh
1306
    - all drones were created at the same time until DIN 39
1307
    + affects their phase so affects their visual modulation
1308
      + visible and audible when you do FM / AM
1309
    + different creation schemes:
1310
      + ascending/descending rows and columns, random, nearest/farthest from various
1311
        end points, random and custom point
1088 jag 1312
 
1527 jag 1313
  + set width and height of all microtonal ranges by sculpting curves range-width
1314
    and range-height in the new Range Width & Height editor
1315
    + invoke editor with Menu > Editors > Range Width & Height
1316
      + useful to overlay the microtonal keyboard when on the editor
1317
        + press o or Menu > Tools > Overlay Instrument
1318
    + sculpting the curves is another way to do mircotonal range modulation :)
1319
      ! automate by assigning mouse capture to points !
1088 jag 1320
 
1527 jag 1321
  + randomize increment on a value spinner:
1322
    + click on right arrow beside the value field to reveal ~ checkbutton
1323
      + turn increment randomization on/off by clicking on the ~ checkbutton
1324
        + default randomisation of increment is -100% to 100% ie no
1325
          increment at all to twice the increment
1326
            + change this value in the field to change the randomisation
1327
              eg., 0 100 means increment to twice the increment
1088 jag 1328
 
1527 jag 1329
  + direction indicators on mouse slider
1330
    + move along indicated directions to change parameter
1088 jag 1331
 
1527 jag 1332
  + new checkbox Overlay Instrument on all curve editors
1333
    + overlays the current instrument on the curve editor
1088 jag 1334
 
1527 jag 1335
  * changed widgets on the keyboard-keyboard:
1336
    * voices attack time, decay time
1088 jag 1337
 
1527 jag 1338
  * can now constrain drone scaling (Menu > Drone Tools > Scale) to horizontal or vertical axis.
1339
    * default is uniform scaling along both horizontal and vertical axes
1340
    * press SHIFT to scale selected drones along horizontal only
1341
    * press CTRL to scale selected drones along vertical only
1088 jag 1342
 
1527 jag 1343
  ! FIXED set drone master volume increment to 0.1 !
1344
  ! FIXED countries plugin preview !
1345
  ! FIXED drone mesh preview display !
1346
  ! FIXED fold arrow button color on oscilloscope !
1347
  ! FIXED no pitch/volume display when cursor on widgets on microtonal keyboard !
1074 jag 1348
 
953 jag 1349
DIN Is Noise 39 @ Chennai, India.
1527 jag 1350
  + change left or right note of the current microtonal range
1351
    + change to another note of the scale or any note in tuning
1352
    + using Menu > Ranges > Change left note
1353
    + using Menu > Ranges > Change right note
1354
    + use range picker to pick the microtonal range
1355
  + browse selected drones to pick one
1356
    + DIN hilites picked drone with green cross hairs
1357
    + press LEFT ARROW to pick previous drone
1358
    + press RIGHT ARROW to pick next drone
1359
    + when you reach the end, DIN picks all drones in the original selection.
1360
      + can keep browsing if you like
1361
    + you can apply any drone operation to this picked drone
1362
      eg., launch/stop launch drones from this drone and so on.
1363
    + aliter Menu > Drone Tools > Browse Drone
1364
  + snap selected drones to notes
1365
    ! DIN snapped all drones to notes until version 38a !
1366
    + allows for some drones to snap to notes and others to roam free
1367
    + select a bunch of drones and
1368
      + k to toggle snap drones to notes
1369
      + SHIFT + k to snap drones to notes
1370
      + CTRL + k to unsnap drones from notes
1371
      + aliter Menu > Drone Params > Snap drones to notes
1372
        + Set, Unset and Toggle
1373
    + use Snap Left and Snap Right to determine how drone snaps to left or
1374
      right note of the microtonal range:
1375
        + eg., if Snap Left = 0.25 and Snap Right = 0.75 drone snaps to left note
1376
        if the drone is in first 25% of microtonal range's width, snaps to the right
1377
        note if its beyond 75% of the microtonal range's width.
1378
        + eg., if Snap Left = 0.5 and Snap Right = 0.5 too, drone snaps to left note
1379
        for the first 50% of the microtonal range's width and then snaps to the right
1380
        note for the remaining 50% of the microtonal range's width ie the drone always
1381
        snaps to a note.
1382
  + modulation now affects velocity vector of selected drones
1383
    + select a bunch of drones and
1384
      + v to toggle
1385
      + SHIFT + v to let modulation affect velocity vector of selected drones
1386
      + CTRL + v to not let modulation affect velocity vector of selected drones
1387
      + aliter Menu > Drone Params > Modulation Affects Velocity
1388
        + Set, Unset and Toggle
1389
  + added Curve Mix Samples to specify Curve Mix Time in samples
1390
    + allows for very small curve mix times
1391
    + changing this value changes Curve Mix Time and vice-versa.
1392
    + also changes when sample rate changes
1393
  + turns is now floating point (was integer) in spiraler
1394
    + allows for both partial and complete turns eg., 1, 1.25, 1.5, 1.75, 2 turns.
1395
  + press l to toggle label vertices on any curve editor
1396
  + RPM increment is 1.0 on curve editor
1397
  * default Curve Mix Time is now 1 seconds
1398
  * improved Mirror style of snap drones to notes
1399
  * improved drone pitch / volume tagging
1400
  ! OPTIMISED plugins circler, rose milker, spiraler, sine mixer, lissajous !
1401
  ! FIXED select attractors from any selection of drones !
1402
  ! FIXED Record and Clear Phrase in Menu > Voice !
1403
  ! FIXED labeling of notes on Mondrian when tuning changes !
1404
  ! FIXED Drone Master Volume display !
1405
  ! FIXED Gravity tracks snapped x of drone instead of absolute x of drone !
1406
  ! FIXED default modulation width for all ranges is 0 !
953 jag 1407
 
893 jag 1408
DIN Is Noise 38a @ Chennai, India:
1409
  ! fixed pitch/volume of suitable drones when range left, right or
1410
    height is changed
953 jag 1411
 
888 jag 1412
DIN Is Noise 38 @ Chennai, India
1527 jag 1413
  * plugins window on curve editors folded on DIN start.
1414
  + snap drones to notes styles:
1415
    + free - any value on snap left, right
1416
    + lock - snap left equals snap right
1417
    + mirror -
1418
      + if snap left = i, then snap right = 1 - i
1419
        eg., snap left = 0.25, snap right = 0.75
1420
  + cosmetics: edit drone arrow depth and width.
1421
  + full microtonal range modulation on microtonal-keyboard
1422
    + modulate width and height of a microtonal range over BPM.
1423
    + start/stop/pause-resume/toggle of modulation
1424
    + affects voice and drones
1425
      + because the pitch/volume the voice and drones point to modulates
1426
  + edit height of every microtonal range
1427
    + or edit height of all ranges
1428
  + set curve mixing time to audio buffer time on Settings screen.
1429
  + shift + i on mondrian toggles label pitch/volume of notes
888 jag 1430
 
766 jag 1431
DIN Is Noise 37a @ Chennai, India on September 21, 2018:
1527 jag 1432
  on microtonal-keyboard:
1433
    + SHIFT + l to select all drone launchers
1434
    + SHIFT + j to show/hide pitch volume info of drones
1435
    -> moved some menu items from Drone Tools to Drone Params
1436
    -> moved some menu items from Drone Params to Drone Tools
1437
    + modulation affects velocity vector checkbox
1438
    + 2 styles of bounce for drones reaching the bottom of the microtonal keyboard:
1439
      + forward - like a bouncing ball
1440
      + back - inspired by alpha particles - Search Rutherford Scattering on Wikipedia.
1441
    + save/restore of snap to notes
1442
    + reset selected drones' velocity vector to vertical
1443
    + reset gravity vector
1444
      + to pointing down
1445
      + optionally keep last size
1446
    ! fixed adjust range left / right / both to respect limits !
1447
    ! fixed divide by 0 bug on bouncing drones !
1448
  + taller levels on Sine Mixer plugin for finer control of harmonics levels
1449
  * moved FFT display to lower corner of waveform editors
1450
  * improved the bezier curve solvers
1451
  + DIN uptime listed in log
739 jag 1452
 
704 jag 1453
DIN Is Noise 36 @ Chennai, India
1527 jag 1454
  + Sync button on settings screen sets same L and R delay times
1455
  + settings screen now on curve editors too
1456
  + mouse wheel on value field of a spinner increments / decrements value
1457
  + velocity heading faces direction of modulation when drone isnt tracking, orbiting
1458
  + adjust board height, range left, right & both using mouse slider from Menu > Misc
1459
    or moving under gravity
1460
  + << or >> to shift harmonics on sine mixer. results in apply
1461
  + change height of sine mixer by moving the little button to the right of all harmonics
1462
    + allows for finer change of harmonic level
1463
  + adjust amount that snaps drone to the left or right note of microtonal range
1464
    + default snap to left is 0.5
1465
      + ie drone snaps to left note if its at <= 0.5 of the range
1466
    + default snap right is 0.5
1467
      + ie drone snaps to right note if its at >= 0.5 of the range
1468
  ! fixed +- position on spinner ui control
1469
  ! fixed voice, delay, gater buttons response when clicked during fade in/out
1470
  ! fixed drone response when deleted but is actually fading in
1471
  * rearranged menu items: am depth/bpm and fm depth/bpm on Voice and Drone Params,
1472
    velocity/rotate-velocity/acceleration on Drone Tools
690 jag 1473
 
651 jag 1474
DIN Is Noise 35 @ Chennai, India
1527 jag 1475
  + Major expansion to Binaural drones instrument
1476
    + See new docs at https://dinisnoise.org/docs/ for details
1477
  + binaural drones now saved with their phase at exit to reproduce sound on restart.
1478
  ! fixed crash when ball deleted and auto split box wants to split box that had deleted ball
1479
  ! fixed memory leak when a binaural drone pair was removed
1480
  * mark if L or R channel is stronger on oscilloscope with a @
690 jag 1481
 
527 jag 1482
DIN Is Noise 34 @ Chennai, India
1527 jag 1483
  + Pick a box that has a ball to:
1484
    + Auto split box,
1485
      + can be used to trap a bouncing ball
1486
    + Auto delete box
1487
  * Slit operations
1488
    NEW! F11 to Remove slits on a box that has a ball
1489
    NEW! F12 to Remove all slits
1490
  + Label pitch and volume on:
1491
    + Mondrian
1492
    + Microtonal-Keyboard:
1493
      * click on i to label pitch/volume on the board and cursor
1494
      + click on j to label pitch/volume of the drones
1495
  + Change Drone Rise (attack) and fall (decay) times:
1496
    + When drone is made or launched:
1497
      + A rise ie attack time is randomly chosen between Drone Min Rise Time
1498
        and Drone Max Rise time.
1499
    + When a drone is deleted or killed:
1500
      + A fall time is randomly chosen between Drone Min Fall Time
1501
        and Drone Max Fall time.
1502
    + Change times on the Settings screen
1503
  ! fixed ie disabled moving the oscilloscope when menu is showing
526 jag 1504
 
527 jag 1505
DIN Is Noise 33 @ Chennai, India
499 jag 1506
 
1507
+ 5th ball operation :)
1508
  + Transform
1509
    + transforms a ball into an another type of ball or a random type
1510
      + so a bouncer can become
1511
        + a healer
1512
        + a wrecker or
1513
        + a random type ie remain a bouncer, become a healer or a wrecker
1514
      + a wrecker can become
1515
        + a healer
1516
        + a bouncer or
1517
        + a random type ie remain a wrecker, become a healer or a bouncer
1518
      + and a healer can be come
1519
        + a wrecker
1520
        + a bouncer or
1521
        + a random type ie remain a healer, become a wrecker or a bouncer
1522
      + the transform rules are global ie same for all balls
1523
    + does it Every few seconds
1524
+ Mouse wheel to scroll menu items
1525
 
482 jag 1526
DIN Is Noise 32 @ Palazzolo Acreide, Italy
1527
 
1528
+ 4 new ball operations in the Mondrian instrument
1529
 
1530
  + Apply per ball
1531
    + eg., different balls, different operations
1532
 
1533
  + Turn
1534
    + randomly turns a ball clockwise or anti-clockwise by some degrees
1535
    + does it Every few seconds
1536
    + Clockwise is max degrees the ball will turn clockwise
1537
    + Anti-clockwise is max degrees the ball will turn anti-clockwise
1538
    + Sync keeps Clockwise and Anti-clockwise same for turning equally likely in both directions
1539
 
1540
  + Speed
1541
    + randomly speeds up or slows down a ball
1542
    + does it Every few seconds
1543
    + Brake = how much to slow down each time
1544
    + Accelerate = how much to speed up each time
1545
    + Sync keeps Brake and Accelerate same for equally likely speed changes
1546
 
1547
  + Teleport
1548
    + randomly moves the position of a ball by some distance
1549
    + does it Every few seconds
1550
    + upto a Maximum distance
1551
 
1552
  + Clone
1553
    + clones the selected ball
1554
    + Offsets it away from the parent
1555
    + Every few seconds
1556
    + upto Max Clones
1557
    + when turned on, Clone can clone too
1558
      + careful, because clone's clone will clone too
1559
        + and its clone will clone too
1560
          + and on
1561
            + and on
1562
              + and on!
1563
    + Max balls keeps cloning under control
1564
      + Or select all balls, wait for the new clones to appear and delete selection.
1565
        + this leaves just the new clones
1566
          + but labor intensive :)
1567
 
1568
  ! Use Turn and Speed together to make insect / worm like crawling movements :)
1569
    + "Go to the ant, thou sluggard; consider her ways, and be wise.."
1570
      +  Proverbs 6:6-8, The Bible.
1571
 
1572
! Fixed bug on auto-split box which created full boxes instead of splitting the box when no notes are available to split on.
1573
 
1574
+ Turn On / Off drawing of ball Position, Heading and Trails
1575
 
1576
+ Theming of GUI possible by editing globals file
1577
  + on Windows its factory/globals
1578
  + on GNU/Linux its usually /usr/local/share/din/factory/globals
1579
  + on Apple Mac OS X its Applications/DIN Is Noise.app/Contents/Mac OS X/factory/globals
1580
 
1581
+ PREFIX variable on GNU/Linux allows correct installation on directories other than /usr/local
1582
 
429 jag 1583
! DIN Is Noise 31 @ Chennai, India
1584
 
482 jag 1585
  ! RELEASE WITHDRAWN, USE DIN Is Noise 32 !
1586
 
1527 jag 1587
  + 3 new ball operations
429 jag 1588
 
1527 jag 1589
    + Apply per ball
1590
      + eg., different operations on different balls
429 jag 1591
 
1527 jag 1592
    + Turn
1593
      + randomly turns a ball clockwise or anti-clockwise by some degrees
1594
      + does it Every few seconds
1595
      + Clockwise is max degrees the ball will turn clockwise
1596
      + Anti-clockwise is max degrees the ball will turn anti-clockwise
1597
      + Sync to keep Clockwise and Anti-clockwise same to turn equally likely in both directions
429 jag 1598
 
1527 jag 1599
    + Speed
1600
      + randomly speeds up or slows down a ball
1601
      + does it Every few seconds
1602
      + Brake + how much to slow down each time
1603
      + Accelerate + how much to speed up each time
1604
      + Sync to keep Brake and Accelerate same for equally likely speed changes
429 jag 1605
 
1527 jag 1606
    ! Use Turn and Speed together to make ant / worm like crawling movements :)
429 jag 1607
      + "Go to the ant, thou sluggard; consider her ways, and be wise.."
1608
          - Proverbs 6:6-8, The Bible.
1609
 
1527 jag 1610
    + Teleport
1611
      + randomly moves the position of a ball by some distance
1612
        + does it Every few seconds
1613
        + upto a Maximum distance
429 jag 1614
 
1527 jag 1615
  + Turn On / Off drawing of ball Position, Heading and Trails
429 jag 1616
 
1527 jag 1617
  + Theming of GUI possible by editing globals file
1618
      + on Windows its factory/globals
1619
      + on GNU/Linux its /usr/local/share/din/factory/globals
1620
      + on Apple Mac OS X its Applications/DIN Is Noise.app/Contents/Mac OS X/factory/globals
429 jag 1621
 
1622
- DIN Is Noise 30
1527 jag 1623
  + auto split boxes in mondrian
1624
  + auto delete boxes in mondrian
1625
  + can do both at the same time
1626
  + browse selected balls using arrow keys
370 jag 1627
 
318 jag 1628
  * optimised note and N x N grid creation on Mondrian
340 jag 1629
    * one box per frame
1630
  * optimised delete all boxes
1631
    * one box delete per frame
370 jag 1632
 
359 jag 1633
  + warper plugin maps bounding box of input curve to target
1634
    + instead of mapping on XY space to another
1635
      + works better for classical as well as shapeforms
370 jag 1636
 
340 jag 1637
  * 9, 0 to decrease/increase points of note polygon
1638
  * SHIFT + 9, 0 to decrease/increase radius of note polygon
370 jag 1639
 
318 jag 1640
  + sine/cosine editor has plugin support
370 jag 1641
 
375 jag 1642
  * reorganised countries
349 jag 1643
  * reorganised waveforms library
370 jag 1644
 
375 jag 1645
  + can make install on GNU/Linux
333 jag 1646
 
284 jag 1647
- DIN Is Noise 29 is Free Software
1527 jag 1648
  - under GPL 2.0 for GNU/Linux
1649
  - released in Chennai, India on September 8, 2017
284 jag 1650
 
1527 jag 1651
  * Please dont use this code to build binaries for Windows or Mac OS X *
1652
  * I sell licenses for those binaries to barely support myself *
1653
  * Please consider funding my independent work on DIN Is Noise > http://dinisnoise.org/fundin/ *
284 jag 1654
 
1655
- !fixed crash! when moving whole curve on the curve editor
1656
  - introduced in DIN28. not in earlier versions.
1657
- !new! mouse slider
1658
  - activate by just clicking on a spinner's name.
1659
    - most spinners everywhere qualify:
1660
      - menu, plugins
1661
        - even settings screen
1662
          - try changing the key note while making sounds on your chosen instrument :)
1663
            - works well on Microtonal Keyboard & Mondrian
1664
      - note: some spinners are disabled, nothing happens when you click them.
1665
  - change the value of the spinner by simply moving the mouse along the mapped axis: X or Y [can be both too, see below]
1666
  - you can attach multiple spinners to the mouse slider and change the value of multiple parameters at the same time!
1667
    - just shift+click to add a spinner to the mouse slider
1668
      - shift+clicking doesnt activate the mouse slider yet.
1669
    - the attached spinner turns green
1670
    - detach the already attached spinner by shift+clicking on it again.
1671
      - the detached spinner reverts to red
1672
    - to launch the slider just click ie dont press shift on the last spinner
1673
    - with multiple spinners on the mouse slider, movement along both X and Y can change the values of appropriately mapped spinners.
1674
    - to stop the mouse slider just click or press ESC.
1675
    - changing the axis assigned to a spinner is not possible in this release
1676
  - things to try:
1677
    - make a group of drones
1678
    - select
1679
      - FM and AM depth spinners or
1680
      - FM and AM BPM spinners
1681
      - or all of them at the same time :)
1682
      - FM mapped to X
1683
      - AM mapped to Y
1684
      - move along X, Y to do visual drone FM, AM!
1685
    - select these drones and launch drones from them: Menu > Drone tools >Launch
1686
    - select Change velocity and Rotate velocity spinners
1687
      - move along X to rotate velocity
1688
      - move along Y to increase/decrease velocity
1689
      - loud crazy action :)
1690
    - play with drone life times:
1691
      - Menu > Drone tools > Select launchers
1692
      - Menu > Drone parameters > Change lifetime
1693
        - move in X!
1694
 
210 jag 1695
August 1, 2017:
1696
 
1697
! Released DIN Is Noise 28 as Free Software !
1698
 
1699
+ freeze / thaw moving drones
1700
 
1701
  - j to freeze/thaw selected moving drones
1702
    - or Menu > Drone Tools > Freeze, Menu > Drone Tools > Thaw
1703
    - tip: try on visually modulating drones, combine with k ie snap drones to notes :)
1704
  - shift + h to toggle auto-select launched drones
1705
    - for easy freeze/thaw of launched drones
1706
    - tip: select the launchers first (Menu > Drone Tools > Select launchers) and then shift + h.
1707
    - possible from menu too.
1708
 
1709
+ animated slits in Mondrian
1710
  - select slits
1711
    - g to toggle selection target between balls and slits
1712
      - or from menu, change Selection Target
1713
    - other selection short cuts same as short cuts for ball selection
1714
      - l - to select all slits
1715
      - k - to select slits of box
1716
      - i  - to invert selected slits
1717
      - n - to clear selection
1718
      - when no slits are selected and an operation requires a slit [say, toggle animation or change slit open/close time], DIN selects slit under cursor.
1719
      - all possible from menu
1720
  - animate slits
1721
    - h to toggle animation
1722
    - INSERT / DELETE keys to decrease/increase slit open/close time
1723
    - all possible from menu too.
1724
 
1725
* keyboard shortcut changes to microtonal-keyboard
1726
  - l, i targets drones on microtonal-keyboard just like l, i targets balls or slits in Mondrian.
1727
  - l to select all drones
1728
    - l was orbit selected drones
1729
      - now its F4
1730
  - i to invert selected drones
1731
    - i was pitch/volume info display
1732
      - now its shift + i
1733
      - or click i on bottom of microtonal-keyboard
1734
  - j to toggle freeze/thaw selected moving drones
1735
    - or Menu > Drone Tools > Freeze, Menu > Drone Tools > Thaw
1736
  - k to snap drones to notes
1737
    - was Show Anchors, now from Menu > Drone Parameters only
1738
 
1739
* just click + move mouse not drag to edit vertex/tangent in curve editors
1740
 
1741
* just click + move mouse not drag on all sliders and sine mixer levels
1742
 
1743
* fixed ball color due to Mondrian > Menu > Clear Modulations
1744
 
1745
* click + move mouse not drag to move blue triangle to set sustain on keyboard-keyboard attack
1746
 
1747
* rearranged microtonal-keyboard menu
1748
  - new Voice menu
1749
  - new Drone_Tools menu
1750
  - new Drone_Parameters menu
1751
  - new select launchers command on menu to select drone launchers
1752
 
1753
+ vanity command uptime to print the amount of time that DIN has been running
1754
  - eg., 1 hour 29 minutes 58 seconds
1755
 
1756
+ new patch called harmonics to animate harmonics of sine mixer
1757
  - load-patch harmonics
1758
  - set harmonics {0 1 2 3} ;# first 4 harmonics will be animated
1759
    - set harmonics [get-nums 0 19] ;# all harmonics
1760
    - set harmonics [get-nums 1 19 2] ;# odd harmonics
1761
    - set harmonics [get-nums 0 19 2] ;# even harmonics
1762
  - set duration 0.1 ;# 1/10th of second
1763
  - set amount 0.01 ;# amount to animate each chosen harmonic every duration
1764
  - set anim 1 ;# 1 - start anim, 0 - stop anim
227 jag 1765
  - MIDI sliders 1-20 assigned to 20 harmonics
210 jag 1766
 
1767
+ set-var location { @ Place, Country}
1768
  - eg., set-var location { @ Chennai, India}
1769
  - eg., set-var location { @ Medellin, Colombia}
1770
 
1771
------------------------------------------------------------------------------
1772
 
104 - 1773
March 24, 2017:
1527 jag 1774
  + Released DIN Is Noise 27 as Free Software
1775
  + Release notes: https://workflowy.com/s/JbPNTNeifj
1 - 1776
December 25, 2016:
1527 jag 1777
  + Released DIN Is Noise 26 as Free Software.
1778
  + Full list of changes coming soon.
1 - 1779
September 13, 2016:
1527 jag 1780
  + Released DIN Is Noise 25 as Free Software
1781
  + See release notes for DIN Is Noise:
1782
    https://workflowy.com/s/JbPNTNeifj
1 - 1783
November 22, 2015:
1527 jag 1784
  + Released DIN Is Noise 10 as Free Software
1 - 1785
....
1786
....
1787
....
1788
May 16, 2013:
1789
  + 'i'm still evaluating.'
1790
  + correct update of show pitch/volume on microtonal-keyboard checkbox
1791
  + L delay duration field to change left channel delay duration
1792
  + R delay duration field to change right channel delay duration
1793
April 6, 2013:
1794
  + added a button to fold/unfold the console
1795
  - removed keyboard shortcuts for changing attack_time, decay_time
1796
  ! parameters are always visible on the keyboard-keyboard
1797
 
1798
March 6, 2013:
1799
!!! wip din-5.0 !!!
1800
FIX order of init of variables
1801
FIX decay_start_volume init on keyboard-keyboard
1802
NEW authors_note as eval notice
1803
FIX remove inital mesgs to console from din.cc
1804
 
1805
October 1, 2012:
1806
!!! din-4.3 !!!
1807
!!! factory reset required for upgrade from *any* version:
1808
    see http://dinisnoise.org/faq/#factory !!!
1809
 
1810
NEW filled_button - a button that is filled with some color (part of
1811
    GUI library) - used on parameter sliders (see below)
1812
NEW created parameters dialog for keyboard-keyboard. visually edit
1813
    attack time, decay time, pitch bend & note volume!
1814
 
1815
    to operate slider, left-click on the slider and mouse-move to
1816
    change value
1817
NEW right-click on parameters titlebar and mouse-move to move the dialog.
1818
    right-click again to drop!
1819
NEW min/max dialog for editing parameter limits.
1820
    click on the filled button at the left of a parameter slider to
1821
    show/hide min/max dialog
1822
NEW set-var commands for din variables attack_time, decay_time,
1823
    pitch_bend and note_volume also updates the GUI.
1824
    eg., set-var attack_time 0.15 ;# updates attack_time slider
1825
         set-var decay_time 5 ;# updates decay_time slider
1826
         set-var pitch_bend 50 ;# updates the pitch_bend slider
1827
NEW on exit, din waits until all launched keyboard-keyboard notes have faded out
1828
NEW tweaked parameters of keyboard-keyboard and gave better defaults.
1829
BUG resize screen and parameters dialog may disappear; workaround:
1830
    resize to last good size.
1831
FIX click or ALT+F4 on window close button doesnt quit din. must quit
1832
    thru ESC, ESC again.
1833
 
1834
September 25, 2012:
1835
!!! din-4.2.1
1836
!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
1837
FIX phrasor continues playing on microtonal-keyboard when instrument is keyboard-keyboard
1838
September 21, 2012:
1839
  !!! din-4.2
1840
  !!! factory reset required for upgrade from *any* version:
1841
      see http://dinisnoise.org/faq/#factory !!!
1842
  NEW voice, gater & delay fade in/out at start, during operation & at exit.
1843
  NEW auto-fold the console during verbose parameter change (FM/AM depth/bpm etc)
1844
  *** tweaked the compressor & delay feedback/volume curves for better defaults
1845
September 18, 2012:
1846
  !!! din 4.1 !!!
1847
  !!! factory reset required for upgrade from *any* version:
1848
      see http://dinisnoise.org/faq/#factory !!!
1849
  NEW Compressor checkbox on microtonal-keyboard & keyboard-keyboard
1850
  NEW show names of donors to the DIN is Noise project on the ticker
1851
 
1852
September 2, 2012:
1853
  !!! wip: 4.1 !!!
1854
  FIX font definition with y > 0 for correct positioning of ui elements like buttons, checkboxes etc.
1855
  FIX pushed the ticker down to the bottom
1856
  FIX start resolution is 800 x 600 instead of 640 x 480. done in 4.0, forgot to note in CHANGELOG
1857
August 31, 2012:
1858
  !!! din-4.0 !!!
1859
  NEW Donate button and a ticker message - sorry folks, lost my patronage and my situation is dire :(
1860
  FIX click and release on button triggers click on the button instead of just click
1861
August 30, 2012:
1862
  !!! wip: din-4.0 !!!
1863
  NEW drones fade in and out on din load/exit!
1864
  NEW drones fade in on creation!
1865
  NEW drones fade out on delete!
1866
  NEW visually move the sustain on attack editor on keyboard-keyboard
1867
  NEW sustain saved with attack curve library
1868
  FIX proper onion skin toggling on all editors
1869
August 8, 2012:
1870
  !!! wip: din-4.0 !!!
1871
  FIX notes that were bent stay bent when new note is launched
1872
  NEW save/reload mouse position on keyboard-keyboard for better mouse based pitch bending
1873
  NEW save/reload of number of trail points & handle size of all drones
1874
May 14, 2012:
1875
  !!! wip: din-3.6 |||
1876
  FIX data files stored in /usr/local/share/din instead of /usr/local/var/din
1877
  NEW change the trail size of each drone (+ and -), selected drones or all drones
1878
  NEW change size of a drone (9 & 0), selected drones or all drones
1879
May 08, 2012:
1880
  !!! din-3.5 !!!
1881
  +++ save/load variable delta_bpm
1882
  *** INTERNAL: moved SAMPLE_DURATION calculation to audio_out::set_sample_rate
1883
  *** INTERNAL: revised console.h/.cc
1884
  *** INTERNAL/FIX?: moved console text color constants to main.cc
1885
  FIX MIDI connnected to MIDI connected in audio.cc - thanks Ian Morrison
1886
  NEW drone trails! press + and - on microtonal-keyboard to increase & decrease trail length
1887
  NEW drone handle size - press 9, 0 on microtonal-keyboard
1888
  NEW press o on curve editor to overlay din microtonal-keyboard or keyboard-keyboard on the curve editor
1889
        useful for editing drone modulation curves and watching the drone modulation shapes change
1890
  FIX memory leak on keyboard-keyboard when fully decayed notes are removed
1891
  NEW mouse driven pitch bend on keyboard-keyboard! move mouse either side
1892
      of dotted vertical line to pitch bend.  pitch bend applies to
1893
      all notes. to zero pitch bend bring mouse back to the dotted
1894
      line.  change pitch bend amount from command mode:
1895
          set-var pitch_bend 100 ;# upto 100 hz
1896
          sv pb 100 ;# short form
1897
 
1898
      mouse driven pitch bend overrides MIDI driven pitch bend. use one or the other :)
1899
 
1900
  NEW variable trail_length for drone trail lengths:
1901
        set-var trail_length 10 ;# trail has 10 points
1902
        sv tl 10 ;# short form
1903
 
1904
      can also be set from the ui as listed above
1905
  NEW din.desktop and din.png files to help packagers (look in ~/.din/data)
1906
 
1907
April 17, 2012:
1908
  !!!!  din-3.0 !!!!
1909
  !!!!  factory reset required for upgrade from *any* version: see
1910
        http://dinisnoise.org/faq/#factory !!!!
1911
        +++ visual drone modulation +++
1912
          +++ j - toggle modulation target: voice or drones
1913
          +++ y, u - decrease/increase FM depth of selected drones or all drones
1914
                     or the lead voice when there are no drones.
1915
          +++ r, t - decrease/increase AM depth of selected drones or all drones
1916
                     or the lead voice when there are no drones.
1917
          +++ F7, F8 -  decrease/increase FM bpm of selected drones or all drones
1918
                        or the lead voice when there are no drones.
1919
          +++ F9, F10 - decrease/increase FM bpm of selected drones or all drones
1920
                        or the lead voice when there are no drones.
1921
          +++ press 3 on microtonal-keyboard to edit the drone modulation curves
1922
              pink for AM
1923
              cyan for FM
1924
          +++ automagically save and load modulation on drones
1925
        +++ k - toggle drone anchor drawing
1926
        +++ smoother increase / decrease of drone master volume
1927
 
1928
March 4, 2012:
1929
  !!!!  din-2.0 !!!!
1930
  !!!!  factory reset required for upgrade from *any* version: see
1931
        http://dinisnoise.org/faq/#factory !!!!
1932
  +++:  quantise bezier curve pattern generated by morse-code
1933
        command to n beats:
1934
 
1935
          morse-code sos ;# quantise to 1 beat (default)
1936
          morse-code sos 2.5 ;# quantise to 2 and half beats
1937
          mc sos 3 ;# short form; quantise to 3 beats
1938
 
1939
          ;# the bezier curve pattern is on copy curve
1940
          ;# just paste (LCTRL + v) on any curve in any curve editor
1941
  +++:  detect when a MIDI device connects or disconnects with din
1942
  +++:  press keys on the MIDI keyboard and launch notes. support from
1943
        C-1 (MIDI note on # = 0) to G9 (MIDI note on # = 127).
1944
  +++:  support for retuning intervals, velocity curves and pitch
1945
        bending.
1946
  fix:  fixed decay failure when note volume at start of decay is -ve
1947
 
1948
February 11, 2012:
1949
  !!!!  din-1.9.5 !!!!
1950
  !!!!  factory reset required for upgrade from *any* version: see
1951
        http://dinisnoise.org/faq/#factory !!!!
1952
  fix:  shoot of volume when sustain is larger than x value of last vertex on attack
1953
        curve!
1954
  +++:  add new variable auto_connect_outputs to control if din will
1955
        auto connect its output to system audio outputs.  yes by default.
1956
 
1957
          set-var auto_connect_outputs 1 ;# auto connects next time din starts
1958
          sv aco 0 ;# short form; disables auto connect
1959
  ***:  reworked (yet again) the result handling of Tcl interpreter
1960
 
1961
January 15, 2012:
1962
  !!!! din-1.9.4 !!!!
1963
  ***: changed curve-value command to retain existing x or y values of a vertex or tangent position.
1964
  ***: rewrote the result handling of Tcl interpreter
1965
December 22, 2011:
1966
  !!!! din-1.9.3 !!!!
1967
  !!!!  factory reset required for upgrade from *any* version: see
1968
        http://dinisnoise.org/faq/#factory !!!!
1969
  +++:  new changer patch to automagically change the key of din every
1970
        n seconds
1971
  fix:  fixed Bus Error / Segmentation fault due to bad result clearing
1972
        in the  Tcl interpreter.
1973
December 08, 2011
1974
  !!!!  din-1.9.2 !!!!
1975
  !!!!  factory reset required for upgrade from *any* version: see
1976
        http://dinisnoise.org/faq/#factory !!!!
1977
  fix:  size of boxes in keyboard-keyboard is constant irrespective of
1978
        note volume
1979
  +++:  added new variable delta_time
1980
          set-var delta_time 0.1 ;# 1/10 sec delta
1981
        delta_time is used for changing attack and decay time thru their
1982
        keyboard short cuts ie attack time & decay time change in
1983
        delta_time steps.
1984
 
1985
November 27, 2011:
1986
  !!!! din-1.9.1 !!!!
1987
  !!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!!
1988
  fix: version number on title bar matches version number of din.
1989
  fix: immediately insert vertex when there is only one curve in a curve editor
1990
  fix: immediately draw scratch curve when there is only one curve in a curve editor
1991
  fix: doesnt enter command mode when ALT + TAB is pressed
1992
  ***: changed name of din board to microtonal-keyboard
1993
  +++: new keyboard short cuts for attack time & decay time on keyboard-keyboard
1994
  +++: f11, f12 to change octave shift bpm on microtonal keyboard & keyboard-keyboard
1995
  +++: SPACE to toggle delay on keyboard-keyboard
1996
  ***: changed waveform of keyboard-keyboard from sine to the waveform on microtonal-keyboard.
1997
  ***: LALT -> SPACE on sine composer to avoid clash with ALT + TAB
1998
November 16, 2011:
1999
  !!!! din-1.9 !!!!
2000
  !!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!!
2001
  fix: disabled exit Tcl command that quits & crashes din
2002
  fix: disabled application of sine harmonic composer output to non waveforms (ie gater patterns, fm/am patterns etc)
2003
  +++: added 33 new Bezier curve waveforms to the waveforms library
2004
  +++: added display of Fast Fourier Transform (FFT) of Bezier curve waveforms
2005
  +++: added display of samples for 2 cycles of a waveform at a particular pitch
2006
  ***: labelled the octave shift patterns & added a new octave shift pattern (snap-4th)
2007
  ***: can now toggle sine harmonic composer, fft and samples display (see curve_editor.hlp) on waveform editors
2008
November 6, 2011:
2009
  !!!! din-1.8.6 !!!!
2010
  !!!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!!
2011
  fix: saved & restored note-volume
2012
  +++: separate waveform (ie oscillator) for voice on din board & voices on keyboard-keyboard
2013
  +++: added new waveforms to library. beziered pulse (with different duty cycles) & saw waveforms
2014
  +++: added attack & decay patterns library
2015
  +++: midi clock sync & midi start messages syncs bpm components
2016
  ***: optimised solver (see solver.cc)
2017
October 29, 2011:
2018
  !!! din-1.8.5.0 !!!
2019
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
2020
  +++ keyboard-keyboard
2021
    press a key to play a note
2022
      keys of the computer keyboard mapped to notes of the scale over a
2023
      range of 3 octaves
2024
  *** reassigned curve editors for keyboard-keyboard
2025
  !fix! bezier curve solver returns upper y when slope is infinity (returned lower y prior)
2026
October 5, 2011:
2027
  !!! din-1.8 !!!
2028
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
2029
  *** optimised visible range calculation when scrolling on din board
2030
  +++ added shrutis.tuning -- divides the octave into 22 intervals
2031
      based on the Indian classical music tradition.
2032
        tuning set shruti ;# load shruti tuning
2033
  +++ color coded text messages to the terminal.
2034
  --- removed unlimited resonators due to complexity in editing & management;
2035
      now there is only 1 oscillator ie waveform to voice the lead sound.
2036
  --- removed channels response due to complexity in editing & management
2037
      volume of waveform is determined by height of the mouse in playing area -
2038
      @bottom volume is 0; @top volume is wave_volume (see variable wave_volume below)
2039
  +++ added variable wave_volume to set waveform volume ie oscillator volume:
2040
    set-var wave_volume 0 ;# mutes voice (also by pressing SPACE on din board)
2041
    set-var wave_volume 1 ;# max volume - will be *very* loud
2042
    set-var wave_volume 0.125 ;# default volume
2043
    set-var wave_volume 2.8 ;# crazy volume accepted (ie not clipped)
2044
    set-var wave_volume -1 ;# negative volume accepted but will invert waveform
2045
  --- removed strength & channel editors due to removal of resonators & channels response concepts.
2046
  *** changed curve editor assignments due to removal of above editors
2047
      press F1 on din board to see new assignments
2048
  --- removed stereo gaters due to complexity in editing & management.
2049
      now there is just 1 gater (called gr) applied to L & R
2050
  *** the lead voice is now mono
2051
  *** the drones have always been mono
2052
  *** the delays remain stereo
2053
September 8, 2011:
2054
  !!! din-1.7.3 !!!
2055
  !fix! segfault due to undefined order of initialisation of global variables on some versions of g++.
2056
August 23, 2011:
2057
  !!! din-1.7.2 !!!
2058
  *** revamped start-end patch to support multiple MIDI #CC assignments
2059
    *** in command mode, type help start-end or read the file ~/.din/start-end.help.tcl for complete information.
2060
August 19, 2011:
2061
  !!! din-1.7.1 !!!
2062
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
2063
  +++ parameter limit labelling on all curve editors
2064
  +++ beat/value marker with realtime update on all beat/value editors (gater, modulation & octave_shift)
2065
  *** improved default octave shift pattern
2066
  !fix! recompute visible ranges after resizing a range
2067
August 17, 20011:
2068
  !!! din-1.7 !!!
2069
  !!! factory reset required for upgrade from *any* version: see http://dinisnoise.org/faq/#factory !!!
2070
  *** din audio output range is 0.1 Hz to infinity Hz.
2071
  +++ num-octaves command
2072
    num-octaves 4 ;# span current scale to 4 octaves
2073
    num-octaves 28 ;# span current scale to 28 octaves
2074
    preserves  existing drones & range size mods
2075
  +++ current octave labelling
2076
  +++ cursor info mod (absolute volume printed at all times instead of 0 under playing area and 1 above playing area)
2077
  +++ key note colored green on all octaves
2078
  +++ save/reload drone phases
2079
 
2080
July 26, 2011:
2081
  !!! din-1.6.6 !!!
2082
  !!! factory reset required if upgrading: see http://dinisnoise.org/faq/#factory !!!
2083
  !fix! more accurate selection of drones (inbox selection instead of radial selection)
2084
  +++ new variable delta_bpm (or dbpm); gater bpm changes by delta_bpm for each f9/f10
2085
    eg., set-var delta_bpm 5 ;# increases/decreases bpm by 5 beats for gaters, am, fm & octave shift modules
2086
  +++ new variable drone_handle_size (or dhs)
2087
    eg., set-var drone_handle_size 14 ;# default is 7; doubles the size of the drone handles
2088
  *** f9/f10 - decreases/increases both gaters bpm at the same time.
2089
    *** lshift + f9/f10 - decreases/increases left gater bpm ie gl
2090
    *** lctrl + f9/f10 - decreases/increases right gater bpm ie gl
2091
  *** improved handling of gater bpm change and fm/am depth change
2092
July 20, 2011:
2093
  !!! din-1.6.5 !!!
2094
  !!! factory reset required if upgrading: see http://dinisnoise.org/faq/#factory !!!
2095
  !fix! segmentation fault when opening window on ATI/Intel graphics cards
2096
  *** sine -> waveform key shortcut changed to left_alt instead of right_control
2097
July 3, 2011:
2098
  !!! din-1.6.4 !!!
2099
  --- removed dependency on SDL
2100
  +++ optimised mouse, keyboard & OpenGL handling using Xlib. din is now an X11 application.
2101
  *** restored drone master volume to default instead of 0 ie quiet
2102
June 11, 2011:
2103
  !!! din-1.6.3 !!!
2104
  !!! factory reset required if upgrading: see http://dinisnoise.org/faq/#factory !!!
2105
  *** optimised mouse capture
2106
  --- removed FFT on waveform; no dependency on FFTWF library anymore
2107
  *** faster startup (no FFT wisdom calculation) & performance (no FFT calculation waveform edit/change)
2108
  !fix! clear drones when scale changes
2109
May 28, 2011:
2110
  !!! din-1.6.2 !!!
2111
  !!! factory reset required if upgrading !!!
2112
  *** silence drones when drones loaded to avoid shock volume change.
2113
  *** fixed volume variable to go from 0 to 1 instead of 0 to 0.99xxx
2114
  *** added interval check (clamps to 1 to 2) in tone ranges
2115
  +++ 2600.patch.tcl : google insight banned words -> morse code -> music.
2116
  --- removed superfluous feedback/volume setting from delay.cc/h code
2117
  !fix! drones not resizing/repositioning when range size changed with LCTRL + mouse move
2118
  *** reordered keyboard handling in din::handle_input (..)
2119
May 16, 2011:
2120
  !!! din-1.6.1 !!!
2121
    !!! factory reset required !!!
2122
    +++ new volume variable accesible in Tcl interpreter; goes from 0 to 1
2123
      *** changed start-end.patch.tcl to allow use of mouse or midi slider to go from start/end and apply command
2124
      +++ added drone_master_volume to possibilities for going start->end
2125
    +++ cursor info display shows frequency & volume
2126
    +++ show_frequency variable change to show_cursor_info
2127
    +++ din irc bot video
2128
May 9, 2011:
2129
  !!! din-1.6 !!!
2130
  +++ new patch start-end to go from a start to end value and execute a command for each inbetween value
2131
    +++ see start-end.patch.tcl & start-end.help.tcl for more information
2132
May 1, 2011:
2133
  !!! din-1.5.9 !!!
2134
  --- gaters command. gaters state stored in din_info
2135
  *** oscilloscope colors saved on exit
2136
  *** renamed short name of some commands
2137
April 17, 2011:
2138
  !!! din-1.5.8.0 !!!
2139
    +++ get-beat <list of components> [all|first|last]
2140
      +++ get-beat fm all returns current beat, first beat and last beat of fm
2141
      +++ get-beat am first returns first beat of am
2142
    *** frequency display switches correctly between phrasor cursor & mouse cursor
2143
    *** lop alias load-patch, lp alias list-patches & asd alias assign-drones in droner
2144
    +++ [ & ] keys for decreasing, increasing phrasor jog
2145
    +++ i to toggle display of frequencies on notes & under mouse cursor
2146
 
2147
April 6, 2011:
2148
 
2149
  !!! din-1.5.7 !!!
2150
  +++ timenow variable contains time elapsed in seconds from din start
2151
  +++ loop procedure to run user defined Tcl code at every din loop
2152
    proc loop {} {
2153
      ;# this runs every din loop
2154
      echo $timenow ;# just print number of seconds elapsed since din start on console
2155
    }
2156
  +++ list-patches command to list patches
2157
  +++ load-patch command to load a patch
2158
  +++ picth intervals as vars eg., $1, $2b, $3b, $3, $4, $5b, $5, $6b $6, $7b, $7 & $8
2159
  +++ piano notes as vars eg., $C, $Db $D, $Eb, $E, $F, $Gb, $G, $Ab $A, $Bb $B. $C is 261.626, $A is 440
2160
  *** doesnt select sine composer and/or fft levels on curve editor when curve edit is in progress
2161
  +++ documentation for most of din commands
2162
 
2163
April 1, 2011:
2164
  !!! din-1.5.6 !!!
2165
  *** completely optimised for JACK instead of compatibility with both OSS and JACK.
2166
    *** see revision 2201 at http://code.google.com/p/din/source/detail?r=2201 for more information.
2167
March 29, 2011:
2168
  !!! din-1.5.5 !!!
2169
  *** 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)
2170
  *** the beat of fm, am, gaters always progresses (am_vol/am_depth/fm_depth & mouse height determines their use in sound)
2171
  *** changed octave_shift curve name from octave_shift to os for easier handling on the command line
2172
  +++ added 2 patterns to octave shift library
2173
  !fix! fixed bug in solver::operator (float x) --> (see din-1.5.5/src/solver.cc)
2174
 
2175
March 28, 2011:
2176
  !!! din-1.5.4 !!!
2177
  +++ added variable jog for phrasor jogging
2178
    +++ set-var jog 3 ;# default jog
2179
    +++ set-var jog 30 ;# warp speed jog!
2180
    +++ sv j 30 ;# short form
2181
    +++ get-var jog ;# returns jog value
2182
    +++ gv j ;# short form
2183
  +++ left_alt + enter resets taptarget bpms ie equivalent to command set-now $taptarget 0 --> used to match beat of external sounds
2184
  +++ added configure.ac check for tcl.h in addition to tcl8.5/tcl.h
2185
  *** optimised beat2value.cc/h that drives the gaters, fm, am & os
2186
  *** bot is insecure to allow full remote operation of din.
2187
    *** bot will connect to password protected irc channels only.
2188
    !!! use it among friends. not enemies !!!
2189
    *** bot always connects at your command (see din-1.5.4/src/bot.cc & din-1.5.4/include/bot.h)
2190
 
2191
March 25, 2011:
2192
  !!! din-1.5.3 !!!
2193
  *** factory reset required, see http://dinisnoise.org/faq/
2194
  !fix! fixed compressor response when input audio sample hits xmax boundary - stays at max instead of going to min
2195
  !fix! get-drone command and ~/.din/droner.tcl
2196
  +++ display name of jack connection on din title bar
2197
  +++ new variable show_frequency to toggle frequency display under mouse and frequencies of notes of the scale
2198
    +++ set-var show_frequency 1 ;# displays frequency under mouse & frequency of all notes in all the octaves
2199
    +++ set-var show_frequency 0 ;# hides frequency under mouse & frequency of all notes in all the octaves
2200
    +++ set-var sf 1 ;# sf is short for show_frequency
2201
    +++ sv sf 0 ;# sv is short for set-var; sf is short for show_frequency
2202
    +++ din saves show_frequency state when it quits and restores it when you start din again
2203
  *** tweaked ~/.din/scoper.tcl to allow easy entry of midi slider/knob values
2204
  *** documented ~/.din/2600.tcl
2205
  --- oss midi support & other unused procs in ~/.din/init.tcl
2206
 
2207
March 20, 2011:
2208
  !!! din-1.5.2 !!!
2209
  *** factory reset required, see http://dinisnoise.org/faq/
2210
  +++ can specify number of samples used to construct the profile curve in sine harmonic composer (was 100 samples).
2211
    +++ set-var num_sine_samples OR nss, get-var num_sine_samples ORR nss
2212
    +++ ' and \ keys in waveform editor to decrease/increase num_sine_samples 1 at a time
2213
    *** use large number of samples to accurately profile a curve that has large number of harmonics
2214
    *** experiment with num_sine_samples to change timbre
2215
  +++ save/load vertex labelling on curve editors
2216
March 14, 2011:
2217
  !!! din-1.5.1 !!!
2218
  *** factory reset required, see http://dinisnoise.org/faq/
2219
  +++ constant size vertex/tangent handles in all editors
2220
    +++ initial handle size specified in ~/.din/globals
2221
  +++ vertex labelling in all editors
2222
    +++ press l in an editor (but *not* on a curve vertex/tangent cos thats for making curve linear) to toggle
2223
  +++ scales can have an unlimited number (previously 16) of notes, hence an unlimited number of ranges (previously 64)
2224
    !!! din remains a 3 octave instrument !!!
2225
  *** set-bpm <list of components> <list of bpms>, get-bpm <list of components>
2226
  +++ set-now <list of components> <list of nows>, get-now <list of components>
2227
  +++ get-drone selected, set-drone <list of drones> <list of volumes>
2228
    *** droner.tcl to support microtonal chord progressions via MIDI
2229
  --- removed mouse interpolation
2230
  --- reinstated original subdivision for curve generation as new subdivision scheme
2231
      introed in din-1.5 doesnt work for octave shift (will revisit)
2232
  +++ delete-disabled-resonators command updated to allow all resonators to be deleted
2233
  *** optimised resonator picking and disable/enable/enable all
2234
  --- removed curve_editor::randomise (..) and rnd_miny_maxy --> unused feature
2235
  !bug! deleteing all resonators when mouse capture is applied crashes din (segmentation fault)
2236
  !bug! unpredictable curve loss when moving curve in strength editor (segmentation fault on quit)
2237
February 15, 2011:
2238
  !!!! din-1.5 release !!!!
2239
  !fix! mirroring tangents caused 1st subdivided point to lie on the curve so no further subdivision hence no profile.
2240
  !fix! midi ring buffer deallocation in audio::alloc
2241
  +++ mouse x, y interpolation for click/tick/glitch free sound on long periods
2242
  +++ midi-pitch-bend, midi-program-change support (thanks Peter Nelson - http://fuzzle.org/~petern/)
2243
  +++ experimental get-selection command to get selected items from current curve editor
2244
  +++ can create, edit and remove drones while phrasor is playing a phrase
2245
    +++ tonex, toney for finding tone on din board
2246
  *** midi_cc -> midi-cc, midi_note_on -> midi-note-on, midi_note_off -> midi-note-off, midi_clock -> midi-clock, midi_start -> midi-start
2247
    *** changed scoper.tcl, midimap.tcl, 2600.tcl
2248
  --- removed curve_editor::scale ()
2249
  +++ <cstdlib> to bot.cc
2250
  +++ add sample_rate change callback.
2251
  +++ add buffer_size change callback altho we dont support buffer size change in din. would require a restart.
2252
  *** optimised malloc in JACK MIDI.
2253
February 9, 2011
2254
  !!!! release: din-1.4.3 !!!!
2255
  !!!! factory reset required. see http://dinisnoise.org/faq/ for more information.
2256
  !++! fps, usleep vars to bring down CPU usage (thanks Peter Nelson - http://fuzzle.org/~petern/)
2257
  !++! full JACK MIDI support (thanks Peter Nelson - http://fuzzle.org/~petern/)
2258
  !--! jettisoned RtMidi support -> tagged in svn for din-OSS use.
2259
  !--! no requirement of alsa sound library hence din is fully cross-platform. porters rejoice!
2260
  +++ <space> to mute/unmute resonators @ din board.
2261
  +++ marked the low (1-, 2b-, 2-, 3b-, 3- etc) & high octave (1+, 2b+, 2+, 3b+, 3+ etc) on din tone board
2262
  +++ changed set-bpm command to accept multiple bpm targets and values
2263
  +++ changed get-bpm command to print bpms of multiple bpm targets
2264
  +++ changed set-var command to accept multiple vars and values
2265
  +++ changed get-var to print values of multiple vars
2266
  +++ undo-redo on curve editors does undo-redo of window position too
2267
  +++ save-restore exact din board position, oscilloscope position
2268
    +++ better default view of din board showing key note when launched for 1st time
2269
  +++ new vars zoom & pan added to control zoom and pan variables in curve_editor
2270
  +++ scroll, zoom & pan now loaded from settings.tcl instead of din_info
2271
  *** midimap.tcl sourced in init.tcl for default midi_cc, midi_note_on/off, midi_clock & midi_start
2272
  *** tweak of handle sizes in curve editors for easier editing for new user
2273
  !fix! load-resonators doesnt fail when resonators file doesnt exist
2274
  !fix! default resonator strength is simple linear curve instead of bezier curve for easier initial editing.
2275
  !fix! tangents dont mirror by default in drone editor
2276
January 27, 2011:
2277
  ++ add resonator with <left shift> + r in strength editor.
2278
  -- removed resonator::MAX_RESONATORS - add as many resonators as you like
2279
  ++ delete-disabled-resonators Tcl command
2280
  ++ new hires clock
2281
  ** mark curve segments in curve_editor
2282
  ** list_resonators -> ls-resonators command name change
2283
  ** editor name change: morse_code -> morse-code
2284
  !fix! add drone clears selected drones
2285
  !fix! oscilloscope not selected when selecting drones
2286
  !fix! configure.ac now checks for OpenGL, Tcl, libircclient & libasound2
2287
January 21, 2011:
2288
  !! release: 1.4.1 !!
2289
  ++ ultra drone editing - multiple drone creation, moving around the board and delete
2290
  ++ infinite volumes - change height of the keyboard to get as many volume levels as you like.
2291
  ++ integrated jack/oss into same code base
2292
January 14, 2011:
2293
  * infinite volumes - change the height of the infinite keyboard to get as many volume levels as you like
2294
January 13, 2011:
2295
  * integrating jack/oss api in same code base
2296
January 10, 2011:
2297
  * din-1.4 : first release into the wild
2298
  * fast multi bezier curve (ie multi_curve) solver with infinite points and bezier curves
2299
  * WIP: new website design @ dinisnoise.org
2300
December 30, 2010:
2301
  * bot uses safe interpreter when connected to irc channel
2302
December 29, 2010:
2303
  * esc 2 times from din board to quit din -- waits for ESC_WAIT (1.25 seconds between ESC presses).
2304
  * fixed oscillator_strength marker display, default globals tuning file spec and default din_info
2305
December 28, 2010:
2306
  * 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.
2307
  + added equivalent help files
2308
December 27, 2010:
2309
  * fixed key repeat speed bug when MIDI is on
2310
  * tweaked the jag font
2311
  * WIP: infinite curve points, infinite resonators ---> not adequately tested; @alejo: dont package
2312
December 16, 2010:
2313
  * help.tcl, set_text_color to set console text color, faster command lookup from command list
2314
December 15, 2010:
2315
  * help for commands is via help.tcl script -- we will use this script to also produce command reference documentation
2316
  at dinisnoise.org soon.
2317
December 11, 2010:
2318
  * bot:
2319
      * disabled exec command from Tcl interpreter when bot connects to irc. exec enabled again when bot disconnects.
2320
      * new disconnect subcommand with custom disconnect message. eg., bot disconnect message
2321
  * key: command changed to print nearest note name (eg., key note) & value (eg., key value).
2322
  * scale: new scale command. list, get, set, add, remove & find are subcommands. eg., scale set major
2323
  * tuning: new tuning command. list, set & get are subcommands. eg., tuning set et
2324
  * bpm: new bpm command. list, set, get, reset, style (set & get subcommands) are subcommands. eg., bpm set fm 240
2325
  * 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.
2326
  * taptarget variable to control what component (gl gr fm am or os) gets affected when tap bpm is used. eg., set taptarget {gl gr}
2327
  * console: stays in command mode when TAB pressed until ESC or TAB is pressed again.  used to leave command mode when ENTER was pressed.
2328
  * BUGFIX: delay haywire fix when delay time is 1 second ie 1000 msecs.
2329
 
2330
November 30, 2010:
2331
  * bot input/output is queued and processed in input loop
2332
  * |BUG| fix multi line output of commands to IRC. no lines sent.
2333
November 24, 2010:
2334
  * tonic limited to 40 to max_frequency possible in given sample rate
2335
  * display key and completion of octave shift --> since octave shift is general we call it modulating up/down instead of octave up/down.
2336
October 11, 2010:
2337
  @oss:
2338
  !!!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
2339
  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.!!!
2340
  ***tcl interp back in main thread***
2341
  ---removed command scheduling in console as tcl interp is back in main thread ---
2342
  ***viewport struct changed, creates default or restores last viewport on constructor ***
2343
  ***audio_out::write changed to accept audio buffer to read for writing from main thread ***
2344
  ++++++
2345
  concept of a bunch of audio buffers in main thread that is filled continously one after another.
2346
  give a written buffer when audio thread wants one. important to keep a good number of audio buffers but not too many
2347
  so that main thread is not writing the same buffer the audio thread wants to read.  if all buffers are written
2348
  but none read so far, main thread will stop writing anymore and wait for audio thread to read some.
2349
  ++++
2350
  ***better commenting and messages on shell console***
2351
September 29, 2010:
2352
  @@@ sort of back in the groove again.
2353
  @@@ wip though as trying to have 1 Tcl interpreter in audio thread for accessing samples later
2354
  [!!!] FIXED resizing window
2355
  [!!!] FIXED abrupt level change when moving from editors back to board
2356
  [+++] can continue to play with the mouse when in command mode. tracks cursor in editors.
2357
September 12, 2010:
2358
  +++ get_scope/set_scope, get_drone/set_drone and scoper.tcl, droner.tcl
2359
August 05, 2010:
2360
  [***/+++]: midi command fleshed out with list, open, close options.
2361
  [+++]: midiopenall, midicloseall tcl cmds available for one-shot open/close of midi input devices
2362
  [+++]: midimapper.tcl - displays midi output on console. to invoke issue command: scr midimapper
2363
August 03, 2010:
2364
  [mod] param value messages on the console
2365
  [bug] segfault on load_scale of bhoopali - couldnt recreate!
2366
July 31, 2010:
2367
  *** back to working on font again
2368
      ***changed set_font_size to change cell size, char spacing & headroom
2369
      ***get_font_size simply prints 4 numbers
2370
      ***created help files of set_font_size & get_font_size
2371
      ***changed save_settings.tcl to include font size params so we dont save them in the font file itself. this is good.
2372
July 30, 2010:
2373
  !+++! tap bpm, set taptarget {gl gr fm am os}. change taptarget to change whose bpm is affected.
2374
        eg, set taptarget {fm am os} only sets fm, am & octave shift bpm to tapbpm.
2375
July 28, 2010:
2376
  *** worked on timing of keypress (keypressedd(..) in input.h)
2377
July 27, 2010:
2378
  !fix! western notation display didnt update correctly when key was set to a numeric value.
2379
  !fix! no overwriting of console command line
2380
  +++ wrap around of console command history
2381
  +++ notation saved into settings.tcl
2382
  +++ ~/.din/init.tcl for custom Tcl scripts to be loaded at startup.
2383
  +++ set_kb_layout/kbl <layout> command. kbl us sets to us layout. kbl uk sets uk layout.
2384
July 23, 2010:
2385
  !!!check b4 din workshop at usurp gallery, london
2386
  *** will try to make a live cd with this version
2387
  +++ new sound patterns added (one, one-lr, two, two-1, three, many)
2388
July 19, 2010:
2389
  !!!+++ experimental MIDI support using modified RtMidi library
2390
  !!!source ~/.din/midi.tcl after install; turn on gaters and move any sliders u have to change the gater bpm
2391
  !!!set min 0; set max 240; set which g ;# set which fm will change fm bpm.
2392
July 18, 2010:
2393
  * 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.
2394
  *** phrasor optimisation, draw a red marker to id phrase start during a recording so its easy to finish at that point,
2395
  *** phrasor playback starts at beginning of last recorded phrase
2396
  !!! 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
2397
  !!! bug fix no jump of mouse when phrasor is playing and u leave board to the editors and come back.
2398
  !!! test required.
2399
July 15, 2010:
2400
  * changed name of waveform from noname to wave in file data/one - the one resonator file
2401
  * removed key get from key command its available as getv key
2402
July 14, 2010:
2403
  +++set_curve_editor, get_curve_editor to place different curve editors on different screens.
2404
July 11, 2010:
2405
  +++!!! din-1.1.2 - jack, oss (branch) support updated.
2406
  +++ delay feedback, volume curves, only time is value
2407
  *** fixed undo/redo/copy/paste bug on multi_curve
2408
  *** fixed morse code trailing spacings and morse code is now on copy curve to paste
2409
  +++ save_settings.tcl to save settings into ~/.din/settings.tcl which is loaded on next din start
2410
 
2411
June 03, 2010:
2412
  * din-1.1 RC.
2413
  * cleaned up documentation
2414
  * sa command is gone. tonic/key is substitute.
2415
May 31, 2010:
2416
  +++ Tcl interpreter is the din command line.
2417
  +++ Oscilloscope fully moveable and resizeable.
2418
  +++ message announcing current curve editor
2419
  *** fixed note marking in strength editor
2420
  !!! Oscilloscope drawing optimised with single call to glDrawArrays instead of glBegin() ..glVertex3f..glEnd ()
2421
May 18, 2010:
2422
  *** Tcl/Tk integration getting mature
2423
  !+++! experimental linebreaking and wordwrap added to console - disabled by default
2424
  +++ new variable sa so can do gv sa
2425
  --- removing tcl command - no longer required as Tcl/Tk interpeter is the din command line
2426
 
2427
May 15, 2010:
2428
 
2429
  !+++! experimental tcl/tk integration.
2430
    +++ new tcl command - syntax tcl <tcl_command>
2431
    * this will let us script din with tcl and also make custom uis using tk.
2432
    +++ sa.tcl. to bring up ui, do tcl source ~/.din/sa.tcl
2433
 
2434
  *** mouse capture replay doesnt warp the mouse, draws a cross indicating playback position.
2435
 
2436
May 13, 2010:
2437
  +++ morse code -> bezier curve -> waveform/am/fm/gaters/octave_shift
2438
    *** editable beizer curve based patterns for dot, dash, inner spacing, letter spacing and word spacing.
2439
 
2440
May 5, 2010:
2441
  +++!!!*** jack is now trunk
2442
  +++!!!*** oss is a branch https://din.googlecode.com/svn/branches/oss
2443
  *** oss is faster than jack but allows no collaboration.
2444
  +++ oscilloscope is back on jack
2445
  *** major renames of many files in din/data
2446
  *** optimised keyboard handling in curve_editor.cc/h, din.cc/h
2447
  *** new gater patterns, new octave shift patterns, tastier defaults
2448
April 27, 2010:
2449
  !!! experimental jack support
2450
  +++ autoconnect to system:playback_1 and system:playback_2 ports to start playing audio
2451
April 26, 2010:
2452
  *** optimised keyboard handling
2453
April 25, 2010:
2454
  +++drones can be created to any tone. can be snapped to a note.
2455
  +++gaters on/off command
2456
  +++snap_drones var to setv/getv commands
2457
      sv snap_drones 0 or 1
2458
      gv snap_drones
2459
  +++reenabled the drone editor
2460
April 23, 2010:
2461
  rc 1.0.6
2462
  ++sa/key display on pressing ;
2463
  --drones are synced only on startup
2464
  **pfx changed to p in bot command
2465
April 22, 2010:
2466
  prepping for version 1.0.6
2467
  +++bot::setset()
2468
  +++tests if bot is running when outputing mesg with it
2469
  ***gate->g, gate-l->gl, gate-r->gr, all->a in set_bpm, get_bpm, set_style, get_style commands
2470
April 18, 2010:
2471
  prepping for version 1.0.6.
2472
    +octave shift with controllable bpm and progress curve.
2473
    +octave shift editor (press 7)
2474
    +octave_shift.lib - library of octave shift progress curves.
2475
    *libircclient expected at /usr/lib/ and /usr/include/libircclient - need to change this to use pkg-config.
2476
April 15, 2010:
2477
  * check b4 openlab opennight #4
2478
  * reworked solver so that custom min and max handlers can be used to get looping (in waveform) but ping-pong (in gaters, fm, am)
2479
      * inlined these functions but if they were not inlined then maybe slightly slower (nanoseconds? microseconds? testing needed)
2480
  * default is ping-pong on gaters, fm, am
2481
April 12, 2010:
2482
  ---removed multi_curve copy constructor and operator=, color and name restored after default copy.
2483
  ***chrono uses <ctime> ie CLOCKS_PER_SEC and clock() for timing instead of sample based timing. can therefore use it for non-audio timing.
2484
  ***mouse command changed for relative mouse movement instead of absolute positioning. making it selectable is a better goal.
2485
  !!!removed otransmit code in osc.cc and osc(..) removes timers as timer struct removed from chrono.h/cc. no problem for osc recieve.
2486
  ***using SDLK keycodes in curve library handling in curve_editor.
2487
  !!!fixed bug in osc due to stringstream/tokenizer mixup.
2488
April 5, 2010:
2489
  +++get_font_size command
2490
  +++xsize and ysize are cell width and cell height for font can be set independently
2491
  ***updated set_font_size command to handle xsize and ysize
2492
  xxxhopefully fixed the font save bug - was writing a null character b4.
2493
  ***updated cell_size code to prevent squash/stretch of font when varying its xsize and ysize***
2494
April 3, 2010:
2495
  +++tokenizer.cc/.h - ditching stringstream
2496
  !!!font size bug still persists - do not use set_font_size command!!!
2497
  +++ircu.patch - patch for ircu irc server ircd undernet to allow messages to flood the channel
2498
  so that din can send and receive data freely without any limits.
2499
march 31, 2010:
2500
  +++varun: happy birthday.
2501
  ***+++ irc bot cleaned up, with doc
2502
  ***fixed (assuming strongly) kerning and font size bug
2503
  ---all .hlp files from data
2504
march 25, 2010:
2505
  +++ added doc directory. will move all help files here in the future.
2506
      but its not ready yet. so we use help files in data.
2507
  +++ added mouse <x> <y> command, untested but no harm if not used.
2508
  +++ octave shift shortcuts changed to z and x due to keymap issue on non english keyboards. need to check this.
2509
march 23, 2010:
2510
  $$$ work in progress: 1.0.5.1
2511
  *** enhanced sa command to apply octave modifiers to values not just note names. mouse warp toggle added too.
2512
  +++ added octave shift short cut [].
2513
  +++ brought am, fm, gate-l, gate-r parameters as keyboard shortcuts
2514
  +++ FIXED BUG: creating a drone outside the ranges didnt create the drone on the correct note.
2515
  *** using keycodes instead of characters ie SDLK_SLASH instead of / character to check slash so
2516
      that it works on all keyboards.
2517
  --- replaced din_help.txt with din.hlp.
2518
march 20, 2010:
2519
  $$$ release 1.0.4.1.
2520
  *** if no audio, din continues to work. can edit resonators and drones.
2521
  *** better selection of drones.
2522
  +++ aout command to control OSS audio parameters. can also edit ~/.din/audio_prefs.
2523
march 16, 2010:
2524
  !!!+++ ditched portaudio and moved to oss. portaudio was using oss anyway. with direct oss can set many audio buffer parameters.+++!!!
2525
  !!!testing required on this oss port!!!
2526
march 12, 2010:
2527
  ** made basic install of din easy such that its a gateway to explore more complex features of din.
2528
  +++ allow din board height to be changed allowing finer or coarser volume control.
2529
march 08, 2010:
2530
  + 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.
2531
  + 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.
2532
  + clear/erase harmonic by pressing 'c' over sine levels.
2533
  ! use resonator names from file instead of resetting to default name/numbering.
2534
  + current curve editor var in uis_t to keep track of the current curve editor so we can run curve commands on the console.
2535
  + curve_name command to set the curve name. possible due to previous feature.
2536
  * worked on resonators in file: resonators, one
2537
december 18, 2009:
2538
  ** bug fixed: pan and zoom with shift+a/d and shift+q/e
2539
november 20, 2009:
2540
  assigned curve names, save and load curve names when curves are loaded. default name is noname.
2541
  fixed bug: can change resolution of curves in modulation and gater editors.
2542
november 13, 2009:
2543
  mouse position saved and restored on din board
2544
    TODO: but must be done for all ui screens and must also restore window position
2545
november 11, 2009:
2546
  console rollup state saved/restored
2547
  removed numeric notation of ranges as it doesnt work for keys other than C. will revisit later.
2548
november 9, 2009:
2549
  removed set_bg command - no range color filling, just plain looking ui. its the sound we are after.
2550
  notation support: indian (S r etc), western (C C# etc) and numeric (1 2b etc)
2551
  optimised solver.h/cc again to return last result when y cannot be solved for given x.
2552
  FIXED BUG: In console, if you clear text (press backspace), and rollup console - crash
2553
  fixed colors used for drawing ranges, phrasor position and drone makers
2554
november 4, 2009:
2555
  *** cleaned up the trunk
2556
  !!! optimised the configure.ac and Makefile.am
2557
  +++ BUGS
2558
october 15, 2009:
2559
  ***marked position of phrasor when paused
2560
october 14, 2009:
2561
  +++get_kern command to get character kerning in the font.
2562
  +++added {}`| characters to the font
2563
october 10, 2009:
2564
  !!!!++++multicore support added
2565
  +++xset m 0 0 to reset mouse to zero acceleration and threshold when
2566
     din, and restore upon exit.
2567
october 9, 2009:
2568
  !!! fixed ranga backdrop drawing bug
2569
  +++ added support for audio out via alsa dmix so that you could play
2570
      an audio clip in the background and play din over it.
2571
  *** preparing for release of din. version 1.
2572
may 7, 2009:
2573
  +++fft.cc, fft.h - separated fft engine from curve editor
2574
  ***worked on the resonators
2575
may 6, 2009:
2576
  +++ added ability to move the mouse in curve editors with the keyboard
2577
  +++ vary the pan and zoom speeds