Syntona ToDo

DONE - Add to release notes

Added 4x2 and 8x2 mixer with pan knobs and stereo output.
Added smoothing to the mixer knobs. Eliminates crackle when changing gain or pan.
Exponential taper for mixer gain and amplitude knobs.

==== Phil
O- Nick: once user sets Max, do not modify upon connection, maybe "lock" using checkbox

O- get/set tempo modules
O- release new JSyn with mixer

O- document notePlayer or remove it
O- add sequencer with knobs
O- add drum pattern with checkboxes
O- add mute & solo to mixers (?)

O- should Syntona messages have timestamps? used for future scheduling? JSyn clock?
O- icons for beat transport
O- AllOff or Mute of tree in toolbar. Maybe when paused?

O- add tooltip to module pickers
O- bug selecting a unit moves it down and right
O- add simple circular knob, with right click editor for min/value/max, popup shows level
O- add high level synth voices
O- add polyphonic voice support (how?)
O- record and playback user input, control using transport, 
O- sample load from file, record, playback using dataQueue, model after envelope

==============================
+ Can you add TwoInDualOut to Syntona? 
But Syntona will not export voices with dual outputs until I add a dual aOutput module.  Maybe aOutputDual for stereo voices?

O- Maybe package Syntona using: http://www.jwrapper.com/

Nick:
Text comment module for comments.

BUG: CapsLock on Windows 7. Has to be held down to play music on keyboard.
BUG: Deleted voice still getting called by PlayKeys. Print from Voice.noteOn()

Feedback from Alex ---------


3. Right click menu could be more robust- when right clicking on the background, could have include the modules menu for adding modules. 

5. On mouseover of the module's name, the modules in "Core" display a tooltip with a short 
description of the module, however the modules under "Jsyn" only display the modules 
initial name (not the type, but the given name- sineOsc2, sineOsc3, etc) followed by a comma. 
Core modules also display the modules initial name as opposed to its type.

9. When dragging a new patch line over the different boxes of other voice modules, it sometimes leaves a line behind. This line disappears if a connection is made, however if not the lines do not disappear until somewhere is clicked.


12. Save does not grey out when the patch is saved and not changed and closing will still ask you to save. It is a bit unnerving to have to literally save over your patch every time you close.

13. New does not do anything when a patch is open and the main patch is in focus. If a subpatch/voice is in focus, the main patch will be brought into focus.

Page 2 from Alex
2. Scope's small top bar can be tough to grab for moving around

----------- /Alex

------------- From Class 10/29

Feedback developed in class 2013-10-29


2) Draw connections in user selectable color.

4) Add voice automatically gives you frequency, amplitude, and output (like SynthNote used to)

5) Undo/Redo ( for control changes too, like slider )


9) Macros (!!) Record user actions and play them back.

11) What is velocity of music -> keyboard ? shows 0 or 1


------------- /Class


// Critical for Nick
/* BUG
 * Connection invisible until I mouse click. To reproduce:
1) Start up Syntona
2) File -> Open SimpleSawVoice.xml
3) Syntona does not show connection between voice and lineOut
4) Click on Syntona
5) Connection appears 
 */
/*
3) double input unit shows red edit when value has not changed
core -> input -> double turns red when I move arrow keys even though no change has been made.
4) core -> input -> fader confuses me a little:
What are the two input ports on the left?
When I edit I see values for "kick" and values for "in": What is "kick" on a fader?
The label "in" is confusing... isn't this the min/default/max of what the fader is sending 'out'?
5) When unit editor comes up, the name of a unit is automatically shown in red background textfield as 
though a change was made. (Tried to fix!. Unexplained...)

8) The name of core -> input -> fader does not show up in UI
*/

//TODO "File/New" should close top and create new project with top patch. Tab?

//TODO *color coding for audio modules and connections, use color scheme class, types in models

// Helpful for Nick
//TODO save window sizes and positions
//TODO Help that points to url or a patch file.
//TODO envelope editor
//TODO queue samples
//TODO import classes from a HashSet when exporting Java source

// Infrastructure that speeds development
// TODO Undo/Redo command processor.
// TODO String messages like Start/Stop
// TODO Use Factory for GUI sliders, knobs, etc.
// TODO Abstract clock interface
// TODO Unit tests for plain engine with no GUI.
// TODO AutoTest capture and playback commands, test values, save as XML

//Infrastructure that enables features
// TODO sendMessageToWormhole(wormHole, message)
// TODO Refactor moduleInfo.getEditor( module), moduleInfo.getView( module )
// TODO Editing panel vs edit in patch, performance mode.
// TODO Add ModuleHelp getHelp() or isHelpAvailable() to module.

// Helpful Features
// TODO Edit kickability.
// TODO App-wide Global transport controls that send Start/Stop/Pause/Record/Rewind/ToEnd to a wormhole. 
// TODO Show recursion with red alert when connecting.
// TODO Review NetBeans API
// TODO Define constants for common module names.
// TODO General automation utility for controls.
// TODO Right click on header for help/edit. Store help patches in resources in JAR files.
// TODO Hashed instantiation patch for voice allocation?

// Fun Modules
// TODO *Grid sequencer.
// TODO pitch to frequency, ntet
// TODO counter module
// TODO selector input index picks value and sends to output, use to make sequencer
// TODO MultiTrack sequencer as a custom Patch, regular Patch getEditor returns PatchEditor, this returns MultiTrackEditor
// TODO Hierarchy parallel/sequential editor
// TODO WormHole in/out. EventBus?
// TODO ECMAScript
// TODO MathEvaluator module with f(x), f(x,y), f(x,y,z)
// TODO Recorder Module that records, passes through or replays messages.

