clients now fade out controls when painting is turned off
server now stores state of painting (on or off) and the client can no longer paint when painting is off
resetting state to make two canvases at once
canvas refresh now pings all clients through server and relayers canvases for each client
uses gyroscope data
Merge branch 'master' of https://github.com/kinetech/Performance into calmer

Conflicts:
	public/javascript/canvas.js
	public/javascript/client.js
Merge pull request #7 from kinetech/calmer

Adds gyroscope data but needs refinement
bugfix
Solves two phones with different centers of gravity :) :) :)
better normalizing
find something to do with brushSize
Merge pull request #8 from kinetech/turns

allows two competing phone inputs
refactor event listeners to have similar interfaces
integrates soulwire visualization and socket works with it now. gyro next.
refactor client-side code for better organization
Include basic audio environment
Merge pull request #9 from kinetech/client-refactor

refactor client-side code for better organization
Refactored to track state of multiple input types on client side
This will eventually be used to refactor the way inputs are sent to server to reduce the number of listeners
refactored to save to client state
Use pitch detection to send pitch events to server in hz.
Uses optimized method on top of WebAudio FFT analysis to get pitch
accurate to 1hz (depending on accuracy of microphone and ambient
noise. Todo: noise canceling.)
Refactor to pass audio events to destinations