2009年9月28日 星期一

User Manual & Schematics

User Manual and Schematics for my One Man Orchestra






























2009年9月25日 星期五

Notes on My Live Performance

After finishing my digital instrument, I wanted to perform a piece that would demonstrate the looping function. The limited amount of time is really the main issue of this final assignment. In order to come up with a piece in two days, means that I won’t have much time to practice. So I decided to perform the “Godfather waltz” (the main theme of the movie Godfather). The reason I chose this piece is because I had plenty of freedom to manipulate the song. Another reason is because it is a waltz, I could use the cello mode to play the rhythmic part and loop it, while I use the violin mode to play on top of it.

It took me some time to get the music score done. I listen to the original song on Youtube while trying to modify it into a version that could be easier for the instrument to play. The modified version basically consists of three parts: the first part is the beginning of the song, which is a solo played by the violin mode; the second is the rhythmic part, which is played by the cello mode right after opening and then looping it; the last part is switching back to the violin mode and play on top of the loop. And I faded out the looping as the ending. Overall, it is not a very hard song to play after I got use to the controls, and since I specially modified it for my instrument. One technical issue is that it is hard to time the looping, and which was the reason I had to redo it on the performance day.

Live Performance

This is the recording I made during the performance, I attached a recorder to my main patch. This song is the Godfather Waltz (from the movie Godfather):



And this one is the "National Anthem of Taiwan", I recorded it before I returned my gamepad:


2009年9月16日 星期三

New Features - Panning and Looping

I added the "equal_panning" object to my synthesis patch, so that I could control the proportion of the left and right audio output. Then I mapped it to the analog stick; the further the analog stick is pushed from the middle position of the y-axis, it pans more to the right output.

I also added a "looping" patch to my main patch. I used the "delwrite" and "delread" object to do create the loop. I assigned the shoulder trigger button that originally was used as killswitch to start and stop recording the loop, and the 1, 2, 3 buttons to control the play back of the loop. With the looping patch, I can record one part and dub it. Means that it is a true "one man orchestra".

2009年9月15日 星期二

The Mapping Process and Interface

I have a Logitech wireless gamepad, which has two analog sticks, four shoulder trigger buttons, a D-pad, four more buttons, and the select and start button. The two analog sticks I used for tw0-dimentional continuous controls. I divided the plane (imagine the analog stick moves in a square) into four quadrants, if I move the stick into any one of the quadrants, it will play a note. And the further the stick is pushed in the horizontal direction, the louder it gets. I also put a e
xponetial curve to the amplitude control, so it sounds and play more like the bow movement of a string insturment.

Next, I created a float counter for shifting octaves. Since I used midi-to-frequency objects to control the frequency, adding or subtrac
ting twelve is shifting up or down one octave. I assigned the shoulder buttons to do the job, so that I can play notes and change octaves at the same time without stopping. Also, I used the same method to create the "sharp" note. I used another shoulder button, if pressed while playing, the note will shift half step up. There is one shoulder button left, which I used it as a kill switch. It changes the amplitude to zero instantly after pressed; and if released, it restores the amplitude's value. I added it just for fun.

The most confusing and time-consuming part is probably making the switch for the violin/cello mode. I used a bunch of spigot objects and toggles/bangs. In order to let one kind of sound go through the gate (spigot) at a time, I used the reverse object to close the other spigot gate. And it works fine. Too bad the windows version
doesn't have the "spigot~" (spigot for audio) object, which is really painful that I have to switch modes manually. Anyways, I found out the "reverse" and "spigot" object very useful when making switches.









Above: "Imagine the analog stick moves within a plane", I input the values of the x and y-axis into the grid for visualization

Below: My sound synthesis patch: the blue box is my amplitude controllers





2009年9月13日 星期日

The Sound Synthesis

I started out recording my violin's sound by using an acoustic guitar pick-up. I clipped it to the bridge of my violin, plugged the jack into my computer and recorded it with audacity. Through the guitar pick-up, I only pick up the vibration of the strings (means with less resonance and less background noise). After some observation, I figured out one period of the sound wave and drew it to a wave table. I did it four times for each string, so I have four wave oscillators for my sound synthesis.

Having "one period of the sound wave" means that if I time it with the freqency, I will get a similar sound to a violin. For instance, if I time 440 to the oscillator than I get an A note. However, that is the theory; since I recorded it with the pick up, I only got the vibrations of the strings, and the sound I produced through the wave oscillators lacks the property of a woodbox's resonance. So I added a "freeverb" object (reverberation) hoping to create the resonance. And it sounded fine. Later, I recorded my brother's cello with the same process. So now, I have the sound of violin or cello in a flick of a swtich.














Above: The highlighted part is one period vibration of the e string of violin.

Below: One period of the soundwave of a cello's c string







2009年9月7日 星期一

Playing the Violin Without a Violin - Violin Synthesis

The main focus of this project is not to duplicate the sound of a violin. But trying to get the sound is a good start. Dr. Matthias Demoucron from the ICRAM lab in Paris, France, had successfully created a virtual violin through “real-time synthesis”, which can be played by a violin bow (only the bow) or a graphic tablet. Dr. Demourcron modeled his virtual violin after observing the “physical qualities” of a real violin. The “physical qualities” mainly refer to the contact of the bow and the strings because the bow is the exciter of the violin. He investigated the violin’s bow and focus on three of the qualities, which are: the distance of the bow from the bridge, the velocity of the bow, the force of the bow.

Dr. Demourcron developed “bow force sensors” to detect the pressure, velocity, and acceleration of the bow. He also used motion capture to measure different positions of the bow relative to the violin. Based on the data, he created different gestures controls, such as sautille (bow bouncing on strings), staccato (accent bow strokes), and tremolo, to providing more realistic controls. Last, he used the violin’s bow as the controller to play the virtual violin (he preformed Gigue from the Partita 3 for violin solo by Bach).

However, my instrument will not be focusing on imitating the controls of the violin/cello, rather than the sound synthesis. Dr. Demourcron had already successfully modeled the sound of a violin, thus, his method would be an efficient way of investigating the sound wave of a violin/cello.

References
Dr. Matthias Demoucron's website about his project:
http://recherche.ircam.fr/equipes/instruments/demoucron/wrap.php?file=garde
See it in action on youtube:
http://www.youtube.com/watch?v=vIlqUm7sJwI