Skip to content

A graphical Mixing Console for designed for use with the Focusrite Scarlett

Notifications You must be signed in to change notification settings

trrichard/ScarlettMixer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Info:
    A mixer interface for the Focusrite Scarlett series.

Dependencies:
    docopt
    alsaaudio
    wx 


Mixer Diagram
<ditaa>
 /--------------\    18chn            6chn    /--------------\
 | Hardware  in +--+-------\        /------+--+ ALSA PCM out |
 \--------------/  |       |        |      |  \--------------/
                   |       |        |      |
                   |       v        v      |
                   |   +---------------+   |
                   |    \ Matrix  Mux /    |
                   |     +-----+-----+     |
                   |           |           |
                   |           | 18chn     |
                   |           v           |
                   |     +-----------+     |
                   |     | Mixer     |     |
                   |     |    Matrix |     |
                   |     |           |     |
                   |     | 18x6 Gain |     |
                   |     |   stages  |     |
                   |     +-----+-----+     |
                   |           |           |
                   |           |           |
                   | 18chn     | 6chn      | 6chn
                   v           v           v
                   =========================
            +---------------+     +--—------------+
             \ Output  Mux /       \ Capture Mux /
              +-----+-----+         +-----+-----+
                    |                     |
                    | 6chn                |
                    v                     |
             +-------------+              |
             | Master Gain |              |
             +------+------+              |
                    |                     |
                    | 6chn                | 18chn
                    | (3 stereo pairs)    |
 /--------------\   |                     |   /--------------\
 | Hardware out |<--/                     \-->| ALSA PCM  in |
 \--------------/                             \--------------/
</ditaa>

Model
    getHardwareOutputMuxChannels [ list of names? ]
    getSoftwareOutputMuxChannels [ list of names? ] 
    getHardwareInputMuxChannels [ list of names? ]
    getSoftwareInputMuxChannels [ list of names? ] 
    getMatrixMuxInputChannels [ number of channels? ] 
    getMatrixMuxOutputChannels [ number of channels? ] 
    getMatrixMuxMap { from hw/sw input channels to matrix numbers }
    getMatrix [input(18)][output(6)] => gain
    
    setMatrixMuxMap { ... }

Initial Functionality Reqs
    Route Mixes as Stereo (A&B C&D E&F)
    Selection of inputs.
    Stereo joining of inputs


TODO:
    Currently the output mixers are fused to the outputs
    Mixes are hardcoded as stereo
    Hard code the AB CD etc outputs to monitors and headphones
    Add Save To Hardware button? Maybe do it automaticaly?
    Some way of managing all the poll descriptors in nonblocking/callback way
    Clean out code base
    Stereo Binding
    Toggle switches for special features (turning on and off line level etc)
    Missing Master controls
    Break out panning/reorganize to a different place
    Refactor ScarlettMixerAdaptor
    Reload Pan/Gain matrix at startup
    Test on other scarletts
    Set pan to 50% with a button

DONE
    Bug in order of the muxes 
    Observer pattern isn't going to work for this. WX requires event queues.
        This has a temp fix, using file descriptors and a single poll()
        method for the whole GUI. This may be impractical but seems to be
        okay for now.
    Sliders seem to work
    LR Pan works now



UML
How should I model the fading/panning strategy?
Mix Groups? 
A+B C+D E+F

Input === Input Channel === Fader === Mix Groups === Output Mix
                             ||
                             ||
                        Fading Strategy

About

A graphical Mixing Console for designed for use with the Focusrite Scarlett

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages