ntroduction
The purpose of this project is to create musical blocks that output music without requiring some sort of musical talent.
Musical Blocks tracks the position of the blocks on a flat surface in a range seen by the Wiimote. The path of the blocks is then converted into a sequence of notes which is output. One can create an interactive system by having many blocks which can be used by many people simultaneously. Unlike traditional computer interfaces used to create electronic music, the musical block is a more expressive and physical/hands-on tools for creating music. In our design, the user can move blocks on any 2-D surface in a specified range and modify the musical rhythm in real time by changing the path of the block. Each block has its own unique sound associated with it and the musical rhythm would continuously play unless the block is stationary. One block is allocated to change the volume of the music played by the other blocks.
High Level Design
Project Inspiration
This project is inspired by the idea from the project called Siftables from MIT media lab. Siftables came from the idea of modifying the way we interact with computer in terms of pictures, music, or any sort of digital information. According to one of Siftables creator David Merrill, when we were children, reaching out and moving blocks, we are actually learning to think and solve problems by understanding and manipulating spatial relationship. Spatial reasoning is deeply connected to how we understand the world around us. We were inspired by the concept of Siftables and decided to create a musical block system specifically targeting young children. Without being a child musical protege, children can try to create a world of spatial interaction by manipulating and creating music. This can also serve to cultivate creativity and curiosity in children. Our decision to create a sound based on path is inspired from the collection of games called electroplankton (with a specific game interface called Tracy) on the Nintendo DS. Tracy allows the user to draw a line on the touch screen and create the sound based on the line drawn. We were fascinated by these two concepts and decided to create musical blocks. In our design we used three blocks, one to represent a plucked string sound, one to represent a violin sound, and one to control the volume.
Background Math
We used the Karplus-Strong Algorithm to compute the sound to output. The Karplus-Strong Algorithm uses physical modeling synthesis to generate a sound. A mathematical model of this algorithm is
Violin
A physical model for the bow-String such as a violin is very complicated in terms of keeping track of bow pressure, bow velocity, bow width and bridge distance. A basic model of bow-string interaction model consist of two traveling waves represented by velocity v at the contact point coming from vin from nut and vib from the bridge and outputting two travelling waves of von and vob. Bow String interaction is represented by
As mentioned previously, due to some of the similarities between the physical model of the plucked-string and bowed-string, we decided to apply the Violin ADSR Profile onto the plucked-string output from the Karplus-Strong Algorithm.
Parts List:
Budget and Parts List | Quantity | Amount | Source |
Infrared LED Vishay/Semiconductors TSAL6400 | 12 | $5.34 | Digikey |
Resistor Pack 1K | 1 | 476 Lab Stock | |
Resistor Pack 2K | 2 | 476 Lab Stock | |
Resistor (Low-pass filter and LED board) | 5 | 476 Lab Stock | |
Atmel ATmega 644 | 1 | $8 | |
ECE 476 Custom PCB | 1 | $4 | |
MAX232 | 1 | Sampled | Maxim-IC |
Perf Board | 3 | $3 | 476 Lab Stock |
9V batteries | 3 | $3.75 | Battery Warehouse |
DIP Socket | 2 | $1 | 476 Lab Stock |
Header socket/plug | 2 | $1 | 476 Lab Stock |
Wiimote | 1 | previously owned | |
STK500 | 1 | $15 | 476 Lab Stock |
40 pin socket | 1 | $.50 | 476 Lab Stock |
20 pin socket | 1 | $.50 | 476 Lab Stock |
Serial Connector | 1 | $1.65 | 476 Lab Stock |
jumpers | 3 | $1.50 | 476 Lab Stock |
White Board | 1 | $6 | 476 Lab Stock |
Total: $51.24 |
For more detail: Musical Blocks Using Atmel ATmega 644