Kyma Forum
  Kyma Sound Exchange
  Petes New DSP Modules

Post New Topic  Post A Reply
profile | register | preferences | faq | search

next newest topic | next oldest topic
Author Topic:   Petes New DSP Modules
pete
Member
posted 29 April 2003 16:13         Edit/Delete Message   Reply w/Quote

USERPROG.asy.sit


PetesDSPMods29403.kym

 
Hi All
I've just started programing in DSP code.

Attached are a bunch of building Brick type modules that might come in handy, but don't get carried away with them as I still need to do more refining , although I'll try to keep the front end the same.

It contains an RCL emulating filter (I don't know if this is the musical filter that people have been talking about but it does ring quite nicely when you turn up the Q).

It contains a multi tap delay line (max 50 taps), a step writer and many Indexing modules for reading and writing at different rates and directions.

A bunch of logic modules and latches all for use at sample rate.

A divide module with scale.

Where possible I've made them controllable at sample rate (not Hot rate) and tried to keep every thing else hot.

Hope you find them useful and I wouldn't mind any bug report's.

Enjoy

Pete


IP: Logged

Mark
Member
posted 29 April 2003 17:20         Edit/Delete Message   Reply w/Quote
A question for everyone, but primarily SSC, is there a simple way to combine userprog files, or append them? Between David's filters, Dennis Leas's LCK, and now Pete's DSP modules, it'd be nice to be able to either combine them or somehow load more than one userprog file.

P.S. A big thank you to the above mentioned and everyone else who has taken the time and effort to share their work on the sound exchange!

Best-

Mark

IP: Logged

SSC
Administrator
posted 30 April 2003 09:30         Edit/Delete Message   Reply w/Quote
Sorry but for the moment, it's not possible to merge the user microsound collections. It's on our list, though!

IP: Logged

pete
Member
posted 30 April 2003 15:47         Edit/Delete Message   Reply w/Quote
For the time being If David and/or Dennis give me an email address (or if they want me to send it through SSC (SSC willing)), I'll send them an opened up copy of my "USERPROG"

or

If David gives me permission I'll add his to mine when I get around to it, that's if enough people want it.

Pete.

IP: Logged

capy66n320user
Member
posted 30 April 2003 21:56         Edit/Delete Message   Reply w/Quote
Hi,

It would be greatly appreciated if David, Dennis, Pete and SSC would combine
their respective user microsounds into one USERPROG.asy file.

Thank you all in advance!

IP: Logged

David McClain
Member
posted 01 May 2003 20:56         Edit/Delete Message   Reply w/Quote
Hey Pete!! Nice going!! Here's my E-mail address for getting together in the microsounds...

dmcclain1@mindspring.com

Cheers!

- DM

IP: Logged

Bill Meadows
Member
posted 02 May 2003 00:38         Edit/Delete Message   Reply w/Quote
This is a very nice set of additions to the Kyma prototypes - I have an immediate use for several of them!

This is the great thing about an active user's group - adding to and extending the power of the tool. This has been going on in the MAX/MSP world for years, which means you can find a widget for just about everything.

Thanks, Pete!

(Now if we could just use everyone's user code at the same time!)

IP: Logged

Bill Meadows
Member
posted 03 May 2003 00:24         Edit/Delete Message   Reply w/Quote
Pete, I can't seem to use your microsounds.

I renamed them "User Microsound Classes" and put that file in the program folder. When I start Kyma, it initializes the Capy twice, then generates an error message.

Was this compiled for Kyma 5.26, or an earlier version?

IP: Logged

pete
Member
posted 03 May 2003 05:39         Edit/Delete Message   Reply w/Quote
Hi Bill

If you want to use it on a mac , prior to changing the name you have to do an import in kyma. This has to be done while the .asy extension is there. Then you can change the name. If its not that then I'm not sure which ver of kyma I used . I won't be able to find out until Tuesday, but I don't think they've changed that bit. Let me know if your still having problems and I'll try to reposting it.

pete

IP: Logged

dennis
Member
posted 06 May 2003 19:23         Edit/Delete Message   Reply w/Quote
Alright! New microsounds!
Yes! Let's get together on this!
dennis@greenteasoftware.com

- Dennis Leas

IP: Logged

tenhus
Member
posted 14 May 2003 20:25         Edit/Delete Message   Reply w/Quote
Pete,
Fantastic job! Very useful stuff!
One function I would like to through in the suggestion hat, is a tap delay with a 4 or 6 band eq as part of the feedback loop. This is a tremendous tool for building high end reverbs with realistic wall absorption on each unique random echo.

Cheers!
Tobias

IP: Logged

pete
Member
posted 15 May 2003 06:21         Edit/Delete Message   Reply w/Quote
Hi tenhus

What you want to do can be achieved by turning off the feedback inside the module and using the kyma feedback pair externally to the module. The kyma feedback pair is a delay in itself, therefore if you mix the input with the "feedback out" signal going through the EQ module and feed this mix into the "feedback in" module and the multi tap module you will get the same result. If you need the delay of the feedback path to be hot variable then you can put a normal kyma delay (with variable delay) module before EQ and set the feedback modules delay to say 32 samp. This would be like putting the EQ in the FBTap path.

If you wanted the EQ in the "OutputFeedback" path then do the same as above but with the "feedback in" module being fed by the output of the MultiTap and set the feedback modules delay to its minimum.

The three feedback paths built into the MultiTap module are single common to all types of feedback and were added in because it didn't need much processing.

What I do have in mind is another module with multi independent delays each with there own feedback and each feedback with its own simple low pass filter, all separately controllable. This would be for making the
reverbs body. Anything more complex than the simple low pass filter would make the module so complex that you could only get a very few delays in one module. In which case you could just as easily build it with all separate delays and using kymas standard modules. There would be no gain in having one chunk of DSP code.

hope it helps

Pete.


IP: Logged

tenhus
Member
posted 15 May 2003 12:24         Edit/Delete Message   Reply w/Quote
Yes to use complex eq’s on each tap is more for the bulk tail of the reverb, where fewer elements are required.

What I’m trying to do is to manually simulate a ray tracing early reflection pattern. There’s a new VST verb out called “silver spike” http://www.silverspike.com/PlugIns/Reverb_it/reverb_it.html
That uses a form of ray tracing where you can set a “cap” on how much CPU you want to spend. And it sounds fantastic!
My theory of that was to manually make tables of reflections based on “real” rooms. To do that it sound like your “multi indi delay” would do the trick. However do you think there’s a smarter way to do it? Would it somehow be possible to do a less static approach? You can always tag a few LFO’s on, but that’s not the same as having an array follow a behavior.

Regards,
Tobias

“What I do have in mind is another module with multi independent delays each with there own feedback and each feedback with its own simple low pass filter, all separately controllable. This would be for making the
reverbs body. Anything more complex than the simple low pass filter would make the module so complex that you could only get a very few delays in one module. In which case you could just as easily build it with all separate delays and using kymas standard modules. There would be no gain in having one chunk of DSP code.”


IP: Logged

tenhus
Member
posted 15 May 2003 12:40         Edit/Delete Message   Reply w/Quote
Here’s a thought, and you tell me if it’s crazy or not.
How about a single filtered tap delay where each time it feeds back it picks a new delay time and filter freq from a table?

Tobias

IP: Logged

pete
Member
posted 15 May 2003 12:56         Edit/Delete Message   Reply w/Quote

USERCODE.asy.sit


SlewRateLimiter.kym

 
Hi All
David McClain has kindly merged both his and my USERCODE.asy s into one.
So attached is the merged code, code named "SemiWombat".

also

a corrected version of my class "SlewRateLimiter". It now allows a pulse wave to be turned into a saw tooth if the up time is set to zero.

IP: Logged

pete
Member
posted 15 May 2003 14:27         Edit/Delete Message   Reply w/Quote
Hi Tobias

I don't think that the silverspike is dynamically changing it's state.

What I think they my be doing is using multitaps with feed back out of the final tap through a filter and back into the input similar to what was described with the FBtap version above but making the multi tap so long that any repetition is unnoticeable. therefore to do this part you might need more than fifty taps and need to have a second or third multi tap module running in parallel This could help out with creating sterio. This would mean that if a short sound were passed through the system that the damping effect would tend to switch in steps during the decay process. Maybe there algorithm makes a gradual dampening by choosing the best tap setting to cause natural damping as happens in convolution. I suspect that the EQ for the early damping and the late damping is like having separate multitaps for the early reflections and late reflection and EQing there outputs.

We may find that they are using resonators as used in most conventional reverbs (as per the multi resonator I had in mind) , to give the bulk of the reverbs decay and then using a more humble multitap to add a bit of randomness to it. With out playing with it I can only guess what they're doing.

When you say "each time it feeds back" is not a good way of looking at it. The feedback is a continuous stream . We hear a sound going round and round but there is no point in time that we can say the sound has completed one loop because the sound itself is continuous. We would have to chop the incoming sound into clips to do that.

Does this make sense ?

Pete

IP: Logged

pete
Member
posted 15 May 2003 14:36         Edit/Delete Message   Reply w/Quote
btw

LFOs and changing control setting on the multitap is not very good. The kyma delay has good smoothing built in but the extra DSP power needed for me to add it to the multitap would have been too high. The reason I made the controls hot was so that you could try different setting with out having to re compile.

IP: Logged

taylor12k
Member
posted 15 May 2003 17:01         Edit/Delete Message   Reply w/Quote

so, from what i've gathered, it's only possible to use ONE user microsound file, correct? which means it's either these, or the green tea software ones.. yes? not that i can't switch back and forth.. but it would be great if they ALL merged, or if SCC implemented some way to use multiple microsound files...

quote:
Originally posted by pete:
Hi All
David McClain has kindly merged both his and my USERCODE.asy s into one.
So attached is the merged code, code named "SemiWombat".

also

a corrected version of my class "SlewRateLimiter". It now allows a pulse wave to be turned into a saw tooth if the up time is set to zero.



IP: Logged

pete
Member
posted 16 May 2003 14:53         Edit/Delete Message   Reply w/Quote

Decaypattern150Q.aif.sit


Decaypattern50Q.aif.sit

 
Hi Tobias

I've played with the silverspike demo and I think I know what there doing. About 4 years ago I thought of an idea of making damping happen with out putting the EQ in the feedback path or having to have an EQ module for every tap , and I think they are doing the same thing.

First they are not using any resonators, it is purely many Multytaps interlinked. It seems that the level of each tap is calculated by its position in time of exponential curve determined by the Decay control. The randomness is in the timing of the taps but there is no randomness in the actual level. The level feedback from the last tap to the input is calculated by the same formula so that the same exponential decay is maintained no matter how many times a signal has gone round the loop. For this you wouldn't even need external feed back the internal would work just the same. The Tap times never change only the levels therefore with my multi tap you would never get the none smoothing clicks. A separate delay would be needed for the pre delay (not the one in the module).

This is how the damping works. First we use two multitap modules as above with exactly the same tap time positions but there levels and feedback are controlled by different decays. The multi tap with the shortest decay is fed to the output mixer. The short decay multi tap is also inverted and mixed with the longer decay multitap which is the fed through the Damper EQ and then goes to the output mixer. So when a sound pulse first arrives it is being routed to the output but nothing is routed to the filter because both multitap outputs are at max level and get canceled out .As time goes on the fast decaying multitap reduces the non EQed signal but the two multitaps are no longer the same level and signal starts to arrive at the EQs input.That's how it works with one EQ and a third multitap can be used for the second EQ. I need to remember the interaction between them but it can be done.

The other filters are just non time dependent and can be added to the input. To get stereo it will need another three multitaps. A seventh multi tape would be needed on the input. Its taps would be very much closer in time and the levels would be more random. Adjusting an exponential attenuation to these taps this would control the density. I've attached some aiffs recorded from the verb which show the tap placement when the density is turned down I think it repeats after every 30 taps meaning that that's how many taps the multi taps would need. I couldn't see a difference between the hi quality and the lo quality but I've attached both.

does this make sense

Pete.

IP: Logged

tenhus
Member
posted 16 May 2003 19:06         Edit/Delete Message   Reply w/Quote
Pete,
Your EQ damping theory is genius! I have a strong feeling this is how the big boys are doing it too. Both the TC6000 and the 960 have very nice sounding EQ curves on the reverb. Doing it this way would allow for a better sounding EQ without loosing tons of DSP, since all you need is one perhaps two instances.

However they use convolution or beam tracing for early reflections.
TC6000 is using ray tracing, and Lexicon 960 is using convolution. None of them are using it for the bulk decay. And I don’t think that’s because lack of DSP, both of those machines are pretty powerful.
There is something to be said about “analog” reverbs. When done right It’s a sound that is far more interesting for music than a pure convolution reverb.

So Silver spike has 30 taps and yours 50. That’s the way to go! smoother long decays.
Funny how the low density silver spike sounded more random than the high density one. Almost as if the repetitions were more noticeable on the high dense version.

Also your model would be fairly easy to implement in surround.
A total of thirteen tap elements would be needed right?
You fake the center channel by bypassing the “seventh” element.

By the way, here’s a pretty interesting link to a research paper on beam tracing reverbs. http://www.cs.princeton.edu/%7Efunk/acoustics.html

Take care!
And keep up your great work!
Tobias

IP: Logged

tenhus
Member
posted 17 May 2003 23:16         Edit/Delete Message   Reply w/Quote
Pete,
I’ve been playing around with your idea a bit, but there’s a few things I’m wondering about.
If the only reason having two tap elements inverted and linked, is to create the decay, then
why not just use an envelope to change the blend between pure and EQ’d signal?

How about using the second tap with different timings instead to create a more dense randomness?

Regards,
Tobias

IP: Logged

pete
Member
posted 18 May 2003 14:10         Edit/Delete Message   Reply w/Quote
Hi Tobias

When we think about what is happening inside reverb we have to think about one moment of sound and how its being treated, that's the only way we can get our head round it . We must however remember that it is really a stream of sound and that while that moment of sound is being treated , the previous moment of sound and the next moment of sound and all the other moments of sound before and after them are all being treated at the same time by the same equipment but at different stages of there life cycle. An envelope would not treat all these moments in the same manner. i.e. when would the envelope start, what would trigger the envelope ? If it where the peaks of the sound that triggered this envelope what would happen to a decaying sound if another peak came along.

Any way your idea about a second multi tap to increase randomness was just what I was thinking about.

If we used two 16 tap delays instead of one 32 tap and gave them slightly different feedback times we would increase the randomness. Then again if we used four 8 tap delays we would increase randomness even more. If we take this to the extreme we get thirty two slightly different single delays each with there own feedback. Guess what it becomes ? Answer: A multi resonator.

I'm not sure that the big boys use the duel multitap decay filter method, as it has a different sound. If the filter is in the feedback paths , it's as if the signal is being passed through it again and again. This means that the cut off frequency moves with each iteration. The multitap method only changes the amount if filtering during the decay time not the cut off frequency. It was the sound of the Silverspikes decay that led me to think it was using this different method, but I don't find the silverspikes decaying filter unpleasant.

Anyway

I've worked out how to do it with two decay filters and three multitaps.
If the filters go on the input of the of the multi taps then a stereo output version would only need the two. First the signal goes through the fixed filters then through the Density multitap (this one can perform the predelay as well). The signal then goes through the Hi pass filter then the Lo pass filter and then "Multitap A". We then use a minus Module and feed its minus input with the Hi pass filters output and its normal input with the Lo pass filters output and feed this into "MultiTap B". We then feed the Lo pass filters output into another minus module (its minus input) and feed the density multiTaps output into its normal input and feed this minus module into "Multitap C". These minus modules are doing the job of an inverter and a mixer. Then MultiTap A,B and C s output are mixed together.

Inside the multi taps the Tap time is filled with a list of the Tap times in seconds, and the 31st tap time is put in the FBTap time. In the tap levels, each entry into the list is put like this where X is the No of second the corresponding tap time is, and Decay is the time it would take for the level to decay by half.

{1/(x/Decay) twoExp)}

FBTapLevel will have the same formula but x would be the FBTap time.

In "MultiTap A" the Decays would be the overall reverb Decay.
In "MultiTap B' the Decays would be the overall decay*Hipass Decay.
In "MultiTap C' the Decays would be the overall decay*Lopass Decay.

These formula can be shortened using the collect function.

I'm doing this from my head and as I only have a cappy 66 in sunny surbiton they might be a bit wrong.

Pete


IP: Logged

taylor12k
Member
posted 27 May 2003 16:19         Edit/Delete Message   Reply w/Quote
hi, i'm having trouble getting Pete's new DSP modules to work. i thought simply renaming the ASY file to User Microsound Classes and putting it in my Kyma folder would do the trick, but i think i'm missing a step.

can someone tell me what to do with both the ASY file and the "Pete'sDSP..." file?

thanks...

(ps: i'm on a Mac, if that makes a difference)

quote:
Originally posted by pete:
Hi All
I've just started programing in DSP code.

Attached are a bunch of building Brick type modules that might come in handy, but don't get carried away with them as I still need to do more refining , although I'll try to keep the front end the same.

It contains an RCL emulating filter (I don't know if this is the musical filter that people have been talking about but it does ring quite nicely when you turn up the Q).

It contains a multi tap delay line (max 50 taps), a step writer and many Indexing modules for reading and writing at different rates and directions.

A bunch of logic modules and latches all for use at sample rate.

A divide module with scale.

Where possible I've made them controllable at sample rate (not Hot rate) and tried to keep every thing else hot.

Hope you find them useful and I wouldn't mind any bug report's.

Enjoy

Pete



IP: Logged

pete
Member
posted 28 May 2003 09:54         Edit/Delete Message   Reply w/Quote
Hi taylor

The first thing you must do on a mac is to import both the USERCODE.asy and the PetesDSPMods.kym. You do this by choosing import from the file menu within kyma, and selecting the files one at a time. You can just cancel when it asks you to select a third file.

It is IMPORTANT that you do the import BEFORE you change the name of the "USERCODE.asy" file to "User Microsound Classes", as the ".asy" tells kyma what to convert it to.

After importing and changing the name to "User Microsound Classes" you should place it in the "Program" folder which is inside the Kyma folder. Then you must restart kyma and you should see a message "loading user microsounds" sometime during bootup. Then you can open PetesDSPMods.kym as if it where any other sound file. It doesn't matter where this file lives. This contains the new modules (that make use of the DSP code) which you can use in your own sounds.

btw If you use the USERCODE.asy file posted on 15 may half way down this topic, instead of the one posted at the top of this topic, you should be able to use David McClains modules as well.

Let us know if you have any problems.

Pete

IP: Logged

taylor12k
Member
posted 28 May 2003 12:41         Edit/Delete Message   Reply w/Quote
hi pete

thanks for the info.. however. after following your steps (i have done this before, successfully, with the LCK modules, so i know it can work!)
i get an error when loading Kyma:

the message #errorInClass:with Code:errorString:,sent to nil, an instance of class UndefinedObject, was not understood.

i have taken my User Microsounds Classes file that belongs to LCK and filed it away in an LCK folder... you don't think Kyma is still finding that one, do you?

any help would be appreciated.. thanks for your time

quote:
Originally posted by pete:
Hi taylor

The first thing you must do on a mac is to import both the USERCODE.asy and the PetesDSPMods.kym. You do this by choosing import from the file menu within kyma, and selecting the files one at a time. You can just cancel when it asks you to select a third file.

It is IMPORTANT that you do the import BEFORE you change the name of the "USERCODE.asy" file to "User Microsound Classes", as the ".asy" tells kyma what to convert it to.

After importing and changing the name to "User Microsound Classes" you should place it in the "Program" folder which is inside the Kyma folder. Then you must restart kyma and you should see a message "loading user microsounds" sometime during bootup. Then you can open PetesDSPMods.kym as if it where any other sound file. It doesn't matter where this file lives. This contains the new modules (that make use of the DSP code) which you can use in your own sounds.

btw If you use the USERCODE.asy file posted on 15 may half way down this topic, instead of the one posted at the top of this topic, you should be able to use David McClains modules as well.

Let us know if you have any problems.

Pete



IP: Logged

pete
Member
posted 29 May 2003 12:28         Edit/Delete Message   Reply w/Quote

USERCODE.ASY.sit

 
Hi Taylor
It looks like I've been using an old version of Kyma. I've now encoded it using 5.26 instead of 5.25. I think this attached one should work. Its semi wombat i.e. it contains both David McClains and my code.

Please let me know if it woks O.K.

Pete.

IP: Logged

taylor12k
Member
posted 04 June 2003 12:00         Edit/Delete Message   Reply w/Quote
i think everything is working now...
i can successfully open "Pete's DSP mods", the LCK prototypes.... but, which files are David's? is there a separate file... ie: "david's dsp mods" that i should be able to open? or are his mods mixed in with "Pete's DSP..."?

thanks

quote:
Originally posted by pete:
Hi Taylor
It looks like I've been using an old version of Kyma. I've now encoded it using 5.26 instead of 5.25. I think this attached one should work. Its semi wombat i.e. it contains both David McClains and my code.

Please let me know if it woks O.K.

Pete.



IP: Logged

Bill Meadows
Member
posted 07 June 2003 15:42         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by taylor12k:
... which files are David's? is there a separate file... ie: "david's dsp mods" that i should be able to open? or are his mods mixed in with "Pete's DSP..."?

David's are separate - filters mostly - that he uses in several of the Sounds he has posted over the last year.

IP: Logged

dennis
Member
posted 11 June 2003 13:44         Edit/Delete Message   Reply w/Quote
Hi All!

I've successfully merged David's and Pete's microsounds with the LCK microsounds. The combined "full wombat" distribution is available free for registered Looper Construction Kit owners at the Green Tea Software website (www.greenteasoftware.com). The wombat distribution coincides with the newly released update, version 3.02, of the LCK.

If there's community interest (and the authors' permission), I can post David's and Pete's prototypes that go with their microsounds to a publicly accessible download area, too.

Dennis Leas

IP: Logged

phillipm
Member
posted 12 June 2003 21:34         Edit/Delete Message   Reply w/Quote
I'm still having trouble with installing 'usercode' (never done it before) .... anyone know where the procedure is covered in the manual?


NEVERMIND .... just figured it out (DOH!!!!)

[This message has been edited by phillipm (edited 12 June 2003).]

IP: Logged

cristian_vogel
Member
posted 25 March 2006 11:21         Edit/Delete Message   Reply w/Quote
Can anyone post a guide how to get these new DSP modules into Kyma X ? I'm a new user, and I can't seem to figure it out - Davids IIR filter always seems to be not installed

IP: Logged

yenorom
Member
posted 25 March 2006 12:06         Edit/Delete Message   Reply w/Quote
File->Choose microsounds

IP: Logged

photonal
Member
posted 28 March 2006 04:18         Edit/Delete Message   Reply w/Quote
Dennis

Do you have a TryOut version of your LCK available?
Or perhaps you could release a couple of your LCK modules as a free teaser?

btw, "Looper Construction Kit without CD on-line distribution only $349
Looper Construction Kit with CD postal distribution $379"

Considering that you could almost buy Ableton Live for not much more, I think your prices are way too expensive.

It's a shame you don't share your sounds with the Kyma Community

Best regards, Andrew

[This message has been edited by photonal (edited 28 March 2006).]

IP: Logged

cristian_vogel
Member
posted 28 March 2006 06:21         Edit/Delete Message   Reply w/Quote
quote:
Originally posted by photonal:
[b]btw, "Looper Construction Kit without CD on-line distribution only $349
Looper Construction Kit with CD postal distribution $379"

Considering that you could almost buy Ableton Live for not much more, I think your prices are way too expensive.


I would have to agree there. Good art has no set-price , but software?? 35 - 50 bucks would be about right, if you don't want it to be shareware.

[This message has been edited by cristian_vogel (edited 28 March 2006).]

IP: Logged

armand
Member
posted 28 March 2006 06:28         Edit/Delete Message   Reply w/Quote
Does the LCK still work under Kyma X? I haven't seen an update ever since! Is there still support on the LCK?


IP: Logged

Scot_Solida
Member
posted 28 March 2006 06:48         Edit/Delete Message   Reply w/Quote
LCK seems fine to me...

IP: Logged

All times are CT (US)

next newest topic | next oldest topic

Administrative Options: Close Topic | Archive/Move | Delete Topic
Post New Topic  Post A Reply

Contact Us | Symbolic Sound Home

This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.


Ultimate Bulletin Board 5.45c