![]() |
![]() ![]() ![]() ![]() ![]()
|
next newest topic | next oldest topic |
Author | Topic: Transient detection... |
JackRosete Member |
![]() ![]() ![]() Hi, Not sure if this is possible to do, or how it could be achieved, but any ideas would be much appreciated. Let's say I'm using one of the various available prototypes to resynthesize a sample containing a mix of loud and quiet portions, and I wanted to randomly jump to new points in the sample every time there's a !KeyDown or other trigger, but I specifically wanted to jump to a transient (loud portion) rather than any old random point in the sample (since this would also statistically jump to the quieter portions, which I don't want). Any ideas? I realise I could chop the sample up beforehand, but what I'm looking for is an algorithmic solution, so I could change the resynthesis sample later on without having to chop it up again etc. Hope my ramblings make sense!
[This message has been edited by JackRosete (edited 08 February 2015).] IP: Logged |
SSC Administrator |
![]() ![]() ![]() Could you scan through it first and take note of the timeIndex at each loud point? IP: Logged |
JackRosete Member |
![]() ![]() ![]() Yes, that's doable ![]() Thanks! IP: Logged |
gustl Member |
![]() ![]() ![]() Hi Jack, This is the stuff were humans are way better than computers... Have you tried using the ampfollower paired with a threshold to generate triggers where transients occur? You could use those triggers to sampleandhold timeindex values. This way you could even do it in realtime, I guess. Possibly you need a noise gate too. The accuracy depends on the signal you use and you have to finetune the algorithm to the characteristics of your signal. Does that help? Best, IP: Logged |
TazioSchiesari Member |
![]() ![]() ![]() I think one way would be starting a counter from the start of your file and play it through. Have a an EnvFollower and a Threshold that triggers a compare function to the running counter (I believ3e there is "time between triggers" script). Then recall all this time values in your start time of a Sample. The question is how to collect automatically those numbers. As soon as I get home I'll give it a spin with some smalltalk. Cheers, Tazio IP: Logged |
JackRosete Member |
![]() ![]() ![]() Some interesting ideas here, I'll have a play around and look forward to seeing if you come up with a solution to collecting the numbers! IP: Logged |
gustl Member |
![]() ![]() ![]() No need for a counter, just use a ramp with the length of your sample and sampleandhold the current value of that ramp when a transient occurs. These values are your timeindex values for the playback. You will need as many triggered sampleandholds as there are transients (or more). You can create a circular buffer by using the counttriggersmod message for triggering the sampleandholds. For example when using 10 triggeredSampleandholds, sampleandhold1 gets triggered when: !Trigger countTriggersMod: 10 eq: 1. I think that works, let me know if it really does ![]() IP: Logged |
TazioSchiesari Member |
![]() ![]() ![]() There are always many routes to one destination ![]() Now I got stuck with the idea of finding a way to insert time values as array elements automatically. I'm reading the documentation, hopefully I'll sort it out eventually ![]() IP: Logged |
cristian_vogel Member |
![]() ![]() ![]() I hope SSC don't mind me pointing you towards http://www.cristianvogel.com/neverenginelabs/product/spectral-sr-volume-one There are a prototypes in the SPC SR Volume One that can help you track transients (with a bit of design work of course!) Otherwise, you might want to embed the transient locations inside an audiofile from another editor.... [This message has been edited by cristian_vogel (edited 04 August 2015).] IP: Logged |
johannes Member |
![]() ![]() ![]() Hey cristian, which modules of your spectral sr vol 1 you had in mind to use for transient detection? Thanks. Johannes IP: Logged |
cristian_vogel Member |
![]() ![]() ![]() HI, well I they are not my modules, Gustl is the technical expert. I am just the imprint in this case. ![]() Hopefully he can be more specific, but there are modules such as centroid and formant extract that in combination can do feature extraction in different ways. IP: Logged |
zinoff Member |
![]() ![]() ![]() Can Kyma refer to markers in audio files? That'd be cool, didn't know it could do that. IP: Logged |
cristian_vogel Member |
![]() ![]() ![]() Actually yes, Kyma can extract Media cue markers from AIF files. I have done an immense ammount of research into this recently - all my results are published at the Rhythmic Computation Labs. I prefer to use Marker'd audio files than folder fulls of samples - I have decided to call them ROM Banks and have designed a number of classes that demonstrate how to extract and navigate those Markers. Kyma showed no stress when I loaded a file with 1700 markers embedded in it into my Open ROM Bank Rhythm Computer! I was able to use a transient sliced audio sample as the source for a Euclidean drum machine... [This message has been edited by cristian_vogel (edited 08 November 2015).] 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.