HALRAD sound labs automation commander.
slaCmdr.exe - Rhymes with salamander but is more like a chameleon, piloting your Devialet Phantom speakers.
Puts you in the driver's seat piloting Devialet Phantom speakers.
A command line interface for Devialet Phantom speakers.
slaCmdr provides a command | shell interface for the Devialet Phantom speakers.
For use with small touch screens or button control automation using an Elgato Stream Deck.
slaCmdr.exe -SystemIP -RootNameSpace [operation]
slaCmdr.exe -Connect:SystemIP for CLI
slaCmdr.exe -Discover # Query network for mDNS hosts
slaCmdr.exe SystemIP RootNameSpace -operation
slaCmdr.exe -Connect SystemIP # for CLI
slacmdr.exe -Discover
slacmdr.exe -Connect systemIP
slacmdr.exe SystemIP RNS [-GetNowPlaying | -GetSourceList]
slacmdr.exe SystemIP RNS -PlaySource sourceID
slacmdr.exe SystemIP RNS -Play
slacmdr.exe SystemIP RNS -Pause
slacmdr.exe SystemIP RNS -VolUp
slacmdr.exe SystemIP RNS -VolDown
slacmdr.exe 192.168.0.15 groups -Play
slacmdr.exe 192.168.0.15 systems -PlaySource 30b18894-f4d7-4da7-b523-6e57f1021e7b
slacmdr.exe 192.168.0.15 systems -PlaySource 3
slacmdr.exe -Connect 192.168.0.15
sla>help
sla>h
[help] - this
[alias] - show CLI command alias
[Use] systemIP
[Set] (Groups | Systems | Devices)
[Get] - now playing information
[List] - current sources
[PlaySource [sourceID]
[Play | Pause] - currently selected source
[VolUp | VolDown] - raise lower volume by 5%
[cls] - clear screen.
[exit | enter | ctrl+C] - quit.
sla>
It's a command line tool, run it from anything you can call a command from. You could run it to Play, Pause, Play a source, turn the volume up or down. Useful for theater or music applications, home automation, or with voice assistants.
Assign commands to buttons on your Elgato Stream Deck using the 'BarRaider advanced launcher' to run slaCmdr commands.
Note: slaCmdr.exe contains an icon resource library for customizing shortcut icons.
slacmdr -connect 192.168.0.15
sla>help
sla>hpla 8
[help] - this
[alias] - show CLI command alias
[Use] systemIP
[Set] (Groups | Systems | Devices)
[Get] - now playing information
[List] - current sources
[PlaySource [sourceID]
[Play | Pause] - currently selected source
[VolUp | VolDown] - raise lower volume by 5%
[cls] - clear screen.
[exit | enter | ctrl+C] - quit.
sla>
sla>l <- l, ls, list all work. (see alias notes)
sla:>(0) :optical ->[fb630679-d59c-4352-9739-d2f49645df96]<- on Phantom Left
sla:>(1) :upnp ->[f4d230e8-6cf7-4855-9800-7db6b90bf37b]<- on Phantom Left
sla:>(2) :optical ->[9b141388-f14f-4614-b5f1-a519f0fc515d]<- on Media Room Left
sla:>(3) :spotifyconnect ->[2b5b3f99-6937-4be6-a03e-1b95e150a927]<- on Phantom Right
sla:>(4) :bluetooth ->[13026ed4-eb62-4dc7-9157-3d277bc49346]<- on Phantom Right
sla:>(5) :raat ->[8a2be02d-32cc-4786-bb7b-32e7f9dfd0c6]<- on Phantom Right
sla:>(6) :optical ->[4082e528-b5ba-4a13-8881-663410a743c7]<- on Media Room Right
sla:>(7) :airplay2 ->[7efbb0ec-b7a4-433b-a362-e2c6c5c4ec97]<- on Phantom Right
sla:>(8) :arch-physical ->[c19ef09f-89ba-4720-90a1-bc1b52cdea5e]<- on Arch
sla:>(9) :upnp ->[396d6118-7adf-4467-985e-aeb72170a2dc]<- on Phantom Right
sla:>(10) :bluetooth ->[883230ca-5782-4b1f-a12e-724b23e416ba]<- on Phantom Left
sla:>(11) :optical ->[f6e88ce1-0163-435c-ae70-fa623faf2c07]<- on Dialog
sla:>(12) :raat ->[8d7171c7-78d1-4b08-b1c4-6a9ccb24623a]<- on Phantom Left
sla:>(13) :airplay2 ->[43a22906-d67d-4e87-8a8a-55f68d5e7cfa]<- on Phantom Left
sla:> Use (listID) or [SourceID] with PlaySource
sla> <- using list Index to PlaySource 8. Same as PlaySource c19ef09f-89ba-4720-90a1-bc1b52cdea5e
sla:>using playindex (8) as source: c19ef09f-89ba-4720-90a1-bc1b52cdea5e
{"availableOptions":["mute","unmute","play","pause"],"metadata":{"album":"","artist":"","coverArtUrl":"","title":""},"muteState":"unmuted","playingState":"playing","source":{"deviceId":"9127538b-79cc-56db-84f1-09807255ec7f","sourceId":"c19ef09f-89ba-4720-90a1-bc1b52cdea5e","type":"arch-physical"}}
sla>
slaCmdr supports mapping device IDs to user-friendly names using a JSON file named device_names.json.
This file is created in the same folder the program exe is located the first time it is run. You can delete the file and it will be re-created.
This allows you to see meaningful names for your Devialet Phantom devices instead of raw device IDs in the CLI output.
Place device_names.json in the same directory as slaCmdr.exe.
{
"DeviceIds": {
"9127538b-79cc-56db-84f1-09807255eaa7": "arch",
"e6e97c6f-0ac8-5a35-b68d-52f70ce7d7af": "left",
"c8a05c46-3fc0-5111-aa47-56126ffd2d3c": "dialog",
"a7e4a870-a141-529b-b564-13d71d18fc7e": "right"
}
}
When listing sources or devices, slaCmdr will look up each device ID in device_names.json and display the friendly name if available. If a device ID is not found in the mapping, the raw device ID will be shown.
device_names.json with any text editor or use 'de' device edit comand from the CLI.