So I haven't posted here in a while, mostly because I haven't done all that much new with the arduino recently. I've been doing lots of other stuff, like making electronic music. Just to somehow connect this to arduino, one device in my completely hardware-based setup (no DAWs!) is an arduino-based wavetable synthesizer that has been an ongoing project for me. The arduino, run thru effects in some places, did quite a few of the synth sounds in the song. (not the bass, though, that's my analog minibrute synth)
Half-purchase, half-gift, an Arturia minibrute analog synth.
I love it.
I've already posted 4 demos of it to soundcloud. And I haven't even tried hooking it up to my other gear yet, I've only so far messed around with its internal features and simple multitrack recordings in Garageband.
here's a partial cover I did of a song I like, all sounds including drums synthesized by the minibrute:
Alright, this has been a very long-term project. This is the third hardware design I've gone through in a few years, and one that I'm really happy with. I think this may well be one of the most advanced synths ever made with arduino.
I'll post more specific info later, but for now here's a video and a few pictures:
Every sound in that video was made real-time in one take simultaneously by a single arduino, sequenced via MIDI by my mpc. The only external effects I used were a little bit of EQ, and some sidechain compression, with the noise channel on the synth routed from the second DAC output to the sidechain of the compressor.
So I'm making a new LED matrix board for the newest version of a synth/sequencer I've been working on for a while.
I designed one a couple years ago in Eagle that I got fabbed by batchPCB. It was okay, there were some silly design errors and general newbie layout and design (all auto-routed).
I re-made the schematic, making sure there were no errors, and making some little improvements here and there, and just for the heck of it, I decided I'll hand-wire it this time...
Here's the schematic. The 5 shift registers that control the display are all daisy-chained, so only 3 wires (data, clock, latch) are needed to control the entire display. a schematic by beefinator, on Flickr
And here's the board I designed. Yes, I used Eagle again, but this time it was all manually laid out and routed. I designed it so that I could wire up everything on the back of the board with uninsulated solid wire; the red traces in the design would be higher above the board than the blue traces, or vice versa. circuit layout by beefinator, on Flickr
The 6-pin header (ICSP pinout, just an arbitrary choice to have a uniform system to connect the individual boards within the synth's enclosure) and the caps are not laid out and connected yet, but that's trivial. E.g. the 0.1uf caps cam probably just be soldered wherever they fit on the back of the board across the Vcc and Gnd pins of the 595's.
I imagine this board will look pretty cool when it's done...
[sarcasm]But this is certainly going to be fun wiring it all up...[/sarcasm]
Turns out (and it makes sense) that you need a very low lowpass filter inputting the Vref pins on the DAC. I had it originally connected directly to 5v, which was a very noisy power line. E.g. the optoisolator was drawing current when MIDI messages were received, so the voltage fluctuated. The waveshield uses a 15Hz cutoff filter; I got much better results with a 0.033Hz filter. It might take a second or two to ramp up to full voltage on startup of the synth, but I don't care, I have a little splash-screen anyway that appears.
There's an SPI interface on it, so super easy to interface. 12bit audio on each channel, 2 channels if you get the 4922 chip.
And they're extremely low noise. You just have to (as I just found out) put a very low lowpass filter on the Vref pins, not directly connect them to 5v. I mean really low; I'm using one with a cutoff of around 0.03Hz.
A simple board for use with typical LCD displays (like the 1602 standard, etc) that convert them to either SPI or UART so they don't take so darn many pins. I want something I can slap between Arduino and those LCD's and just make it simpler. I think we all would like one of these from time to time...probably going to require a few library changes or making a fresh one from scratch..
So the noise has nothing to do with the DAC chip. I put 2 10k resistors in a divider arrangement, giving 2.5v, the same as the output of the DAC when no notes are playing. Then connected the output jack to the divider, bypassing the DAC, and I still get the noise with MIDI message reception.
Tomorrow I'll try making my own MIDI input circuit on a breadboard, to see if the sparkfun board's an issue.
Seems ridiculous to compare this to the 328-based arduino. It's only ~$5 cheaper than the 2560-based ones, or the Ethernet one. And the specs don't seem stacked up like they advertise when compared to the Mega.
Arduino's also got the community that goes with it, and at least from the glances I took at the simplecortex, more documentation.
That value seems to be the correct value according to the optoisolator datasheet, not the MIDI hardware spec. The noise is quieter with the larger resistor, but still audible. I also tried a 10K, but not much of a noticeable difference from the 1K.
GRRRR... I can unplug the arduino entirely except for the MIDI cable and the audio output cable. And I still get the noise, but quieter. Something must be wrong with the breakout?
With the MIDI cable disconnected is there any noise?
If it is connected but you don't connect the wire to the Rx pin of the board is there noise?
If you remove the serial reading (and the begin call) of the sketch is there noise?
If the MIDI device is powered down is there noise?
The noise is lots of short clicks, like in the screenshot of the waveform, one click I would assume for each MIDI message sent. Turning the mod or pitchbend wheels sends a ton of messages, so the clicks turn into a buzz. But there are also clicks at note on's and note off's. So yes, no noise without a MIDI cable connected, but that's irrelevant, since the noise only happens when a MIDI message is sent.
I have the breakout board mounted as a shield, so I can't physically disconnect a wire. But there is a switch that disconnects Rx, so the MIDI circuit doesn't interfere with programming the board. And yes, the clicking/buzzing still happens with that switch disconnecting Rx.
Yep. Assuming the DAC is already in active mode, i.e. not floating, I can upload the bare bones sketch with the empty setup and loop, and I still get the clicking/buzzing noise. So absolutely an electrical issue.
Again, no, but not relevant, since the clicking only occurs when a message is sent.
I'm still puzzled... I tried measuring the resistance between the MIDI connector pins and various points on the board, but nothing unusual. It seems to be isolated.