MadJACK is a MPEG Audio Deck for the Jack Audio Connection Kit with an OSC based control interface.
C C++ Perl M4 Shell Makefile QMake
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
gui
perl
src
AUTHORS
COPYING
ChangeLog
INSTALL
Makefile.am
README
TODO
autogen.sh
configure.ac

README

MadJACK
=======
Nicholas J. Humfrey <njh@aelius.com>

For the latest version of MadJACK, please see:
http://www.aelius.com/njh/madjack/


What is MadJACK ?
-----------------

MadJACK is a MPEG Audio Deck for the Jack Audio Connection Kit with 
an OSC based control interface. It was written as a backend for DJ 
music playback and is released under the GPL licence.

It aims to achieve the following:
 - Lightweight
 - Talk natively to JACK
 - Easy to script / remote control
 - High Quality audio
 - Skip free playback
 - Responsive / Low Latency
 - Reliable / Not Crash

It does not do the following:
 - Have pitch control on playback (yet!)
 - Decode metadata/ID3 tags
 - Queue up multiple tracks
 - Have playlists

In order to segue and cross-fade between tracks I have multiple 
copies of MadJACK running.


Terminal Interface
------------------

MadJACK accepts the following keys on 

  h: Display help message
  p: Play/Pause Deck
  l: Load a Track
  e: Eject current track
  s: Stop Deck
  c: Cue deck to start of track
  C: Cue to specified time
  q: Quit MadJack


Command Line Interface
----------------------

madjack_remote <command>

 play, pause, stop, cue [<cuepoint>], eject, load <filename>, status, position, filepath, ping


OSC Interface
-------------

 /deck/play             - Start deck playing
 /deck/pause            - Pause deck
 /deck/stop             - Stop Deck playback
 /deck/cue [f]          - Cue deck, with optional cue point (in seconds)
 /deck/eject            - Eject the current track from deck
 /deck/load (s)         - Load <filename> into deck

 /deck/get_state        - Get deck state
  replies with:
 /deck/state (s)
 
 State Strings:
     PLAYING            - Deck is playing
     PAUSED             - Deck is paused
     READY              - Deck is loaded and ready to play
     LOADING            - Starting to decode track
     STOPPED            - At end of track / Stopped
     ERROR              - Problem opening/decoding track
     EMPTY              - No track loaded in deck

 /deck/get_error		- Get description of error (when in state ERROR)
  replies with:
 /deck/error (s)

 /deck/get_version		- Get name and version number of MadJACK
  replies with:
 /deck/version (ss)
 
 /deck/get_position		- Get deck position (in seconds)
  replies with:
 /deck/position (f)

 /deck/get_duration             - Get track duration (in seconds)
  replies with:
 /deck/duration (f)

 /deck/get_filepath     - Get path of track (as passed to/deck/load)
  replies with:
 /deck/filepath (s)
 
 /ping                  - Check deck is still there
  replies with:
 /pong


Replies are send back to the port/socket that they were sent from.