Our class had many wonderful performances today! I feel so inspired by many of my classmates. But first, let me talk about my own project.
The initial idea was to use the keyboard to play different notes of music. Later, I realized that it is very much similar to a virtual keyboard piano. Surprisingly there is a guy in the class who really did that virtual keyboard piano! The class seemed to like the idea. May be I should search more in the tutorials because I remember seeing a piano symbol in one of the tutorials before.
I think that there are so much things that could be simplified (and I overthought them). Perhaps there are already piano notes in MAX but I still downloaded each of the piano notes from outer source. Due to the file size and loading issue in MAX, I could only afford to load 9 musical notes correspond to the numerical 1 to 9 on the keyboard. And the fact that I thought people would find a virtual keyboard piano boring (but it doesn’t seem to be the case just now), led me to think of make it more quirky. But given the time and limited prior-knowledge to try something quirky may not always work out.
So the quirky idea is to detect colour of the shirt of the user interacting with the program. I used the color look up table and jit.findbound. I couldn’t make it work on the first try, second try, and third try. Considering the time constraint, I gave up. Apparently, many of my classmates could use that function well. =/
So instead of using the live webcam, I used the recorder to detect the surrounding sound (e.g, clapping) . When the sound level exceeds -20dB, the counter will be increased by 1 and the output counter number is fed to the “cue” which will play the preloaded music note with “sfplay”. The patch file is shown in the image below:
Cue Number from Counter
But it would be very boring if it keeps playing the same old music cuing from 1 to 9 every time. So I added a “random” number generator (with a metro to send the bang to it)to get random cue number. With this, the music generated will be more unique. The patch file is shown in the image below:
Random Cue Number
Before the performance time, I wanted to try something different by using “select” which I suppose can open 1 file at a time according to the number generated. In this case, I can standby many single music files (which will be opened singly instead of preloading all of them at one time) and not worrying for MAX to hang again. But I wasn’t able to make it work within the time constraint.
Another attempt
A summary of this project
Title:
Features and Operation:
User can play music files with keyboard (1-9)
User can make noise (clapping or talking or hitting something which is attached to the contact mic). The noise will be picked up by the mic which channels it to the levelmeter. The levelmeter will in turn quantize the signal and the signal is compared to a preset value (e.g >-20). If the result is True,
Application:
Generate music from the noise. Suppose the recorder is placed in a highly noisy place (street, construction site, etc) and the music player is placed at somewhere else. The noise generated will be converted into a nice melody.
In a confined space,
Further Improvements:
- learning
i think it is important to understand how the system works than to just make it works.
contact mic
- interesting performance