Syntona Release Notes
Reverse chronological order.
V0.5.25 beta Build 52 9/5/2022
- Fixed hang in rampExp when input went negative. Bug was in JSyn ExponentialRamp.
- Remove all reference to SLF4J from JSyn.
- Update rate port on sample module when loaded so it shows the correct value on mouse-over.
- Only open Editor when double clicking on the Header of a module. Previously it might open when double-clicking the Queue button.
- Fix small movement of modules when selected.
V0.5.24 beta Build 51 4/10/2021
- Support loading of WAV files into a jsyn/data/sample module.
- Save patch editor window sizes and locations.
- Add jsyn/filter/waveFolder that warps a waveform using sin(x).
- Fix core/basic/mod4 and mod8 so that is linear when crossing zero.
V0.5.22 beta Build 49 10/16/2019
- Fix export of a Voice patch that has an aOutput2 module. Works now if named “output”.
V0.5.21 beta Build 48 - 9/15/2019
- Add example of extreme phase shift modulation in “patches/examples/CrazyModSawPan.xml”.
- Do not update “show” or module RotaryController when in background to reduce CPU consumption.
V0.5.20 beta Build 47 - 10/7/2018
- Fast port editor. Click in an input value port and drag up or down. Drag left for coarse control. Drag right for fine control. Value will be clipped to the range of the port.
V0.5.19 Build 46 - 10/7/2018
- Fix race condition in “core/input/double”.
- Prevent period of “clock” from getting too close to zero and swamping the CPU with messages.
- Add sine, cosine, floor, round and timesPi modules to “core/math”.
- Fix #70 - caused DELETE key to delete a module if hit when editing a text box.
- Fix #74 - caused aInput modules to lose their min/max/value if deleted then undo.
- Fix #42 - loadKick wasn’t kicking on load.
- Highlight a connection as the mouse passes over it. This makes it easier to trace connections.
- Help patches added for sineOsc, sawOsc, sawOscBL, sample, segEnv.
V0.5.18 Build 45 - 9/17/2018
- Added Cut menu option to accompany Copy and Paste.
- Added Undo menu option. Up to 10 levels. Undoes connecting, disconnecting, adding or deleting units.
- Fixed Gate module. It now passes messages properly if the Gate is open, not if closed.
- Fixed numeric text editing. Was sometimes duplicating the text or throwing exceptions related to empty text. Moved setText() into a Swing thread.
V0.5.17 Build 44 - 9/14/2018
- Fix export of voices containing “segEnv”, segmented envelopes.
V0.5.16 - Build 43 - 9/10/2018
- Fix port naming for voices and patches. Ports were named badly, for example “aInput” instead of frequency.
V0.5.15 - Build 42 - 9/10/2018
- Preventing exporting circuits with names that are illegal Java symbols.
- Reduce CPU consumption when grids are partially covered.
- Add support for MIDI Input. Connect keyboard before launching Syntona. Use “Help” on MIDI units to see examples.
- Faders, Knobs and Double input modules will not copy from the connection if they are already edited.
- Faders, Knobs and Double input modules input will not kick if something is connected to the kick port.
V0.5.14 - Build 41 - 12/17/2017
- Fix missing key presses on Macintosh caused by an Apple/Java bug. Fixes Syntona issue #41.
- Delete contents when closing a top patch to prevent resource leaks and to prevent sound continuing with no way to turn it off. Fixes Syntona issue #44.
- Fix false warning that a “segEnv” JSyn envelope cannot be exported.
- Fix export of single part ports.
V0.5.13 - Build 40 - 10/31/2017
- Ask user if they want to save a subpatch that has been modified when saving the top patch. Fixes JSyn issue #64.
- Update port names in parent patch when edited in subpatch. Fixes Syntona issue #35.
- If a voice is loaded at the top level then use a Voice module instead of a Patch module. Fixes #23.
- If the file for a subpatch is missing then let the user find it and load it. Fixes #31.
- Leave Open item in File menu enabled at all times.
V0.5.12 - Build 39 - 10/11/2017
- Re-enabled copy of min/value/max from connected port. But ONLY if the module’s min/value/max have not already been manually edited. For example, a Fader’s min/value/max will configure itself automatically when connected to the input of another module.
- Warn user if a non-exportable module is added to a JSyn voice.
V0.5.11 - Build 38 - 10/4/2017
- Fixed bug that caused extra connections to appear when copying and pasting a set of modules.
- Do not copy min/max from input port when making a connection because it was confusing and annoying.
- Added an “Add Voice” button to the toolbar in the Patch Editor.
- Added a StateVariableFilter. Look for “jsyn/filters/stateVar” module.
- Added aOutput2 module so that a voice can have a stereo output.
- Added “jsyn/effects/pan” module. Note that “min” should be set to -1.0. This needs to be fixed in JSyn.
- Note that “moogLPF” was removed. It was an alias for “jsyn/filters/fourPole”.
V0.5.10 - Build 37 - 12/5/2016
- Added “Doc…” menu item to module popup menu that links to JSyn java docs. Can be used from the header of a module or from the selection tree.
- Added “Help…” menu item to module popup menu that links to an example patch. Can be used from the header of a module or from the selection tree. Only a few implemented so far, eg. “jsyn/control/DAHDSR”, “jsyn/control/rampLin” and “music/sequence/grid4x16”.
- Fixed bug where “core/input/double” turns red when the user moves arrow keys even though no change has been made.
- Added “Add” checkbox to editor for JSyn inputs. This can be used to control the setValueAdded() on a JSyn UnitInputPort. From the JSyn docs “If set false then the set() value will be ignored when other ports are connected to this port. The sum of the connected port values will be used instead. If set true then the set() value will be added to the sum of the connected port values. This is useful when you want to modulate the set value. The default is false.”
- Add support for multiple top level patches.
- Note that the old code was extracted from an old CVS repo and moved to a private GitHub repo so it should be easier to make progress in the future.
V0.5.9 - Build 36 - 3/2/16
- Use Android/JSyn code style for exported Java source.
- Warn user if they try to export a Voice without an output.
V0.5.8 - Build 35 - 10/7/15
- Fix export of envAD. It used to crash.
- Fix bug that left an input port in the upper level patch module after it had been deleted from the patch.
- Add timestamp to exported noteOn() code for segmented envelopes.
- Increase precision of double precision ports.
- Add “music/getTempo” module.
V0.5.7 - Build 34 - 4/13/15
- Add “jsyn/filters/fourPole” lattice filter.
- Add “music/setTempo” module.
- Add “music/sequence/grid4x16” for creating basic drum patterns. BETA, may change.
V0.5.5 - Build 32 - 12/18/14
- Fixed jsyn/data/monoRdr module having an extra dataQueue port.
- Added JSyn class name to the popup tooltip for JSyn modules. Hover your mouse over the module’s blue header.
- Fixed export of Delay1 unit, The import used the wrong package and the delay line was not allocated.
V0.5.4 - Build 31 - 11/6/14
- Fixed naming of ports in exported Java source. “inputa” is now “inputA”.
- Fixed problem with export port value being out of bounds between min and max.
- Automatically append .xml or .java to saved or exported file names if missing.
- Improved automatic generation of package name when exporting Java Source. Now works for “.org”, “.net” and “.edu” domains.
V0.5.3 - Build 30 - 11/3/14
- Audio input ports that have incoming connections now show the connected value when you hover over them with the mouse.
- Added mixers with stereo output and pan knobs, mixer4x2 and mixer8x2. Note that exporting a voice with mixers requires JSyn V16.7.1 or later.
- Mixers now have smoothing so they do not crackle when the gain and pan knobs are turned.
- Mixer gain and amplitude knobs now have an exponential taper for a more natural feel.
V0.5.2 - Build 29 - 9/29/14
- Added core/input/comment module for documenting patches.
- Fixed bug that caused some units, eg “double”, to have wrong size when saved. If you see a big “double” unit, replace it with a new one and save the patch.
- Fixed bug of file save & open filter not seeing “.XML” vs “.xml”. Now case insensitive.
- Audio input jacks now show instantaneous mixed input value when you hover over them with the mouse.
- Prevented saving patches with the same file name as a child or grandchild patch. That causes a deadly recursion.
- Added “Add Stock Ports” button to voice editor. Adds “frequency”, “amplitude”, “output” ports.
- Removed recent feature that copied name from connected jack to the aInput module name. Too much automation contradicted user action.
V0.5.1 - Build 27 - 9/15/14
- Disable Play Keys when typing in red text field.
- Delete key now deletes selected modules. (tested on Mac)
- Connecting an aInput or a fader module to an input port copies the min, value and max from that port back to the source. * * Only happens on first connection.
- Close module editors before putting up “Do you want to SAVE” dialog to prevent Syntona from appearing to hang.
V0.5.0 - Build 26 - 9/8/14
- Close module editors when a module is deleted.
- Added support for Copy/Paste.
- New module browser on left side of editor with drag and drop support.
- Capture 24-bit audio recording of a performance using JSyn toolbar.
- Transport with start/pause/rewind. Sends beat clock messages. Tempo control.
- Added “Detach File” item to File menu so that a subpatch can be dissociated from the file it was loaded from. Handy when modifying a subpatch for a specific use and you don’t want to overwrite the original.
- Added some new JSyn unit generators:
- phaseShifter - effects processor
- delay1 - 1 second variable delay
- mixer8x1 - 8 channel mono mixer with amplitude port
- Use case insensitive match for “frequency” and “amplitude” ports when playing keys.
- Show Java version in logs
- File save dialog requires that the file have a “.xml” suffix.
V0.4.1 - Build 25 - 12/5/13
- Fix bug that caused voices nested within other voices to turn on or off twice when played using the ASCII keyboard. This could cause the voice to make an extra sound when turned off.
- Added “examples/PlaySampleHold.xml” that plays pseudo-random notes and triggers sequenced envelopes using the K key.
V0.4.0 - Build 24 - 12/3/13
- Add “on” and “off” jacks to “jsyn/voice” module so you can trigger notes using messages containing a frequency. Open “examples/SequenceFM.xml” for an example.
- The segEnv now uses “Immediate” mode when queued on. This involved a change to the queueOn() method in JSyn.
- ASCII Keyboard Input
- The CapsLock keyboard player will only now work for “jsyn/voice” modules if the voice “on” port is not connected to anything. This allows the user to combine automatic note playing with keyboard playing.
- Added “music/keyPitch” that outputs a MIDI pitch on/off over a 4 octave range when keys from the left side of the keyboard are pressed. This should be used for playing notes. Playing using the unconnected voice is a deprecated feature and will be removed soon.
- Added checkbox for toggling on or off the PlayKeys mode. (CapsLock also still works.)
- Added “core/input/key” module that outputs the value of any key pressed.
- Added “core/input/keyMatch” module that outputs the value if a specific key is pressed. Select the matching key by double clicking the header to open the editor. Enter a letter or digit then close the module editor.
- Change ports on “music/keyboard” module to “on” and “off” to match the new voice jacks.
- Increased size of top header on scope and other modules to make them easier to drag.
- Offset connecting lines to reduce overlap.
- Fix spacing of jacks on “input/double” module.
V0.3.9 - Build 23 - 11/27/13
- Add “Immediate” checkbox to segEnv envelope editor. If checked then the queue will be cleared when the envelope is queued. This prevents the queue from fillng up with envelopes faster than they can be played.
- Envelope editor radio buttons now say “points”, “onLoop” and “offLoop”.
V0.3.8 - Build 22 - 11/26/13
- Add “core/basic/modulo8” module that selects an output based on the input modulo 8. Modulo is the “remainder” after division.
- Add “core/basic/cascade8” that is like a “sequence8” but has a reset and an overflow allowing them to be cascaded. Connect one of its outputs to the reset to generate shorter sequence lengths.
V0.3.7 Build 21 - 11/25/13
- Use smaller text for labels.
- Use wider generic modules.
- Right justify labels for output ports.
V0.3.6 Build 20 - 11/25/13
- Fix sizing for “code/view/show” module.
- Added segmented envelope data module under “jsyn/data/segEnv”. Envelope has “On/Off/Queue” buttons. You can connect to the button ports.
- Added segmented envelope player module under “jsyn/data/monoRd”.
- Added “core/basic/clock” module that outputs increasing values, 0,1,2,3, etc. It has Start, Stop and Reset buttons. You can connect to the button ports.
- Added “core/basic/sequence8” module that can be used like an analog sequencer. Input gets routed to outputs sequentially.
- Added “core/basic/toggle” which is basically a sequence2 module.
- Added “core/basic/order4” that pass incoming messages to each of its outputs in order. Used for explicitly determining order of operations in Syntona.
- Added example for envelopes called “SequencedSaw.xml”.
V0.3.5 Build 19 - 11/9/13
- Add scroll bars to patch windows.
- Save and restore main window position and size.
- Write log messages and exceptions to a Log window in Syntona.
- Allow editing of aInput or input ports from inside the patch.
V0.3.4 Build 18 - 11/9/13
- Warn user if exported file name does not end in “.java”.
- Ask user to find a missing subpatch file when loading patches.
- Fix crash when deleting a subpatch with connections to it inputs.
- Support Export of Java Source for voices that contain sub-voices. Sub-voices will be declared as inner classes with unique names.
- Save last loaded file and use that as the default to load from next time.
- Disable “LoadSubPatch…” menu item when there is no front patch to load it into.
V0.3.1 Build 14 - 10/29/13
- Use CAPS_LOCK to toggle playing notes on the keyboard. Now you can play while wiggling faders.
- Fixed bug with units working when some ports were set() but not when driven from a connection. These include:
- LinearRamp: input and time
- ExponentialRamp: input and time
- AsymptoticRamp: halfLife
- ContinuousRamp: time
- PeakFollower: halfLife
V0.3.0 Build 12 - 10/27/13
- Add saving and loading of subpatches using linked files.
- Ask user if they want to save modified patches when closing.
- Open module editor by double clicking on header.
- Added Delete to Module popup menu.
- Added menu to open parents of a patch.
- Drag select modules if touching instead of surrounding.
- Assigning modules unique names by index is now on a per-patch basis instead of global.
- Output ports are now marked with a triangle in the top right corner.
- Patch windows now show patch name or file.
- Menu item “Save” only enabled when there is a frontpatch window.
- Added “Load Subpatch” menu item to load a file as a subpatch.
V0.2.8 Build 11 - 10/8/13
- Added more JSyn modules:
- control/select = Select
- control/latch = Latch
- control/latchZC = LatchZeroCrossing
- control/rampExp = ExponentialRamp
- analysis/schmidtTrigger = SchmidtTrigger
- math/adivide = Audio Divide
- Fixed behavior of rampCon. Now follows S curve.
- Fixed NotePlayer clock bug that caused notes to be delayed for a very long time.
- Fixed misnaming of “a+” module. Note that if you load an old patch with an a+ then it might load as an “a/” module.
V0.2.7 Build 10 - 10/1/13
- Fixed bug that required user to click in patch window before modules could be added.
- Save menu item is now only enabled after SaveAs is used and not canceled.
V0.2.6 Build 9 - 9/30/13
- Implement New and Open… in File menu.
- Fix Random module.
V0.2.5 Build 8 - 9/29/13
- Fix bug that caused the patch editor to not respond when opened more than once.
- Removed MODE buttons.
V0.2.4 Build 7 - 9/27/13
- Prevent connections between 2 output ports.
- Fixed bug that prevented connecting to both inputs of a stereo LineOut. Note that old patches that used LineOut will need to be reconnected because the names changed!
- Show filename in frame titlebar after SaveAs…
- Min and Max in Module editor can no longer cross.
- Save will now save to last file opened using Open…
V0.2.3 Build 6 - 9/22/13
- Fixed problem with saving and reloading port min/default/max values for aInput modules.
V0.2.2 Build 4 - 9/10/13
- Fixed problem with using exported instruments in SoundTweaker. External ports on exported UnitVoices now have names so they show up in SoundTweaker.
- addPort( modIndex = modIndexPassThrough.input, “modIndex”);
V0.2.1 Build 3 - 9/9/13
- After double clicking a patch header, open patch editor down and to the right of front window.
- Use mouseOver on the header to show the object type. For example, it will flip from “frequency” to “aInput”.
- Export Java source setup(min,value,max) for aInput ports.
- Use red instead of orange for selected connections.
- Remove jack from patch module in parent when an aInput or aOutput module is deleted.
V0.2 Build 2 - 9/8/13
Syntona was derived from Wire