// bidule holding a master track receiving from a bus, and a collection // of Tracks Mixer : Fadable { var name, master, masterBus, tracks, track, level; *new { |mixerName| ^super.new.init(mixerName); } *initClass { StartUp.add { SynthDef(\master, { |in| var sig, releaser; sig = In.ar(in, 2) * \amp.kr(0.5); sig = Limiter.ar(sig); Out.ar(0, sig); }).add; } } init { |mixerName| name = mixerName; level = 1; masterBus = Bus.audio(Server.default, 2); track = Synth(\master, [in: masterBus.index, amp: level]); tracks = Dictionary(); } addTrack { |trackName| tracks.put(trackName, Track(masterBus.index)); } // access tracks like if Mixer was a dict at { |name| ^tracks[name] } }