Eurorack!

309 views
Skip to first unread message

Andy Tanguay

unread,
Oct 22, 2021, 12:01:07 AM10/22/21
to WVR Audio
Any thoughts on turning the WVR into a little Eurorack sample player? Seems like it would be a great fit.

I know thats a pretty big open-ended question, but I figured this might be a good place to start.

I guess it would take some research into collecting the triggers/gates/CVs coming in, and processing them into something WVR would like. Hmm, I'm already out of my depths right there.

Andrew March

unread,
Nov 1, 2021, 3:09:09 PM11/1/21
to WVR Audio
Hi! Yes I have most definitely thought about it. My intent right now is to do another kickstarter next year for a eurorack version.
The only real challenge is getting the voltages converted to and from 3.3v for the WVR.
Other then that it would be some very basic Arduino code to respond to cv, gate, and trigger events, and building a web UI to set everything up.

Andy Tanguay

unread,
Nov 2, 2021, 10:13:34 PM11/2/21
to WVR Audio
Cool. It's definitely something I'd love to see. Hopefully there's some good info out there since people are doing Arduino/Eurorack projects. Any pointers? It's something I'd like to play with this winter.

Atonal Circuits

unread,
Apr 1, 2022, 6:19:22 AM4/1/22
to WVR Audio
Hi Andrew,

I'm found of your hardware and I cannot wait to build an eurorack version... I plan a 4HP module with a sister module (2HP) with buttons to trigger inputs directly. I plan another sister module with 4 touch zones. D10 will serve to toggle WIFI on/off. I noticed that WIFI causes noise into audio... Reset front switch is mandatory to update pin config right? I'll need to extend the switch from the WVR with fine soldering...
All input voltages will be scaled to 0 - 3,3v. If you plan to make a special UI using ADC one day, I'll take care for D6 to D9 (A0 to A3) to keep the full analog swing.

If you plan to develop a open hardware eurorack version yourself the input/output scaling / protection from Mutable Instruments "Elements" is really well made (also open hardware licence!).

Let me know about your thoughts or some guidelines ?

Kind regards

Robin 
wvr_euro.png

WVR Audio

unread,
Apr 3, 2022, 2:15:41 PM4/3/22
to WVR Audio
That's awesome!!!
Pin Config only requires a reset when changed from the Web UI. If you are writing Arduino code you can change the pinMode anytime. There is a functions in the WVR class WVR::resetPin(int pin) which will remove all the interrupt handlers, and give you a fresh pin.
If you do need a reset function from the front panel, note that pressing the reset button is the same a cycling the power, so your button could just cut power to WVR, and achieve the same outcome.
One thing that I would mention is that, in my experience, and in the experience of others online, the ADC in the ESP32 is very bad. It is incredibly noisy, and I have spent many days tearing out my hair writing algorithms to get useful values from it. Basically I trim the value down to a 7bit value (1-127) by shifting the values right by 5 ( val >>= 5 ) and this seems to remove enough of the noise. You can look at wvr/src/pot.c and the wvr_dev_board.ino example file to see that approach in action. pot.c also has some commented-out code where I was trying some wild stuff to average out readings, etc, and you can see how i switch to digital mode, and write it high, between reads, to try to settle the voltage on the ADC.
If you are able to figure this out better, please let us know!

I plan to create a eurorack kit at some point too, so thank you for the link! Lets keep in touch about it!

Atonal Circuits

unread,
Jun 27, 2022, 5:41:41 AM6/27/22
to WVR Audio
Hello Andrew,

I hope everything is well for you. I realized the prototype I showed you some times ago!
I have few questions...
- Currently, I have to hold manually pin 6 to high state during startup otherwise, the module waits for SPI boot. Can this be changed in software or should I consider an hardware solution?
- I am struggling with audio quality. Samples playback generates some noise. You can hear it on the wav files attached, this is very audible on sine waves. With my other project involving WVR (finished now), I didn't had this problem, sound quality was great. I tried everything I can think of: big capacitor soldered directly between GND and 3v3 pin. Direct wired ground path to the IDC power connector of the module. Direct soldering of the module onto my PCB (no header). All this has absolutey no effect. Maybe you can give me an advice regarding this? The noise exists only during sample playback.

This could be a great module (4HP wav player - no more SD cards - versatile routing - midi input - etc)

I hope I'll find a solution with the noise.

Kind regards

Robin

IMG_20220623_160523.jpg


--
You received this message because you are subscribed to a topic in the Google Groups "WVR Audio" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/wvr-audio/_eR25YMcodI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to wvr-audio+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wvr-audio/6e8dadac-bbad-4cfb-abee-c19b51730a7cn%40googlegroups.com.
WVR_808.wav
WVR_sine_50Hz_-24dBFS.wav
VID_20220624_172310.mp4

WVR Audio

unread,
Jun 27, 2022, 11:13:38 AM6/27/22
to WVR Audio
Hi Robin,
That looks AMAZING! Congratulations, and thanks so so much for sharing with us! I really appreciate it! And you even put "WVR" on the face :) <3

Noise can be hugely reduced by turning off the wifi radio.
There is a setting in the WEB UI to turn it off, and there are 2 methods to turn it back on.
1) Enter recovery mode
2) set up a pin event to toggle the wifi on/off
Make sure you have on of these 2 methods working, and well tested, before you turn it off in the settings.

Another easy way to lower noise is to increase the volume of the samples before you upload them. I usually normalize all my samples (set them to maximum possible volume without clipping) before uploading.

With WiFi off, and samples at a reasonably high volume before upload, there should be no perceivable noise.

"pin 6 to high state during startup" this is a very strange problem that I havn't encountered. Are you sure its SPI download mode? How can you tell? Do you have an FTDI device attached, and see that information displayed? Are you able to easily remove the WVR from the rest of the eurorack module, and test it in isolation? Does the problem remain? Are you willing to post an image of the schematic for the eurorack module? Perhaps there is a clue there.

Atonal Circuits

unread,
Jun 27, 2022, 11:54:48 AM6/27/22
to WVR Audio
Hi Andrew,

Thanks for your quick answer and your congratulations...
Regarding WIFI, I put a button on the module's front plate to toggle it on/off (D10 is used for this purpose).
I recorded the audio demo with WIFI off.
The 808 file is a 808 kick normalised. Can you hear the noise during decay of the sound? I compared with the other project I made with WVR and sound is much more pure with previous design. Maybe some current flowing thruh all the I/O ?
I also tried to feed 5v to WVR (disconnecting 3v3 pin) to use the onboard power regulator. no change
I checked signal at the output of ADC, noise is already there. (My buffer stage is not responsible).

Regarding D6, I noticed that when this pin is grounded at startup, WVR is in SPI mode (I saw that during FTDI first init/download to the board). As all the I/O are buffered (see schematics below) D6 is thus pulled down at startup. Is there a way to modify the code to bypass the D6 pin check ?  (it would be great if you can point me where it can be modified) Of course when I boot WVR outside the modular shield, D6 is floating and the board starts normally.

Thank you for your feedback

Kind regards

Robin


WVR Audio

unread,
Jun 27, 2022, 11:59:47 AM6/27/22
to WVR Audio
This is the line that does the check https://github.com/marchingband/wvr/blob/2afe4043e5445372cd4bb147d4bec6241af02e56/src/wvr_0.3.cpp#L101
But, you can turn off the check, using the WEB UI, just set "check recovery pin" to "false" in the config menu.

I will look at the schematic and get back to you soon!

WVR Audio

unread,
Jun 27, 2022, 12:04:44 PM6/27/22
to WVR Audio
Oh, I actually dont see the schematics, did you forget to attach them maybe?

WVR Audio

unread,
Jun 27, 2022, 12:08:20 PM6/27/22
to WVR Audio
Also, sorry, disregard my previous message about "check recovery pin" that wont help.
If pin6 is triggering SPI Bootloader mode, that is hardcoded into the ESP32, there is no way I know of to bypass it.

Atonal Circuits

unread,
Jun 27, 2022, 12:08:40 PM6/27/22
to WVR Audio
"check recovery pin" was already disabled. With the settings below I still need to put D6 high otherwise module won't boot.
schematics attached now!


WVR_settings.png



You received this message because you are subscribed to the Google Groups "WVR Audio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wvr-audio+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/wvr-audio/ee6fe13c-94d9-4fb2-a3ba-8ff5404e3654n%40googlegroups.com.
WVR_EURO_schematics.pdf

Atonal Circuits

unread,
Jun 27, 2022, 12:13:40 PM6/27/22
to WVR Audio
Ok, I'll need to pull D6 high during startup with hardware thus! Or maybe using D6 for toggling wifi with a pullup.

WVR Audio

unread,
Jun 27, 2022, 12:24:04 PM6/27/22
to WVR Audio
If the noise is gone when you disconnect the WVR from the circuit, then we know the WVR is probably not damaged ... which was a fear i had.
I don't see any obvious sources of noise in your circuit, but I am not that familiar with eurorack. I will show these to a friend, and see if they have some ideas.

If the noise is present on the DAC output, then it is probably present on the 3.3v pin. Do you have a scope? You could try to find the source of the noise that way.

Atonal Circuits

unread,
Jun 27, 2022, 12:31:22 PM6/27/22
to WVR Audio
The noise is present only during playback. I used the onboard regulator instead of my power and results were the same. I tried different PSU... I'll check with my scope for some noise on the 3v3 line...
Thank you for your help!! I appreciate if you can have further advice...




WVR Audio

unread,
Jun 27, 2022, 12:45:06 PM6/27/22
to WVR Audio
Ok that is very strange.
One thing you may not know is, the WVR UI renders your samples to a raw pcm wav file, 44.1khz, stereo, 16 bit, before uploading the data to WVR memory.
I guess it is possible that this is the source? You could try reformatting your audio to 44.1k, stereo, 16 bit wav in your DAW, before uploading, and see if this helps.
My friend informs me that your circuit looks good to him as well, so no obvious issues there.

WVR Audio

unread,
Jun 27, 2022, 12:51:23 PM6/27/22
to WVR Audio
My friend noticed that your PCB is green ... is this the WVR that you had made at JLC? The PCM5100 which you used has a higher noise floor then the PCM5102 that is used in the real WVRs, this could be part of your issue. Are you able to swap in the real WVR and see if there is a difference?

Atonal Circuits

unread,
Jun 27, 2022, 1:38:20 PM6/27/22
to WVR Audio
The same sample played clean in the Soundbrick project (still to be announced).
I made a second JLC batch with the PCM5102... I checked that already. I have no original WVR, only my homebrew... Maybe the board layout... Can I send you the kicad PCB file?


WVR Audio

unread,
Jun 27, 2022, 2:30:17 PM6/27/22
to WVR Audio
yes you can send the board layout for sure, and I'll take a look, but if there is only noise during playback, then I cant imagine how the board would be the issue.
I can see the gain on the output opamp is 3x. Is it possible this is a gain staging issue? Are your samples playing back at full volume (midi velocity 127)?
If you are playing at a lower velocity, when using this board, and then boosting with the opamp, that would effectively triple the noise floor from the DAC.

WVR Audio

unread,
Jun 27, 2022, 2:35:21 PM6/27/22
to WVR Audio
If you have a few other WVRs from this batch, you could try a different one. Recently I've been finding that assembly from JLC have a LOT of flaws. For example if the DAC doesn't have good connection on some pin, it could cause this issue. You could examine your schematic, and check that the pins on the DAC are low/high as you would expect. The datasheet for PCM5102 shows what all the pins do.

Atonal Circuits

unread,
Jun 28, 2022, 5:15:51 AM6/28/22
to WVR Audio
Thank you for the hints. Indeed JLC seems unequal, one unit failed during FTDI first upload... I will look closely to the DAC! Where did you produce the units available on your Tindie? I will buy some of these for testing... I'm about to leave fo holidays for 3 weeks. I hope there will remain some units in August!


Atonal Circuits

unread,
Jun 28, 2022, 8:46:23 AM6/28/22
to WVR Audio
Hi Adrew. I checked PCM5102 pins, all correct on this board.
I was almost shure it was a GND issue and it is... The GND path from the PCM pins is to far from the main GND of my module. I soldered a cable from pin #9 (AGND) directly to the power connector and now it is dead silent! I Think WVR board should have an extra GND pin located near the PCM chip or maybe a better GND path to the GND pins as I spotted in the screen capture.

I am relieved, the module meet audio quality requirements now! I have to rework the board regarding the hard coded pin 6 check... Maybe I simply invert analog signal at pin6, which can be inverted afterwards in code right?


Many thanks for your guidelines in debugging!

Kind regards

Robin

WVR_screencap.png



WVR_GND.jpg
WVR_GND_2.jpg

WVR Audio

unread,
Jul 3, 2022, 3:08:32 PM7/3/22
to WVR Audio
Hi Robin! Sorry for the slow response, I'm in the middle of moving :(
So happy to hear you found a solution. That is very strange. I do not have this problem on the boards a received from JLC.
I wonder if somehow the board design rules got changed for you, which could have changed the shape of this ground pour? Perhaps the board outline takes a larger keepout?
For my order, I imported the files into easyEDA, made a few changes (adding the SEEED XIAO footprint on the back) and rendered the GERBERS from easyEDA. I saved these files in a branch in my github https://github.com/marchingband/wvr_hardware/tree/v2.0
In any case, when I have some time I will see if I can route these traces better. There is a lot going on in that section of the PCB, so it will be a challenge.

regarding pin 6, this is ESP GPIO-0. I'm realizing this is an oversight on my part not discussing this in the documentation. It has weirdly never come up before. I will fix that ASAP.

It must be either floating/unconnected, or pulled high at boot. Could you swap D5 and D6? I cant tell from your schematic if the trig inputs are active high or low. Perhaps you could remove one of the 2 Schmitt triggers to make them active low, and invert that logic in code?

David Battino

unread,
Jul 17, 2022, 1:52:34 AM7/17/22
to WVR Audio
Hi Robin. I'm writing an article on WVR for Waveform magazine. Would you be willing to share a photo of your Eurorack project — and perhaps a link where readers can learn more?

David

WVR Audio

unread,
Jul 20, 2022, 4:05:51 PM7/20/22
to WVR Audio
That is SO exciting thank you David!!
There are some photos of the project above in the thread here. I can try to contact Robin, as not everyone has notifications turned on for this forum.

David Battino

unread,
Jul 24, 2022, 6:50:51 PM7/24/22
to WVR Audio
Thanks, Andrew. Robin and I connected directly. I'll let everyone know when the issue is out. My column appears only in the print and PDF versions, but I'll ask about posting it online.

WVR Audio

unread,
Jul 29, 2022, 2:22:19 AM7/29/22
to WVR Audio
Awesome!

David Battino

unread,
Sep 24, 2022, 8:14:04 PM9/24/22
to WVR Audio
Waveform issue 9 is out. Here's a PDF of my column featuring the WVR and Robin's Eurorack module. 

Thanks again for your help!
David

WVR Audio

unread,
Sep 25, 2022, 9:51:25 PM9/25/22
to WVR Audio
David that is SOOOO AWESOME! I can't thank you enough 😇

Atonal Circuits

unread,
Oct 6, 2022, 7:20:55 AM10/6/22
to WVR Audio
Hi everyone, the final eurorack module is ready for shipping!


@David: thanks again for your great article in Waveform magazine.

WVR Audio

unread,
Oct 13, 2022, 4:06:31 AM10/13/22
to WVR Audio
Atonal this is so great. It fills me with joy to see a WVR living as an open source tool :) Thank you!!

batchas

unread,
Oct 18, 2022, 3:54:08 AM10/18/22
to WVR Audio
Hi
It looks that there's no implementation for changing the pitch or speed of a sample. This is a code which I'd have to write/implement separately, am I right? I'm happy if I'm wrong here...
Though I read in your Waveform issue 9 "It can transpose a single audio file across a range of notes."
Does it mean you can change the pitch of a note, but in a fixed range of notes, not linearly?

northern experiments in sound

unread,
Oct 18, 2022, 7:39:39 AM10/18/22
to WVR Audio, batchas
It would be great if we could have a knob to control the speed /pitch of samples as they are playing, I use my WVR as a drum sampler and I love the sound of pitched drums , would be even better if it could have CV control too. Wishful thinking perhaps.  I’m sure I’ve mentioned it in a previous post but I think  Andrew said it was only possible to change the pitch before the sample is uploaded and then it’s set.   

batchas

unread,
Oct 18, 2022, 10:32:45 AM10/18/22
to WVR Audio
Once (if!) there's a knob control for speed/pitch, then it's easy after to implement external CV control.

Atonal Circuits

unread,
Oct 18, 2022, 10:50:51 AM10/18/22
to WVR Audio
Hi, I know there is a "pot" code example somewhere in the binaries. Andrew can surely point the file. You can search the GitHub too. Pretty sure that POT is the key word. He told me that currently ADC of esp32 is pretty noisy and needs software improvement...

My eurorack shield respects analog inputs. I would love to demonstrate CV possibilities !

Check www.atonal.be if interested in eurorack shield...

Kind regards

Robin

--
You received this message because you are subscribed to the Google Groups "WVR Audio" group.
To unsubscribe from this group and stop receiving emails from it, send an email to wvr-audio+...@googlegroups.com.

batchas

unread,
Oct 18, 2022, 10:53:45 AM10/18/22
to WVR Audio
"There's a pot code example" >>> changing pitch/speed example???

WVR Audio

unread,
Oct 18, 2022, 12:48:40 PM10/18/22
to WVR Audio
@batchas The WVR itself cannot pitch shift, but the WEB GUI can pitch shift in the browser at sync time, and then upload the pitch-shifted samples to WVR as separate files, and WVR stores them all, mapping them to their various notes. This is referred to as 'pitch interpolation' in the docs. Currently it is setup to pitch to discrete semitone values, but the Web Audio API can of course pitch shift to any arbitrary playback rate. The function takes a float, and the shifting algorithm is a good one. I don't think this solves your problem though.

I have wavetable synthesis at the forefront of my mind, and my plan is to run a new Kickstarter to support that work, likely with some new hardware, and start the firmware from scratch with DSP first, rather then stable polyphony first. WVR2 or maybe another name. I will keep you updated!

If you are interested in working on the code for pitch-shift, I am 100% here to support. There are some big challenges, but I believe what could be achieved is:

4 - 8 voices of stable polyphony, with 1 semitone pitch-shift range.
Then switching to a new sample past 1 semitone, so unlimited range really.
WVR would load samples into RAM for adjacent pitches, and intelligently blend between them, and load the next adjacent sample when it switches.

This is not easy, but certainly possible.

At that point it would be easy to connect this functionality to either mid pitch-bend, or to a CV control like  @Atonal has demonstrated.

Let me know if you are interested, what I'd do is make a new branch in the GitHub and we could work together. I just don't have time right now to devote to this volume of work alone. If I run a kickstarter that will change, but I have to make a proof of concept first, and I am in prototyping for WVR2, so maybe things will start to roll this winter :)

batchas

unread,
Oct 20, 2022, 5:22:32 AM10/20/22
to WVR Audio
I don't know how to quote a part of text here, so it makes it a bit difficult for me. Anyway, indeed IMO the good thing in a sample player is when you can pitch in realtime, play backwards, change start/end point on the fly (I read it is possible via the Web API, so maybe this last point is not undoable. But this is not important now).
Pitch: slowing down the speed is enough, pitch shifting is not primordial IMHO. At least not for me.
I wish my health would allow me to go back to coding and electronics!!! I had to stop my activity, but can't stop from to time looking back to the subject.

This seems interesting:
https://github.com/schreibfaul1/ESP32-audioI2S
https://www.youtube.com/watch?v=Zz__V7X0K6o

This?
https://www.youtube.com/watch?v=p_a8mDcAvOg

This?
https://github.com/debsahu/ESP32_FFT_Audio_LEDs

WVR Audio

unread,
Oct 20, 2022, 11:49:51 AM10/20/22
to WVR Audio
Those are great links thank you!
That Xtronica library, (which is a fork of that schreibfaul lib), adds the standard wavetable algorithm described in the 2nd video. This is not complicated to build, but unfortunately it requires doing floating point math. ESP32 is slow with FP mult/divide, because it does not have a great FPU on the silicon, like for example stm32 does, which is why a lot of audio modules go with stm32. You can see in my code I have gone to great lengths to avoid FP math. Adding just one FP calculation to the WVR audio engine reduces the polyphony that its capable of, believe it or not. I am not sure if it is possible to execute this algorithm without FP math, but if you know of a way, that would be amazing. I have tried and am not smart enough :( Or maybe it's not possible.

Andy Tanguay

unread,
Nov 25, 2022, 6:37:10 PM11/25/22
to WVR Audio
This is INCREDIBLE to see come to life. I tuned out of the forum a while back and I return to check my post and now the idea is a reality!! How amazing. Looks fantastic. I would love one.
Reply all
Reply to author
Forward
0 new messages