The Xylobox Wavetable Synthesizer (hardware + patches)


#33

Great to hear! Yes, the schematics are pretty barebones but you seem to have followed the major details. :slight_smile: As for a BOM, there's not that much to it!
Chips: MCP23S17, MCP3008 (x2)
3x LEDs, 3x momentary switches, 1x rotary encoder, 1x 2-digit 7 segment display
24x 10k potentiometers (or 100k), wire, and protoboard!

Honestly the case took the most time to build because I'm such a noob at construction and picked very difficult materials (plexiglass and walnut). Lately I've been getting more into building guitar pedals and started etching my own circuit boards. It might be fun to try to redesign a control board that can be put on a single-sided PCB so I can make a few to sell or allow others to build their own.

As far as the features you discuss adding, the preset stuff eluded me when last I looked into it. I know that technobear and others have been working on getting into the main software so that is a possibility. However the way my xylobox control works is to read in parameters in-real-time from the serial interface and update controls in-place, so it would have to be adjusted to respect the position of parameters set by the preset controller with some kind of takeover control (i.e. only switch to realtime control when the knob matches the preset). I also don't know how the preset storage would work, other than serializing parameters to file on the SD card.

I would probably suggest adding a couple dedicated buttons for loading and saving presets. The axo inputs are maxed-out in my design, so I'd probably add a 3rd MCP3008 and move the last 8 potentiometers to serial input as well to free up 7 more pins (8 minus the one you need one for each add'l chip). Then you could have a couple more buttons. Might also free up some object memory.

As for the realtime audio manipulation, that's easier in some ways than static wavetable management. There are a couple patchers around the forums that do the granular synthesis thing, which is basically what you're describing. However it might be a real challenge to mix this with the preset logic since you wouldn't automatically have a way of writing the audio to SD alongside the preset.

Curious to hear what you come up with! I would suggest starting small, on a breadboard, so that you can get each component working without having to debug entire systems at once. Good luck, and let me know if I can help further clarify stuff.


#34

Ah man thanks for you elaborate reply, this is really helpful!
Did you see my post on the design I did? Do you reckon it's simply a matter of keep adding more MCP3008's to be able to expand on your original by this much buttons?

I will definitely keep you posted on how I fare - will start last week of October when I have time off


#35

I hope I found my answer here: gpio/mcp3208

If I understand this correctly, it should be far easier to just double the amount of pots in my design and forget about doubling the functionality of each knob by adding A/B mode tact switches and pot position recall code in the patch? I would be able to fit all the pots on the same surface so my box will not even have to be any bigger either.

Right?


#36

Did you connect 10 pots directly to axo and 14 via the mcp3200's? I read that it's not possible to adjust more than one pot at a time when they are connected via a mux (the mpc's are mux's?) is this correct?


#37

Hello,

I like this project thats the reason I bought the axoloti core becasue of this project.
Only thing is I cant get the xylobox controls to work is there a way u can upload the master patch with the controls working?
Would help me alot to understand how this works.


#38

Hi imdiffrent,
You can find the control-signaling patch in this post here, it's a .axs file which is used as a subpatch in the main synth patch, and has outputs that represent the various control levels. But I think the axo patcher will let you run it on its own to test out the serial comms.


#39

hello thanks for the reply,
I tested out my pots and they work except the rotary encorder could you share how u hooked the xylobox control up in the main patch?


#40

is there a way u could give the main patch with the xylo controls included?


#41

Hi and thanks a lot for the description of you project, very instructive.
I would like to quickly try it before working on my own wavetable files. Would it be possible for you to reupload your pack?
Thank you!


SPI Problems with MCP3008 and MCP23s17
#42

Hello,
Sorry for the long delay! I've been apprised of the downed link and fixed the link to the wavetable files, you can get them here!
http://matthewcieplak.com/dd/instruments/wt.zip

A backup link is here:
https://drive.google.com/drive/folders/1jAx05oj_oWoyeeOyhWAcNhijK9UnTGtq?usp=sharing


#43

Hey Matthew,

Thanks for this great project. Decided to build one. It was quite a journey (I am not a coder) :slight_smile: So, it is finished (sorta). The top-plate is a home (mpcnc) routed one and scratched. I am waiting till my local Fablab is open again (closed due to C19), so I can lasercut/etch one.

Thing I changed:

  • Added third MCP3008
  • Changed the 23s17 to a I2C one due to compatibiltyproblems with 3 MCP3008's
  • Added a I2C OLED display I had laying around. This gives the active values of the 3 buttons.
  • Push the encoder to change which osc to change. The 2 leds right to the encoder indicate which table I change and Which oscilator you see on the display.
  • All 3 LEDs are on a PWM channel and vary brightness on each value.

Love it!


2 Axoloti machines for sale (Sold)
Help advise a total and complete beginner on how to build my enclosure!
#44

Wow, that's really amazing! Great idea to add a screen for the buttons. Keeps the interface minimal but usable without menu-diving. And I think you've improved a little on my woodworking joinery as well :smiley:

The push encoder thing is a good touch, tweaking the morph knob to select was always a little hackish.

Have heard good things about I2C but still stuck in my serial ways for the most part - I can see why the switch makes sense. I'm sure people would appreciate seeing your patches to see how you've implemented it as well.


#45

Note: I2C is serial.


#46

I2C is serial indeed, invented by Philips :slight_smile: Actualy it is IIC = Inter IC bus. One improvement I want to implement is to turn the filter off. Already seen how this most be done, something to do coming weekend.

I indeed forgot to add the patches. included is also a sheet with the GPIO connections. Here they are.
stereo_delay.axs (9.2 KB)
master_patch.axp (22.2 KB)
vowel_filter.axs (15.4 KB)
wavetable_voice.axs (35.8 KB)
xylobox_control.axs (30.0 KB)


#47

Tnx, I wanted it to match my Midibox Sequencer and my PreenFM and my Shruthi :wink:


#48

Patches with posibility to turn filter off:

stereo_delay.axs (9.2 KB)
wavetable_voice.axs (35.8 KB)
master_patch.axp (24.5 KB)
xylobox_control.axs (31.4 KB)
vowel_filter.axs (15.4 KB)

Have fun with them :slight_smile:


#49

hello Matthew,

I really dig your design and would love to replicate it with some twists. I just have a question regarding the wiring schematics. I observed that you hooked the mcp's to a 5V source (I assume sourcing from the 5V supply pin present on the Axoloti). Are the D_Out pins from the ADCs at 3.3V or 5V voltage level? I spent some time reading up on forums and studying the mcp3008 data sheet but couldn't figure this out.


#50

Both MCP chips can be sourced with 3.3v as I have done.


#51

Cool, thanks for the answer. According to the datasheet you can use 3.3/5V and the only affected characteristic is the sampling rate in ksps as I understood. The question was more regarding how this was solved in the original xylobox design, since the schematics show a direct connection from the mcp3008 to the Axoloti pins, while the mcps are powered with 5V. I don't know if the communication pin voltage level relates to the source and reference voltages or if it stays at 3.3v independently of Vdd and Vref.


#52

Well, if it works, it works. The 3008's give a digital value back which is a measurement of the Vpot to the VRef. So it should not matter... Communication is related to Vdd, but as stated here almost al of the Axoloti's GPIO pins should be 5v tolerant.

But as you said, perhaps @matthewcieplak can shine his lights...