The Xylobox Wavetable Synthesizer (hardware + patches)


#1

Hey guys,
My hardware device and synthesizer patch are finally finished! Check it out! It's a monophonic wavetable synthesizer with 2 morphing oscillators, routable LFO, multimode filter (thanks to @sputnki for the vowel filter design!), dual envelopes, and stereo FX. You can download the patch below and use your own wavetables with it as well.

Here's what my DIY enclosure/controller looks like – I call it the xylobox:

You can hear some sounds and see me demo the the synth in this short video. It wouldn't be a proper wavetable demo without some oscilloscope action, so I got out the old Hitachi V-355 to show you what the morph functions do:

If you're interested in the hardware construction process, check out this gallery showing the build process and marvel at my ugly soldering:


View gallery on imgur.com→

And finally, here are the patches for you to toy with! I've left out the hardware/control management patches so you can run it on your own control setup, but if anyone's interested I can share the details on that as well (it's mostly a lot of script objects and countersat2 stuff). Enjoy!

master_patch.axp (17.5 KB)
wavetable_voice.axs (40.9 KB)
vowel_filter.axs (15.4 KB)
stereo_delay.axs (9.2 KB)

You'll need some wavetable files to get any sound, so open the axoloti in card reader mode and create a folder called "wt". The wavetable_voice.axs file specifies where it will look for files, and it's configured by default to read 512-sample .RAW files from this folder. Here is a .zip of 20 such files made from AdventureKid's free wavetables to get you started:
http://matthewcieplak.com/dd/instruments/wt.zip
Backup link: https://drive.google.com/drive/folders/1jAx05oj_oWoyeeOyhWAcNhijK9UnTGtq?usp=sharing

For more information on creating your own wavetables, refer to @jaffasplaffa's thread here:


Which potentiometers should I buy?
Lexicon and self-education
#2

Super cool! How do you intend to use it? live monophonic synthesizer? sound design tool?
Also i'm quite a lot happy to see the vowel filter in action :grin: thanks for the credit!


#3

You Sir, are full of awesome and win.


#4

Top patch, interesting to see your design choices since I am building a 8-bit style WT groove box with 2 synth channels and 8 drum parts my voices have to be somewhat less complex.


#5

Awesome patch and build :smile:

VERY cool knobs. Where did you get those?


#6

@matthewcieplak finally got a chance to watch the video, and look at the images etc on imgur.
fantastic. not only a great end result, but its brilliant how you detailed the build too.
I think up there as one of the top axoloti projects so far!


#7

sounds really great, what filter are you using @ 00:45 ?


#8

Amazing! Only seen the video so far, can't wait to get home and check out the patches. I will definately try to build this myself. How is the CPU burden? Would dropping the stereo FX free up enough room for a second voice?


#9

Thanks for the excellent feedback! I'm using it in the studio now as a bass sound design tool. It's nice to have immediate tweakability rather than futzing around with VSTs. Although the lack of presets makes it challenging to think about using in a live setting, but that could be added later. (fingers crossed!)

@jaffasplaffa, the knobs are RadioShack "hexagonal control knobs" that I got from a clearance bin in the local shop, but I've seen the same ones sold as "Boss style knobs" on BLMS (in multiple colors!): http://bitcheslovemyswitches.com/#!/1-4-Smooth-Shaft-Knobs/c/15000061/inview=category6588271&offset=0&sort=normal

@ilovedrums247, that's the lowpass mode of the filter. I'm using the svf m object (state-variable filter) for LP/HP/BP modes, and a battery of .lp+hp+bp+bp+bp. objects for the vowel filter. It's important to enable patch output saturation or use a .gain. object before your output to tame some of the resonant peaks with svf. I've also had good results using 2 .lp m. objects in series and slightly offsetting the frequencies for a simulated 4-pole design – gets a nice rezzy acid sound, but you have to do some gain compensation when you turn the resonance up.

@floodcomics I clocked the DSP usage at 45%, so you could definitely drop the FX and squeeze the CPU for a duophonic setup. I'm also running each filter in parallel to enable the "stereo spread" control at the mixer stage, so you could convert that to mono as well.


#10

Really impressive stuff you've done here!


#11

NIce video and sounds !!
Thanks for sharing all this hard work, cherry on top will check the patches :wink:


#12

Not only an awesome enclosure, but great demo of the wavetable functions and the actual sound.
I have put off buying an axo board for months because I have a handful of projects sitting unfinished. Getting antsy now...
This is the best video posted thus far demonstrating the axoloti to people who don't have one yet. There is not even any competition.


#13

This project just rocks! for sure one of my axoloti cores will be used for this one. Thanks for sharing


#14

Hello @matthewcieplak
Great work here, thank you for sharing,
I'm trying to use it as a 3 note polyphonic synth. I've deleted the FX and turned both filters mono, as you mentioned earlier to @floodcomics.
Still got 68% of cpu usage at poly 2.
What else you think I can get off without compromising the essence of the synth, in order to lower this cpu value?
Thank you again!


#15

Hello @pandeirada.j
3 voices will be a challenge! I think you may have to choose a few controls and simplify them. For instance you could share the same envelope for filter and amplifier (and add a switch for env/gate for volume like a Juno 60). Or you could pare down the filter modes (the vowel filter is the most CPU-expensive component). With clever routing, you could rebuild the vowel filter to enable independent use of the the lp m and hp m contained within, and then lose the svf object in use now. IMHO the svf object sounds pretty different than lp m, but I know little about filter design, and that could be my ears deceiving me.

Another thing to try would be swapping the phasor objects with saw cheap objects – not sure if the sound will be affected significantly since that signal isn't not actually being output and the table object does linear interpolation.


#16

each time I switch sample with this patch, it makes a high frequency glitch sound, while I only hear a short click on the video when switching samples.
I'm using samples of 1024samples (SR 48000), might that be the problem? The SDcard is really fast (one of the fastest tested), so that shouldn't be the problem..

I made a wavetable oscillator myself yesterday which live-records it's tables from wavefiles that I've recorded with a self-made spectral oscillator in synthedit (dedicated to a single rootnote, adding and changing partials, harmonics and their volume ratio's for each cycle). This way I can eliminate the table-loading process and the glitch/click.

So it uses 5-minute long wavefiles, selects a play-start position and just plays a tiny bit while recording it to a table.
This way, the click is totally avoided and you could even morph from one audio file to another without any clicking!

I had a testrun testerdat (that should be yesterday, but it just sounds funny, so I keep it haha), randomly selecting between 7 5-minute-long wavefiles, recording from a certain position in the wavefile, and then playing the recorded wavetable (4096 samples) from a certain position and certain width to adjust colour and overtones. Works like a charm! :stuck_out_tongue:


#17

@SirSickSik

The bigger the tables, the longer the bliiiiip.

Yeah, I think he could just update the 1 cycle wavetable patch to a multi cycle wavetable patch. Like a 64 waves wavetable and just change beween the 64 waves in the same file. Then there is no blib.


#18

Care to share how you got the LED display running? Can't seem to see where in the master patch you've got that wired or how it's controlled, and would love to build something similar..


#19

Sure, I discussed that a bit in a previous thread:

The display/routing logic for the current patch is more complicated, so I'd start with the patch in that thread. But here's the current version I'm using for hardware input management (it muxes the display logic and a/d chip management into one script so it's kind of messy):
xylobox_control.axs (32.0 KB)

Basically you decode a number into digits, then map those digits against your "truth table" for the display (e.g. a 0 has these segments lit up, a 1 has these, etc), depending on how your display is wired. The wiring on my board is for convenience rather than standards compliance so my truth table is highly nonstandard, but you can find some more common ones online. Then you take the individual bits from that table and use it to set the value of each output on the display driver (or multiplexer or io expander or some other kind of multichannel output chip) over the SPI output pins (serial peripheral interface I think). You could also use individual pins from axoloti for each segment but that will eat them up pretty quickly.


#20

I'm putting together some more patches for this controller and want to make sure I can remember what all the knobs do, so I put together a little template I can use for charts. Here's the layout for the wavetable setup in case anyone is interested!

May try to go down to the print shop and get a transparency made at the right size so I can throw it on when I'm synthesizing. May be handy several years from now...