Assists music production by grouping standalone programs into sessions. Community version of "Non Session Manager".
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

203 lines
8.0KB

  1. ! title The Non Mixer
  2. ! author Jonathan Moore Liles #(email,male@tuxfamily.org)
  3. ! date February 1, 2010
  4. ! extra #(image,icon,icon.png)
  5. -- Table Of Contents
  6. : Overview
  7. < non-mixer-complex.png
  8. :: Description
  9. The Non Mixer is a powerful, reliable and fast modular Digital Audio
  10. Mixer, released under the GNU General Public License (GPL). It
  11. utilizes the JACK Audio Connection Kit for inter-application audio
  12. I\/O and the FLTK GUI toolkit for a fast and lightweight user
  13. interface.
  14. Please see the #(url,MANUAL.html,Manual) for more information (and
  15. lots of screenshots).
  16. :: Why write another one?
  17. At the time work began on Non Mixer, there was no other powerful,
  18. fast, and light stand-alone free-software JACK mixer available.
  19. There was (and is) LiveMix, however LiveMix is neither fast nor
  20. light, and it wasn't able to accept the necessary external control
  21. data. SpiralSynthModular, strangely enough, was the closest thing
  22. the author could find to the tool he needed (it has gain\/mix
  23. modules and all modules accept Control Voltage input). SSM is truly
  24. an excellent, if neglected, program, but the modules-on-a-canvas
  25. model with manual routing is far too cumbersome of an arrangement
  26. for real world mixing tasks. Instead of creating another monolithic
  27. DAW with built-in routing and mixing, the author choose to follow
  28. the time tested Unix design philosophy of one tool per task. The
  29. most obvious point of division is between the timeline and the
  30. mixer. Drawing the line here allows routing and mixing to actually
  31. occur within JACK, which is an infinitely more flexible arrangement
  32. than the alternative.
  33. :: Features
  34. Non-Mixer shares many features in common with other, similar
  35. projects. However, Non-Mixer's unique architecture permits
  36. surprising new functionality.
  37. ::: Stand-alone Implementation
  38. The Non Mixer is a stand-alone application. It is a complement to Non
  39. DAW, but neither program requires the other in order to function.
  40. Implementing the mixer functionality in a separate program, connected
  41. to Non-DAW via JACK presents a number of advantages:
  42. * Eliminates the need for an internal connection management interface
  43. * Improves overall system stability
  44. * Increases parallelism (utilizes multiple cores)
  45. * Adds flexibility
  46. * Eliminates the need for cumbersome concepts and interfaces such as 'sends', 'groups', 'inserts' and 'busses'.
  47. Multiple instances of the mixer can be run together in order to
  48. organize groups of channels and manage them with your preferred
  49. window manager.
  50. Each mixer strip runs as a separate JACK client. In JACK2, this can
  51. translates into the DSP workload being spread across multiple CPU
  52. cores.
  53. Since the Mixer is an entirely separate unit, you may use any JACK
  54. capable mixer client you want instead of, or in myriad combination
  55. with, the Non-DAW Mixer. The one called LiveMix works well, but
  56. lacks many features of Non's mixer. All operations on the mixer
  57. affect the current mix set state only and are not journaled.
  58. The mixer's design is modular, with all DSP occurring in discrete
  59. modules. One module hosts LADSPA plugins and the mixer is capable of
  60. receiving control (automation) data for any module parameter from
  61. Non-DAW (or another program) via JACK.
  62. Control data is expressed either as Control Voltage (CV) or Control
  63. Signals.
  64. ::: Modular Signal Processing
  65. All signal processing in Non Mixer occurs in /Modules/. This
  66. includes input and output from\/to JACK. The modular design helps to
  67. restrain the total program complexity, and this in turn increases
  68. flexibility and reliability. Even the built-in gain stage and meter
  69. are modules (and you can place as many meters as you like, wherever
  70. you like, in the signal chain, eliminating the post\/pre concept).
  71. ::: Parallel Processing
  72. Because each mixer strip in Non Mixer runs as a separate JACK client
  73. (in its own thread), JACK has the opportunity, upon analysis of the
  74. connection graph, to execute some or all strips in parallel. This is
  75. a highly desirable behavior for those having multi-CPU and\/or
  76. multi-core configurations.
  77. ::: Multiple Instances
  78. Because Non Mixer is stand-alone, it is possible to run multiple
  79. instances. One reason you might want to do this is so that you can
  80. group sets of strips out of a large total number of strips. For
  81. example, you might want to keep all of your drum strips together. By
  82. using multiple Non Mixer instances, you are able to manage these
  83. groups of strips with the familiar navigation facilities of your
  84. chosen window manager. Once again, a modular design allows us to
  85. maintain a good balance of complexity across user interface levels
  86. without duplicating and internalizing the functionality already
  87. available at a higher level.
  88. ::: LADSPA Plugins
  89. LADSPA plugins are hosted by the /Plugin/ module and can be inserted
  90. anywhere in the signal chain (contingent on compatibility of the
  91. I\/O configuration at that point).
  92. ::: Unlimited Strips
  93. There is no limit imposed by Non Mixer on the total number of strips
  94. or Mixer instances you can create.
  95. ::: Automation
  96. Any module parameter may be bound to a /control/. The control may be
  97. controlled via the GUI, or externally via a Control Voltage signal,
  98. such as is output by a Non-DAW control sequence.
  99. All module parameters are alterable via OSC messages, regardless of
  100. whether or not they have /controls/ defined.
  101. ::: Spatialization
  102. Plugins supporting Ambisonics panning are automatically assigned a
  103. special control called a Spatializer. This allows for easy and
  104. positioning of sound sources.
  105. ; What does freedom have to do with this software?
  106. Non is /free software/. This means, briefly, that you are free use
  107. it as *you* wish, free to examine and adapt the source code, free to
  108. share it with your friends, and free to publish your changes to the
  109. source code. Furthermore, Non is /copyleft/, which means that you
  110. are free from the threat of some other entity taking over and
  111. denying you the above freedoms. The /free/ part of /free software/
  112. doesn't refer to price any more than the /free/ in /free speech/
  113. does.
  114. To learn why free software is so important to us (and why it should be
  115. important to you), please see the Free Software Foundation's website:
  116. #(url,http:\/\/www.fsf.org\/licensing\/essays\/free-sw.html,What is Free Software?)
  117. #(url,http:\/\/www.fsf.org\/licensing\/essays\/copyleft.html,What is Copyleft?)
  118. ; Donations
  119. Donations can take many forms. You can donate your time in code, either by
  120. sending it to me for review or cloning the git repository and publishing one
  121. containing your changes. You can donate your time in testing, documentation,
  122. artwork, indexing, etc. Or, if you don't feel that you possess the time or
  123. skills required for the above forms of donation, you can donate money
  124. instead. Money donated will help to ensure that I have the free time, good
  125. nutrition and enthusiasm required to implement new features. It can also be
  126. a more palpable way of saying "Thanks for caring." or "Job well done!"
  127. If you don't love this software, don't feel guilty about not contributing.
  128. If you do love it, then please help me improve it--in whatever manner you
  129. think is appropriate.
  130. #(url,http:\/\/non.tuxfamily.org\/donation.html,Make a donation)
  131. ; Distribution
  132. Development of the Non-DAW and Non-Mixer can be followed with Git:
  133. > git clone git://git.tuxfamily.org/gitroot/non/daw.git
  134. There are no pre-compiled binaries available.
  135. ; Requirements
  136. The following libraries are required to build Non DAW and Non Mixer
  137. * FLTK >= 1.1.7 (with `fluid`)
  138. * JACK >= 0.103.0
  139. * liblrdf >= 0.1.0
  140. * liblo >= 0.26
  141. * libsigc++ >= 2.0.0
  142. ; Community
  143. Feel free to drop by the `#non` channel on irc.freenode.net.
  144. There is a mailing list `non-mixer@lists.tuxfamily.org`.
  145. To subscribe, send a message with the subject 'subscribe' to
  146. #(email,non-mixer-request@lists.tuxfamily.org).
  147. You can also browse the #(url,http:\/\/listengine.tuxfamily.org\/lists.tuxfamily.org\/non-mixer\/,archive).