Preliminary mixer design: --RamboKid

   |BUS-NAME|
   [Input...]
    [Reset]
   [+-----+]
   [| EFX |]
   [+-----+]
 [Byp][Rs][Lw]
   (dM*Y+Sb)
   V   N   L
   o   u   e
   l   m   d
   S   S   M
   c   c   e
   a   a   t
   l   l   e
   e   e   r
  [Spn1][Spn2]
  [Output...]

Legend:

  • BUS-NAME - editable bus name or fixed "Master"
  • (*) - Power/bus-active LED
  • (+) - MultiState? LED: input+output connected, only input connected, only output conencted, unconnected
  • (d)/(b) - Overshoot LED left/right (signal range exceeds -1..+1)
  • [M] - mute toggle
  • [S] - solo toggle
  • [Y] - sync volume toggle
  • [Reset] - !mute, !solo, volume=1, Output=Master, reset Effect properties
  • [EFX] - Multi effect placement box
  • [Byp] - Bypass any effects processing
  • [Rs] - Raise effect
  • [Lw] - Lower effect
  • [Spn1/Spn2] - Volume spinners
  • [Input...] - spawns dialog, covering input connections (n:1)
  • [Output...] - sender locations (similar to Input...); shows "---" for none, single destination or #number-of-destinations
  • the LedMeter displays signal energy in dB (i.e. can't be used to reliably detect clipping-distortion)

Overall design:

  • right click on mixer effects should popup per-module routing menu (withouth Inputs/Outputs options)
  • property dialogs of mixer effects should have [_] buttons to toggle in-mixer visibility
  • [Collapse] the collapse-button collapses each effect into a single line description
  • its possible to create any amount of mixer busses (these are stereo)
  • multiple tracks and busses can be used as inputs for busses
  • busses send to other busses
  • in the end, what the user hears is the output of the "master" bus
  • mixer should eventually be able to deal with automation
  • offer bus template which defines default value for creation of new busses (volume, effects)

Here are some references on mixers: