Version 1.9.5 - Fixed a bug with real time scheduling on newer Linux kernels (2.6.x). - Jack version: Added support for dynamically loadable jack driver module. Full source code of the module is provided. Version 1.9.4 - Added new command line option "-p" or "--polyvoice". If this option is given RTSynth will use 3 oscillator/filter units per midi note. This results in somewhat smoother but not necessarily better sounds. Version 1.9.2 Cleanups: - removed all old examples as they had been completely outdated. Added examples matching the current version. - reduced internal buffer sizes to a minimum. - locking down of memory when used in real time mode has been completed. - Midi thread runs now by default in non real time mode. This change ensures that the audio stream will never be interrupted by a Midi event. You can still force Midi real time mode from the command line. Improvements: - pitch bend frequency adjustment has been improved. - added 6-pole formant filter to the multi output filter unit. - added gain controller to pm-resonators in drum synth. Version 1.9.0 - In this version more physics can be applied to the sounds by the use of an improved physical modelling resonator. - Eleminated stabilitiy problems. No more wild going flute sounds or drums that kick out their resonators. - Improved PM-resonator effect. This multi resonator adds a body to your sounds and can also add some non linear effects of the body which depends, like with real instruments, on the playing loudness. The build in preset "Organ Rock" is an example for the non linear effect. - Updated documentation -> 2nd draft of a manual is available. - Preset sounds have been updated. Version 1.8.0 "Renovated" the quite old DSP core a little bit to fit to modern CPUs by removing lookup-tables and replacing approximations by their exact formulas. Benefits: - The application is not bound to a fixed sampling rate anymore. As there is still some work to do in the effect section the supported range is for now limited to the range 44100-48000 Hz. - Audible increase of overall tuning. - The string synth has now the long missing pitch bend with a selectable range of +/- 0-4 half-tone steps. A step size of zero will switch back to the old behaviour. (pitch-wheel -> filter) Note: As this is a somewhat CPU intensive task you should switch pitch bend only to on when you really need it! Disadvantages: - Eats some more CPU cycles ;-) Version 1.7.1 - rebuild on SuSE 8.1 with gcc-3.2. It should still work fine on all glib2 based systems. Please let me know if you encounter any "new" problems on gcc-2.9.x based systems. - bug fix in handling of ALSA sequencer note on events with velocity of zero. Now RTSynth runs fine with MusE again! (tested with muse-0.6.0pre2) - Fixed ALSA name. In for example MusE it will now be shown as "RTSynth" and not as "Input" like in previous versions. - support for jack has been dropped for now. Since i upgraded my system, jack doesn't work on my machine anymore:( Hope this will be fixed in upcoming versions. - added mlockall() again, which got lost some time ago. Version 1.7.0-ALSA-v0.9: - added first and incomplete drum synthesizer based on analog drum like synthesis in combination with physical modelling aspects. Voices available: 2 bass drums, 6 toms, 2 snare (incomplete), hihat closed/foot/open (incomplete). - Updated MIDI examples, added Dreaming.mid and goose.mid with drums to give you a small idea of the power and elegance of mathematics in combination with physics;) Version 1.6.10-ALSA-v0.9: - added function "continuous energie flow" to string synth. You find it on the bottom left of the panel. With this option set to on there is a continuous energie flow into the oszillator which will give a sustained sound. The amount of energie is controlled by the key velocity. Version 1.6.9-ALSA-v0.9: - bugfix: redraw problems in the main window have been fixed. - bugfix: the audio device is set according to the config file. - On start the last machine state will be restored. - Extended machine state file format about: master volume, mono/stereo and VU setting. - added rename to tiles menu. Version 1.6.8-ALSA-v0.9: - bugfix: after loading of a saved synth patch the number of voices was set in the GUI but not within the synth machine. - Added command line option to set the audio fragment size. Default is 128 frames. It can be reduced down to 16 frames. Anyway a shorter fragment size will result in higher CPU load. - Added configuration dialog. - Improved tracking of pitch-bender in string and flute synth. - Added optional "auto pan" mode to string synth which will place the sounds according to the Midi-key into the stereo panorama. - Added support to control synth parameters by MIDI controllers. Version 1.6.7-ALSA-v0.9: - bugfix for problem which caused RTSynth to crash when reading midi events from a fifo was choosen. - improved audio performance/latency for new ALSA v0.9 API. Version 1.6.6-ALSA-v0.9: - updated to ALSA version 0.9. Version 1.6.6-ALSA-v0.5: - Added support for ALSA version 0.5 midi and audio. RTSynth acts as a writeable ALSA sequencer input and can therefor be connected to any ALSA Midi source. - bug-fix: removed bug that caused RTSynth to crash while loading a machine state with only one tile. - Changed internal sample format from 32 to 64 bit floating point. - Added a "limiter" to the main audio output. It will protect your ears, loudspeaker or headphone by preventing overdrive of the soundcard volume. Version 1.6.5b: - bug-fix: In string synth the file extension was getting lost durring save. - rebuild with fltk version 1.0.8 Version 1.6.5: - Added the public domain version of "Freeverb" written by Jezar at Dreampoint - http://www.dreampoint.co.uk. My machine is to slow to run the stereo reverb in full quality... anyway even the lower quality modes sound quite good :) Version 1.6.4: - Added possibility to save/load/insert/clear RTSynth's machine state. The state, position, midi channel, connections and number of voices of each visible synth module is stored/restored. - Added new options to the string synth: - 3-pol (18dB) low pass filter. - "pink noise" random source. - "linear" note on velocity behaviour. Version 1.6.3: - Upgraded to glibc-2.1 - Some small runtime improvements. - Added a command line option to set a midi output device. This way you can use RTSynth together with a midi sequencer via the midi loop back device and sent all midi events to your external midi equipment too. Just start RTSynth with a command line like: "RTSynth -i /dev/midi02 -m /dev/midi" To use the excellent Jazz++ midi sequencer together with RTSynth do the following (assuming you have Jazz++ already configured to use the midi loop back device): - start RTSynth and switch it to "on" state. This is necessary because RTSynth opens the midi input and audio output devices only when they are needed and Jazz++ inhibits all free midi devices on startup. - now start Jazz++ Version 1.6.2b: - bug-fix: Fixed a "new" bug in the "EFX Universal filter" Version 1.6.2: - bug-fix: Fixed bug in midi input device handling. Side effect is a faster polyphone performance of RTSynth. - Added possibility to connect synth modules in a non circular order and run as many of them as your computer allows. - Synth is stopped on CPU overload completely. This does not work on multi processor systems. - The effect module is the only one with MidiPan support. - Added new reverb with choose-able density. - Tested on linux 2.2.5 Version 1.6.1: - bug-fix: possible noise when playing glissando in flute synth eliminated. - removed some minor bugs, Version 1.6.0: - Upgraded to glibc. - This version always runs with real time priority. Problems with pipes are solved by using threads. - To prevent a system overload, which could happen when a thread with real time priority tries to eat 100% of the system resources, this version stops on an overload successive all running synth voices and if after that there is still a CPU overload detected, RTSynth switches it self to off-state. This should work in any situation. There should always be enough CPU time left for a maybe very slow mouse movement, anyway use at your own risk. Known to work fine with linux 2.0.33. - Added peak load meter to main panel. A detected over load changes the color of the meter. - Rebuild with fltk-19981207. - After setting its priority RTSynth resets itself to normal user privileges. - Included some sound/effect presets into RTSynth. - Flute-Synth: Fixed output filter frequency update. Now the filter frequency follows always the slider not only on a note on event. - String-Synth: The amplitude envelope now works even when the output filter is disabled. - String-Synth: Changed polyphone note handling. When, on a NoteOn event, the maximum number of notes is reached. The oldest note is stopped immediately to make room for the new one. - The midi pitch bend is bound to the output filter frequency (string) or to the embouchure size (flute). - RTSynth now works fine with the "SoftWerk" software sequencer. - Added command line option for the audio output device. - Some buildin preset sounds, selectable by midi program change. - Some first documentation included. Version 1.5.6: - bug-fix: Sound release now works as desired and some other minor fixes. - overall runtime improvement. On my system I noticed up to about 30 percent less CPU usage. - added some new instrument settings to the "test" folder. Version 1.5.5: - Over all improvement of tuning. The string synth is now "well tempered" over the full range of notes. The frequency error is less than 0.005 percent compared to the theoretical value of a sinus wave, with the assumption that the sound is played exactly at 44100 samples per second (a = 440Hz). - Removed "oversampling" mode to save CPU time. - Extended filter envelope attack speed to allow slower attack. A attack speed value of 1 will start the envelope from maximum now (attack time = 0). - Enabled pipe input mode again. In this mode real time scheduling is NOT possible (linux bug). Conservative "renice(-11)" is used instead. To have "clean" audio output in this mode you should not run RTSynth together with other periodic driven programs like xosview or network services. I have tested this mode with Simon's "midikb" application (www.sdf.se/~simon/). The following standard syntax is used: 'RTSynth 1. Try out the new synth settings in test/. - Reading midi events from stdin or pipe may block the system -> feature dissabled. - added "piano" and "piano2" to additional wave in string synth. This ones take care of the geometric position of the piano hammer -> suppressing of the great second. Examples: test/Epiano-new*.pst - added amplitude LFO to string synth. - added scale-able bore size to flute synth for more unnatural (synthetic) sounds. Still very simple models with cylindric bore. Version 1.5.2: - added main panel. - added flute synths based on "base clarinet" and "base flute". Embochure-size,-feedback and feedback filterorder are only active in "flute" mode. - added "soft damping" mode to string synth. The setting "off delay" is ignored in this mode and "off-damping" is the final damping value. - added oversampling mode to string synth. - next version hopefully implements full midi ctrl of all parameters... Version 1.5.1: - bug-fix: midi note to frequency translation fixed. - simple vu meter added. - modulation mode for universal filter added. - code for "volume #7", "pan #10" and "hold pedal #64" midi controller added. "hold pedal" is only in 24 voice mode active. - added 24 voice mode for active midi controller #64 support. - added 4-pol (24dB) low pass output filter to string synth. - icons for WindowMaker added. - minor performance improvements to minimise the CPU peak load. - added test directory with simple examples (settings and midi files). - added support to read midi events from stdin (pipe). only tested: "cat /dev/midi00 | ./RTSynth"