User:David.humphrey/DemoIdeas

From MozillaWiki
Jump to: navigation, search

This is a brainstorming page for audio data demos.

Existing Demos

Ideas

  • port jsnes ( http://benfirshman.com/projects/jsnes/ ) to the new sound API. It already outputs sound by writing it to a flash music player with some funny hack.
  • Sound effects for Corban's Choplifter Processing.js game
  • Text to speech
  • Altering live music, maybe implementing filters or something, providing controls in the page
  • Mixing live audio together (audiowritten + mozAudioWrite), maybe two songs?
  • Visualizing sound for the deaf
  • Broadcasting sound into a 3D WebGL scene, listening to echos and the changes to the sound ("seeing with sound")
  • Visual sound game, where user interacts with objects in order to produce custom sound/music
  • Piano or synthesizer
  • Identifying simple sounds? Analyzing speech is probably too big a job, but what about bird songs or something smaller?
  • Drum machine
  • Create a demo that can read music notation and play it
  • Embed data in sound data and do something with it on playback
  • Music video that uses the whole page (e.g., not just a video element) to respond to music
  • Do an enhanced version of http://www.thesixtyone.com/ which incorporates data visualization
  • Update http://9elements.com/io/projects/html5/canvas/ to use audio data for timing vs. static events
  • VJ session?
  • Any audio code we can port to JS?
  • Page with audio that has heavy base. Have the dom elements shake as though you are in a car with stuff on the dash moving due to vibration.
  • Make an audio landscape that sounds like birdsong, by using information in twitter updates on a given hashtag
  • Create an application wherein by clicking, objects of varying sizes are added to a physics simulation. When those objects bounce off of certain levels or each other different notes are played back for different durations
  • A tank full of water made from opaque white plastic on 4 side, and clear Plexi-glass on the front :: the tank contains compartments containing black floating balls and a square block at one end. When the block at the end is pushed, waves are generated that move the black balls. The black balls are captured by a web-cam using the device tag, the device data renders to a canvas and motion-tracks the black ball points over the white background. The positions of these points bobbing on the waves are translated into a Bezier curve used to generate a waveform signature played out over the speaker. One lucky audience member is selected at random to push and pull the block to create sound.

TODO

  • Find some more audio/html5 hackers to help us build this stuff
  • Find some uber-cool music/sounds for our demos

Corban's TODO

Below is an outline of the various things I plan on accomplishing for the WWW2010 conference presentation.

Choplifter

I am currently working on getting choplifter.pjs game logic finished. Chopper, Projectile, Particle, Missile physics, and camera scrolling are working well. I still need to implement the following:

  • Parallax backgrounds (almost finished)
  • Implement enemy Tanks
  • Implement People to rescue
  • Audio/Sound FX

Game sound fx and audio will be implemented with our Audio API and PJSAudio using simple square wave generation and modulation.

Lastly fine tune and polish the graphics.

Synthesizer

I feel that the synthesizer would demo quite well. It shows off the Audio Writer API as well as Javascripts potential to generate an audio signal and apply effects like envelopes, filters and modulation.

The current demo still has a lot of bugs, performance issues to work out which I plan on fixing as well as implement the following new features:

  • Band Pass, High Pass IIR Filters (currently only has Low Pass)
  • Filter Envelope (currently only has Amplitude Envelope)
  • Low Frequency Oscillators (LFO) for pitch, amp, and frequency modulation.

Lastly I plan on creating better graphics so it looks more like a synth and sequencer you would see in Propellerheads Reason.

Audio FFT and Beat Detektor

There will be a lot of opportunity for others to show off more complex FFT visualizations so I think I will focus on getting a simple demo which shows off Beat Detektor accuracy.

Charles J Cliffe has done a lot of work to improve the accuracy and performance of the algorithm, I might ask him to try his hand at processing-js and whip up a fun demo.