openstatic.org

openstatic.org

Tunes Director

(Jump to downloads)

Tunes Director is a companion desktop application for controlling and automating your favorite music player. It's main purpose is to provide transport control and large visual indicator for current track progress. Perfect for a jukebox interface for parties!

For those of you into stage performances who have several media players for different purposes, rather then interfacing with each players individual API, Tunes Director can provide an easy way connect hardware remotes and other programs to control playback. For instance lets say you use spotify for setup music, but one of the acts has an itunes playlist they need worked in. Tunes Director will control both music players as a single interface.

So far, it supports:

  • iTunes - It uses VBScript and OSAScript to issue command to iTunes in both windows and OSX.
  • Spotify - using the spotify web api (any operating system)
  • Audacious - using audtool (both for windows and linux)
  • MPD - Socket connection to MPD server (doesn't even have to be a local mpd server)
  • Itself! - Can connect to another instance of Tunes Director on a different machine

Other Features

  • Internal HTTP and WebSocket server
  • Fade out on pause, and fade in on play
  • Ability to lock next/previous during playback
  • Large display for off stage glancing at status
  • Simple HTTP interface for play/pause/next/previous
  • WebSocket interface for more complex control with feedback
  • Advertise its API via mDNS and automatically finds other Tunes Directors on the netowrk

API

When the WebServer is enabled you can call the following urls to control itunes

  • http://127.0.0.1:6323/api/play/
  • http://127.0.0.1:6323/api/pause/
  • http://127.0.0.1:6323/api/next/
  • http://127.0.0.1:6323/api/previous/
if you prefer to control TunesDirector with a Websocket, you can connect to ws://127.0.0.1:6323/events/ and transmit json objects to issue commands.
  • {"cmd": "play"}
  • {"cmd": "pause"}
  • {"cmd": "next"}
  • {"cmd": "previous"}
  • {"volume": 50}
  • {"repeat": true}
  • {"shuffle": true}
Every second the server will send a status JSON object. {
"duration":216, // Duration of track in Seconds
"volume":46, // 0-100 percent
"lastStateFetch":1647205563850, // timestamp of last communication with provider
"artist":"The String Qartet Tribute",// artist name
"timeProgress":"00:15 / 03:36", // text progress display
"playerState":1, // 0 = paused, 1 = playing
"position":15, // Current position in seconds
"title":"Crawling", // track title
"repeat": true, // repeat enabled
"shuffle": false // shuffle enabled
}


If you are feeling generous and would like to support this project

Downloads

Latest Update: October 06 2023 12:57:07 PM EDT

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.