forked from RTcmix/RTcmix
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
1238 lines (831 loc) · 49 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
NOTE: Not everything gets into this ChangeLog. There may be minor bug
fixes that we don't bother putting here.
2020-09-06 Douglas Scott <netdscott-at-netscape.net>
* Bumping to 4.5.0.
2020-09-04 Douglas Scott <netdscott-at-netscape.net>
* Reworked parser to support both buffer-based and stream-based input for any build type.
* Exception throwing now used for standalone parser as well as embedded.
* Moved logic for exit-on-error to single location in newly-worked parser code.
* Repaired "sockit" communication system.
* Added new "score" command to sockit to allow testing of networked score tranmission (in preparation for OSC).
2020-08-26 Douglas Scott <netdscott-at-netscape.net>
* Added new MinC 'map' type to parser, which accepts any MinC type as either a key or a value.
2020-07-17 Douglas Scott <netdscott-at-netscape.net>
* Moved the PD source directly into main project.
* (Earlier this month) Reworked error handling for embedded versions.
2020-02-03 Douglas Scott <netdscott-at-netscape.net>
* Added MIDI output support for MacOS (only, for now). New "MIDI" instrument library containing 4 MIDI instruments.
* Lots of internal source cleanup: Removed RTBUFSAMPS and SR globals from RTcmix class and replaced with setter/getters.
* Reworked shutdown-on-signal behavior to allow last audio buffer to go out.
* Bumping to 4.4.1.
2020-01-02 Douglas Scott <netdscott-at-netscape.net>
* Added MinC support for ++id and --id;
2019-12-30 Douglas Scott <netdscott-at-netscape.net>
* Revision 4.4. Added MinC support for struct definition and declaration. Big reorg of parser/minc/ source.
2019-10-06 John Gibson <johgibso-at-indiana.edu>
* Release v4.3.2, including recent changes for Mojave compilation
affecting the MouseWindow and DisplayWindow apps, as well as
PYCMIX.
2019-06-15 Douglas Scott <netdscott-at-netscape.net>
* Fix MouseWindow and DisplayWindow macOS Makefiles so that they will build the projects for any OSX version
2019-06-14 John Gibson <johgibso-at-indiana.edu>
* Fix MouseWindow and DisplayWindow macOS projects so that they build in Mojave
2018-06-17 John Gibson <johgibso-at-indiana.edu>
* Added a method to Ooscili to let you set the starting phase in radians.
* BWESINE now does the right thing with the initial phase argument.
2018-05-31 Douglas Scott <netdscott-at-netscape.net>
* Rewrote thread farm to massively reduce contention between render threads. Got 2x more notes!
2018-05-27 John Gibson <johgibso-at-indiana.edu>
* Doug fixed a long-standing bug that caused a crash for scores that had more than 32767 references to a shared resource, such as a table.
2017-11-05 Douglas Scott <netdscott-at-netscape.net>
* Big Makefile revision, part 1: 'make' and 'make all' will exit on first error.
* 'make cleanall' removes depend files but no longer does uninstall target.
2017-10-19 Douglas Scott <netdscott-at-netscape.net>
* First big revision to support proper error handling in embedded
* configurations of RTcmix.
2017-08-17 John Gibson <johgibso-at-indiana.edu>
* Add the missing pitch conversion functions for MIDI note numbers,
both in their scalar form and for use in makeconverter. MIDI note
numbers are no longer truncated from float to integer.
NOTE NOTE NOTE -- This is an incompatible change for scores using
these functions! If you rely on this truncation, you will have to
add it in your score, using the trunc() function.
2017-07-28 Douglas Scott <netdscott-at-netscape.net>
* PVOC now has dynamic pfields for gain, interpolation, pitch, and oscillator synth threshold
2017-07-02 Douglas Scott <netdscott-at-netscape.net>
* Added ability for a score to determine if a named variable has been set on the command line (see 2016-08-03).
For example, if arg --myseed=67 is used, ?myseed in the score will be set to 1.
2017-04-26 Douglas Scott <netdscott-at-netscape.net>
* Yet another subrevision. Rewrote parser entirely in C++ and added try/throw/catch for embedded error handling.
Fixed some long-standing issues with the MinC parser.
Allowing MMOVE/DMOVE/MPLACE to be used in embedded in place of MOVE/PLACE based on site.conf.
Began process of making all the public symbols in those two systems unique.
2016-08-03 Douglas Scott <netdscott-at-netscape.net>
* Added ability to pass in named variables via arguments: --myseed=67 makes the variable $myseed available in Minc.
2015-9-05 Douglas Scott <netdscott-at-netscape.net>
* Another revision! Now version 4.2.0.
Added support for Minc function definitions which are declared inline at the top of a score.
Minc variables are now 'scoped', which means their visibility can be local to the block in which they are defined.
Turned on much-improved parser error messages (this is a Bison feature I did not know about).
2015-5-16 John Gibson <johgibso-at-indiana.edu>
* Let user store color preferences for OS X MouseWindow app.
This feature courtesy of Stanko Juzbasic.
* New, experimental instrument (RESYNTH) that lets you do partial
resynthesis from an SDIF file. Requires Ircam SDIF library.
2015-04-22 Douglas Scott <netdscott-at-netscape.net>
* Added new rtcmix_print() to replace all printf() use in RTcmix (because MAX and iRTcmix cannot display the latter).
Beginnings of work to improve error handling, especially in embedded (where die() does not die).
Wrapped a bunch of memory-related debug logging in #ifdef DEBUG_MEMORY.
2015-02-04 Douglas Scott <netdscott-at-netscape.net>
* Bumped version number to 4.1.1 to track changes to bus count code and embedded API changes.
2014-03-04 Douglas Scott <netdscott-at-netscape.net>
* Major revision! Pushing version to 4.1.0.
1) Cleaned up a lot of cout-vs-printf crud, on the way towards having no stream stuff. MMPrint stuff is now just an implementation detail.
2) Generalized #ifdefs from "MAXMSP" to "EMBEDDED" wherever possible to allow builds for other non-MAX platforms.
3) Unified audio path for embedded/MAX vs. desktop; both use AudioDevices and inTraverse. Much simpler!
4) Added RTExit() and rtcmix_debug() to help simplify error handling and debugging. MSP versions call cpost() to allow console view.
5) Created a full set of "outward-facing" functions that are called by MAX/MSP and other embedded systems.
6) Reworked yacc/lex code to remove leaks, added wrapper header to rename all public functions.
7) Cleaned up all global/static state and memory usage so system exits and restarts cleanly.
8) InputFiles now support loading from memory -- so new rtinput(file, "mem") functionality.
9) Fixed some minor bugs in dispatch/checkInst code.
10) Added AppleAudioDevice and MSPAudioDevice.
2013-11-09 Douglas Scott <netdscott-at-netscape.net>
* Added ability to pass array ({ ... }) as pfield. translen() now accepts
arrays or tables of pch interval values.
2013-11-06 Douglas Scott <netdscott-at-netscape.net>
* Fixed PVOC instrument to get rid of starting glitches.
2013-10-28 Douglas Scott <netdscott-at-netscape.net>
* Added new option to force-mute audio output that exceeds a given level.
Also added a new chance() function which returns true based upon the odds
of (arg0 / arg1).
2013-10-04 Douglas Scott <netdscott-at-netscape.net>
* Added support for in-memory files via rtinput "memory" argument.
2013-09-22 Douglas Scott <netdscott-at-netscape.net>
* Added new LOOP instrument.
2013-09-20 Douglas Scott <netdscott-at-netscape.net>
* Consolidated the basic printf-style code into new macro so MAX
and other versions can use same code (new macros). Changed #includes
and headers to match. Also worked to get rid of MAX ifdefs wherever
I could.
2013-09-02 Douglas Scott <netdscott-at-netscape.net>
* Split out one Instrument class method to allow CHAIN'd insts
to be configured correctly. Guess I forgot to add a change log
for all the CHAIN work a few months back...
2012-09-08 Douglas Scott <netdscott-at-netscape.net>
* Reworked multi-threaded code to remove almost all the locks. This
included a rewrite of the InputFile class to handle multi-threaded
file audio conversion. MT code also now works under Linux.
2012-7-15 John Gibson <johgibso-at-indiana.edu>
* Make it so that the amp envelope for FILTSWEEP can be used to
suppress the click that occurs at the beginning of a note when
the balance feature is used.
2011-12-19 John Gibson <johgibso-at-indiana.edu>
* pickrand and pickwrand now can take arrays of floats as
arguments, in addition to the individual floats. Example:
x = { 1, 5, 22, 99 }
y = { 3, 9, 33, -99 }
val = pickrand(x)
val = pickrand(x, y)
2011-08-10 John Gibson <johgibso-at-indiana.edu>
* The Mac DisplayWindow and MouseWindow helper apps compile and
should now work. Requires Xcode 10.6+ SDK.
2011-07-25 John Gibson <johgibso-at-indiana.edu>
* maketable now lets you supply its numerical arguments via a parser
array for any table type. (Formerly, you could do this only with
the "literal" type.) Example:
x = { 0,0, 1,1, 9,1, 10,0 }
table = maketable("line", 1000, x)
same as...
table = maketable("line", 1000, 0,0, 1,1, 9,1, 10,0)
2011-07-23 Douglas Scott <netdscott-at-netscape.net>
* Removed remainder of old RTUPDATE code completely.
Added system for running methods on class objects in parallel via multiple
threads. Added this to inTraverse() via #ifdefs (not pretty yet). In order to
support this, I needed to add locking to about a dozen input and output
methods used by the Instrument class. Some of these are #ifdef'd and
others are compiled in at all times because they don't impact efficiency.
Also tweaked a few other small methods for efficiency.
2011-01-05 Douglas Scott <netdscott-at-netscape.net>
* Time for my yearly checkin note. Reworked OSX audio once again to
correctly handle multi-stream hardware, and allow device to be opened
with any number of RTcmix channels. Checked in a host of other changes,
most of which were cleanup. Working on clearer way to handle locking of
state in bus config code.
2010-01-08 Douglas Scott <netdscott-at-netscape.net>
* Fixed 64-bit OSX audio problem. Checked in dozens of minor changes
which will help prepare RTcmix for true 64-bit mode (using >2Mb files,
etc.
2009-08-28 John Gibson <johgibso-at-indiana.edu>
* Allow enabling or disabling 64-bit compilation via configure script.
(The actual compilation still needs work.)
2009-03-01 John Gibson <johgibso-at-indiana.edu>
* Fix crash when analyzing OS X audio devices having more than
one stream (such as the Focusrite Saffire Pro 40).
2007-09-23 John Gibson <johgibso-at-indiana.edu>
* Fixed amp envelope problem in several instruments that
divide their duration into two stages: time when reading
from a file (or bus) and time when ringing down the effect.
We intended for some instruments to apply an amp envelope
only to the first stage, so that an envelope table would
scale to fit just the input duration. This was not happening.
Instead, the table was scaled to fit the duration of the
two stages combined, but the envelope was not consulted
during the ringdown stage. This could result in a click
at the start of ringdown, depending on the character of
the input. The problem was with tables created with maketable,
not with makegen. This has been fixed in DELAY, PANECHO,
JDELAY, FREEVERB, REV, REVERBIT (and several others in
which the effect of the change is not as dramatic). If a
score applied an amp envelope, created with maketable, to
one of these instruments, and the ringdown duration was
more than a few tenths of a second, you might hear a
difference in sound. For example, the attack time of the
note will be shorter.
2007-09-11 John Gibson <johgibso-at-indiana.edu>
* Add optional initial value to control-smoothing filter:
handle = makefilter(handle, "smooth", lag[, initval])
Formerly if init value coming into filter was non-zero, you'd
get a curve from 0 to that value, resulting in weird pitch or
filter cf glisses, etc. Now, just set the new initval argument
to whatever is the initial value seen by the filter.
* Fixed all the various makeconnection PFields that take a lag
parameter so that their internal smoothing filter starts from
the default value given in the makeconnection call, for the
same reasons given above.
2007-07-10 Brad Garton <brad-at-music.columbia.edu>
* New score function: pchadd, which safely adds two oct.pc numbers,
preventing unexpected results when adding a negative number, e.g.,
8.05 - 0.07. This would give the wrong result (7.98, a very high
note). Instead "pchadd(8.05, -0.07)" returns 7.10.
(explanation by JG)
2007-02-25 John Gibson <jgibson-at-iglou.com>
* New instrument: FILTERBANK, which is a lot like IIR's INPUTSIG,
but permits real-time changing of filter parameters.
2007-02-06 John Gibson <jgibson-at-iglou.com>
* Add a way to make an OS X binary package (in pkg/osx).
2007-01-13 John Gibson <jgibson-at-iglou.com>
* New default behavior for WAVETABLE: If no wavetable argument,
and no old-style gen 2, then it will use a built-in sine table.
2006-05-31 John Gibson <johgibso-at-indiana.edu>
* Add trand() score function, an idea from Doug Scott.
This works like irand, except that it returns an integer
in the range [min, max), suitable for using as an array
index. It guarantees that min is not less than zero.
* Make irand() min argument be optional, so new syntax is
irand([min,] max). If min is missing, then min will be
zero and the single argument gives the max value.
2006-05-21 John Gibson <johgibso-at-indiana.edu>
* Add simple DC blocking instrument, DCBLOCK (in insts/jg)
2006-05-08 John Gibson <johgibso-at-indiana.edu>
* Make MULTEQ work with input/output of as many as 8 channels.
* Make peak-finding function (sndlibsupport.c) also find average
amplitude, RMS amplitude and DC offset; make this info available
(optionally) in sndpeak. Also, let sndpeak work with 24-bit files.
* New filerms and filedc script functions, which work like filepeak().
2006-02-17 John Gibson <johgibso-at-indiana.edu>
* Make peak-finding function (sndlibsupport.c) -- used by sndpeak,
the filepeak() script function, etc. -- work with 24-bit files.
2006-02-11 John Gibson <johgibso-at-indiana.edu>
* Fix bad 24-bit file bug: formerly, when reading 24-bit files,
the inskip was set as if the file were 16-bit, meaning that a
non-zero inskip would act as inskip * 2/3.
* TRANS3 updated to respond to 4.0 features.
2006-01-24 John Gibson <johgibso-at-indiana.edu>
* Add octlet, pchlet, cpslet functions, which convert from ANSI
pitch representation (e.g., "C#4") to familiar RTcmix representations.
Note that these strings can also include cents, e.g., "C#4 -50" for
C# above middle C minus 50 cents. For more information see
http://dactyl.som.ohio-state.edu/Humdrum/representations/pitch.rep.html.
2006-01-22 John Gibson <johgibso-at-indiana.edu>
* New instrument: SPLITTER, which works like a set of mult
jacks on a patchbay, distributing a single input signal
to multiple output channels.
* FOLLOWER family of instruments: mono output has been broken
for 3 years. Shows how much use this is getting. ;-)
2006-01-05 John Gibson <johgibso-at-indiana.edu>
* Support for JACK <jackaudio.org>
2005-11-30 John Gibson <johgibso-at-indiana.edu>
* Support for OSC input, grabbed via a new makeconnection("osc", ...)
variant. This requires liblo <http://plugin.org.uk/liblo>.
2005-11-10 Douglas Scott <netdscott at netscape.net>
* Finished the first version of my PVOC filter system.
2005-09-25 John Gibson <johgibso-at-indiana.edu>
* Add options to sfprint to show peaks in dBFS and peak locations in
times, rather than frames.
2005-08-19 John Gibson <johgibso-at-indiana.edu>
* Fixed a problem reading files written by Peak (and any other
program that writes header data after the sound data chunk of
an AIFF or WAV file).
* New tablemin and tablemax functions, which return the
min or max value of a table passed to them.
2005-08-14 John Gibson <johgibso-at-indiana.edu>
* New instruments, STRUM2 and STRUMFB, which are meant to replace
in many instances the older STRUM family of instruments. Consider
these as experimental for now.
* New instrument: VOCODE3
* New "linestep" table-creation function, which lets you create
flat line segments using any number of <time, value> pairs.
* New modtable variant, "concat", which returns a larger table
formed by concatenating two tables.
* New Ougens objects: Obalance, Orms, Odistort, Ostrum.
**** Released RTcmix-4.0, Sunday, August 14, 2005 ****
2005-06-15 John Gibson <johgibso-at-indiana.edu>
* New instrument: WAVY, a dual-oscillator WAVETABLE variant. Lets you
update the wavetable in real time (using modtable(..., "draw", ...))
and has various oscillator combination modes. For example, setting
the mode to "a - b" and using a sawtooth waveform gives you a pulse
waveform. Then you can modulate the phase offset between the oscillators
to get pulse width modulation. Most any arbitrary expression can
govern the combination of 'a' and 'b' oscillators.
* New script info functions: filedur(), filechans(), filesr(), filepeak(),
for getting info about a sound file other than the one most recently
loaded using rtinput(). For example: dur = filedur("my.wav")
2005-06-12 John Gibson <johgibso-at-indiana.edu>
* New instrument family: SPECTACLE2, for FFT-based delay and EQ processing.
Other variants to come. This is a vastly cleaned up version of SPECTACLE
and includes support for some real-time updates.
2005-06-04 John Gibson <johgibso-at-indiana.edu>
* New Ougens objects: Offt, Obucket. Offt is a simple wrapper around
one of two FFT libraries chosen at compile time: fftw3, and FFTReal,
the latter by Laurent de Soras. The API to Offt is very similar to
that of the C version used in cmix for many years. Obucket is a
simple delay line that invokes a callback when the output index wraps
around. This makes the buffering and manipulation of FFT data -- the
buffer sizes of which hardly ever align cleanly with the RTcmix run()
buffer size -- much easier to handle.
* New instrument: CONVOLVE1. This is similar to insts/std/convolve; it
has fewer capabilities, but it can run with in real-time input.
2005-04-28 Douglas Scott <netdscott at netscape.net>
* Added 'include' feature to Minc parser.
* Updated loader functions to c++.
2005-04-27 Douglas Scott <netdscott at netscape.net>
* Cleaned up several instruments to remove direct use of base class member.
2005-04-14 Douglas Scott <netdscott at netscape.net>
* First pass on reducing clutter in global symbol space.
Added 'static' to many global vars and to some functions
only used within a single compilation unit.
2005-04-11 Douglas Scott <netdscott at netscape.net>
* Audio device pointer is now owned by the RTcmix class. Simplified
the routines which manipulate the device.
Thursday, March 24, 2005 Brad Garton <brad-at-music.columbia.edu>
* added code to the "expbrk" and "linebrk" functions of maketable()
in (src/rtcmix/table.cpp and src/rtcmix/tableutils.cpp) to
print warning if npoints exceeds the tabel size, and to fill
the rest of the table if npoints < table size (repeats the
last value of the table)
* fixed Ortgetin and added it again to the Makefile in genlib
2005-03-17 Douglas Scott <netdscott at netscape.net>
* Major revision to better handle memory allocation and freeing.
Thursday, March 13, 2005 John Gibson <johgibso-at-indiana.edu>
* Two new makefilter modes: constrain (for constraining pfield output
to values stored in a table) and map (for routing pfield output
through a transfer function)
Thursday, March 10, 2005 John Gibson <johgibso-at-indiana.edu>
* New additive synthesis instrument: MULTIWAVE
Thursday, February 3, 2005 John Gibson <johgibso-at-indiana.edu>
* New granulation instrument: GRANULATE. This has 18 parameters that
can be controlled by the new dynamic PField scheme. See scores in
docs/sample_scores/dynamic_insts/minc.
2005-01-09 Douglas Scott <netdscott at netscape.net>
* Simplified audio I/O by moving all float limiting and peak detection
* out of rtsendsamps, etc., into the AudioDevice classes. HW audio
* devices and file audio devices are now combined as necessary into a
* single compound audio device at creation time.
Friday, January 7, 2005 John Gibson <johgibso-at-indiana.edu>
* The mouse window, invoked by makeconnection("mouse", ...),
now works on OS X.
2004-12-17 Douglas Scott <netdscott at netscape.net>
* Added option to set audio buffer count.
2004-12-07 Douglas Scott <netdscott at netscape.net>
* Added support for multi-device OSS audio (waiting for testing).
Thursday, November 18, 2004 John Gibson <johgibso-at-indiana.edu>
* Two new multichannel panning instruments: NPAN and QPAN
2004-10-08 Douglas Scott <netdscott at netscape.net>
* Added auto-registration of DSOs (optional).
* Created platform-independent dynamic loading utils.
2004-09-27 Douglas Scott <netdscott at netscape.net>
* First pass at consolidating all globals into RTcmix object.
Monday, September 13, 2004 John Gibson <johgibso-at-indiana.edu>
* New mouse and MIDI control signal objects (in src/control/).
Thursday, August 12, 2004 John Gibson <johgibso-at-indiana.edu>
* Two new features for cmixplay: "goto" hotkey (type number to
seek to a different part of the file), and "autopause" option
(pause when reaching end of file, instead of quitting).
Type "cmixplay -h" for more.
Monday, August 2, 2004 John Gibson <johgibso-at-indiana.edu>
* New build process, using a configure script. See INSTALL for details.
* cmixplay has a new set of hotkeys for changing playback volume.
Sunday, September 26, 2004 John Gibson <johgibso-at-indiana.edu>
* New EQ instrument, MULTEQ -- multiple parametric EQs in series.
Friday, July 30, 2004 John Gibson <johgibso-at-indiana.edu>
* Remove EXIT_ON_ERROR macro from site.conf; it's replaced
by Option::exitOnError, which is false by default, but
set to true in main.cpp.
2004-07-27 Douglas Scott <netdscott at netscape.net>
* cmixplay now supports 32bit integer files.
Saturday, July 24, 2004 John Gibson <johgibso-at-indiana.edu>
* Update some instruments for v4 PField control: BUTTER, FILTSWEEP,
FLANGE, JFIR, PAN, MOOGVCF, FOLLOWBUTTER, FOLLOWGATE, JCHOR
2004-07-23 Douglas Scott <netdscott at netscape.net>
* Genlib functions no longer rely on global SR, so prototypes changed and
all instruments which use the functions were modified.
Thursday, July 22, 2004 John Gibson <johgibso-at-indiana.edu>
* Update some instruments for v4 PField control: MIX, STEREO,
COMBIT, DEL1, DELAY, FIR, IIR, NOISE, PANECHO, ELL, DISTORT,
DECIMATE, MULTICOMB, REVMIX, FREEVERB, REVERBIT, FMINST, EQ,
WAVETABLE, FOLLOWER, JDELAY, REV, AM, AMINST, SHAPE, WAVESHAPE.
2004-07-09 Douglas Scott <netdscott-at-netscape.net>
* libgen is now shared and linked via "-lgen"
Friday, July 9, 2004 John Gibson <johgibso-at-indiana.edu>
* New Ocomb, Ozcomb and Ozdelay objects for genlib.
2004-07-08 Douglas Scott <netdscott-at-netscape.net>
* Cmix core now loaded as dynamic shared library on both Linux and OSX.
* makefile.conf user-editable portion now in $(CMIXDIR)/site.conf.
Wednesday, June 30, 2004 John Gibson <johgibso-at-indiana.edu>
* New .rtcmixrc configuration file feature.
* All global options now contained in an Option object.
2004-06-26 Douglas Scott <netdscott-at-netscape.net>
* More work on stop/close/signal handler.
2004-06-22 Douglas Scott <netdscott-at-netscape.net>
* Fixed problems with audio device stop/close and signal handler.
Sunday, June 20, 2004 John Gibson <johgibso-at-indiana.edu>
* New spline table type for maketable.
* Added shifttable, quantizetable, inverttable, samptable, samptablei.
Saturday, June 19, 2004 John Gibson <johgibso-at-indiana.edu>
* Implement maketable versions of all the old gen types, with
some improvements.
* New tablelen script command to see how many items a table has.
2004-06-18 Douglas Scott <netdscott-at-netscape.net>
* Instrument::init() prototype changed to take double[], int.
* Added mixerr value for intstrument initialize failure.
Thursday, June 17, 2004 John Gibson <johgibso-at-indiana.edu>
* Added test program "coreaudioprobe," which prints out some useful
information about all the audio devices attached to an OS X system.
2004-06-17 Douglas Scott <netdscott at netscape.net>
* 1) Instrument subclasses continue to implement an optional
virtual int ::configure(void) method
and a required virtual int ::run(void) method.
* 2) Those method implementations NO LONGER and MAY NOT call the base
class Instrument versions of those methods.
* 3) The Instrument base class now has its own non-virtual version of
configure() and run(), each of which takes an argument, which
distinguishes the base class calls from the class-specific virtual
calls. These base class methods now do what they need to, and then
make a call to the *virtual* version.
* 4) The configure() method returns 0 on success and -1 on failure, which
is a change from the comments in sample_code/MYINST.C. inTraverse()
and checkInsts() now check this return value, because it is possible
for configure() to fail to to memory allocation failure, etc.
* The other thing I did was make the die() function return DONT_SCHEDULE
in configurations where EXIT_ON_ERROR (or whatever it is called) is NOT
defined. This allows the simplified 'return die("some error message");'
2004-06-15 Douglas Scott <netdscott at netscape.net>
* More work on PFields, tables, and multi-type arguments in internals.
Saturday, June 12, 2004 John Gibson <johgibso-at-indiana.edu>
* Rewrote cmixplay to make it compatible with new audio device
code (incl. support for ALSA on Linux). Added new pause
hotkey feature.
2004-06-02 Douglas Scott <netdscott at netscape.net>
* Added in my work on new PField scheme. More work cleaning up
outdated code in sys, as well.
Wednesday, June 2, 2004 John Gibson <johgibso-at-indiana.edu>
* First version of experimental code: Minc v.2 and support
for new PField class scheme.
2004-05-19 Douglas Scott <netdscott at netscape.net>
* 4th revision to audio device code. HW record and play are
now independent: You can turn off playback but turn on
record. Fixed problems with NetAudio, OSXAudio, OSSAudio.
2004-05-12 Douglas Scott <netdscott at netscape.net>
* Cleaned up code that creates the audio device.
2004-05-10 Douglas Scott <netdscott at netscape.net>
* 3rd revision to audio device code. Added support for network
audio. Changed some globals in system for clarity and to
allow future independence of audio input and output.
2004-05-04 Douglas Scott <netdscott at netscape.net>
* Added stub class files for "JackAudioDevice" for interested
developers to examine. Minor other changes.
* Checked in initial version of MMOVE/MPLACE into insts.std.
2004-05-02 Douglas Scott <netdscott-at-netscape.net>
* 2nd revision to audio device code. Completed conversion code
for all supported audio formats, including non-interleaved
and normalized.
2004-04-28 Douglas Scott <netdscott at netscape.net>
* First major revision to new AudioDevice system.
AudioDevices now accept RTcmix input and output buffers
directly as float non-interleaved. All format conversion
handled internally. Removed all references to RTcmix global
conversion buffers. Also, AudioDevices set queue size via
block size and block count, for better internal optimization.
Wednesday, 2004-04-14 Douglas Scott <netdscott-at-netscape.net>
* Major revision of all audio I/O and main loop to use new
AudioDevice classes. Several source files converted from
.c to .cpp. Tested under OSS, ALSA, and MACOSX.
Friday, March 19, 2004 Brad Garton <brad-at-music.columbia.edu>
* added changes to allow imbedded apps to not schedule Instruments
that return error status (uncomment the #define EXIT_ON_ERROR
in the makefile.conf). This is so that imbedded RTcmix apps
(like in max/msp rtcmix~) won't exit for an RTcmix score error.
Friday, March 5, 2004 John Gibson <johgibso-at-indiana.edu>
* Read and write 24-bit sound files. (Doesn't work for old
cmix disk-based insts.)
**** Released RTcmix-3.6, Sunday, Feb 29, 2004 ****
Tuesday, February 17, 2004 John Gibson <johgibso-at-indiana.edu>
* Bug fix for gen 4: if a time span is so short that it covers
only one array slot, NaNs appear in the output, which can cause
clicks and other strange things. This is a rare situation,
but it could (and did) happen.
Sunday, February 8, 2004 John Gibson <johgibso-at-indiana.edu>
* VSTART1 and VFRET1 (STRUM) had a few bugs that could cause clicks
in the output.
* Important change for VSTART1 and VFRET1 instruments in STRUM family:
function table 1 is now the amplitude envelope.
***NOTE NOTE NOTE: Score compatibility warning...
Update scores to move the vibrato function from table 1 to table 2
and the vib. depth function from table 2 to table 3.
(This completes the addition of amp. envelopes to all the STRUM
family instruments.)
Sunday, January 25, 2004 John Gibson <johgibso-at-indiana.edu>
* Integrated code for playing and receiving audio over a network (nplay),
contributed by Mara Helmuth and Ivica Bukvic. Turn this feature on
before building RTcmix (NPLAY_SUPPORT in makefile.conf).
Sunday, January 4, 2004 John Gibson <johgibso-at-indiana.edu>
* Fix compilation bug affecting people whose yacc points to
bison (such as recent Debian Linux systems).
* New instrument: MOCKBEND, by Ivica Bukvic. Like TRANSBEND,
but works with real-time sources, such as aux buses and
input from sound card.
Friday, January 2, 2004 John Gibson <johgibso-at-indiana.edu>
* Fix crash during final chunk of an instrument in rare cases.
Problem was that code assumed buses play back in ascending
order, which turns out to be false.
Sunday, December 7, 2003 John Gibson <johgibso-at-indiana.edu>
* New objlib object: Equalizer (various EQ types)
* New instrument: EQ (1 band of parametric or shelving EQ)
* Change for BEND, BEND1 and FRET instruments in STRUM family:
function table 1 is now the amplitude envelope. This can
affect existing scores in certain circumstances!
Sunday, November 16, 2003 John Gibson <johgibso-at-indiana.edu>
* Change for WIGGLE: Can specify modulator frequency as a percentage
of carrier, to do C:M ratios.
Saturday, September 13, 2003 John Gibson <johgibso-at-indiana.edu>
* Change for FRET1 and START1 instruments in STRUM family:
function table 1 is now the amplitude envelope. This can
affect existing scores in certain circumstances!
Thursday, Sept 11, 2003 Douglas Scott <netdscott-at-netscape.net>
* Made perl into PERL macro for ease of configuration. (Checked most of
this in in June).
* Better FP underflow protection for MOVE, PLACE
Tuesday, August 12, 2003 John Gibson <johgibso-at-indiana.edu>
* New instruments: SPECTEQ - FFT-based EQ; DISTORT - uh, distortion
Saturday, August 9, 2003 John Gibson <johgibso-at-indiana.edu>
* New instruments:
FOLLOWBUTTER - envelope follower controlling a Butterworth filter
VOCODESYNTH - channel vocoder driving an oscillator bank
Wednesday, July 30, 2003 John Gibson <johgibso-at-indiana.edu>
* Add CHANS Minc command - returns number of channels in a sound file
opened with rtinput. (Works like DUR, PEAK, etc.)
* Improvements to BUTTER: add bypass and optional specification of
bandwidth as percentage of center frequency.
Friday, July 25, 2003 John Gibson <johgibso-at-indiana.edu>
* Fix band reject design formula in objlib/Butter.C to conform
to Dodge.
* Add band pass and band reject filter types to insts.jg/BUTTER.
Monday, April 14, 2003 Douglas Scott <netdscott-at-netscape.net>
* Changed scheduling offset system to avoid all need for gettimeofday(),
etc.
* Perl-enhanced RTcmix object now subclass of RTcmix.
Thursday, March 20, 2003 Douglas Scott <dscott-at-netscape.net>
* More work on bus code (renames for clarity, memory cleanup).
* Bus configs now refcounted and cleaned up.
* All Instrument methods now start with lowercase, i.e., inputChannels().
* Added Instrument::configure(), which allows explicit deferred allocation
of memory until just before run time.
* Updated all instruments which depend on these things.
Sunday, March 16, 2003 Douglas Scott <dscott-at-netscape.net>
* Reworked inTraverse code to streamline, fix bugs. More work on bus code.
* Instrument class is now reference counted to allow imbedded access.
* Better dependencies in important Makefiles (to aid dev work).
Monday, March 10, 2003 Douglas Scott <dscott-at-netscape.net>
* Added beginning of test suite in ./test/suite/.
* Added new rterror() function to indicate non-fatal error to user.
* More work on audio_port.c.
* Cleanup of many headers, etc. and added H/lock.h.
* Cleanup of intraverse.C (first stage).
Thursday, February 27, 2003 Douglas Scott <dscott-at-netscape.net>
* Made extensive changes to the setup routines (rtinput, rtoutput,
rtsetparams) to allow them to fail non-fatally and be called again.
* Worked on OSS init code.
Saturday, February 22, 2003 Brad Garton <brad-at-music.columbia.edu>
* Added change to allow app compiling under X11 on OSX using
the RTcmix* object
* Added new object-ugen: lib/Orand.C (H/Ougens/h) -- collects
various random functions scattered throughout RTcmix
* Updated object-ugen lib/Ooscili.C, adding several new access methods
Tuesday, February 18, 2003 Douglas Scott <dscott-at-netscape.net>
* Several rounds of cleanup and bug fixing for PVOC between 2/12 and today.
Wednesday, February 12, 2003 Douglas Scott <dscott-at-netscape.net>
* New instrument: PVOC
**** Released RTcmix-3.4, Saturday, Jan 18, 2003 ****
Tuesday, January 9, 2003 John Gibson <johgibso-at-indiana.edu>
* New instruments: FOLLOWER, NOISE
Friday, December 13, 2002 Douglas Scott <netdscott-at-netscape.net>
* Added min() Minc function to match max().
Tuesday, December 10, 2002 Brad Garton <brad-at-music.columbia.edu>
* New imbeddable RTcmix object and example programs. This lets
you imbed RTcmix into another program and make instrument calls
and update parameters interactively.
Saturday, December 7, 2002 John Gibson <johgibso-at-indiana.edu>
* New Makefile scheme, only really of interest to people developing
instrument packages.
* Better error messages for missing makegens in a script. Instrument
designers note: this changes the behavior of floc() in such a way
that you must now test its return value and handle any errors. (See
insts.base/WAVETABLE/WAVETABLE.C for an example of what to do.)
Wednesday, December 4, 2002 Douglas Scott <netdscott-at-netscape.net>
* Added ability to set thread priority in linux version.
Monday, December 2, 2002 John Gibson <johgibso-at-indiana.edu>
* Fixed bug in AM: if modulator frequency was non-zero (to set
fixed frequency rather than function table), the score would
play silence or crash.
* Added quantizegen function.
Sunday, December 1, 2002 John Gibson <johgibso-at-indiana.edu>
* New family of instruments, called SPECTACLE, that do FFT-based
delay processing.
Friday, November 29, 2002 John Gibson <johgibso-at-indiana.edu>
* Added copygen function and reorganizied makegen code somewhat.
Wednesday, November 20, 2002 Douglas Scott <netdscott-at-netscape.net>
* Added auto-stablize command to LPCPLAY to allow stabilizing of
interpolated lpc frames in real time.
* Updated MOVE and PLACE programs to fix old reverb problems.
Sunday, November 17, 2002 John Gibson <johgibso-at-indiana.edu>
* Added several makegen table processing functions: offsetgen,
scalegen, invertgen, reversegen, shiftgen.
Friday, November 8, 2002 John Gibson <johgibso-at-indiana.edu>
* cmixplay lets you use a rescale factor for integer files.
Sunday, October 20, 2002 John Gibson <johgibso-at-indiana.edu>
* denoise now can process less than the entire input file.
Sunday, September 22, 2002 John Gibson <johgibso-at-indiana.edu>
* sfprint now also prints duration in minutes:seconds format.
* cmixplay now lets you rewind and fast-forward while playing,
and print the current playback time when you type 'm'.
("cmixplay -h" to see help screen.)
**** Released RTcmix-3.2, Thursday, Aug 29, 2002 ****
Wednesday, August 28, 2002 John Gibson <johgibso-at-indiana.edu>
* Added preliminary documentation system in docs/pod. See
"__README__" in that directory.
Monday, August 26, 2002 Douglas Scott <netdscott-at-netscape.net>
* Added new TRANS3 instrument (3rd-order interp) to libTRANS library.
Thursday, August 22, 2002 Douglas Scott <netdscott-at-netscape.net>
* Added new LPCIN instrument to libLPCPLAY library.
* Minc now ignores text on a line that follows '#' or '//'
(i.e., shell or C++ style comments).
Friday, August 9, 2002 John Gibson <johgibso-at-indiana.edu>
* PCMIX (the Perl front end to RTcmix) can now recognize functions
stored outside of the RTcmix source tree. This improvement
courtesy of Doug Scott.
Friday, June 14, 2002 John Gibson <johgibso-at-indiana.edu>
* cmixplay now handles times in 0:00.0 format, in addition to raw seconds.
Monday, June 10, 2002 John Gibson <johgibso-at-indiana.edu>
* New instrument: VOCODE2
Wednesday, May 22, 2002 John Gibson <johgibso-at-indiana.edu>
* New instrument: MOOGVCF, based on work by Stilson, Smith and Kellett.
Sunday, May 19, 2002 Doug Scott <netdscott-at-netscape.net>
* Second set of revisions to Instrument class - made all members protected
and renamed new inline methods to follow agreed-upon convention. Tracked
these changes into source where needed. Made all sys/rtset** functions
into static Instrument methods because they modify private state.
Saturday, Mar 30, 2002 John Gibson <johgibso-at-indiana.edu>
* Support for FreeBSD, contributed by Carl McTague and Judd Storrs.
Monday, Mar 18, 2002 John Gibson <johgibso-at-indiana.edu>
* Fix pvoc bug: transposing would fail for pvoc calls after
the first in a script.
Saturday, Mar 16, 2002 Doug Scott <netdscott-at-netscape.net>
* Added first revisions of Instrument class - inline accessor methods for
state, new block-add method, rtbaddout.
* Added first version of LPCPLAY instrument (with more revisions to follow)
Thursday, Mar 7, 2002 John Gibson <johgibso-at-indiana.edu>
* Fix horrible memory leak, introduced while adding support for MacOS X.
Thursday, Feb 14, 2002 John Gibson <johgibso-at-indiana.edu>
* Fix bug: convolve would hang if the impulse response file was mono.
Wednesday, Feb 13, 2002 John Gibson <johgibso-at-indiana.edu>
* Let fdump write to a file, optionally.
fdump(gennum, "filename") writes makegen <gennum> to an ASCII file.
Each line is an array index followed by the value at that location.
This is for debugging of makegens.
Sunday, Jan 27, 2002 John Gibson <johgibso-at-indiana.edu>
* Fix compilation problem with Perl and Python extensions. They
weren't happy if CMIXDIR in makefile.conf was a symbolic link.
* New Minc functions to combine makegen tables (addgens and multgens).
**** Released RTcmix-3.1, Monday, Jan 21, 2002 ****
Monday, Jan 21, 2002 Dave Topper <topper-at-virginia.edu>
* New feature: real time control of pfield change. ALPHA version.
Instruments can now have pfields controlled in real time. Trajectories
can be set according to makegen functions, and time value pairs used to
specifiy which pfield should be what value, when. See the docs inside
insts.vccm for more detailed info (pfpath_manual_short,
pfpath_user's_manual, rsd_users_manual).
NOTE: Only the instruments in the insts.vccm package work with this
feature currently. Also, this feature does not yet work under Mac OS X.
Tuesday, Jan 1, 2002 John Gibson <johgibso-at-indiana.edu>
* Support for audio input under MacOS X.