=== Mixtape Alpha === ==== About Mixtape Alpha ==== Mixtape Alpha is the first in a series of super-scaled-down synthesizers and sound generators. We started with a raw chunk of electronics, and removed anything that wasn't a synth. What we were left with was a microcontroller, battery, and some LEDs. Mixtape Alpha is an attempt to break down the barriers between people and electronics: To get them comfortable touching PCBs, and change expectations about how electronics should look. To this end, there are resistive touch pads, and all the trace routing took aesthetics into consideration as well. This concept was the brainchild of [[http://technolojie.com/|Jie Qi]] from the [[http://hlt.media.mit.edu/|Hi-Low Tech group]] at the MIT Media Lab. ==== Limitations of the design ==== The mixtape concept relies upon low-cost, low-power electronics. It was essential to the design that it could run off a coin cell battery. To this end, a number of tradeoffs were made, some of which led to reduced performance. Some of these can be undone by the determined hacker. * Headphone Output - The headphone output puts the left and right speakers in series, which produces a louder sound at a greatly reduced power consumption. The effect, though, is to make the left and right channels inverted from one another. So, if you plug your Mixtape Alpha into a mono system, you won't hear any sound. Also, this means the ground ring of the 1/8" jack is not actually circuit ground. To avoid any problems with this, use an 1/8" mono plug when possible. * Pattern Storage - Writing to internal FLASH or EEPROM consumes 4mA and takes forever, whereas writing to internal SRAM consumes no extra power and is very fast. Unfortunately, this means that there is much less pattern storage space. As it is currently implemented, 64 step patterns can be recorded. Longer patterns can be recorded, but these will become corrupt if the "Echo" (Effect "B") is enabled, as the pattern memory shares the same space as the echo memory. We highly reccomend writing patterns longer than 64 steps and turning on "Echo", it makes some crazy sounds. * Wavetable Length - The longer a wavetable, the more precise of a tone a fixed integer step size can give. But, this also reduces the total number of wavetables that can be stored, and the highest frequency possible. We used 2048 sample wavetables, as there is plenty of storage space, and not enough processing time for interpolation. * Processor Speed - Perhaps the biggest limitation of them all. We decided to use the internal 8MHz processor because it was cheaper than adding a crystal, and it consumed a lot less power. But, this limits the total processing time between samples, and forced a number of other decisions, like the next one on the list. * Assembly Code - Sorry about this one, but it had to be done. At 8MHz, there just isn't time to mess around with C. The code is well commented, and a lot of the interesting variables are easy to change, and clustered together (e.g. attack, decay, note tables, wave tables, effects). * Resistive Sensing - The resistive sensing works pretty well when the device is connected to headphones. But, if it gets connected to earth ground in any way, mains hum makes the touch pads flakey. At 60Hz there is about a 1s beat frequency that can be interesting, but is mostly annoying. We looked into capacitive sensing, but it required more processing time, which we don't really have. To make the resistive sensing work better: 1. Don't touch any of the exposed metal bits on the back while holding the Mixtape, and 2. Press harder if it doesn't seem to be detecting your presses. ==== Documentation ==== * [[attachment:mixtape.pd|Pure Data wavetable creator]] * [[attachment:mixtape_alpha_instructions.png|Instruction Sheet]] Files: Firmware * [[attachment:mixtape_avr.zip|V1.0 AVR Studio project]][[attachment:mixtape.hex|compiled .hex]] * [[attachment:mixtape_avr_new.zip| V2.0 AVR Studio project (use this one)]][[attachment:mixtape_avr_new.hex|compiled .hex]] Files: Version 2 (only says "openmusiclabs" on back) * [[attachment:mixtape2_brd.png|board image]] [[attachment:mixtape2.brd|board eagle file]] * [[attachment:mixtape2_sch.png|schematic image]] [[attachment:mixtape2.sch|schematic eagle file]] * [[attachment:audioint.lbr|library eagle file]] * [[attachment:mixtape2.zip|board gerber files]] * [[attachment:mixtape2_bom.ods|parts listing ODS]][[attachment:mixtape2_bom.pdf|parts listing PDF]] Files: Version 1 (Prototype - says "Media Lab" on back) * [[attachment:mixtape1_brd.png|board image]] [[attachment:mixtape1.brd|board eagle file]] * [[attachment:mixtape1_sch.png|schematic image]] [[attachment:mixtape1.sch|schematic eagle file]] * [[attachment:audioint.lbr|library eagle file]] * [[attachment:mixtape1.zip|board gerber files]] * [[attachment:mixtape1_bom.ods|parts listing ODS]][[attachment:mixtape1_bom.pdf|parts listing PDF]]