Best way to remove clicks? [sfplay~] Tutorials / Helpfiles?

    Feb 20 2013 | 7:18 pm
    Certain samples with alot of dynamics produce clicks when triggered quickly / multiple times. There are no clicks at the start or end. I've looked at (adsr_intro.maxpat) as well as (adsr_advanced.maxpat). They all produce clicks even though it says "clickless". I havent tried ADSR. I want the sample to play straight away with no setting adjustment. What are my options? Are there any articles/tutorials on this?

    • Feb 21 2013 | 1:40 am
      Someone? Everything i find on this subject is using buffers to load samples. I am using sfplay~. Grooveduck works wonderfully but its using a buffer~. Can this be replicated in sfplay?
    • Feb 21 2013 | 5:17 pm
    • Feb 21 2013 | 5:58 pm
      Do you have any particular need of using sfplay~ instead of a buffer/grooveduck combination? IMHO, if you need to quickly trigger samples, sfplay might lead you to performance issues. Maybe if you show us a sample of what you want to do, someone can be more helpful.
      Anyway, here's a simple fadein solution for sfplay:
    • Feb 21 2013 | 7:14 pm
      I have been recommended previously to use buffer instead of sfplay. Im not sure if it would be able to replicate exactly the same thing i have now... I tried using your example but it doesn't seem to make any difference (tried different fadein times). Have i incorporated it wrong?
      The workings of the patch are. Drum sampler; I have a drum-bank(folder), inside it the sounds are arranged by KICK, SNARE, etc.(folders) Once i select the bank the Pathname gets passed on to the sub-patch where it appends the pathname with KICK or SNARE and finally its loaded into a menu. From there its triggered via MIDI. Would buffer be able to do exactly the same?
    • Feb 21 2013 | 8:33 pm
      try like this:
    • Feb 21 2013 | 9:02 pm
      Aah i understand. But no, it doesnt seem like theres any difference what so ever. I tried all kinds of values upto 4000. Are there any other options? Can i specify buffer to open a file outside the Max search path?
    • Feb 22 2013 | 3:52 pm
      I didn't realize i could take the populated menu and put in into a buffer. I have sound. Im using the [grooveduck] object but the ducking isn't working. Im still having clicks. I dont understand why. Can someone please have a look at the patch and tell me whats wrong?
    • Feb 22 2013 | 4:24 pm
      Hi m0dit I think grooveduck is useful only when you let the sample play all the way or the loop you specify, If you re-trigger it while still in the middle, you only get the fade-in, not the fade-out. The clicks you hear might come form the sudden stopping of the samples. Maybe try a very small fadeout time before the re-triggering of the sample.
    • Feb 22 2013 | 5:44 pm
      Hi Nickolas,
      Yes i think you're right, the clicks come from the sudden stopping of the sample. I've been trying all kinds of different values for the last 45 min. There is a slight improvement but only very little. If i raise the delay value past 100 it gets better, but i assume this is because the sample gets cut off before it reaches that point inside the file(high amplitude, im guessing) where(when cut off) it makes a click. So i guess im saying perhaps the fadeout is not responding quick enough?(im not sure, im very new to max)
    • Feb 22 2013 | 6:00 pm
      Could you post a sample that has a click problem? Could your samples be the ones that have the clicks? If you trigger the sample just once, i assume it does not click. Could you be amplifying the sound output a lot? that could peak your sound, so it clicks.
      As for the patch, the value of the delay, should be the same, or better 1-2 ms bigger than the fade out so it is finished 100%. before re triggering. Here is the same patch, but you adjust the values at delay, fade in/out altogether. If values bigger than 20ms does do it, than that might not be the problem!!!
    • Feb 22 2013 | 6:40 pm
      No its not the sample(s). There clean. I've imported them into NI Maschine sampler to make sure(there are no clicks). And as far as amplifying the output (unfortunately) thats also a no. If i set the amp gain so i barely hear the sample, the clicks come out louder(sometimes).
      This new patch that you've just uploaded doesn't output any sound at all. And I cant figure it out. Trying with the older patch(as you just described) still produces clicks.
    • Feb 22 2013 | 6:47 pm
      Maybe the amplitude enveloping technique shown in this example might be of interest to you.Example 21: Random access of a sound sample
    • Feb 22 2013 | 6:59 pm
      Did you make the connections at the [matrix~] ? I believe it will not let any sound through if not connect an inlet to outlet, although you set the initial gain 1. Here i just changed the matrix~ and it works. Tested it with the samples you sent me and i have no clicks.
    • Feb 22 2013 | 7:16 pm
      @Christopher: I tried it out ( the clicks are not as loud) but unfortunately still exist.
      @ Nickolas: I dont want to be a burden, but the clicks are still present. Though it is considerably better... (when triggering the sample you really have to find that groove and the clicks come up) :(( In NI Maschine sampler no matter how hard i try, there is not one tinny little bit of clicking...
    • Feb 22 2013 | 7:29 pm
      Do the clicks happen when you trigger a sample and then a different one or even when you trigger the same sample? Well, try this..if you still have clicks, i don't know!! I tried with two samples. Had clicks if i triggered a different sample than that playing. Fixed that, so now i cannot find a reason that your hear clicks! Hope it sound clickless!
    • Feb 22 2013 | 8:01 pm
      No the clicks happen just while triggering one sound. To hear the clicks good you need to wear headphones. To hear the clicking i trigger the midi key at approximately 100 BPM +/- From the samples that i uploaded, the first ("Kick 7Mile 2.wav) produces clicking constantly. The second sample(Kick Boots 3.wav) now still has clicks but they are very rare and different tone-wise, to what they used to be.
      Overall there is a considerable improvement(i would love to say that its completely gone) buts its not. @Nickolas: thank you for your help! If you manage to think of something else that could help, Please, Please write back! (i'll just keep praying in the mean time)
      Could someone one else please give some suggestions/ help?
    • Feb 22 2013 | 8:11 pm
      I tested with my headphones.. The click i can reproduce is when triggering sample with a period of 40 ms. But, this is with the fade in/out values at 10ms. I tried values to see how low this can go, and i think that at 4 ms is ok. So, could you try the same, but now, where is the message " And then test a fast re-triggering.
    • Feb 22 2013 | 8:38 pm
      Another little correction
      When triggering the sample, your velocity value is changing the amp instantly. By taking through a [line~] which does a little ramp, you should also hear less clicks
    • Feb 22 2013 | 9:34 pm
      With the delay at 10. And FADE at 12 there are no clicks(maybe .2%) This is wonderful! However, now theres another problem. The start of the sample is really "wooly" /"round" sounding (very little attack present). Than if i set delay=1. the sound is fine(not wooly/round) but then i hear clicks. :( With the delay=1 To remove clicks i have to ramp up the FADE to 24 but this combination makes it sound even more "wooly"/worse. The funny thing is whether the delay is at 10 or 1, and Fade at 12 or 24. Changing the Fade Up OR Down will make clicking re-appear.
      Is it possible with delay=10 and Fade=12 to somehow retrieve this attack thats missing?(so it wouldn't sound wooly)
    • Feb 22 2013 | 9:45 pm
    • Feb 22 2013 | 9:50 pm
      the bigger fade in, the woolier the sound gets! The thing is, that these values have to do this:
      Fade out, fast, but not so fast that clicks. (now at 5ms) Delay enough so the fade out is over (now 10ms) Change the "set NameOfBuffer" if you want to change sample (triggering also at 10ms so the fadeout is done) Start playing and fade-in! but fast fade in so the attack is preserved! (now, 4 ms!) What is the fastest you want to re-trigger the sample ? At 100 bpm, you mean 100 times every minute, or 400 ? more? At least to make it clickless at that speed!
    • Feb 22 2013 | 10:34 pm
      I dont understand what you mean change the "set NameOfBuffer" if i want to change sample. There is no "set NameOfBuffer" but Im guessing its the text message next to Fade Out? ($1 10)
      So far i've tried changing Fade In from 1-21! (21 is too wooly so no point in going up) Some integers for Fade In such as 4 or 9(cant remember now) produce LESS clicks than 5 or 10. (i dont understand this)
      There is no BPM that i am set on. I simply just gave it as an example to find the "sweet spot" of where the clicking appeared the most. Its so hard to explain!!!! I cant put in words!
      Triggering the sample 500> time per minute(i cant manage to count it) will give 1 click every 5 seconds. approx But there is a sweet spot in the middle where the amplitude is the highest and when triggering maybe 200> times per minute(im guessing) creates much bigger clicks and pops than when at 500. If you get what i mean...
      PS using the metronome thats attached, does not produce the clicks such as when triggered by hand. its the imperfectness of playing with my hand/finger that layers the sound one on top of another and makes the big clicks. (at this certain point that im talking about) maybe im talking gibberish, i dont know. but its there.
    • Feb 22 2013 | 10:50 pm
      well mate, i cant reproduce any clicks when the sample triggered at a regular / human rate like up to 3000 times per minute! So, i believe you might have to mess with the values.. or just, deep breath... and start again!! if i do have something new, i will post it!! until then, mr m0dit, good luck!! I dont know how helpful the last 6 hours have been, but i hope they were!!!! Nikolas
    • Feb 22 2013 | 11:15 pm
      Like i said, im very appreciative, thank you for sticking with me all this time and doing all this work. I cant thank you enough, but i also cant say thats its fixed, because its not. There is no doubt that there are clicks and pops. I just cant believe that you aren't getting any of them. Perhaps your'e on Windows? (maybe its a mac/win issue?) Im gonna sit and try every kind of possible combination. What is this "set NameOfBuffer" that you mentioned?
      Once again thank you. Definitely very helpful!!
    • Feb 22 2013 | 11:28 pm
      I am running on Windows but i don't know if that is an issue.. the "set NameOfBuffer" is the "set" message for the [groove~], and the "NameOfBuffer" is in the place of the name of a buffer you load the sample. i was refering to when you trigger different samples with one [groove], sorry for being unclear!
    • Feb 23 2013 | 2:43 pm
      For 1 sound-play(with no clicks), settings Delay=15> Fade-in=5 Fade-out=5 work!! 2 sounds just aren't possible on the same [groove~] (overloads). They also cancel each other out if played at the same time. Using a second instance of the patch (second groove~) Works! No clicks! Plays at the same time. HAPPY CHAPPY! :D Now i hate to sound like a COMPLETE noob but as soon as i route the signal to a [matrix~] i get no output.
      I've used matrix so many times with no problems. I dont understand why its not working. Its driving me crazy! Whats wrong?
    • Feb 23 2013 | 6:11 pm
      Well turns out i am still a very complete noob. I didn't attach a volume/gain control to [matrix~].
      I have a final question. The signal that comes out through the bottom of [thru] is Stereo/L+R (2 wires). How do i combine the signals and make it into one signal / MONO (1 wire)? [groove~] is set to the default 1 channel.
    • Feb 24 2013 | 2:38 pm
      Can someone be so kind and help me out? [groove~] has 1 output. [buffer~] also set to output 1. (all defaults) Why is the signal being split into 2 (L+R)? I cant use [+~] because theres only 1 output.
    • Feb 25 2013 | 1:59 am
      Incase someone else might want to know. [thru] was splitting the signal into L+R.