looking at tidesdk
spin off from titanium for desktop specific apps

there is also XULRunner for Mozilla

https://www.google.com/search?q=html%20canvas%20wave%20form&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&source=hp&channel=np
html canvas wave form - Google Search
http://waveformjs.org/#fly
Waveform.js
http://stackoverflow.com/questions/6170169/waveform-visualization-in-javascript-from-audio
html5 - Waveform visualization in JavaScript from audio - Stack Overflow
https://wiki.mozilla.org/Audio_Data_API
Audio Data API - MozillaWiki
http://www.html5multimedia.com/code/ch11/moz-audio-api-waveform.html
Mozilla Audio API - Audio Waveform
http://www.nihilogic.dk/labs/pocket_full_of_html5/#presets/circular.js
All this is done in HTML5 by the way.
http://www.generalfuzz.net/
general fuzz
http://www.nihilogic.dk/labs/
Nihilogic : The Labs - Experiments in JavaScript, Canvas and DHTML
https://www.google.com/search?q=html5+canvas+select&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=fflb
html5 canvas select - Google Search
http://stackoverflow.com/questions/2801416/html5-canvas-select-drag-and-drop-features-in-a-js-lib
javascript - HTML5 Canvas + select / drag-and-drop features in a JS lib? - Stack Overflow
http://raphaeljs.com/
Raphaël—JavaScript Library
http://raphaeljs.com/reference.html#Element.getSubpath
Raphaël Reference
http://raphaeljs.com/icons/
Icons
https://www.google.com/search?q=raphael+selection&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
raphael selection - Google Search
http://stackoverflow.com/questions/11785366/raphael-selection-assistance
javascript - raphael selection assistance - Stack Overflow
http://stackoverflow.com/questions/5844927/selecting-multiple-svg-elements-and-dragging-them-in-raphael-js
selection - selecting multiple svg elements and dragging them in Raphael.js - Stack Overflow

moving elements:
https://www.google.com/search?q=html5%20drag%20and%20drop&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&source=hp&channel=np#hl=en&client=firefox-a&rls=org.mozilla:en-US%3Aofficial&channel=np&sclient=psy-ab&q=html5+get+position+of+element+after+drag&oq=html5+get+position+of+element+after+drag&gs_l=serp.3...109773.117585.3.117824.34.30.0.0.0.0.1611.17490.0j2j2j2j2j9j3j3j2.25.0...0.0...1c.BjQep709IGs&psj=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=cacde5bfcc741c6a&biw=994&bih=616
https://www.google.com/search?q=html5%20drag%20and%20drop&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&source=hp&channel=np#hl=en&client=firefox-a&rls=org.mozilla:en-US%3Aofficial&channel=np&sclient=psy-ab&q=html5+get+position+of+element+after+drag&oq=html5+get+position+of+element+after+drag&gs_l=serp.3...109773.117585.3.117824.34.30.0.0.0.0.1611.17490.0j2j2j2j2j9j3j3j2.25.0...0.0...1c.BjQep709IGs&psj=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=cacde5bfcc741c6a&biw=994&bih=616
http://stackoverflow.com/questions/6230834/html5-drag-and-drop-anywhere-on-the-screen
http://stackoverflow.com/questions/6230834/html5-drag-and-drop-anywhere-on-the-screen
http://stackoverflow.com/questions/3977596/how-to-make-divs-in-html5-draggable-for-firefox
http://stackoverflow.com/questions/3977596/how-to-make-divs-in-html5-draggable-for-firefox
http://www.w3schools.com/html5/html5_draganddrop.asp
http://www.w3schools.com/html5/html5_draganddrop.asp
http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_draganddrop
http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_draganddrop
https://www.google.com/search?q=jquery+move+element&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&channel=fflb
jquery move element - Google Search
http://stackoverflow.com/questions/4998757/moving-elements-with-jquery
moving elements with jquery - Stack Overflow
http://jsfiddle.net/pHwMK/
Edit this Fiddle - jsFiddle