View Single Post
Old 04-17-2014, 01:52 AM   #1
BHSPitMonkey
Human being with feelings
 
Join Date: Apr 2014
Posts: 2
Default New NINJAM client: Ninjam JS

Howdy all,

I've had a side project of implementing a new NINJAM client for a while now. I recently picked it back up again, and development is really starting to accelerate.

It's a from-scratch implementation of the NINJAM network protocol, made completely in JavaScript as a Chrome application. This means you can run it on any system running Chromium, Google Chrome, Chromium OS, or Chrome OS.

The current status is that the app has a working server browser, can connect to servers and receive audio, supports all chat functionality, and has a working metronome. At the moment, it doesn't handle reconnecting after a disconnect -- you'll need to right-click on the page and tell the app to reload (or just close and reopen it) before changing servers.

My next area of focus will be supporting audio capture (via getUserMedia) and transmission. One limitation here is that there will probably be a longer delay between when you play and when others hear you, since the current APIs don't readily support encoding audio during recording. Due to the nature of NINJAM, it shouldn't matter too much anyway.

If you want to install an alpha build right now and try it out, you can do so by visiting the following link to the Chrome Web Store (it's currently unlisted, so you can't find it without having the link):

https://chrome.google.com/webstore/d...gjpmoknnnmdfje

If you're more interested in the project itself, you should visit its GitHub page here:

https://github.com/bhspitmonkey/ninjam-js

Looking forward to seeing what everyone thinks so far. Happy jamming!

Update 2016-05-20:

After a long break from this project, I'm pleased to announce that audio upload/transmission is now working! Currently only only one audio device is supported (the default one you give Chrome to use, which should be configurable via your system settings) and there's sure to be bugs.

One known issue: there is a slight delay being introduced by the web audio pipeline, which I hope to be able to lessen eventually. I recommend using the "Listen" button while you're transmitting so that you can listen to yourself with the delay as you're playing; it's easier to play in time that way.

Get version 3.0.1 from the Chrome Web Store and let me know what you think!

Last edited by BHSPitMonkey; 05-20-2016 at 03:52 AM.
BHSPitMonkey is offline   Reply With Quote