That's very cool to hear! Should be no problem using the patch with MIDI. The only thing to be aware of is that the wave selector input takes an integer
value rather than a float
which the midi objects use, so you may have to mess about with conv
objects to get that to respond. Ultimately it may be better to add some math objects and use increment/decrement buttons instead of a selector knob.
The Xylobox Wavetable Synthesizer (hardware + patches)
living in Canada, I enjoyed seeing your reference to BLMS... as I have been quite happy with price and especially delivery. Great build.
Really Really great project and thank you for sharing! I was wondering if you could perhaps share your BOM and schematics so I know what to get if I decide to build one of those as a first DIY project.
Edit: I have been piecing together the necessary information by going through this thread and following various links taking me across the axo community. I am getting more and more enthusiastic about the possibilities of the axoloti and the brilliant stuff that people have been creating. I think I almost have all the information I need to start ordering parts for my project, which will be largely based on the Xylobox (same amount of knobs and buttons).
I have two questions about the patch that I can't seem to find an answer to but perhaps that is because I don't know exactly how to phrase them. I am posting them here because they relate to the xylobox patch and project, but @thetechnobear feel free to move it if you think they belong somewhere more general:
I would like to add the possibility to store the potentiometer and button positions as loadable presets (and control them by adding save/load/cycle preset functionality to the three existing buttons). My Microgranny has this function and I find it it extremely useful. Does anyone have experience creating such a thing and @matthewcieplak do you think adding this to your master_patch.axp would be actually possible (with regards to cpu use for example)?
I would also like to use this patch to manipulate incoming audio. Is there an elegant way to modify the master patch into a version that responds to incoming audio rather than MIDI? (I would like to feed it audio loops and mangle those on the fly using the knobs, not like adding an effect to the audio, but to use sound signals as a trigger much like a midi trigger). In a perfect world this would be a matter of simply swapping a few objects to change the source of the signal I have to say the more time I spend visiting these pages the deeper I disappear into a rabbit hole of amazing theoretical possibilities; most of them far beyond my actual skills. So what is the harsh reality?
Great to hear! Yes, the schematics are pretty barebones but you seem to have followed the major details. 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.
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
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?
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?
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.
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.
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?
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
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
Hey Matthew,
Thanks for this great project. Decided to build one. It was quite a journey (I am not a coder) 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!
Help advise a total and complete beginner on how to build my enclosure!
2 Axoloti machines for sale (Sold)
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
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.
I2C is serial indeed, invented by Philips 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)
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
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.