![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: end of sample loop? | |
phillipm Member |
![]() ![]() ![]() Arrrg! Surely there must be a really easy way to use the end of a sample player loop to trigger something. Anyone got a quick answer? I want a looping sample player programmed so that each repetition will have a new transposition (I'll use a constrained nextRandom for transposition variable), but can't use a purely cyclical signal/event to trigger nextRandom because each repeat is obviously going to be a different length. [This message has been edited by phillipm (edited 27 September 2003).] IP: Logged | |
mmarsh Member |
![]() ![]() ![]() The Green Tea Looper Construction Kit supports this - it fires an event on loop start and loop end (and points in between if desired). I don't know how do this in native Kyma... Mike IP: Logged | |
SSC Administrator |
![]() ![]() ![]() One way to do this, assuming you want to loop the entire sample, is to use a FunctionGenerator whose OnDuration is the same as the sample's duration at that pitch. For example, if the sample's duration is 2 seconds, you could use: 2 s * (([Interval / 12] L * 12) / 12) twoExp for the OnDuration (where [Interval / 12] is a Sound that will give the transposition interval you desire). In the Sample, you would use: default nn + ([Interval / 12] L * 12 nn) for the Frequency. (You could use more than an octave range if you want, change the * 12 in both places above to reflect the desired maximum transposition.) Set the FunctionGenerator's sample to be Rectangular -- this will give you a pulse that last as long as the sample is on. Feed the FunctionGenerator into a FeedbackLoopInput Sound and paste the FeedbackLoopInput into the Gate field of the Sample. This will make the trigger available for use elsewhere and also provide it to the Sample. Now, for the Interval generating Sound. Use a Constant and set its Value to: ((1 - [FeedbackLoopOutput] L asLogicValue) nextRandom * 12) rounded / 12 where you have copied the FeedbackLoopOutput Sound from the Prototypes. This expression generates a random integer half step transposition interval once per trigger. Edit the FeedbackLoopOutput Sound and set its delay down to 32 samp. The last step is to paste a Constant into the Trigger of the FunctionGenerator. Edit the Constant, copy the Value from the Value of the interval generating constant, paste it into the trigger Constant and edit it look like: 1 - [FeedbackLoopOutput] L asLogicValue This closes the trigger feedback loop. The idea is that the FunctionGenerator fires for the same duration as the Sample, at the end of the FunctionGenerator's waveform it outputs zero. The zero is fed back to the two Constants where the part of the expressions that read: 1 - [FeedbackLoopOutput] L asLogicValue turn the zero into a one, triggering the generation of a new random interval and also retriggering the FunctionGenerator. (We would post the Sound here, except that we did it in Kyma X and you would not be able to open it until next week :-) ) [This message has been edited by SSC (edited 27 September 2003).] IP: Logged | |
phillipm Member |
![]() ![]() ![]() hmmm... easy for you to say... :-) ... and easy to see where Green Tea saw a market niche.
quote: why 32 samp?? Actually it's the least of my worries ... I finally managed to put together something that *seems* to follow the recipe above, but it doesn't continue looping and transposing :-( IP: Logged | |
taylor12k Member |
![]() ![]() ![]() i phillip, i've been following this thread and i feel like i'm in the same boat as you.. with the reply "easy for you to say, SSC" !.. indeed, they are kyma masters.. and this stuff is mind-boggling.. would you mind posting your sound to the forums? i'd like to follow carla's detailed instructions and see if i can get it to work.. sort of test myself... if you aren't in a position to share the sound, that's OK, too.. but it never hurts to ask! thanks!
quote: IP: Logged | |
SSC Administrator |
![]() ![]() ![]() Forgot a very important step: uncheck the SetLoop and LoopFade check boxes... AND, the expression for the duration of the FunctionGenerator should be: 2 s * (([Interval / 12] L * 12) / -12) twoExp [This message has been edited by SSC (edited 30 September 2003).] IP: Logged | |
phillipm Member |
![]() ![]() ![]()
quote:[/B][/QUOTE] finally got it ... here a working version of the basic sound IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() ![]() |
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.