3 ms·
JSONloops, open-source real-time multiuser audio sequencer
- johndbritton 16y agoAlso available on Github: https://github.com/Marak/JSONloops https://github.com/Marak/JSONloops JSONLoops is a multi-user audio sequencer reminiscent of Fruityloops. Audio playback is handled by node.js servers, while multiple browsers act as control devices. Songs are stored in the JSONloop format, which are simply nested JSON arrays. Usage: git clone https://github.com/marak/jsonloops cd jsonloops node server.js The audio sequencer will now start playing on your local machine, you'll hear sounds. To access a control interface for your JSONloops server, visit http://localhost:8080/ http://localhost:8080/
- reddittor 16y agoInstallation is a little cryptic right now since this was built for Music Hack Day. If you just try to clone and start the server up, you will likely be missing the node-irrKlang library. See https://github.com/marak/JSONloops/issues#issue/4 https://github.com/marak/JSONloops/issues#issue/4 for more information on this. We'll have an easy install option ready very shortly with node-sfml bindings.
- mambodog 16y agoI've been interested in doing collaborative music production in the browser for a while, and this looks to be a solution for the server and transport role. Where I see a problem is in building the client for creating music in the browser. Currently apps like these are being built in Flash[0], as Javascript lacks a reliable method for playing audio in a strictly timed manner, in the browser. Chrome's Web Audio API[1] and Firefox's Audio Data API[2] will hopefully remedy this, but a stable, unified standard looks to be a while off. [0] Audiotool: http://audiotool.com/app http://audiotool.com/app [1] http://chromium.googlecode.com/svn/trunk/samples/audio/specification/specification.html http://chromium.googlecode.com/svn/trunk/samples/audio/speci... [2] https://wiki.mozilla.org/Audio_Data_API https://wiki.mozilla.org/Audio_Data_API
- reddittor 16y agoThe best approach I can see is using a solution like: https://github.com/scottschiller/SoundManager2 https://github.com/scottschiller/SoundManager2, which will give you the highest level audio API available in the browser environment, and gracefully degrade to a flash fallback for older environments. Also, if you are running a local instance of the loop, you can just use node.js to play audio with almost no latency.
- leviathant 16y agoYeah... I'm going public with an HTML5/Javascript Boss DR-110 drum machine emulator later today, with the main message being that multitrack audio playback sucks hard in Javascript, particularly with respect to timing.
- rorrr 16y agoLove the idea, but what a douchebaggy presentation. Take your fucking sunglasses off, you're indoors, and it's dark outside.
- catshirt 16y agoreally? too bad you weren't there to give your clutch fashion advice before hand.
- reddittor 16y agoI'm sorry, wearing something to cover my face makes me less nervous when talking in front of the camera.
- gojomo 16y agoI understand, but seeing someone's eyes is crucial for some levels of communication/trust. So while I don't think your choice is 'douchbaggy', a version without sunglasses would probably get better responses, and better communicate your passion/competence.
- nitrogen 16y agoIt reminded me of Shades from the one hit Wonders in That Thing You Do.
- xd 16y agoIt was for humour value.
- empika 16y agoInteresting project. I built something like this using Flash and Colin Moock's Unity socket server for my university dissertation back in 2002. Although it used loops rather than individual hits, that would have been the next step. Amazing to think that this could now be done in the browser, but surprising that there isn't already a robust Flash based platform for it anywhere yet (well, maybe there is, im noot lazy to find out).
- catshirt 16y agodonated, because as much as i'd like to contribute code i feel like my money might go a bit further (as i've never actually contributed seriously to an open source project before). though, if there was ever a time to start...