I’ve been doodling around with creating my first VCV Rack module for a little while. I think it’s ready enough to share with everyone to get your feedback!
CLK - clock input (very fast clock)
DIV - clock division. Controls repeat (stutter) length
POS - sample playback position
WAV - selects between 5 samples that can be loaded via the context menu
PITCH - yep, pitch. Can be used to play samples backwards
Minimal Usage
Reproduce the patch example that I posted in the image above.
Right click on the module to load a .wav sample. I suggest that the sample be around 2 to 5 seconds long.
Tweak the POS and DIV knobs!
Please note the following
I do intend to update and customize the front panel design eventually.
My code is based on Clément Foulc’s PLAY module. A big thank you to him for posting his code. Also, thank you to everyone on these forums for your help!
In order to try with this module, you’ll need to compile it (make install) from my source code. Of course, eventually I hope to submit it to the VCV library. It will be free and open source.
Built successfully on windows, it’s neato, great way to produce ratcheting beats and chopped samples, very light on the CPU.
I didn’t explore deeply but I’m noticing that when the BPM is slow, in some configurations the module produces almost no sound. Even reproducing the demo setup with short percussive sounds, at around 115BPM x16 output, sometimes I get no sound on some beats, seems I need 24 PPQN to get satisfactory results. I also couldn’t get pitch CV automation to work, might not be implemented yet?
Also, I think the device could definitely stand to shed some width - lots of empty space! I know many people don’t care at all about that, since rack space is infinite, but I like my compact setups for live performance without scrolling.
@ale47p Great feedback. I’ll see if I can fix those bugs in the next few days.
Also, @Aria_Salvatrice, I’m taking note of your findings as well and will see if I can recreate your findings. I’ll also see if I can make things more compact.
Built the latest git pull, no problems. I’ll keep the Linux binary updated at the location in my previous message. New look is an improvement. Btw, could you add the names of the loaded samples in the context menu ? There’s currently no way to tell at a glance what’s loaded and where. Otherwise, no complaints here. Much fun continues.
I think my issue with with silence the other day was twofold:
At fast speeds, DIV and POS all the way to the left, the sample needs to be perfectly cut, or it will only repeat the silence at the start of the sample
At low pitches, some samples are no longer audio rate at all
Also, I think the module should have an optional anti-pop smoothing mode! Here’s a use case where the pop is unwelcome that’s much easier to show than try to explain in text:
In other contexts I think the pop adds a grit that could be welcome for a more aggressive sound.
I think it’ll make a great companion to PdArray to cut up samples creatively
when loading samples, it would be nice to go directly to the last used folder
I think the display (which I personally like) could be a little bit longer (or the font could be reduced) just moving the “CLK” socket, or maybe let the name auto-scroll if it is longer than 20 digits
it would be nice to have an auto-retrig (optional) if the sample ends before next clock trig (so we don’t have to wait, a kind of looper), now I have to do it with an envelope generator and compare it to a “zero” value, but it’s not the same. in this case, if the sample had a point where the signal is zero, it would retrig itself, here it works because the sample output is never at value=0
There is no magic going on: I update the text shown every 100ms accordingly with a substring if the label is too long. But I have to say that my implementation isn’t very elegant…
@ale47p I can easily add an auto-retrigoption for when the sample ends. I think that I might put that option in the context menu as opposed to on the front panel. I’ll also see what I can do about returning to the last folder, but I might be limited based on the code I’m using for the file selection dialog. I’m really not sure yet. I’d be happy to extend the filename display and move the clock input to the right of the DIV knob. I don’t want to necessarily scroll the display because if might look strange when the sample is being modulated via the WAV input. I hope that a longer display will suffice!
@Aria_Salvatrice I was working on an anti-pop smoothing mode last night but failed. I’m more of a mad scientist than a DSP expert, so my approach may be wrong. I tried creating a “smooth” knob which cause the amplitude of the wave files to ramp up (linearly) up over time. This ramp would reset to 0 whenever the sample position (POS) was changed. Unfortunately, it didn’t remove those popping sounds.
I’ve also tried the patch below to reduce pops. It worked to some extent, but it changed the overall sound.
Incidentally, I noticed that some wav files “pop” more than others.
Today I’m going to experiment with having the POS input always jump to the nearest zero-crossing to see if that has any effect. If you have any suggestions, I’m all ears.
Thank you again for all your feedback! It’s super helpful.