[LAA] Non DAW and Non Mixer 1.0.0

malnourite at gmail.com malnourite at gmail.com
Tue Feb 2 00:48:44 EST 2010

I'm pleased to announce the release of Non-DAW and Non-Mixer version
1.0.0. Some version numbers have been skipped, as a lot time as gone
without an official release. Those who have followed Non-DAW via git
will only notice a few changes, most of them pushed very recently.

The chief advancement provided by this release is the long overdue
inclusion of the Non-Mixer. This completes the Non triad and should
cover the needs of many, some in ways I haven't yet imagined (it
covers my needs almost completely).

Non-Mixer is a stand-alone modular mixer application for JACK. It
hosts several internal modules, one of which hosts LADSPA plugins. All
parameters can be controlled through the GUI or externally via Control
Voltage signals [the native control sequence output of Non-DAW] (but a
MIDI<->CV gateway program exists, for other uses). It has the unique
feature of each strip having its own JACK client, which has promising
implications for parallel processing. Non Mixer also has a fast, light
FLTK GUI, which finds no problem in rendering hundreds of strips. I
have plans to add support for DSSI plugins.

Currently, Non-DAW and Non-Mixer are kept in the same repository, even
though they are entirely independent applications. I have already
begun to restructure the repository and build system and I plan to
split the repositories for the two projects out completely, as time

This release is dedicated to Deanna, whose untimely demise, in
addition to the rumors of my own death, has reminded me of my
mortality and the necessity of realizing my dreams while I still have
the opportunity. I will not be discouraged, so don't bother trying. I
will resist blind adherence to the status quo, as I always have--but
now even more fiercely. Progress will not happen on its own. It must
be forced along by individuals of power, wisdom, and vision; which we
should all aspire to become. But I digress.

Non-DAW and Non-Mixer (and Non-Sequencer) can be acquired via git from
the URLs listed on the Non website:


A shortlog from v0.5.0 to v1.0.0 follows:

Jonathan Moore Liles (224):
      Remove dependence on FLTK >= 1.1.8.
      Make mute and solo buttons more colorful.
      Fix offset error in selection rectangle.
      Don't lose track of timeline focus when window loses focus.
      Provide a keybinding/menu entry for track renaming.
      Add action to set range from region position and length.
      Handle very long port names.
      Make normalization work properly with looped regions.
      Improve the appearance of rec/mute/solo buttons.
      Add solo and record blinkers to TLE.
      Oops. Fix order of reference in track destructor.
      Use exact JACK client name in LASH initialization.
      Add module information to debugging output.
      Don't quit on escape key.
      Show disk usage in TLE.
      Take fades into consideration when splitting regions.
      Formally disconnect from JACK at exit.
      Properly handle removal of a track's active sequence.
      Add option to remove all but the current take.
      Remove extraneous inclusions of const.h
      Oops. Write journal entries in proper order when generating snapshot.
      Set value of 'show all takes' toggle correctly when updating menus.
      Fix log entry parser for values containing ":" (colons).
      Use timestamps (of creation) for take names instead of sequential numbers.
      Add total MB free'd to output of 'remove-unused-sources' script.
      Oops. Remove debugging noise from console output.
      remove-unused-sources: Include peak files in deletion and size calculation.
      Draw inactive takes in a darker hue.
      remove-unused-sources: Fix source detection regex and add -m (move) option (now the default)
      Fix occasional segfault upon loading snapshots.
      Clean up sequence widget label drawing behavior.
      Don't make an assertion when drawing empty regions.
      Add 'Denormalize' to Audio_Region context menu.
      Disable some Audio_Region context menu items when appropriate.
      Display Y-axis value for control points on mouse over.
      Fix selection bug for Control Points.
      Cleanup capture code and eliminate off-by-one-buffer bug when bouncing tracks.
      Clean up signedness problems in Loggable ID treatment.
      Add LASH connection indicator to GUI along with --no-lash command line option.
      Implement storage and loading of unjournaled state for Loggable objects.
      Use a hash instead of an array for indexing loggables.
      Add some error checking to unjournaled state save/load.
      Remove unnecessary code from unjournaled state loader.
      Use a single hash table for storing loggables and unjournaled state.
      Remove unnecessary debugging output.
      Don't leak memory in handling of unjournaled state.
      Implement capture-offset latency compensation.
      Give newly created track the focus.
      Save unjournaled state on LASH save file event.
      Don't lose timeline settings on LASH save event...
      Clean up region trimming code.
      Clean up region splitting code.
      Clean up journal transaction buffer code to avoid overflow.
      Assert whenever an invalid journal entry is encountered.
      Don't allow transport relocation while recording.
      Check for makedepend command in configure script.
      Add 'ar' to required commands in configure script.
      Fl_Arc_Dial: Don't forget to execute callback for mousewheel events
      Soften the glare effect in FL_BURNISHED_OVAL_BOX
      Fl_Arc_Dial: Draw value over face of dial
      Implement Fl_Flowpack.
      Implement Fl_Labelpad_Group
      Fl_Sometimes_Input: Draw a box.
      Refactor common components of Timeline and Mixer into nonlib/
      Makefile: disable function inlining when building for debugging.
      Timeline: Try to make the window fill the screen at startup.
      Make boxtype drawn on Fl_Sometimes_Input's up mode configurable.
      Configure: Don't forget to eval result of 'ask' function.
      Make optimized drawing of timeline canvas a compile-time option.
      Make doublebuffering of the timeline sub-window a compile-time option.
      Make use of a sub-window for the timeline a compile-time option.
      Update some copyright years.
      LASH_Engine: Add missing include.
      Timeline: Add blinker to indicate that one or more sequence widgets is selected.
      Timeline: Don't forget to journal edits to time and tempo points!
      Fl_Sometimes_Input: Add omitted include.
      Fl_Labelpad_Group: Measure using actual font of widget instead of always FL_HELVETICA.
      Timeline: Always resize tracks Fl_Pack.
      Don't die if user picks a popup menu item with no callback set (e.g. a submenu node).
      Timeline: Don't die if the user cancels a Track's manual channels set dialog.
      Add some profiling output for project loading.
      Attempt to fix sign error in declicking logic for 64-bit systems.
      Timeline: Attempt to constrain main window to size of screen, but don't automatically fill the screen.
      Don't allow process callback to be invoked between Engine and JACK::Client destruction.
      Control Sequences should output control voltage values between 0.0 and 1.0, not -1.0 and 1.0.
      Allow the removal of annotation sequences via a context menu.
      User can temporarily disable snapping by holding down 's'.
      Make it optional (Options/Behavior/...)  wether or not stopping the transport disables global record.
      Ignore events with modifiers in Timeline::handle() to avoid eating keyboard event for global rec enable.
      Add context menu entries (with keybindings) to Track for record, mute, and solo.
      Add FL_Menu keybinding to popup Track context menu.
      Assign a shortcut to 'Transport' submenu.
      Add entries (with keybindings) for size to Track context menu.
      Properly set default color scheme.
      Remove (deprecated) LASH support.
      Implement Mixer.
      Mixer: Fix memory error and fill newly allocated chain buffers with silence.
      Mixer: Properly handle multiple plugin instances in one Plugin module..
      Mixer: Fix orientation of vertical sliders in Module_Parameter_Editor
      Mixer: Make main scrollbar work again.
      Mixer: Hide panner widget until it's ready to be connected to something...
      Mixer: Teach modules how to serializer their input port settings.
      Mixer: Share (reuse) buffers between all chains.
      Mixer: Fix optimized meter drawing.
      Mixer: Don't redraw mixer strips unnecessarily.
      Mixer: Clean up some compiler warnings.
      Mixer: Allow peaks to be reset on mouse click in Meter_Module
      Mixer: Improve the mousewheel behavior of Fl_Arc_Dial and add Fl_Value_SliderX.
      Mixer: Don't forget to remove timeouts in destructors!
      Mixer: Changes to support project saving/loading.
      Split New_Project_Dialog out into FL/ to share with mixer.
      JACK_Module: Don't forget to shutdown input ports in destructor.
      Mixer: Add menubar.
      Mixer: GUI Cleanups. Also, permit moving of strips to the left/right.
      Mixer: Implement "quit" command.
      Mixer: Gain_Module now accepts gain in dB.
      Timeline: Add blinker to indicate that one or more sequence widgets is selected.
      Mixer: Fix one-off in vertical position of DPM.
      Mixer: Clip module labels.
      Module_Parameter_Editor: Use Fl_Menu_Button instead of Fl_Choice to improve layout.
      Mixer/Module: Save/restore 'active' state.
      Mixer_Strip: Don't forget strip's color.
      Mixer: Don't forget to save and load controllers.
      Module_Parameter_Editor: Hide the module name label because it rarely fits in the window.
      Mixer: Fix race condition causing invalid read in process thread of Meter_Indicator_Module.
      Mixer/Plugin_Module: Properly manage number of plugin instances.
      Mixer: Rearrange so that each mixer strip runs as its own JACK client.
      Add hack to support 'renaming' of JACK::Client.
      Mixer: Fix plugin loading chicken/egg problem.
      Mixer/Plugin_Module: Don't die because user picks a category instead of a plugin.
      Fix bug in plugin input configuration.
      When recreating ports after 'renaming' a jack client, sort by mode, then alpha.
      Timeline: Always resize tracks Fl_Pack.
      Mixer: Add a Mono Panner module.
      Silence warnings about asprintf return value.
      Mixer: Allow user to add internal modules as well as plugins to a chain.
      Mixer: Improve chain insert debugging messages.
      Mixer/Chain: Avoid renaming JACK clients unnecessarily.
      Mixer: Fix invalid read in module picker.
      Mixer: GUI Tweaks.
      Mixer: Use doublebuffering for main window.
      Mixer: Fix box type of strip name widgets.
      Mixer: Draw inactive modules in darker colors.
      Mixer: Don't require a connected control input for processing audio in Gain_Module.
      Make the interval of Fl_Blinker configurable.
      JACK doesn't like it if you set a slow-sync callback and don't act like a slow-sync client...
      Timeline: Add a blinker for pending seek.
      Mixer: Put chian modules inside an Fl_Scroll.
      Mixer: Decrease the default height of Plugin_Module's.
      Add option to tile mixer strips into 1, 2, or 3 rows.
      Mixer: Scan for plugins in a background thread.
      Mixer: Add context menu for Controllers. Save/load control mode.
      Mixer: Make chain background color match mixer strip.
      Mixer: Explicitly destroy chian when tearing down mixer strip.
      Mixer: Show peak value in tooltip on DPMs.
      Disable mouse-over highlighting of mixer strip name fields.
      Implement Fl_Packscroller, an alternative to Fl_Scroll better suited to containing vertical Fl_Packs.
      Use Fl_Packscroller for modules in Chain.
      Don't bother drawing a DPM if it's clipped.
      Mixer: Define minimum height for mixer strips.
      Mixer: Make spatialization control visible again (but it's still not connected to anything)
      Mixer: Add some stuff to the menubar.
      Mixer: Implement Project/Open menu option.
      Mixer: Add stuff to Options/ menu. Save and load options.
      Mixer: Apply appropriate change required by 66daa1.
      Split About Dialog off into FL/
      Fix the new project dialog.
      Mixer: Make sure process queue is rebuilt upon binding of controls.
      Mixer: Add Help/Manual option to menubar.
      Mixer: Make insert-before work for meter indicator module.
      Mixer: Cleanup.
      Mixer: Allow the WM to kill the mixer window.
      Mixer: Attempt to improve the behavior of single-row display mode.
      Prevent Timeline and Mixer from attempting to open each other's project formats.
      Mixer: Add context menu to mixer strips.
      Fl_Packscroller: Let children have a go at events...
      FL/menu_popup: Call menu's callback if menu item lacks one.
      Mixer: Add context menus for modules.
      Mixer: Clean up event handling.
      Mixer: Respond appropriately to JACK buffer size callback.
      Attempt to cope with failure to create JACK clients and ports.
      Add documentation for mixer and restructure supporting tree.
      Mixer: Add color chooser to mixer strip context menu.
      Add section on control voltages to mixer doc.
      Centralize color schemes.
      Mixer: Middle click toggles module activation state.
      Mixer: Add click-to-focus for mixer strips.
      Mixer: Fix restrip rename menu option.
      Update mixer documentation.
      Enforce JACK client name length restrictions.
      Mixer: Separate out public project commands.
      Mixer: Don't allow any strips to be created without an open projcet.
      Make logo used in About_Dialog an option.
      Makefile: Remove some noise from dependency generation output
      Fix syntax error in TLE.fl
      Mixer: Implement cut/copy/paste for modules.
      Mixer: Improve keyboard focus.
      Mixer: Add more keybindings to modules.
      Mixer: Use a toggle in module context menu for bypass instead of separate activate/deactivate items.
      Update mixer documentation.
      Mixer: Make chains look better in the Light scheme.
      Fl_Flowpack: Flow mode should default to on!
      Mixer: tweak the size of GUI elements.
      Mixer: Don't show mixer strip label.
      Mixer: Show project name on menubar.
      Mixer: Set X class of main window.
      Mixer: Warn if user attempts to quit without saving.
      Mixer: Don't show label for Meter module...
      Mixer: Fix "Help" menu item.
      Update mixer screenshots.
      Mixer: Support specifying an instance name on the command line (--instance)
      Prefix main window titles with "Non DAW : "
      Mixer: Clean up some compiler warnings.
      Massively reoganize tree.
      Timeline: Hide seek blinker, which may not be particularly useful.
      Mixer: Don't show module context menu for Meter_Indicator_Module.
      Fl_Packscroller: Don't eat unwanted FL_PUSH events.
      Bump version.
      Tweak build system.
      New logo for Non-DAW.
      Improve logo for Non-Mixer.
      FL: Make About_Dialog more dynamic.
      Last minute documentation updates.

Peter Nelson (1):
      Don't silence input ports.

Feb 01 2010,
Jonathan Moore Liles

More information about the Linux-audio-announce mailing list