Giter Club home page Giter Club logo

ninjam-js's Introduction

Ninjam JS

Build Status Build status

Music collaboration in the browser!

Overview

NINJAM is a client/server software originally released in 2005 as a way for musicians to collaborate (by jamming!) over the Internet.

Ninjam JS is built using web technologies (JavaScript, HTML, CSS) and acts as a NINJAM client, connecting to servers just like the official C++ client. It can run as a standalone application using Electron, as a Chrome App, or (almost) as a packaged app for Firefox OS.

Development Status

Ninjam JS is still a work in progress. The current code is capable of connecting to servers, sending and receiving chat messages (including votes), listening to audio channels from other users, and transmitting audio.

Download

You can install Ninjam JS using Chrome, Chromium, or Chrome OS by clicking below here:

Chrome Web Store

Or, you can download an installer for Windows, OSX, or Linux from the Releases page.

Screenshots

Server browser

Server browser

Jamming on a server

Jamming on a server

Development

Setting up dependencies

Run npm install from the project root to install node dependencies. This will also invoke npm install in the app/ directory automatically.

cd <project_root>
npm install # Install packaging tools
cd app/
npm install # Install app dependencies

Running locally

To build and run the app locally:

cd <project_root>/app/
npm run watch

This starts a process which performs an initial build (populating the app/build/ directory if it isn't already) and continuously watches for changes, rebuilding individual assets as needed.

To just build the application once without starting the watcher, run npm run make-dist instead.

Once a build has been made, open another terminal and launch the application using Electron:

cd <project_root>
npm start

Noteworthy files/directories

root/
|- package.json: Used for electron-builder packaging, contains packaging scripts
|- build/: Resources used by electron-builder during packaging (icons, etc.)
|- app/:
   |- package.json: Declares app dependencies, contains build scripts
   |- webpack.config.js: Webpack build configuration
   |- build/: Destination for built JS/CSS bundles and copied static assets
   |- src/: React source
   |- static/: Static assets copied as-is into build/ by Webpack
      |- package.json: Declares app metadata used by Electron and electron-builder

ninjam-js's People

Contributors

bhspitmonkey avatar kagel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.