First time here? Check out the FAQ!

About efficiency of the Sounds in the library

+1 vote
Being a novice Kyma user i am trying to learn how to construct my own Sounds. Naturally, I would open some already existing Sound to look at its structure, and thus get an idea for a blueprint of my own made Sound.

Well, reading  Appendix section of "Kyma X Revealed", where it explaines about different ways of utilizing the most of the processors power, and how to create Sounds - from most computationally expensve to the most inexpensive - an obvious question emerged:

are all the Sounds one can find in the Sound Browser computationally efficient? I mean, if I choose a Sound from the Kyma Library do I still have an option to modify it such that it becomes less heavy on CPUs?

Even though I have Pacarana with 8 Gb of memory, i believe that it would be a right thing to do if I learn how to use  it as efficiently as possible .
asked Jun 23, 2021 in Using Kyma by usedequipment (190 points)

2 Answers

0 votes

Even though I have Pacarana with 8 Gb of memory, i believe that it would be a right thing to do if I learn how to use  it as efficiently as possible .

Yes, there is almost always some way to make nearly any Sound more efficient (often preserving the same result, sometimes by modifying the result by a small amount).

The amount of memory on the Paca(rana) doesn't affect the amount of processing power you have available; it just impacts the length and number of samples (or other files) that you can have loaded in memory.

answered Jun 26, 2021 by ssc (Savant) (120,590 points)
0 votes

I think this is a really great question. 

Remember that Kyma X Revealed was written originally for the Capybara and the paca(rana)s are way more powerful. The optimisations in the back of Kyma X Revealed work but with the power of paca(rana)'s I don't find they're addressing my usual causes of Out Of Realtime.

It would be great to collect everyone's tips on optimisation techniques - if you have any do add them to this thread. 

Here's a few.

Feedback Loops

Feedback loops are expensive in DSP resources (using FeedbackLoopInput and FeedbackLoopOutput). You want to minimise the number of loops if you can. A good tip, thanks to Cristian Vogel, is that the FeedbackLoopInput/Output pair is actually stereo when the delay time is set to 1 samp. So you don't need to create two separate feedback loops for the left and right channel. Also you may be able to use a single loop for two purposes using ChannelJoin and Channeller Sounds. 


Kyma X briefly mentions manually forcing the processor assignment. It is a fragile technique so one to be wary of but it does work in some situations. Particularly if you've got some Sound that works fine but then runs out of realtime when you try and make copies of it. Say you've got four CrossFilters on a pacarana. If you're just mixing them together at the end then I've had good success using ForcedProcessorAssignment to manually assign each leg to a processor (often using ?VoiceNumber if I'm using a Replicator). But beware if you then try and put anything in the flow after the mix. You may well create a flow that can't be scheduled and you'll run out of realtime again (as the book points out).  


Generally speaking you have to try pretty hard to get Capytalk to cause an OORT! There are ways for the determined. TriggeredSoundToGlobalControllers can be handy, but if you replicate a lot of them and they're all gated you can run in to OORT issues. Try changing your Sound so you can use un-gated TSTGCs instead. 


answered Jul 2, 2021 by alan-jackson (Virtuoso) (15,740 points)
edited Jul 2, 2021 by alan-jackson