Playback Control Commands ...................................................................................................... 7
Play [Zone] ............................................................................................................................................. 7
Response to GET NOWPLAYING command results changed. Added Sequence as a new returned
field to the NOWPLAYING response. Also, IsCurrent field now returns either a 1 or 0 value instead
of only returning if the value is 1.
FEEDBACK CURRENTTRACK and FEEDBACK NEXTTRACK responses now include the Sequence
field.
Added new command “GET SYSTEMSTATUS” that can be used to check the availability of the
system as well as retrieve the current system software version.
10/19/2005
Added QUEUEITEM command to support directly queuing objects by ID number.
06/1/2007
Added QUEUEITEMPLAYLIST command to support directly queuing objects by ID number to.
Added another Feedback parameter (volume).
10/1/2007
Removed old protocol no longer support in current firmware
Support for Q110 (4-Zone) unit added
5/15/2008
Added documentation for SetFeedback command.
Removed SELECTPLAYLIST command – no longer implemented
Removed SORTRESULTS command – no longer implemented
Added full library browsing functions including “GET_xxx”, “GETFOR_xxx”, “GETDETAILS_xxx”
commands.
8/18/2008
Updated document format
Added instructions for TCP/IP support
Added Cover Art Documentation
11/9/2008
Added return fields to GET_PERIODS: TotalTracks, TotalDuration, TotalDurationAsString
Added new command: GETFILTERED_ALBUMS
Added AvailableAlpha to the response for GET_ARTISTS and GETFILTERED_ALBUMS
12/2/2008
Added the REMOVEITEMPLAYLIST command.
Qsonix Integration Guide
Page | 4
5/13/2009
Added the MOVEITEMPLAYLIST command.
Added the PREVIEW command.
Added the CUE command.
Qsonix Integration Guide
Page | 5
Introduction
This document describes how to communicate with Qsonix Digital Media Management Systems using either
RS-232 Serial or TCP/IP communications.
Serial Communications
The rear panel of the Qsonix systems unit has a standard DB-9
serial port labeled “Serial”. Typical connection to this port
requires use of a standard RS-232 null modem cable. Qsonix
systems support communications between 9600 to 38400
baud, 8 data bits, 1 stop bit, no parity, no flow control. Serial
configuration can be set by accessing the Integration tab under
System Settings in the Qsonix software.
Ethernet Communications
The Qsonix system also supports access via a TCP connection
using the same communication protocol found in this
document. The default port number for TCP communications is 5031. This port number can be
configured by accessing the Integration tab under the System Settings in the Qsonix software.
Command Structure
Commands sent to Qsonix systems will always end in a carriage return (ASCII 13). If a sequence of
characters is sent to the unit without ending in a carriage return (an incomplete command), it will be
ignored. The unit will wait up to 5 seconds for the command to be completed (by sending additional
characters including a carriage return) before clearing the input buffer and ignoring the incomplete
command.
A typical command will include a verb and one or more parameters. Parameters are always separated
from each other and from the verb by a space (ASCII 32). For example, the command to begin playback
for Zone 1 is “Play 1” and the command to set the volume for Zone 2 to 50% is “Volume 2 50”.
Command verbs are not case sensitive but are typically specified in proper case for ease of readability.
Some commands support optional parameters. Optional parameters are always last in the list of
parameters and they can be provided to give a more specific command. For example, the Next command
will cause the playback to skip to the next track in the now playing list for the specified zone. The Next
command can also skip forward by more than one track with a single command (example: “Next 2 5” will
skip playback of Zone 2 forward by 5 tracks). When optional parameters are omitted, a default value that
is specified in the command description will be used.
Some parameters will be full strings (such as a track title) that may include spaces within the parameter.
These parameters will be enclosed in double-quotes. For example, the return status message indicating the
currently playing track will return the track title currently playing: Feedback CurrentTrack 1 “Here Comes the Sun” indicates that Zone 1 is currently playing the track Here Comes the Sun.
Most commands include a parameter that specifies on which zone the command should operate. The
Zone parameter must be a numeric value equal corresponding to the zone the command should operate
on. This must be less than the number of zones supported by the system (typically 1 to 4). A value of 0
can be used to indicate that the command should operate on the “current zone”. The current zone is the
one that is current displayed in the lower right corner of the screen in the “Now Playing” area. The current
zone in this area is also indicated by the color coding in the user interface.
The command reference below will show verbs in boldface and parameters will be shown by name in
italics surrounded by square brackets (ex: [Zone #] or [Volume Percentage]). Optional parameters are
shown in italics and surrounded by braces (ex: {# of tracks}).
Qsonix Integration Guide
Page | 6
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
SequenceNumber
Playback will jump to this sequence number in the playback queue for the zone
specified. Tracks in the playback queue are numbered sequentially starting at 0
(the first track is sequence number 0).
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Setting
Must be ON or OFF to indicate the new state of pause
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Playback Control Commands
Play [Zone]
DE SC R I P T I O N
Plays the currently selected track for the specified [Zone}.
PARAMETE R S
PlaySeq [Zone] [SequenceNumber]
DE SC R I P T I O N
Skips playback to the specified sequence number in the play queue.
PARAMETE R S
Stop [Zone]
DE SC R I P T I O N
Stops playback for the specified [Zone}.
PARAMETE R S
PauseSet [Zone #] [Setting]
DE SC R I P T I O N
Sets the pause state of playback for the specified Zone.
PARAMETE R S
PauseToggle [Zone #]
DE SC R I P T I O N
Toggles between paused and un-paused state for playback for the specified [Zone}.
PARAMETE R S
Next [Zone #] {TrackCount}
DE SC R I P T I O N
Skips playback forward by {TrackCount} tracks for the specified [Zone}.
Qsonix Integration Guide
Page | 7
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
TrackCount
Specifies the number of tracks to skip forward. This parameter is optional and the
default value is 1.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
TrackCount
Specifies the number of tracks to skip forward. This parameter is optional and the
default value is 1.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
CueLocation
Specifies where the current cue point of the current track should be set. This
should be an integer value specifying the number of seconds from the start of
the track.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
VolumePercentage
Specifies the new volume setting desired in terms of a percent of full volume.
The value must be an integer value between 0 and 100.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
PARAMETE R S
Previous [Zone #] {TrackCount}
DE SC R I P T I O N
Skips playback backward by {TrackCount} tracks for the specified [Zone].
PARAMETE R S
Cue [Zone #] [CueLocation]
DE SC R I P T I O N
Cues into the current track to the number of seconds specified by [CueLocation].
PARAMETE R S
Volume [Zone #] [VolumePercentage]
DE SC R I P T I O N
Sets the volume for the specified [Zone] to the [VolumePercentage] specified. To turn the volume up or
down (not set a discreet value, see the VolumeUp or VolumeDown command instead).
PARAMETE R S
VolumeUp [Zone #] [Amount]
DE SC R I P T I O N
Increases the volume for the specified [Zone] by the [Amount] specified.
The VolumeUp command is used to set the volume to a value relative to the current setting, so the
Amount value must be between 1 and 100. Note that if the value specified would cause the volume
setting to be greater than 100, the volume will be set to 100 instead. For instance, if the volume is
currently set to 50% and the VolumeUp command is issued with an Amount parameter of 70, the
volume will be set to 100% (instead of 120%).
PARAMETE R S
Qsonix Integration Guide
Page | 8
Amount
Specifies the amount of volume change desired. The playback volume change
amount is specified in terms of percent (0 to 100%).
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Amount
Specifies the amount of volume change desired. The playback volume change
amount is specified in terms of percent (0 to 100%).
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
MuteValue
Specifies the desired new state of mute. The value must be either On or Off.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
VolumeDown [Zone #] [Amount]
DE SC R I P T I O N
Decreases the volume for the specified [Zone] by the [Amount] specified.
The VolumeDown command is used to set the volume to a value relative to the current setting, so the
Amount value must be between 1 and 100. Note that if the value specified would cause the volume
setting to be greater than 100, the volume will be set to 100 instead. For instance, if the volume is
currently set to 50% and the VolumeDown command is issued with an Amount parameter of 70, the
volume will be set to 100% (instead of 120%).
PARAMETE R S
MuteToggle [Zone #]
DE SC R I P T I O N
Toggles the mute setting for the specified [Zone]. For a discreet version of this command, see
MuteSet.
PARAMETE R S
MuteSet [Zone #] [MuteValue]
DE SC R I P T I O N
Sets the mute setting for the specified [Zone] to a discreet value specified by the [MuteValue]
parameter.
PARAMETE R S
RepeatToggle [Zone #]
DE SC R I P T I O N
Toggles the repeat setting for the specified [Zone]. For a discreet version of this command, see
RepeatSet.
PARAMETE R S
Qsonix Integration Guide
Page | 9
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
RepeatValue
Specifies the desired new state of repeat. The value must be either On or Off.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Action
Specifies what action should be taken on the specified zone‟s now playing playlist.
Action must be one of the following values:
ClearAll – Clears all tracks from the playlist
ClearPlayed – Clears all tracks that have completed playing from the playlist
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
TrackID
Specifies the track that should be previewed.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
RepeatSet [Zone #] [RepeatValue]
DE SC R I P T I O N
Sets the repeat setting for the specified [Zone] to a discreet value specified by the [RepeatValue]
parameter.
PARAMETE R S
Shuffle [Zone #]
DE SC R I P T I O N
Shuffles the now playing list of tracks for the specified [Zone]. The shuffle operation will randomly
resort all tracks in the now playing list. If the zone is currently playing a track, that track will be moved
to the top of the list and will continue playing while all other tracks below it will be shuffled randomly.
PARAMETE R S
NowPlaying [Zone #] [Action]
DE SC R I P T I O N
The NowPlaying command is used for actions that affect the Now Playing playlist for the specified
[Zone].
PARAMETE R S
Preview [Zone #] [TrackID]
DE SC R I P T I O N
Play a short preview of the track specified by [TrackID] in the zone specified by [Zone]. When the
preview is completed, playback will return to its previous state.
Allows adding of items to the Now Playing playlist for the specified [Zone]. The location in the current
playlist that the item will be inserted is determined by the value of the [Location] parameter.
PARAMETE R S
Qsonix Integration Guide
Page | 10
Location
Specifies where the item specified should be added to the now playing queue.
Location must be one of the following values:
End – Add selected item to the end of the playlist
Next – Add selected item to the playlist immediately after the current track
Now – Add selected item to the playlist immediately after the current track and then
immediately call track next so that the queued track will start playing immediately.
Clear – Clear the playlist and then add the selected item.
# - If a number is specified as the location parameter, then the item(s) will be
inserted into the now playing playlist at the index specified. The index is 0-based.
ObjectType
Selection of exactly what item is to be insert into the playlist is further determined by
the ObjectType and ObjectID parameters. The ObjectType parameter must be one
of the following:
Album, Artist, Genre, Track, Playlist
ObjectID
The ObjectID parameter is then used to indicate which item of the specified
ObjectType will be inserted into the playlist.
PlaylistID
Specifies which playlist should have the items added.
Location
Specifies where the item specified should be added to the specified playlist.
Location must be one of the following values:
End – Add selected item to the end of the playlist
Clear – Clear the playlist and then add the selected item.
ObjectType
Selection of exactly what item is to be insert into the playlist is further determined by
the ObjectType and ObjectID parameters. The ObjectType parameter must be one
of the following:
Album, Artist, Genre, Track, Playlist
ObjectID
The ObjectID parameter is then used to indicate which item of the specified
ObjectType will be inserted into the playlist.
PlaylistID
Specifies which playlist should have the items added. This can also be
provided as a string value formatted as “NPx” where NP represents “Now
Playing” and „x‟ is the zone number. For example, to remove an item from
the now playing playlist for zone 3, the PlaylistID parameter can be supplied
as NP3.
Allows adding of items to the Now Playing playlist for the specified [Zone]. The location in the current
playlist that the item will be inserted is determined by the value of the [Location] parameter.
Moves the track with the specified [FromSequenceNumber] from the playlist specified by [PlaylistID] to
a new location specified by [ToSequenceNumber].
PARAMETE R S
Qsonix Integration Guide
Page | 11
FromSequenceNumber
The sequence number of the item to be moved within the playlist.
ToSequenceNumber
The sequence number within the playlist where the item should be moved to.
PlaylistID
Specifies which playlist should have the items added. This can also be provided
as a string value formatted as “NPx” where NP represents “Now Playing” and „x‟
is the zone number. For example, to remove an item from the now playing
playlist for zone 3, the PlaylistID parameter can be supplied as NP3.
SequenceNumber
The sequence number of the item to be removed from the playlist.
RemoveItemPlaylist [PlaylistID] [SequenceNumber]
DE SC R I P T I O N
Removes the track with the specified [SequenceNumber] from the playlist specified by [PlaylistID].
PARAMETE R S
Shutdown
DE SC R I P T I O N
Remotely turn off the power to the unit.
Restart
DE SC R I P T I O N
Remotely restart the system.
Qsonix Integration Guide
Page | 12
Two-way Commands
Various commands are provided for the purposes of retrieving data from the server or to receive feedback
of current server status. All commands that are requests of the server to return data will conform to a
standard response format. The response will always include a header that can be used to identify what
type of data is being returned to the client. Data returned will use standard delimiters to aide in parsing
the resulting information. A group delimiter (ASCII 29 – shown in this document as the character ) will be
used to denote the end of the header. A row delimiter (ASCII 30 – shown in this document as the character
) will be used to divide distinct rows of results (as in the case of a multi-row response). A field delimiter
(ASCII 31 - shown in this document as the character ) will be used to delimit multiple values in a response
or within a row of a response. In some special cases, a single field in a response can contain multiple
values (such as the OutputIsPlayingThisTrack field returned from the GETFOR_TRACKSFORPLAYLIST
command). The multi-value delimiter (ASCII 3) will be used to divide individual values within a multivalued field in the response.
Commands that return a multi-row response also support paging operations. This feature allows the client
to request data in pages of a specified number of rows and the server will manage the current index
location and support next/back functions from the client. This is designed to support clients that are only
able to display a limited number of items on the screen at a time and will provide the user with page up /
page down buttons to navigate the list.
For example, the command “GET PLAYLISTS” can be used to return a list of playlists from the server. The
response for this command will include a header that will include the data type being returned
“PLAYLISTS”, followed by the current page number and then by the total page count. These values will be
separated by the field delimiter and terminated by the group delimiter. For example, the header portion of
this response would be formatted as follows: PLAYLISTS312
Following the header of this response, the actual list of playlists for the specified page would appear as a
list of rows. Each row will contain multiple values (fields) containing the details of the playlist (including
PlaylistID, Playlist Name, Number of Tracks in Playlist, Total Duration of Playlist (in seconds), Total Duration
of Playlists (as a time-formatted string). For example, each row of the data portion of the response would
be formatted as follows: 327Jazz / Blues Mix115310508:37:30
Note that the entire response packet will then be delimited by a carriage return (ASCII 13).
The typical format of these data retrieval commands will be “GET [datatype] [paging command]”.
Currently, only two types of datatypes are supported, PLAYLISTS and NOWPLAYING. The paging
command can be optionally used to retrieve additional pages and supported commands include: NEXT,
PREVIOUS, FIRST, LAST, REFRESH. In addition, the paging command CURRENT can be used in conjunction
with the NOWPLAYING datatype to retrieve the page that includes the current track in the now playing list.
All variations of the supported commands are listed below.
The GET_xxx commands can be used to retrieve a variety of metadata and allows browsing of the full
media library. Each of these commands accept a PageNumber and PageSize parameter. If a
PageNumber is passed that is greater than the maximum number of pages, the last page will be returned.
The PageNumber parameter can also be passed as a single letter, causing the results to return the first
page that contains results starting with that letter. For example, the command “GET_ALBUMS G 30” will
return the first page of 30 albums that has album titles starting with the letter G. Note that the items
starting with G will not necessarily appear as the first item on the page, but the page will contain the start
of the items that begin with the letter G.
Data Types
The data type of each field in responses is noted in the description of the field. Possible values are listed
below:
String(x) – A string value with a maximum length of x
Int32 – a 32-bit integer value (maximum value of 2,147,483,647)
Qsonix Integration Guide
Page | 13
Int16 – a 16-bit integer value (maximum value of 32,767)
uInt8 – an unsigned 8-bit integer value (maximum value of 256)
User Data
Each of the commands in this section support an optional UserData parameter. This is always the last
parameter in the command and must be a string. The UserData parameter cannot contain spaces. The
data supplied in the UserData parameter will be returned in the response header as the last field in the
header. If the UserData is not supplied in the request command, an empty field will be returned in the
response header.
Qsonix Integration Guide
Page | 14
Zone
Specifies the zone to retrieve the name for. Must be a valid zone number. uInt8
ZONENAME[UserData][ZoneNumber][ZoneName]
ZoneNumber
The number of the zone. Int16
ZoneName
The user-specified name of the zone. String(50)
Zone
Specifies the zone to retrieve the name for. Must be a valid zone number. uInt8
Indicates how many pages are available at the page size specified. Int32
TotalPeriods
Count of the number of periods in the library. Int32
PeriodID
Unique period identifier for the period being returned. Distinct years have a
period ID that is simply the year. Decades have a period ID that prepends a
1 to the decade (for example, 1980s has a period ID of 11980). Int16
DisplayString
A displayable version of the PeriodID. This translates decades back to a
displayable form such as “1980s”.String(5)
AlbumCount
The number of albums associated with this period. Int32
TrackCount
The total number of tracks associated with this period. Int32
TotalDuration
The total duration of all tracks associated with this period. Int32
TotalDurationAsString
The total duration of all tracks associated with this period. This is returned as
a formatted string value (ex: 1:23:45). String(20)
Indicates how many pages are available at the page size specified. Int32
TotalPlaylists
Count of the number of playlists in the library. Int32
PlaylistID
Unique playlist identifier for the playlist being returned. Int32
PlaylistName
The name of the playlist. String(255)
DurationInSecon
ds
Total duration of all tracks in the playlist. This is returned as an integer value in
seconds. Int32
DurationAsString
Total duration of all tracks in the playlist. This is returned as a formatted string
value (ex: 1:23:45). String(10)
TrackCount
Total number of tracks in the playlist. Int32
Get_Playlists [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of playlists in the system.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
GetFor_NowPlaying [Zone] [TrackCount] {UserData}
DE SC R I P T I O N
Retrieves a list of tracks from the now playing playlist for the specified Zone. The first row returned in
the result will be the current track for that zone. Based on the value of TrackCount, additional rows
Qsonix Integration Guide
Page | 18
Zone
Now Playing tracks will be returned for this zone. uInt8
TrackCount
Specifies the number of rows to return. This is how many tracks in the future will
be returned (includes the current track). Int32
Now Playing tracks will be returned for this zone. uInt8
TrackCount
Specifies the number of rows returned. This will normally be the same
as the TrackCount value passed in unless there are less than the
specified number of tracks in the future of the now playing queue for the
specified Zone. Int32
TrackID
The unique track ID for the track being returned. Int32
TrackTitle
The track title. String(512)
SequenceNumber
This number is unique within a playlist and indicates this tracks order
within the playlist. Since a playlist can contain a track more than once,
this provides an alternative to track ID to uniquely identify a particular
instance of a track within a playlist. Int32
ArtistID
The unique artist ID of the primary artist for the track being returned.
Int32
ArtistName
The name of the primary artist for the track being returned. String(255)
AlbumID
The unique album ID of the album that this track is associated with.
Int32
AlbumTitle
The title of the album that the track is associated with. String(100)
TrackDurationInSeconds
Duration of the track. This is returned as an integer value in seconds.
Int32
DurationAsString
Duration of the track. This is returned as a formatted string value (ex:
1:23:45). String(10)
SearchTerm
A string value that is to be used for the search. String(255)
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_SEARCH[SearchTerm][PageNumber][TotalPages][TotalResults][UserData][ObjectType
will be returned to indicate tracks that are queued up to play in the future. If there are no future tracks
or less than TrackCount number of future tracks, then less rows may be returned.
Performs a keyword search on all items in the library and returns a list of objects that have a string
match. Currently, this search function searches for matches in all album titles, artist names, track titles
and genres. The results are returned as a composite result, with the ObjectType response field
indicating the type of object that contained the search keyword.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 19
][ObjectID][MatchString]
SearchTerm
The search term that was searched for. String(255)
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalResults
Count of the number of matches available. Int32
ObjectType
The type of object that this search result pertains to. Valid values are:
TRACK, ALBUM, ARTIST, GENRE
String(20)
ObjectID
The unique identifier of the object matched. Int32
MatchString
The string value that was matched and contained the keyword. String(512)
ExtendedData1
This contains additional data about the search result. The data contained
depends on the ObjectType being returned as follows:
TRACK: Album Title
ALBUM: Album Artist Name
ARTIST: <not used>
GENRE: <not used>
ExtendedData2
This contains additional data about the search result. The data contained
depends on the ObjectType being returned as follows:
TRACK: Album Artist Name
ALBUM: <not used>
ARTIST: <not used>
GENRE: <not used>
GenreID
The unique genre ID to retrieve a list of styles for. Int32
Indicates how many pages are available at the page size specified. Int32
TotalAlbums
Count of the number of albums returned. Int32
AlbumID
The unique album ID for the album being returned. Int32
AlbumTitle
The album title. String(100)
AlbumArtistID
Unique artist identifier for the artist that is the primary artist on the album.
Int32
AlbumArtistName
Name of the primary artist for the album. String(255)
Year
The release year of the album. Int16
TrackCount
Total number of tracks associated with the album. Int32
PeriodID
The unique period ID to retrieve a list of albums for. Note that the period ID can
be either a distinct year (ex: 1980) or can be a decade reference (by adding a
Retrieves a list of tracks for the specified album.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 23
DurationAsString
Duration of the track. This is returned as a formatted string value (ex: 1:23:45).
String(10)
OutputIsPlayingT
hisTrack
This field can be used to determine if the returned track is currently playing in
any of the playback zones. Note that this is a multi-valued field and will contain
a delimited list of all zone numbers that are currently playing this track.
String(20)
PlaylistID
The unique playlist ID to retrieve a list of tracks for. Int32
The playlist ID of the tracks being returned. Int32
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalTracks
Count of the number of tracks returned. Int32
TrackID
The unique track ID for the track being returned. Int32
TrackTitle
The track title. String(100)
SequenceNumber
This number is unique within a playlist and indicates this tracks order within the
playlist. Since a playlist can contain a track more than once, this provides an
alternative to track ID to uniquely identify a particular instance of a track within
a playlist. Int32
ArtistID
The unique artist ID of the primary artist for the track being returned. Int32
ArtistName
The name of the primary artist for the track being returned. Int32
AlbumID
The unique album ID of the album that this track is associated with. Int32
AlbumTitle
The title of the album that the track is associated with. String(100)
TrackDurationInSe
conds
Duration of the track. This is returned as an integer value in seconds. Int32
DurationAsString
Duration of the track. This is returned as a formatted string value (ex:
1:23:45). String(10)
OutputIsPlayingTh
isTrack
This field can be used to determine if the returned track is currently playing in
any of the playback zones. Note that this is a multi-valued field and will contain
a delimited list of all zone numbers that are currently playing this track.
The number of the zone that this feedback applies to. uInt8
TrackID
The track ID of the track being returned. Int32
TrackTitle
The track title. String(512)
AlbumTitle
The title of the album that the track belongs to. String(100)
AlbumArtistName
The name of the primary artist of the album that the track belongs to.
String(255)
System Feedback
Qsonix systems are capable of sending a variety of feedback data including playback status, currently
playing track, etc. By default, sending of feedback is turned off and in order to enable data feedback, a
command must be sent specifying the type of feedback desired. Feedback data is divided by purpose into
message types and one or more feedback message types may be turned on simultaneously. Most types of
feedback messages are sent only when necessary (when the data changes). For example, the Playstate
feedback message will be sent whenever the play state of any zone changes. In addition, when a feedback
message type is enabled, a feedback message of each type that is currently enabled will be sent
immediately to report the state at that time. In order to poll the unit for a current status, you can simply reinitialize the feedback message type again and this initial status message will be sent immediately. This is
convenient since the message will be formatted the same whether it is a response to a poll or is an
unsolicited response by the system as a result of a data change.
Feedback TrackChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause feedback messages to be sent when the current track in the
now playing queue changes. Two types of messages will be sent by this type of feedback. One will
return the CURRENTTRACK information and the other will return the NEXTTRACK information. If there
is not a next track in the now playing queue when this feedback occurs, the NEXTTRACK message will
be omitted. In addition, one of each type of message will be sent for each playback zone on the
system. (See response types “CURRENTTRACK” and “NEXTTRACK” below).
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Qsonix Integration Guide
Page | 26
SequenceNumber
This number is unique within a playlist and indicates this tracks order within the
playlist. Since a playlist can contain a track more than once, this provides an
alternative to track ID to uniquely identify a particular instance of a track within
a playlist. Int32
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values
include: ON, OFF.
The number of the zone that this feedback applies to.
uInt8
TrackDuration
Duration of the current track returned as a integer value
of seconds. Int32
TrackPosition
The current playback position of the track returned as an
integer value of seconds. Int32
TrackTimeRemaining
The number of seconds remaining in the currently
playing track. String(10)
TrackPositionString
The current playback position of the track returned as a
formatted string value (ex: 1:23:45). String(10)
TrackTimeRemainingString
The amount of time remaining in the current track
returned as a formatted string value (ex: 1:23:45).
String(10)
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values
include: ON, OFF.
FEEDBACKREPEAT [ZoneNumber][RepeatState]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
RepeatState
The current state of the repeat setting. Valid values include: ON, OFF.
String(3)
Feedback TrackPosition [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the track position
changes. During playback, this will result in one message being sent every second.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback RepeatChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a single feedback message to be sent when the playback
Repeat state changes (on / off).
PARAMETE R S
RE SPO N S E D E FIN I T I ONS
Qsonix Integration Guide
Page | 27
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values
include: ON, OFF. String(3)
FEEDBACKNOWPLAYINGCHANGED[ZoneNumber]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values
include: ON, OFF. String(3)
FEEDBACKPLAYSTATE[ZoneNumber][PlayState]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
PlayState
Current playback status for the specified zone. Valid values include: Playing,
Stopped, Paused. String(20)
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values
include: ON, OFF. String(3)
FEEDBACKVOLUME[ZoneNumber][CurrentVolume]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
CurrentVolume
Current volume of the specified zone as a percentage (0-100). uInt8
Feedback PlaylistChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the Now Playing
queue changes for a particular playback zone.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback PlaystateChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the Now Playing
queue changes for a particular playback zone.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback Volume [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the Now Playing
queue changes for a particular playback zone.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback All [On/Off]
DE SC R I P T I O N
Sets all feedback types on or off using a single command.
Qsonix Integration Guide
Page | 28
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values
include: ON, OFF. String(3)
Returns a message that contains the current feedback settings.
PARAMETE R S
None
RE SPO N S E D E FIN I T I O N S
Qsonix Integration Guide
Page | 29
AlbumID
If specified, the cover art returned will correspond to the Album with the ID
specified. This parameter should not be used in conjunction with TrackID. Only
one of the two parameters should be used. Int32
TrackID
If specified, the cover art returned will correspond to the Album that contains the
track with the ID specified. This parameter should not be used in conjunction
with AlbumID. Only one of the two parameters should be used. Int32
Size
The size (in pixels) of the cover art image to be returned (maximum allowable
size is 1000 pixels). If Reflect is turned on, the resulting image will have a width
of this size and a height of twice this size. Int16
Reflect
If this parameter is specified with a value of ON, then the returned image will
include a vertical reflection in the image. String(3)
Cover Art Image Support
Access to album cover art images is provided via HTTP using the built-in web server on the system. By
using the available query string parameters to build a full cover art image URL, a jpeg bitmap can be
retrieved from the server for any album in the system.
Specifies which zone should be acted upon. Must be 0 or a valid zone
number.
Action
Specifies what action should be taken on the specified zone‟s now playing
playlist. Action must be one of the following values:
ClearAll – Clears all tracks from the playlist
ClearPlayed – Clears all tracks that have completed playing from the playlist
Command
Description / Usage
GET PLAYLISTS REFRESH
GET PLAYLISTS FIRST
GET PLAYLISTS NEXT
GET PLAYLISTS PREVIOUS
GET PLAYLISTS LAST
GET PLAYLISTS PAGESIZE
[PageSize]
Retrieves a list of playlists stored on the server. The PAGESIZE
command can be used to set the number of playlists returned
per page (specified by the PageSize parameter). This would
typically be called upon initialization of the client application.
Omitting the paging command parameter (ex: GET PLAYLISTS)
will retrieve the current page index and can be useful for
refreshing the contents of that page.
PageNumber – The number of the page being returned
(numbered from 1 to the total number of pages)
TotalPages – The total number of pages available for this
response
TotalRows – The total number of rows available for this response
PlaylistID – A system-assigned ID number uniquely assigned for
each playlist
PlaylistName – The user-specified description for the playlist
TrackCount – Total number of tracks in the playlist
PlaylistLength – Total duration of the playlist (in seconds)
LengthAsString – Total duration of the playlist (formatted as
hh:mm:ss)
GET NOWPLAYING REFRESH
[ZoneNumber]
GET NOWPLAYING FIRST
This command is used to retrieve the current Now Playing list of
tracks. This command includes an additional parameter of
Zone Number and this is unique to the NOWPLAYING
Deprecated commands
Queue [Zone #] [Location]
This command has been replaced by the QueueItem command starting in version 2.4.8.
DE SC R I P T I O N
Adds the currently selected item to the Now Playing playlist for the specified [Zone]. The location in
the current playlist that the item will be inserted is determined by the value of the Location parameter.
The Location parameter is optional and if not specified, the default is End. Valid values for Location
are listed below.
PARAMETE R S
Qsonix Integration Guide
Page | 31
[ZoneNumber]
GET NOWPLAYING NEXT
[ZoneNumber]
GET NOWPLAYING PREVIOUS
[ZoneNumber]
GET NOWPLAYING LAST
[ZoneNumber]
GET NOWPLAYING CURRENT
[ZoneNumber]
GET NOWPLAYING PAGESIZE
[PageSize]
commands. As with PLAYLISTS, the basic command “GET
NOWPLAYING” will return the first page of tracks from the now
playing list. The PAGESIZE command can be used to set the
number of playlists returned per page (specified by the PageSize
parameter). This would typically be called upon initialization of
the client application. The ZoneNumber parameter must be a
value of either 1 or 2. Omitting the paging command
parameter (ex: GET NOWPLAYING 1) will retrieve the current
page index and can be useful for refreshing the contents of that
page.
PageNumber – The number of the page being returned
(numbered from 1 to the total number of pages)
TotalPages – The total number of pages available for this
response
ZoneNumber - The number of the zone that this result applies to
TrackID – A system-assigned ID number uniquely assigned to
each track in the system
TrackTitle – The name of the song / title of the track
AlbumTitle – The title of the album on which the track appears
AlbumArtistName – The name of the artist from the album
where the track appears.
Sequence – An incremented number assigned to each track in
the now playing list. This indicates in which position the track
appears in the list.
IsCurrent – If this field is “1”, then this track is the currently
playing track (or if stopped, it is the current index that would
play when play is started). If it is “0” (zero), this is not the
current track.
GET ZONENAME [ZoneNumber]
Used to retrieve the user-specified name assigned to each of the
zones in the system. The ZoneNumber parameter must be a
value of 1 or 2.
Response Format:
ZONENAME[ZoneNumber][ZoneName]
Field Descriptions:
ZoneNumber – The number of the zone
ZoneName – The user-specified name of the zone
Qsonix Integration Guide
Page | 32
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.