Posted on

WaveBoy 0.54 Firmware and Pre-Release 2

At long last, WaveBoy 0.54 is now available! This version focuses on improving tuning and pitch tracking. It took quite a lot of work, hence why I didn’t do much in the way of other feature development (some but mostly UI polish).

The problem is that certain incoming voltages on V/Oct end up being “noisy” – the value the analog-to-digital converter (ADC) provides for said voltages moves around. This was causing audible artifacts, especially in wave mode. While the raw noise is still there, it has been tamed by doing a few things:

  • The sample rate in Wave mode is only updated after each full wave cycle completes
  • Using a timer to read analog inputs at a fixed rate (currently 400Hz)
  • Using a software 2-pole filter and floating point math for the V/Oct values into the pitch function
  • Moving to per-note tuning

These things took a lot of reading up on techniques, bug squashing, and trial and error but I am happy to say that pitch tracking is improved across the board. For Wave mode it’s actually pretty great and for noise and sampler modes, it’s pretty good but could be improved and something I’ll be looking at in the future.

The per-note tuning is a somewhat big change. Folks moving to 0.54 will also want to grab the sdcard.zip and at least grab the updated tuning.txt file. This will be a good starting baseline and should work for most of the WaveBoy’s currently out in the wild but it may require tweaks to get the pitch tracking perfect for yours.

While looking into all this I did discover a design of the microcontroller I had not considered which may be contributing to the noise. The microcontroller (a SAMD51) uses what is known as a SAR ADC (Successive Approximation Analog-to-Digital Converter). This is both a cost effective and flexible ADC. It works well for multiplexing (being able to use a single ADC to read multiple input pins) but the trade-off is when using an op-amp in front, it can require additional parts to avoid shenanigans. Basically it’s an RC filter after the op-amp to help charge the ADC’s small capacitor used to ultimately read the given voltage. Without this filter, the op-amp needs to have a much higher bandwidth.

This all gets pretty deep in the weeds but I suspect it is a source of some of the incoming noise on the V/Oct input. This affects CV too but since CV is used for pretty coarse ranges, it’s not really a problem. And while the software solutions fro V/Oct are working well, I have decided that there will need to be another PCB revision. Fortunately, I do not expect that this will not require different firmware. But it does push back the larger production run of WaveBoy’s I was hoping for.

I went back and forth on whether this was needed due to the software improvements, but it’s a very marginal increase in part count (and cost) and is more “to-spec” which I expect should improve the pitch tracking. While it’s great now, these additions will make it even better and it makes sense to do if I want to start cranking these out in larger numbers.

That said, I do have a small handful of PCBs of the current revision available. I will be making these available in another pre-release round which will be at the cheaper price as compared to production (just like the last pre-release). Even though the next revision will be improved, this one is still great. It might even have more character than the improved version. For all intents and purpose, it is a production WaveBoy save for the above change. So for folks that have been wanting a WaveBoy, you can grab this version up soon (within a few weeks hopefully) or you can wait for the next PCB revision (which will probably be a few months away).

In the meantime, I will be finally working on the Manipulators feature I’ve been talking about. I’ve been super excited to start work on it but of course a module isn’t very good if it can’t track pitch well, so that was quite important to remedy first. Expect to see Manipulators hopefully in 0.55!

Posted on

WaveBoy 0.53 Firmware

I spent a good chunk of the Holiday break working on a new feature for WaveBoy I’m rather excited about – internal volume envelopes! These plus some bugfixes and feature tweaks are available on the newest firmware. Head over to the WaveBoy manual for more information and to take it for a spin!

Folks may have noticed the WaveBoy is currently out of stock. I am working on the production version and hope to have it at least available for pre-order very soon. I am not yet sure if it will be available only as a kit or if we will also have fully built and tested versions available.

Posted on

New WaveBoy Front Panel

While I’m glad I was able to 3D print panels as part of my design process, now that I have a layout that’s good with what should be the final PCB design, I decided to look at using a more common material in the Eurorack space for nice but reasonably cost front panels: FR4. They just came in today and, well, see for yourself!

I think they look stellar! This was the last major piece before being able to declare at least the WaveBoy hardware fully ready to go! There is still software to work on, but I expect that will be a continual process. I mentioned in my last update the idea of a tracker. While I haven’t written much code for that yet, I think it will be a great addition though I do expect it to take some time. Especially for being able to use it as both a step sequencer to drive other modules and internally where it can be used more like LSDJ to manipulate the waveforms. I think both add a ton of value to a module I’m already proud of.

Posted on

WaveBoy Tracker? Maybe!

As the band looks towards going DAWless, I find myself having to look at Eurorack sequencers quite a bit more. There’s lots of DAW-none ways to do that. Ornament & Crime (particularly the Phazerville firmware) has some nice options for doing that. Also CV keyboards, like the Arturia Keystep have a sequencer.

But since I’m also writing a tracker for the Commander X16, I got to thinking, why not write a tiny tracker module onto WaveBoy! The main problem I see is that the screen is quite small for being able to read letters. This tied to the display library in use can also make updating the display potentially problematic. I can solve for this to a degree by enlarging the current row of the view.

The sequencer could be controlled via the following inputs:

  • V/Oct = Base Pitch
  • Trig/Gate = Advance Sequence
  • CV = Select 1 of 16 sequences
  • Step = Gate (or a VCA?)
  • Audio = Pitch

V/Oct sets the base pitch so the sequence can be tuned/transposed. The trigger advances the sequence, just as it would using the sequencer in wave mode. The CV flips through 16 sequences. The step output could be a gate but I could also do all sorts of things, like volume slides, gate length, etc. That could make it function as a basic gate or more like a VCA.

The pattern view might look something like this:

00 C-4 80
01 ... ..
02 D#4 40
03 ... ..
04 F-4 30
05 G-4 80
06 ... ..
07 ... ..
08 END ..

Recording a sequence could be done via the knobs and optionally using CV and Trigger to fill in the note at the current played note (which might require quantization). Similar to the Sampler mode, each “song” would have its own named directory on the SD card with 16 text files that would comprise each pattern. Meaning that I can probably find a suitable file format that allows for making sequences externally by editing a text file where each line in the file corresponds to a row. That also allows for the potential for external tools. Of course the SD card is mounted at the back of the module, so moving these to/from can be a bit annoying. I did this by design. While it might not be a popular move, I really don’t like seeing card slots on my Eurorack modules. And keeping it in the back avoids it from getting popped out during a live performance and such. Perhaps I can solve that by adding a header for folks to panel mount the SD card slot somewhere, but that’s a thought for another day.

Anyways! I dunno if I’ll end up doing this but I think it could end up being worth it. This wouldn’t be the only tracker in Eurorack, and it certainly won’t be the most complex. But I grew up on trackers and they have been a part of my life ever since, so it perhaps makes some sense to pay homage to them as an additional feature.