By the way:
This build really tickles my fancy. Imagine playing the Axoloti via that!
I've seen this build video before... very creative build. Much like the @lokki bass.
yes indeed @timeorspace and @brasso that is what i based my bass build on. i was very impressed by that video as well
there are a few drawbacks in his design though, so not much of his code is left in my arduino project (i started with his code, he has also done a new version i believe, with fsr somewhere)
i added a "string" i mean three is just not enough
he uses piezos to trigger the sounds and samples them 400 times to get a velocity. this creates huge latencies and you cannot play polyphonically (as in at the same time, you can still play more than one string at a time with his design, but the attack cannot be simultaneous), since the arduino sits in a loop measuring the piezos. i corrected this by reading the piezo not in a loop but by increasing a global counter. this allows the code to be run through and measuring 4 (in my case) piezos for polyphonic playing. however the piezos were kind of fiddly so i tried fsr's instead. MUCH better response and with the added benefit of a dynamic control with the pressure.
he has the soft pots hooked up in "mono" touch mode. this basically works, but as soon as there is more then one finger on the soft pot, the voltage reading will be in-between the two fingers. so you get all kind of wrong notes triggered when you try to play hammer ons and pull offs. i could not live with that, since pull offs and hammer ons are an essential part of my playing. this can be corrected with the duo touch mode, that has been discussed here. i only measure one side though. now i can do tapping, hammer on's and pull offs. yeah!!
when playing a sound with a long release time you get false triggered notes when you release the soft pot. (since it does not go immediately to maximum (open) resistance (i used pull_up resistors). i had to correct this in the arduino code, so it checks for legato notes that are lower than the current pitch and only issues them after two or three iterations of the same reading. nice!
the original code spit out MANY cc midi messages when moving the joystick which could overload some hardware synths. i thinned the midi data out (mainly by only sending values, when they really change)
these were the main obstacles to overcome to have a nice playing, and fast responsive midi-controller
i added a bunch of other things:
i added pitchbend info via an accelerometer to get nice vibrato effects when i vibrate my hand on the fingerboard (much like on a violin) this works really great.
lot's and lot's of code tidying, replacing int's with bytes where possible to speed up the whole program.
thats about it, i can't remember all the things i did, it's a longterm project. anyhow i am now REALLY happy how this turned out and i play it in a band regularly, it is fantastic for bass synth sounds and VERY reactive to my playing. fast runs, filter modulation via aftertouch (fsr), all easy.
this is also not meant against his build, it's great really! it is what inspired me to do my build. just my findings when building my midi-bass and trying to overcome the limitations.
@lokki thank you for the details! A lot of great info! I like how you have modes for the fsr's... along with all the other great features. It sounds like a great instrument to play.
yeah, it is great to play. i wanted to record some demos with the axoloti for so long! but i have been very busy with playing music. but since i now have a band where i play the controller, there will be recordings sooner or later
This is fantastic! Where can I find more info? And please; do not only record some stuff but also make a few video's.
I wonder in how far such an instrument could be based on the Axoloti only. Theoretically the analog inputs could be used for firect input. Or would the sensor managemnt software take to much processing power away from the audio treatment? Maybe one could use 2 Axoloti's in series?
In the mean time I have been building my first synth on Axoloti and I am very impressed so far. What a great tool!
i have been thinking about this as well. the current setup i have needs all 12 analog inputs on the arduino micro, so this would not work on an axoloti...(4xfsr, 4xsoftpot, joystick, breath, accelerometer, sustain-pedal)
as for more info, i don't have any GitHub or similar setup with the code since it is not very readable, i have unrolled all for loops to speed it up a little and it's quite a mess to look at also there is no schematic of the hardware as of now. nothing fancy though. just some pull_up resistors for the soft pots and the fsrs (since it worked better than with the internal pull_ups)
yeah well i don't know if i find the time to do a video, maybe there will be a live video or one from a rehearsal.
Er, Axoloti has 15 analog inputs. That is 3 more!
Well, the problem is the same with the design behind that 3 "'string" thing on the Youtube video. The guy behind it also cannot find the time to properly document what he did.
A few years back I wanted to build an analog "bit"crusher from a provisional internet plan. A propper definitive "how to guide" was however never written so everybody had to overcome the same theething troubles himself. It took me a lot of time, sweat and thunder to find out one single small fact: That the opamp chip used in the modulation "channel" should not be the same type as the one in the signal channel. About the same time I had at last found out the hard way similar comments from others came dripping in.
The same sort of things constantly happen here in the Axoloti community. People keep "inventing" the same stuff over and over again
So pray: What must one do to convince you to write a guide for this?
hehe, right sorry i was in bela land...(i looked at implementing my controller in bela)
about documentation and stuff. i was in the same situation as you a few years back. i always thought, why is this not well documented etc. i for one find the 3 string thingy on GitHub is in fact VERY well documented. but i know more about circuits than i did a few years back. so, you have to start with the simple stuff, buy one or two efx to solder from companies, with schematics and build plan. learn the basics. then from there the not so well documented stuff will be clearer. the same goes for code. look at the examples in arduino, do some very simple stuff and take it from there. i had to dive into that 3string code for some days before understanding every bit of it. the thing with diy controllers or instruments is this (at least for me) i have a very specific need and i cannot buy this controller. so i build it on my own. it is however very specialised and reacts according to my needs. i can share my code, i can write a little howto, measure the resistor values i used (i forgot what i used) but i cannot give support further than this, because i simply don't have the time as a full time musician, father etc... i guess this situation is the same for all others as well.
one example: since i built this controller as (bass)-controller for electronic music i did not care too much about velocity so i implemented a very rough mode only, that reduces latency considerably. maybe someone else wants to play synth pads with this thing and needs velocity to be very well behaved. that would be a big change in code though etc.
that all being said, i will upload the code to GitHub and write a small howto, add in all the hardware components.
it is really only:
a resistor per soft pot
a resistor per fsr
joystick and buttons can be hooked up without resistors (internal pull-ups)
ok here is the GitHub with my code:
feel free to have a look. documentation will follow. if anybody has some code improvements please share!
EDIT: documentation added...as i said the connections are pretty simple and straightforward.
Dear Lokki,
Of course you are right. The more you know the simpler the inroad becomes. But I am not entirely without knowledge. At least I know about soldering, basic circuit diagram reading and building electronic hardware. I have after all been customizing stuff for years. I actually started doing that to become more savy in case equipment breaks down.
Coding is however a closed book for me. One that I actually fear to open (The pit is deep. A furnace at my feet!).
As far as writing guides is concerned. Have a look at how I share my builds. Even I could repeat those!
http://www.brassee.com/writing.html
A more general insight is that having people going through the same wastefull processes for themselves every time is exactly that; WASTEFULL!
Also see my general critisizms earlier this evening.
well, ok.
i tried to add a documentation to my GitHub account, did you see it? as far as the coding is concerned, i get you. but you see it will be difficult to build a diy controller programmed in arduino that is heavily customised and never touch the code. all the documentation in the world will not change that. also, while arduino works pretty well and foolproof there are still some pitfalls, libraries that stop working because they are not maintained anymore etc.
so either you find a way around those things because you know what you are doing (or you just try as long as necessarily) or you don't.
the internet is a very big resource and you can find solutions for many programming/soldering/circuits problems. i try to look at these things not as a waste of time but as a way to learn more and start to understand things i don't know. after all understanding is way cooler than just repeating...
Absolutely, but working with the help of a clear guide can actually accelerate the learning process. Otherwise every school in the world would only consist of "laboratories" where most people never get further then wacking eachother with stones and ends of wood.
Not having to go through darwinistic wastefullness leaves more time for true creativity. But let me stop before this becomes a thesis against capitalism
Thanks for the warning about Arduino's not being entirely consistent. I am sure I do not need yet another eternaly open ended project right now.
I've been sick for 4 days, I'm tired of leaning over a keyboard I can't play, but I got the job done, a dead volume slider gone... That lady will be overjoyed, when I bring her keyboard home...
@brasso make it your own... in this rough take (tonight) you can hear me messing with my ribbon controller...
ok, here is a little video from a practice session of mine. still some improvements needed, but you get the idea. features no axoloti at the moment, sound comes from a waldorf pulse2. enjoy.
there is no adsr or lfo in this preset, filter modulation and pwm is controlled by aftertouch...
LOVE IT!!! Great Job!
I've been anxious to see how you played it with the 4 fsr's... I notice you are using just 1 to 'pluck' the strings in this video... are the others used when you want to send to different synths or parameters?
...btw - I think I now want to make one
@timeorspace yeah, this is the "monophonic" mode. it allows you to use all strings with one fsr to send on a specific midi-channel. it is not strictly monophonic but it makes a lot of sense with a monophonic synth. when you play this mode on a poly synth you loose the ability to control each note via aftertouch.
the other three would just be different channels, and hence able to control three other synths (or one multitimbral synth). for this band i only need one bass-synth atm.
i will try to make a video of the other mode. in poly mode you just have one fsr for each string. you set your multitimbral synth to use the same sound for four channels and you can then slide chords and control each string individually by aftertouch...
One of my top 5 favourite all time electronic albums is Cords by Synergy.
ttps://www.youtube.com/watch?v=yx3akE4J4ik
On it a fast tracking Russ Hamm guitar synthesizer prototype was used to play all sorts of off the wall melodic lines and counterpoints that would be (almost) impossible to play on a conventional keyboard.
Try track 2 and it will flip your lid. Do for instance listen where that bass goes!
This build would also be great for such music!