[Csnd-dev] Csound Mixer Models? 8 x 2 and 2 x 8
Date | 2025-04-13 03:40 |
From | "Dr. Richard Boulanger" |
Subject | [Csnd-dev] Csound Mixer Models? 8 x 2 and 2 x 8 |
Hello Csounders, I am looking for mixer models to study, adapt, and use in CsoundMeta. Might any of you have some that you could send me? (or share in this thread) I have a number in my collection, but none exactly fit the bill. Currently, in CsoundMeta, we have unique effects on all our synthetic and sampling instruments - and these can be controllers and turned on and off But now, we can do live processing and sampling from multiple USB-C mics connected wirelessly to the Quest 3 XR headsets, and so we are designing all sorts of live effects. - and they sound cool and are a lot of fun, too. Currently, we can patch from a live mic or any synth source (orb) in series - making an a nice effect chain in which each of the effects can be muted or controlled and can feed back into each other too. Currently, we also have several 'multiFX instruments' that take the live inputs (or orb output) and mix them internally - tuning them on-off, controlling them, etc. BUT... I am working on TWO live input (on the fly) mixers - one that could patch effects, in parallel, from a single stereo source. - the other, that could patch up to eight stereo sources to a single effect (or effect chain) I have not tested this yet, but it might be that CsoundUnity supports multiple CSDs at Multiple numbers of channels. If that is the case, then I could design mixer csds in which I set nchnls = 8 while all the other csd in CsoundMeta (over 300 now) are in stereo, but I doubt that CsoundUnity (or UnityAudio) works this way. Since these (multi-input and multi-output) mixers need to run as stereo csds (nchnls = 2), I am a little stumped because... Mixer A needs: - Up to Eight Stereo inputs (patched in [live - on the fly, literally;-)]) from the output of csds that are rendering audio in real time - as "ORBS" - Two channels of Output - Level control (linked) on each stereo input channel, and I would add limiters, compressors, and panning on each of the input channels too Mixer B needs: - One stereo Input (patched in [live - on the fly, literally;-)]) - Up to 8 stereo channels of output that can be patched to any of our effect instruments (delays, vocoders, flangers, distortions, resonators, etc.) As I continue to study all of my models in The Csound Manual, The Floss Manual, The CsoundQt Examples, The Csound Catalog, The McCurdy Collection, The Heintz and Yi UDO Libraries, The Cabbage examples, and models in Jeanette and Dave Seidel's compositions and Instruments, I would love to look at any of your mixer solutions for clues and inspiration. using globals using arrays using chnmix using zak using mixersend using signalflowgraph using OSC Thank you for your time, consideration, and inspiration already... I would be grateful and appreciate any advice or models that you might have to offer. Thanks! - Dr.B Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music Professional Writing & Technology Division |
Date | 2025-04-13 11:21 |
From | "Jeanette C." |
Subject | Re: [Csnd] Csound Mixer Models? 8 x 2 and 2 x 8 |
Hello richard, first I would like to ask you to share your effects, if possible, this sounds very interesting. Your multiFX instruments sound like a lot of fun and inspiration for further experimentation. Then, I have a few mixers. Though I have separated the means of passing audio around and mixing it. There is a multi-mono to stereo mixer, using an a-rate array for audio inputs, a k-rate array for input volumes, one k-rate array for input panning and another one for muting. Internally it's just a while loop adding panned and amplified inputs to the audio outputs. For passing audio around I use chn-opcodes. There is an example of that in the Scene Creator collection: http://juliencoder.de/dream/scene_creator-0.5.zip If your Csound can't run with more than two inputs/outputs, I'd possibly look at the JackO opcodes or one of the network-based ones, like OSC. If you can write an application around the Csound code, which can access your audio inputs, couldn't you use channels to pass in audio that way? Isn't that what Cabbage and other systems do? Get controls and audio from the outside and write them to Csound channels using the Csound API? Best wishes, Jeanette -- * Website: http://juliencoder.de - for summer is a state of sound * Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g * Audiobombs: https://www.audiobombs.com/users/jeanette_c * GitHub: https://github.com/jeanette-c She's so lucky, she's a star But she cry, cry, cries in her lonely heart... <3 (Britney Spears) Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here |
Date | 2025-04-13 13:33 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] Csound Mixer Models? 8 x 2 and 2 x 8 |
Dear Jeanette, Thank you for sharing this and for sharing your advice, too. Last night, before writing the email to the list, I spent a few hours studying your instrument library. I am constantly discovering great things in your work and your collection! One of my most often used live effects is your shimmer reverb csd! We are sharing everything about CsoundMeta, including your beautiful music and sounds that render as csd files in there as well! I will clean up all the effect instruments and share them separately over the next few weeks. We are about to make the entire project available to everyone. I am not sure exactly how Strong Bear handles the audio on the Unity side and was hoping to make less work for him by designing more instruments (including mixers) on the Csound side and just having him drop them into the system. (That is where the multi-effect csds work to achieve the parallelism I sometimes need and want, and I plan to make more of these if the mixers do not work in the current system. I will keep you posted and in touch. Thank you for all your amazing work in Csound and for this collection you have shared today. - dB Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music Professional Writing & Technology Division On Sun, Apr 13, 2025 at 6:21 AM Jeanette C. <julien@mail.upb.de> wrote: Hello richard, |
Date | 2025-04-13 16:13 |
From | thorin kerr |
Subject | Re: [Csnd] Csound Mixer Models? 8 x 2 and 2 x 8 |
Attachments | mixer-demo.csd TKmixer-model.orc |
Hi Richard, Here's a patch system I've used for live coding. It's simple to use... and supports 'on-the-fly' changes. There might be a bit of a catch though if you're looking at dropping in existing instruments.. * Firstly, to use: An 8x2 'Mixer A' patch would look like this: patchsig "src1", "MixerA",0.5 patchsig "src2", "MixerA",0.3 ... etc x 6 where "src(n)" is a named stereo instrument, and the values, 0.5, 0.3 etc... are levels. "Mixer A" can be stereo out as expected. Input effects can be chained before or after reaching Mixer A: patchchain fillarray("src1","compressor",Mixer A") As for a 2x8, 'MixerB', patchspread "srcstereo", fillarray("delay","vocoder","flanger","distortion","resonator"),filarray(1,0.8,0.8,0.3,0.6) Where "srcstereo" is a named stereo instrument that outputs to 5 other names instruments. The following array of values controls levels. Of note: Channels, stereo, mono, ... quad or even 8 channels, is handled automatically. A mono source can go to a stereo effect, and it will autocopy the mono channel to both input channels in the effect. Also patch chains don't care what order the instruments are in. No need to order by instrument number. * Here's the catch.... - You must use named instruments. - 'Source' Instruments output the audio using the 'send' UDO. - 'Effects' (instruments that have inputs), need to be wrapped in something called an EffectConstruct. See the attached example. On the upside, effects can be 'hotswapped' while running and crossfade into the 'new version'. I've attached an example. Just make sure TKmixer-model.orc is in the same folder as mixer-demo.csd, or your #INCDIR. This demo is stereo, but it should work for 8 channel output, however you'll have to adjust nchnls, and the output instruments (299, and 301).Thorin On Sun, Apr 13, 2025 at 12:40 PM Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
|
Date | 2025-04-13 17:50 |
From | "Dr. Richard Boulanger" |
Subject | Re: [Csnd] Csound Mixer Models? 8 x 2 and 2 x 8 |
Thorin, Thank you so much. Like all your work, this is awesome! I will study it this afternoon. I am sure that I will learn many new things as I study and explore and adapt. I think that I understand some of the code and see how it might be used to patch in synthetic or sample-based instruments internally. I especially love how it automatically deals with mono or stereo inputs to the effect rack and adapts to the sources on the fly. Super. What I am wondering (and maybe you might have some additional suggestions or clues for me) is how it might accept stereo audio coming from another instrument that is running simultaneously and externally. If, in this csd, I were to add a 'live audio input' instrument - ("instr live2chInputAB", and then another "instr live2chInputCD", and then another "instr live2chInputCD", and then another "instr live2chInputEF") - without setting nchnls = 8? Is that even possible? What I am wondering is how it might be adapted to take live 'stereo audio' in from multiple sources (multiple ORBS rendering pieces by Thorin Kerr and Michael Gogins, and John ffitch, and generative foley instruments by Rory Walsh, for example. I am wondering, is it possible to accept more input channels in the csd, like 8 shown above, when I have specified nchnls = 2? - Dr.B Dr. Richard Boulanger Professor Electronic Production and Design Berklee College of Music Professional Writing & Technology Division On Sun, Apr 13, 2025 at 11:13 AM thorin kerr <thorin.kerr@gmail.com> wrote:
|