First time here? Check out the FAQ!

What’s the best way for Re-Sampling within Kyma?

+1 vote

Hi there,
can someone point me in the right direction?

I’m having problems when splitting audio signals to different memoryWriters inserted in different parallel signal paths.

I would like to implement a sampler engine that could also re-sample itself but on a parallel path (not serial).

Splitting audio signals with the Mixer module creates chaos on the VCS as well as dsp errors because it shares everything (not just audio) before the mixer..?

The Matrix modules would be perfect for what I’m trying to do but they send the signal straight to the hardware outputs so I cannot bring it back to a parallel path within my sound..

I can't find any other module that could split an stereo audio signal to multiple 'sends' within the same sound without duplicating it and renaming it using the Replicator module.

I’m sure there must be an easier way to do this?

So I’ll be waiting for a brighter mind to illuminate me on this if possible..



asked Jul 8, 2020 in Sound Design by eli (Adept) (1,130 points)
edited Jul 9, 2020 by eli

1 Answer

+2 votes

Hi Eli,


I'm not entirely clear what you mean by "a sampler engine that could also re-sample itself but on a parallel path" or "split an stereo audio signal to multiple 'sends'", but it sounds achievable. 

I suggest you try Matrix4 or Matrix8 with a ChannelSelector after them to tap off the channels going to each MemoryWriter. 

Sounds in Kyma can have up to 8 output channels. Many are "mono" (which are actually not single channel outputs but output the same on the Left and Right channels) or stereo outputting on the first two channels. But other Sounds output 4 or 8 channels and Kyma supports up to 8.

Although some Sounds like Matrix4 say they "only work properly as the rightmost Sound" I haven't found that to be the case. 

Here's a quick experiment I tried which uses Matrix4 in the middle of the flow to create a 4 channel output. I then split each channel off and put it through a different delay (which you could replace with MemoryWriters). It seems to work fine. 



Perhaps the "rightmost" instruction is warning us that if we use a Matrix8 in the middle of a Flow, all of its channels won't necessarily find their way to the sound card. It all depends on what you do in the flow between the Matrix8 and the speaker icon. If you put a dual-mono Sound in the path between the Matrix8 and the speaker icon it will only process one of the Matrix8's channels and throw away the rest. Sounds like MultiToMultiChannel or ChannelSelector with Output8 can help you spilt apart and reconstruct an 8 channel connection within the flow. 

As far as I can tell no Sounds within Kyma actually have direct access to the sound card's output channels. They all just construct multichannel outputs within the flow. If these Sounds are the rightmost in your flow then all their channels will indeed address the sound card's outputs. But they need not be the final Sounds in your flow and you can create entire octophonic flows that process, split, recombine and swap around the 8 channels on the way to the speaker icon (ie the sound card). 

answered Jul 8, 2020 by alan-jackson (Virtuoso) (15,840 points)
edited Jul 8, 2020 by alan-jackson
Hi Alan!
much appreciated for your help.

I never imagined I could actually split the signals after the Matrix modules with ChannelSelectors!

Although, I still find it a bit finicky, specially when splitting and routing stereo mixes in parallel that way..

This is something I use a lot when mixing, blending fx sends, and sampling all the time so I hope someone can bring us a full featured Matrix Mixer to Kyma soon!


Well, unfortunately routing the audio with the Matrix and ChannelSelector modules hasn't allowed me to achieve what I want, and I continuously experience errors.
I can't find the right way to Re-Sample signals within a sound in Kyma:

Recording on a MemoryWriter,
Playing back and mangling the original Recording from a Sample,
Re-Recording the mangled audio on another MemoryWriter,
So on and so forth..

If someone has been able to achieve this please let me know.

So far, I have been only able to do this by routing the audio signals to different Sub-mixes on the MultiGrid while sharing the memory between the different tracks..


Do you use the intermediate recordings or listen only to the final result? Perhaps you could construct a chain of effects, rather than writing to memory after each effect?
I've made Sounds that cascade audio manipulation from one loop to another, so I'm sure what you want to do will be possible. I'm not quite sure what you want to do or what your current Sound looks like. Do you want to attach your Sound to your question or a screenshot of the flow?
Much appreciated for your answer SSC

I build looping ensembles for real time performance
So I use many memory writers strategically set on different positions within the signal flow.
I also construct chains of effects to process the different loops but for real-time manipulation only
So it’s crucial for me to re-sample while performing (capturing all the different looping accolades in real-time and play them back straight away)
This way I can constantly evolve the loops by playing my instrument, manipulating and mixing the loops all in real-time.
I do not rely on static fx settings or automation for this.

My goal now is to implement what I call 'Matrix Mixing'
where any loop recordings, groups of loops, or real-time mixes can be re-sampled onto a new one..

Although, I need to understand the rules of Kyma’s architecture first
so I can keep building my ensembles accordingly..

Is there any important restrictions I should be aware of when sampling, and routing signals within Kyma?
I understand that there must be a rigorous way to how Kyma manages the RAM, allocates processing blocks, or matches the polarity of the different audio signals, etc..

The main restriction to be aware of is you can't have a signal that loops back in the flow. All signals flow from left to right. If you want to create a loop or retrograde flow in Kyma you need to use either FeedbackLoopInput/FeedbackLoopOutput or MemoryWriters and some kind of "memory reader" like a Sample player.

If you want to make a matrix of a set of loops where the output of each loop could be the input of one of the other loops then you will need to create some kind of feedback loop to do this.

You can make a cascade of sample loops where loop 1 feeds in to loop 2. Loop 2 feeds in to loop 3. Loop 3 feeds in to loop 4 etc. That wouldn't require a feedback loop. But if you then wanted loop 4 to feed into any of the other loops that would require a feedback loop connection.
Thanks Alan,
Okay, that's important to know..
I've been also trying to implement this by using Feedback Loops
But I constantly keep getting errors when splitting the signals no matter what
(e.g. the final mix of a looping chain goes to a mixer, that then splits out to an output and to another looping chain...)
The VCS becomes a mess and I always get memory errors when I try things like that
Otherwise, when running all the looping engines in parallel everything runs smoothly..
Looking forward to hearing more about this
What do you mean by "memory errors"?
How can i upload files here?
yes. You can't upload files to a comment but you can if you edit your original question. You can upload images or Sound files. To upload a file click on the "link" button.
cool, got it..
It looks like it might be a naming thing. It looks like Kyma is expecting a string and finding a number somewhere. Can you upload your Sound or a screenshot of your flow? It might be the name of a Sound input to StereoInOutput4 or maybe the name of a FeedbackLoop Connection.
I don't have kyma connected right now but I'll look at the names later on
I need to simplify the patches I'm working with at the moment because they are just too big to analyse here..
But for now, I will do the audio routings on the MultiGrid using small looping cells rather than compiling everything on a big patch..
Even though, it would be great to find out the rules and restrictions to keep in mind when creating complex routings within a sound.

Much appreciated for all your help Alan,