AVB1 / AV-B1
AV Brain :: Prototype gallery
For a second stage of AV-Brain build see AV-B2
This gallery documents the process of creating a prototype the very first AV-BRAIN (shown above). It was created to expand capabilities of my first live AV setup not including a computer(click here)
Desired feature list included:
- Following MIDI clock
- Recording and playback of 40 note long MIDI sequence
- Sending custom strings of MIDI messages in sync with MIDI clock including:
- CC information to fade video on Edirol V4 (synced to PAL)
- CC information to fade output on Edirol V4 (synced to PAL)
- CC information to fade video layers on Korg Kaptivator (synced to PAL)
- NoteOn data to trigger light flashes via MIDI-DMX converter
- Triggering audio loops on Korg ESX1 so they could be longer than the pattern played on ESX
- Triggering AR and Filter envelopes on Sherman Filterbank
- OneKnob functionality extending Korg ESX1's ability to only control one part at time. With AV-Brain you could learn a NRPN message, assign it to a knob and use independently of device's state.
- Fade up or down relative volume of all the channels on ESX1
- Filtering MIDI messages
- All sequencer tracks can be synced to 1/16, 1/8, 1/4, 1/2, 1, 2, 4, 8, 16 or 32 beats
- All sequencer tracks can be re-synced manually and still follow the tempo (to compensate for video delay)
All of the functionality has been present at some point, either in the prototype or in the final unit, however unfortunately only about 60% is present in the version of software available for download, some of it has fallen off during the transition from the prototype with its signifficant interface changes.
The prototype of AV-Brain was my first a bit more serious Arduino project, so a lot there was a bit of a learning curve. This documentation is published in hope to aid similar efforts undertaken by other people.
AV

I believe the first thing I did was to hook up MIDI-IN display the note number on a 10-segment LED display (using only 5 segments).
Schematics for the circuit can be found here.

Next thing was connecting it to an 16x2 LCD display. There's plenty of material on the net on how to do it, and few good libraries too.
I recommend starting by reading Lady Ada's tutorial.

Then I moved to buttons using a Parallel In Serial Out shift register. They are not difficult but my breadboard was starting to become a real mess of wires. It was time to start soldering

I've used SparkFun's Ardunio ProtoShield to create a basic MIDI shield for my Arduino. Something I knew would become useful in the future (and it did)



See MIDI IN schematics here. Note that I've put a switch that enables us to disconnect MIDI-in from SERIAL IN on arduino. This is nessesary for it to be able to recieve new programs via USB (basic Arduino only has one serial port)

I then proceeded to make an interface board for the prototyping, where common interface elements, like buttons would live. I've made it on a stripboard - you basically cut pre-made copper tracks to create the layout you want.

Each button uses one resistor so I had to put six there

... and into the parallel in - serial out shift register.

Prototype hardware is almost complete. Note how I connected six buttons using only three wires (orange, green and brown). If I added more PISO shift registers I could have as many buttons as I wanted, without using extra inputs on Arduino. You can also see an endless encoder laying loose on the desk - I haven't got a picture with it connected, but it ended up on the same board, using two remaining bits left on the shift register after having six buttons. I was able to query the encoder's state quick enough to detect stepping direction, so the interface was hugely based on screens you jump between using the encoder (click here for a picture with the encoder. You can also see there's something going on on the LCD already (you're not mistaken - that's a 16step sequencer), and MIDI IN and OUT going connected to Edirol UM1. Also note the modularity. MIDI is soldered onto a shield and is always there (I can disconnect it with a switch), interface has its own board, and the LCD still sits on a breadboard so I didn't have to solder it in.
You may also notice that something has changed on the interface board. The chip is not in a place where it used to be. That was the trickiest part I learned. I have originally used 74HC166 but it turned out that with arduino you can't use 74HC series (which is CMOS) you have to use 74HCT which is still CMOS but TTL compatible. 74HCT166 was not available in DIP enclousures so I had to get 74HCT597 which had a different PIN layout.

After that all that was left to do was writing some software. Download the code but be aware that it may not do what you want it to do.
Click here to read second part of that story - the build of a proper, self contained AV-BRAIN
You may also be interested in checking out The Harmonic Clock and its its build gallery

permalink
Click to see (0) comments
Click to ADD a comment