Monday, April 14, 2008

307 Final Project:

Fascination II--------------------------------------------------------------
The basis of the project comes from the realization of Raymond Scott's Fascination Machines. These were a series of self generating, never repeating but ever changing machines that were meant to stand along the radio or tv in your room and provide ambient soundscapes. Mathew Waddell and myself built a box that combined the 5 modules described in his notes; melody notes, chords, nature sounds, space sounds, and bongos. For this project I focused on improving the synthesis techniques for the nature and bongo modules using Max/MSP


NATURE-----------------------------------------------------------------------------
The nature module is comprised of four instruments; waves, wind, crickets and birds. All the instruments are synchronized to one clock to keep track of night and day, which can be sped up or slowed down to real time.

--WAVES are made from two reson~ objects with noise as source signal. The first is used as the main sound for the wave. A metro with a scaled time input according to the time of day triggers each wave via a curve~ object. The duration of each wave is set to be 20% of the time between waves, the center frquency of the reson object is fixed and the Q is modulated with a very slow cycle so that there is still 'movement' in the 'water' between waves. The second reson~ is set to a higher center frequency whose envelope lasts a little longer than the first to simulate the foaming of the water splash.

--WIND also uses two filtered noise generators. The first is filtered with a lower peak range. The gain is changed within a drunk object. If the gain is from .7 to 1 it is considered a high wind, in which case the center frequency rises to 1000 with a time ramp of 3 seconds as well as the Q which lowers to 0.6. Below 70 it is considered low so the center frequency lowers to 500 in 1 second and the Q rises to 3. The second noise generator has a steady high Q, and the same gain which is scaled to provide a higher frequency as the gain goes up, between 650 and 940. The higher Q makes for a clearer perception of tone and therefore resembles the whistle of wind.

--CRICKETS were made from a sawtooth wave generator with a randomized envelope. This generator is inside a poly~ object to allow several instances to happen at the same time. Each time an instance is banged it triggers a random number for the saw frequency, the max amplitude of envelope, the duration and the amount of loops, all within a set range. Even number poly instances are emitted through the left speaker with a quieter delay on the right, and the odd number polys are the other way around. This, and the change of amplitude, spread the crickets around in space, and the randomness provides for different sounds to imply many crickets. The clock also reigns the crickets by banging the poly object less frequently (min 10 secs) at 18h, and incresing the metro that bangs the poly (to a max of 900 ms) in a ramp of 5 hours. Then at 1hr, turns it the other way around. The volume is adjusted tu turn up at 18h during a ramp of 1 hour, and back down again at 5h when they are less frequent.

--BIRDS were kept as synthesized for the original Fascination Machines. There are four possible bird calls wich have a set function for frequency and for amplitude. When banged, a random frequency is generated in a set range and triggers the envelope. Three of the birds use a sine generator and one uses a triangle wave. The outputs of the birds are sent to a 2x4 matrix to allow stereo placement of each. A trigger patch generates random column and row number to trigger that bird in that speaker in the matrix and then sets a delayed message with the same numbers to turn it off. Like the crickets, the birds are subject to the time, however to make things easier I applied and invert volume scheme so that when the cricket volume goes down the bird volume goes up, and when the cricket volume goes up, the bird's goes down.


PERCUSSION--------------------------------------------------------------------------
The percussion module was, in the Raymond Scott machine, only for bongos. I have expanded this section to have different sized drums and 'claves' or wood sticks. All instruments in this section come from the same FM patch, based on Chowning's design for drum sounds explained in our class text book. Each instrument is triggered by their own sequencer for which Matt Waddell is to have most credit.

--SEQUENCER, a 32 step table with range of 2. Visually, there were 32 toggle boxes aligned horizontally representing 32 beats. Whenever one would be turned on, or off, it would send the number of its state packed with the number of step it is located in to a table. One counter to which all percusison instruments are synchronized to would step through the 32 beats of the table and if the vale of the table was at 1, it would band the FM patch and trigger the sound. The triggers where turned on in a 'possible rhythm'. That is, if a random number generated between 1 and 100 was below the threshold of possibility (ex. 70) then that beat had a 70% chance of producing sound. The random possibilities were connected to beats that were appropriate for the type of instruments, and new random numbers would be generated every 4 runs of the sequencer. This gave the percussion a general rhythm so it would sound pleasing, but the rhythm was never exactly the same so it was not monotonous.

--FM, the FM used for the drums was a simple one carrier, one modulator patch. Different presets were set after various experimentations which provided the patch with the carrier frequency, the Modulation Index function, the Harmonicity Ratio and the final Envelope and total Duration. A cycle~ object with frequency (Carrier frequency * Harmonicity Ratio) was used as the modulator and its signal was multiplied by the modulation function, and then added to the original Carrier frequency to be the input of another cycle~ object which was the carrier.
-Bass:
-Duration: 200
-I Max: 35
-Fc: 156
-H: 0.04

-Conga1:
-Duration: 200
-I Max: 93
-Fc: 190
-H: 2

-Conga2:
-Duration: 200
-I Max: 104
-Fc: 239
-H: 0.24

-Clave:
-Duration: 76
-I Max: 149
-Fc: 886
-H: 1.94


PROBLEMS & ISSUES -----------------------------------------------------------------
In general I found that because I was extending my work already done for Raymond Scott's machines, it has difficult to bring in new approaches. For that project we were limited to using simple oscillators and additive synthesis alone. The machine also had 5 modules and although I picked only two modules to explore further, it was still a lot of instruments to design and randomize and it would have been more beneficial to focus on one.

-CRICKETS; I was never fully satisfied with the sounds for the crickets, because they sound too digital. I was hard to decide whether to make a wall of indistinguishable chirps or to keep the more distinctive amplitude envelope with a few crickets at a time.
-MARACAS; as part of the percussion module I intended to add a maraca instrument which implemented a PhISEM synthesis described in the later classes. I had a metro triggering short bursts of sounds as long as the larger system energy envelope was above zero. Unfortunately it ended up sounding more like a party noise-maker with distinct clicks or bursts. Perhaps this is simply solved by increasing the speed of the metro but there wasn't enough time to finish this patch.

PATCHES-----------------------------------------------------------------------------
To get all the patches necessary, please download the final 307 archive and open the main patch called 'final master'.

http://www.megaupload.com/?d=10ZRLEE2

Sunday, November 18, 2007

306 Final Project:

Blender Sequencer

For this project, I will adapt an already broken blender into a sort of sequencer. The blender will act as a MIDI controller through various MAX patches. The controllers will be the 6 buttons on the blender and an accelerometer with X and Y axis. To maximize functionality I have designated the first grey button as a 'mode' button which changes the effect that each of the other buttons have as well as that of the accelerometer


Functions:
MACRO/ POWER MODE
This is the default mode; the 5 buttons will be connected to a breadboard and trigger different elements/instrument machines to switch on or off via serial object in Max. These elements so far will be a piano melody, a bass counterpart, a drum beat, an echo machine for the drums, and a piano arpeggiator. Each of these elements are connected to the same counter which will ensure synchronization. From this counter the first three instruments use the select object to trigger different notes at different beat numbers. These all go to their own makenote object. The arpeggiator patch was based on a previous homework for this class using mainly pipe objects to delay the note numbers from the piano into the corresponding additions to create a chord. The echo element uses the same sort of delay system with only one note number, for the snare.
The accelerator in this mode will affect the speed of the general counter, so that the overall tempo can be increased or decreased via tilting on the X axis. Patches available upon request, download links comming soon.

MICRO/ ATTENUATION MODE
By pushing the first grey button a gate switched the functionality of each of the other buttons. In this mode, each button selects where the X-Y axis information is sent. For example, when the piano button is pressed, the X-Y information attenuates the specific characteristics of the piano melody. As soon as the next button is pressed, the attenuation for piano is kept and now the X-Y attenuate the next element/instrument. Following is a list of characteristics within each element/ instrument:

Button 1: Piano melody
X: octave ( 3 octaves above or 3 octaves below)
Y: channel number (1-7)

Button 2: Bass line
X: volume of 'fuzz' (from a noise patch triggered by each note)

Button 3: Drum beat
X: volume of cowbell (default 0 volume when axis are centered)
Y: volume of crash cymbal (default 0 volume when axis are centered)

Button 4: Echo (for snare only)
X: speed between repetitions
Y: volume decrease between repetitions

Button 5: 3 note Arpeggiator (for piano notes only)
X: speed between notes
Y: type of chord (diminished is default, minor or major available)

DOWNLOADS (using MegaUploader, you will have to download through their site):
-For the complete project Max Patch; " http://www.megaupload.com/?d=III8M8NH "

-For a quick video demonstration IN SPANISH;" http://www.megaupload.com/?d=UV4JL2PQ "


Materials Needed:
-Arduino and bread board
-6 buttons placed inside a plastic base of a blender
-accelerometer sensor
-10k resistors for accelerometer and each button
-Wiring


Future Modifications:
Since there are different modes in this controller, keeping track of what you are modifying is a difficult task for a new user. Once I find an adequate tool to drill holes in plastic, I would like to insert LED's to show which instruments are on or off, and which instrument you are attenuating.
Even though I use a blender for this controller, the idea of circular motion, or any motion at all, is absent. I would like to incorporate the jar of the blender in somehow. Inspired by a photo/LED exhibit in the Museum of Fine Arts, I thought I could use jitter video analysis to recreate certain movements through LED's. These could be behind a screen on the inside walls of the jar to serve as projection.

This project has shown me the tip of the iceberg in terms of what can be done with Max. I would like to work on this further even outside of class. Any ideas, suggestions and/or constructive criticisms are welcome!