So I want to send MIDI notes OUT of Ableton to an UNO, the UNO then take the note played, converts that to a predetermined voltage value, and sends that out to a 555 timer the IC then to a speaker. I can't seem to figure this out. If someone could just point me in the right direction? I don't want to connect a 5 Pin Din connection. I strictly want to use USB. Thanks!!
The BIG PROBLEM is - The Uno doesn't have an analog output (it doesn't have a DAC).
analogWrite() uses [u]PWM[/u] to "simulate" a varying DC voltage to control motor speed or the apparent brightness of an LED, etc.
Otherwise... it would be fairly straightforward to make a table or to use switch/case statements to "map" a MIDI note to a particular voltage. (Assuming you can "decode" the MIDI message.)
Why do you want the 555 in there? It would surely be easier to convert the MIDI note directly to a frequency and output it using tone(). There are loads of Arduino mini-synths doing something very similar or using much better oscillators than a 555.
But perhaps I haven't understood what you're trying to achieve.
Okay so the 555 will recive voltage to create a square wave. It’s the brain of the synth. I will attach the circuit for that. In the circuit there’s a 10k Pot that I want to replace with a voltage amount out of the Uno. So a MIDI not will trigger a voltage value -> to the 555 circuit. The voltage is the pitch.
I considered using tone, but there are ways to manipulate the 555 with components that make it a little more interesting sonically.
Sorry I’m new to all of this.
I can’t get the attachment to post…
So... Can you read the MIDI note (and print it to the serial monitor, or something)?
Have you solved the "big problem"? Can you get a varying analog DC voltage out of the Arduino?
In the circuit there's a 10k Pot that I want to replace with a voltage amount out of the Uno
I don't Think that will work but it's been several years since I've played around with a 555 so maybe it can be voltage-controlled???
However, you can replace the regular mechanical pot with a [u]digital pot.[/u]. There are (at least) 3 different ways to control a digital pot, so you can choose one that's easy for you to control with the Arduino.
Okay so the 555 will recive voltage to create a square wave...
...I considered using tone, but there are ways to manipulate the 555 with components that make it a little more interesting sonically.
The digital output (pin 3) is a pulse or rectangle wave. From what I recall, it's not "easy" to independently control the frequency and duty cycle, and it's not easy to vary the frequency while maintaining a square wave. I kinda' thought there was something tricky about getting a square wave (50% duty cycle).
The tone() function is a square wave, but there are ways to change the duty cycle so you have a LOT more control than a 555 and a LOT more precision.
You can also tap-into the capacitor voltage for an "interesting" waveform that you can't get out of the Arduino.
But, neither the Arduino or 555 give you "full-analog control" so you can't get accents/dynamics or [u]ADSR[/u] or chords, and you're stuck with some pretty boring sounds.
Interesting project. Google will find you quite a few Arduino MIDI to CV projects and there are various 555 VCO circuits so it's worth a try.
In the past I've used the ICL8038 for oscillators but I think they're obsolete now so probably not easy to find. Even better is the SSM2030 VCO but they really are like gold dust these days.
Have you seen https://playground.arduino.cc/Main/ArduinoSynth for some other possible synth ideas?