kevincennis / mix.js Goto Github PK
View Code? Open in Web Editor NEWMutitrack mixing in JavaScript with the Web Audio API
Home Page: http://kevvv.in/mix/
License: MIT License
Mutitrack mixing in JavaScript with the Web Audio API
Home Page: http://kevvv.in/mix/
License: MIT License
Am i correct that this library does not support touch events for use on mobile devices?
This is an AMAZING mixer. The best one I've seen in Javascript.
I have a couple questions though...
Would it be possible to create a download button that can download the current mix as is?
Also, would it be possible to create a "save" button that updates the current Mix.JSON file with the new parameters?
How do I get the player started paused?
Came across the SlimerJS feature set this morning: http://www.slimerjs.org/features.html
Supports all the HTML5 standards recently implemented in Firefox, including things that are not available in PhantomJS: Audio, Video, WebGL etc.
Is it worth exploring methods of testing the Web Audio stuff using Slimer instead of Phantom?
It would be great if one could display above the fader bank a live visualization of the 3D sonogram, ala http://chromium.googlecode.com/svn/trunk/samples/audio/visualizer-gl.html.
I have tried below devices. But this sliders not working in touch screen devices.
Mobile, tablet & all other touch based devices.
Styles were done in a rush, and they're pretty sloppy.
They need some love from someone who cares about writing good, clean CSS.
I already tested in other browsers, but only in google chorme play does not play the music, could you tell where the error is?
Hi, just love your mix app, looks gorgeous !
I would like to be able to control the track's fader via javascript, something like : fade(track1,10);
Is it already implemented ?
Would like to use it in a Studio virtual Tour : https://www.360images.fr/360/blackbox
Many thanx !
From @ruthmann:
The load of the files breaks if you have a track soloed in the hash.
See: http://kevvv.in/mix/#{"name":"1901","gain":1,"minTime":3,"maxTime":192,"tracks":[{"name":"Kit L","path":"sounds/1901_drumsleft.mp3","gain":0.5175,"pan":-1,"muted":false,"muted":false,"soloed":true,"afl":true,"duration":211.62612915039062},{"name":"Kit R","path":"sounds/1901drumsright.mp3","gain":0.5175,"pan":1,"muted":false,"muted":false,"soloed":true,"afl":true,"duration":211.62612915039062},{"name":"Triggers","path":"sounds/1901triggers.mp3","gain":0.57045454545455,"pan":0,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.0693817138672},{"name":"Bass","path":"sounds/1901bass.mp3","gain":0.38159090909091,"pan":0,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.0693817138672},{"name":"Keys","path":"sounds/1901keys.mp3","gain":0.76318181818182,"pan":-0.31817540662604,"muted":false,"muted":false,"soloed":true,"afl":true,"duration":211.0693817138672},{"name":"Gtr 1","path":"sounds/1901gtr1.mp3","gain":1.0604318698347108,"pan":-0.16763424252422,"muted":false,"muted":false,"soloed":true,"afl":true,"duration":211.0693817138672},{"name":"Gtr 2","path":"sounds/1901gtr2.mp3","gain":0.805,"pan":0.44667745226923,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.0693817138672},{"name":"Synth 1","path":"sounds/1901synth1.mp3","gain":0.41295454545455,"pan":-0.020272528811521,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.0693817138672},{"name":"Synth 2","path":"sounds/1901synth2.mp3","gain":0.61159090909091,"pan":0.30769297080169,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.0693817138672},{"name":"Siren","path":"sounds/1901siren.mp3","gain":0.54886363636364,"pan":0.086623719781989,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.0693817138672},{"name":"Vox FX","path":"sounds/1901voxfx.mp3","gain":0.87295454545455,"pan":0,"muted":false,"muted":true,"soloed":false,"afl":true,"duration":211.62612915039062},{"name":"Ld Vox","path":"sounds/1901leadvox.mp3","gain":1.0088636363636,"pan":0,"muted":false,"_muted":true,"soloed":false,"afl":true,"duration":211.62612915039062}]}
If you set all "soloed" fields to false, all works fine.
This is a Marvellous music mixer!
I have a some questions as the following:
1)May I create a button to change the song path of track[0] (in mix.json), then will not stop the other playing song tracks?
2)And also play with the new song of track[0]?
Keyboard shortcuts were a temporary hack.
Gotta add buttons for play/pause/rewind, as well as a transport clock and maybe a scrubber.
would it be possible ?
thanks in advance
The previous iteration used an exceedingly verbose query string to accomplish this, but if we have a backend setup, I imagine it could use a short hash as a mix identifier.
HI There !
This is a great mixer ! Love it :)
Is there anyway to actually download a wav of the mix ?
Thanks
D
Hi Kevin, congratulations! great job!
I have a question, you can set the track to repeat on a loop.
Thank you!
I'm trying to implement a Master Fader that would control the overall volume of the mix. I noticed there is a setGain method on App.mix that seems to control overall volume, but am unsure how to tap into the "change:gain" event. I'm able to get an empty fader into the mix. Is there an easy way to attach a fader to that "change" event?
EDIT:
I'm trying to create a "View" for the Mix that uses a separate template. Still working on it. I'll let you know how it goes.
An easier way to start a mix with new audio sources seems like a good idea. I like the idea of using drag/drop file uploads to accomplish this, but will require a backend.
Hello! So I'm currently working on a project that needed the tracks to go left <--> right instead of up and down. I achieved this layout change already and got the dragger to move left to right, controlling the volume. The problem now is that the max volume is on the left and as you drag right, the volume goes down. Having a hard time finding where this is set to flip those values. Any help would be greatly appreciated.
Thanks in advance!
Hey Kevin
your mix app is super cool!!! Thanks for that one !
I don't know if it is the right place to ask a question like this, but what is the code to record the mix you've done to an audio file, that can be shared ?
Thanks a lot !
When running bower install, I get this error:
bower mustache#~0.7.2 error Arguments to path.join must be strings
Stack trace:
TypeError: Arguments to path.join must be strings
at f (path.js:204:15)
at Object.filter (native)
at Object.exports.join (path.js:209:40)
at GitHubResolver._checkout (C:\dev\Mix.js\node_modules\bower\lib\core\resolvers\GitHubResolver.js:54:21)
at C:\dev\Mix.js\node_modules\bower\lib\core\resolvers\GitResolver.js:69:21
at _fulfilled (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:798:54)
at self.promiseDispatch.done (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:827:30)
at Promise.promise.promiseDispatch (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:760:13)
at C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:574:44
at flush (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:108:17)
Console trace:
Trace
at StandardRenderer.error (C:\dev\Mix.js\node_modules\bower\lib\renderers\StandardRenderer.js:74:17)
at Logger.updateNotifier.packageName (C:\dev\Mix.js\node_modules\bower\bin\bower:109:18)
at Logger.emit (events.js:95:17)
at Logger.emit (C:\dev\Mix.js\node_modules\bower\node_modules\bower-logger\lib\Logger.js:29:39)
at C:\dev\Mix.js\node_modules\bower\lib\commands\install.js:27:16
at _rejected (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:808:24)
at C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:834:30
at Promise.when (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:1079:31)
at Promise.promise.promiseDispatch (C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:752:41)
at C:\dev\Mix.js\node_modules\bower\node_modules\q\q.js:574:44
System info:
Bower version: 1.2.8
Node version: 0.10.29
OS: Windows_NT 6.2.9200 x64
/
npm ERR! [email protected] install: bower install
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the Mix.js package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! bower install
npm ERR! You can get their info via:
npm ERR! npm owner ls Mix.js
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js"
"install"
npm ERR! cwd C:\dev\Mix.js
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.14
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! C:\dev\Mix.js\npm-debug.log
npm ERR! not ok code 0
Two questions for you.
On a side note: This is one really cool mixer. Well done.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.