Control Sonos speakers with your Amiga

   Author:       Michael Rupp
   Uploader:     SonosController mrupp ch
   Type:         comm/misc
   Version:      1.3
   Replaces:     comm/misc/SonosController_OS3.lha
   Requires:     68020+ (68060 strongly recommended), MUI 3.8, AmiSSL 5, one or more Sonos speakers
   Architecture: m68k-amigaos >= 3.0.0
   Kurz:         Steuere Sonos-Speaker mit deinem Amiga
   URL:          https://mrupp.ch
   Date:         2024-02-03
   Readme:       http://aminet.net/comm/misc/SonosController_OS3.readme
   Downloads:    622

http://aminet.net/comm/misc/SonosController_OS3.lha

SonosController lets you control your precious Sonos speakers from any Amiga

connected to the same network.

If you like SonosController, please consider a donation by PayPal:

https://paypal.me/mirupp

Any donation is highly appreciated, no matter how small, and it helps to keep

motivation up to develop software like this for the Amiga!

Features

========

- searches your network automatically for Sonos speakers (that was a tricky

one) but if that fails for whatever reason, they can also be added manually

- network search is only needed once because the result of the scan is stored

in the .config file

- listing your speakers with the info of the currently playing song, sporting

an icon that is downloaded from the speaker itself

- grouping and ungrouping devices. When grouped, volume and muting can either

be set for the whole group or for each device individually.

- subscription of the speaker's UPNP events (that was probably the hardest

one to crack, man-o-man), it means that the controller gets a notification

if the Sonos system receives a command from some other controller

(f.e. from your mobile or on some other computer) or directly from the

speaker's buttons

- sending control commands (sending SOAP requests, another tricky one):

- Play

- Pause

- Next

- Back

- Jump to time index

- Volume

- Mute

- Shuffle

- Repeat (everything, current song)

- Crossfade

- display of the current song's title, artist, and album on the selected

speaker

- download and display of the album cover if possible (f.e. if embedded into

the playing MP3 file)

- local cache for album covers for better performance

- local cache can be emptied in the Preferences dialog

- album cover download can be deactivated in the Preferences dialog

- listing the selected speaker's current queue

- playing a song by clicking an entry in the queue

- listing the Sonos favourites incl. starting one

- listing the Sonos playlists incl. starting one (normal oder shuffled)

- listing TuneIn's saved radio stations incl. starting one

- listing TuneIn's saved radio shows incl. starting one

- browsing your music library incl. starting songs, albums, etc. (normal or

shuffled)

- searching your music library by search string and search type (artist,

album, composer, genre, song or imported playlist)

- the last x search strings are save, whereas x can be configured in the

Preferences (0 - max. 50)

- saved search strings can be emptied in the Preferences dialog

- re-index your music library

- keyboard shortcuts

- extendable localization using Hollywood's catalog file format

- german, italian and dutch localization included (thanks to my translators!)

- list information about the connected Sonos devices

And I absolutely wanted to have some Amiga exclusive features in it, things that

the original Sonos app isn't able to do:

- exporting playlists in M3U format. These can be put into your music library's

"playlists" folder to be re-imported into Sonos, thus enabling you to kind of

backup and restore your playlists.

- powerful ARexx interface

- notification if a new track is being played, optional for all or only the

currently selected device group

Technical Details

=================

SonosController is created using Hollywood 10.0 and its plugins RapaGUI 2.1,

hURL 2.0 and XML 2.0.

Side Note & Thanks

==================

SonosController is my very first Amiga program (I do C# normally) and would

not have been possible without the help of Andreas Falkenhahn and the great

Hollywood community at https://forums.hollywood-mal.com/. Thank you all for

your support!

Disclaimer

==========

All use of SonosController is at your own risk and I can't be held

responsible for any damage it might do to your Sonos or other equipment.

But really, I can't see any way how that might be possible.

And finally: note that I'm not associated with Sonos in any way other than

being a user of their products. Please visit https://www.sonos.com/ to find

out more about them and their excellent sound systems.

History

================

1.3 (02.02.2024)

----------------

- NEW: option to show notifications when a new track is played in any zones or,

as another option, only in the currently selected zone.

This uses MagicBeacon on MorphOS, Ringhio on AmigaOS 4.x and Ranchero on

AmigaOS 3.x (if available).

- NEW (AmigaOS 4.x): show an icon in AmiDock including a context menu featuring

the following commands:

- Play/Pause

- Previous track

- Next track

- NEW: powerful ARexx interface, see AmigaGuide for further details

- NEW: detect if a device needs updating and stating this in its label.

- NEW: menuitem "Settings/Update music library now" to invoke a refresh of the

Sonos music library.

- NEW: menuitem "Project/About my Sonos system" showing information about all

zones found in the connected Sonos system.

- NEW: upgraded to Hollywood 10, hURL 2.0 and XML 2.0

- FIXED: possible crash if album art could not be loaded

================

1.2 (07.02.2022)

----------------

- NEW: support for grouping and ungrouping devices. When grouped, volume and

muting can either be set for the whole group or for each device individually.

- NEW: support for devices that suddenly appear or disappear from the Sonos

system, for example when turned on or off.

- NEW: timeout for devices to respond can be configured in the Preferences. On

slower Amigas it might be necessary to increase the timeout (default is 5s).

- NEW: implemented localization

- NEW: german catalog: feel free to use it as a template to create catalog files

for other languages. Check out the following link for info on how to do it:

https://hollywood-mal.com/docs/html/hollywood/CatalogFormatNote.html

- NEW: italian catalog by Samir Hawamdeh. Thanks for this!

- NEW: dutch catalog by Dave "Skateman" Koelman. Thanks for this, too!

- NEW: if no devices can be found by the network scan, it's now enough to add

just

one single device by its IP address. This one will then be queried to return

all

the others.

- NEW: added a "Cancel" button to the requester that pops up if the network scan

couldn't find anything (requested by Steve Harrison).

- NEW: added a version check of reqtools.library where needed (on AmigaOS 3.x

and

MorphOS) when adding devices manually and letting the user know, if the

version

installed is not sufficient (v39 or higher is needed). After confirming with

"OK",

the URL of the download page on Aminet is automatically opened.

- NEW: displaying the loading's progress when browsing the music library incl.

the

possibility to cancel it by pressing the [<] button.

- NEW: button "Clear Queue" is disabled for an empty queue.

- IMPROVED: quicker network scan because now it's enough to find one single

device

to connect to.

- CHANGED: for the non-AmigaOS 3.x versions the shortcuts for "Next" /

"Previous"

are changed from Alt-LEFT/RIGHT back to Ctrl-LEFT/RIGHT (as it was in v1.0),

because only on an Amiga keyboard the Alt key is the closest qualifier key to

the

cursor keys, but on keyboards used on NG-Amigas it's usually the Ctrl key.

- FIXED: nasty networking bug that caused SonosController to freeze after a

while,

especially on AmigaOS 3.x.

- FIXED: possible crash when searching something without results, searching some

more and going back again.

- FIXED: switching between "Pause" and "Play" sometimes made the button move a

pixel.

- FIXED: as long a no Sonos devices are found, all controls are now disabled by

default, avoiding possible crashes.

- FIXED: Control menu items are now disabled according to the corresponding

buttons.

- FIXED: suppressing shortcuts for "Next" and "Previous" while the search field

is

focused, because Ctrl/Alt-Left/Right is used to navigate inside the textentry.

- FIXED: MUI 5 column widths in the Music Library browser listview.

- FIXED: display of room's names with MUI 4.0

- FIXED: replaced calls to "OpenURL" with "URLOpen" in the AmigaGuide for

AmigaOS 4.x.

----------------

1.1 (27.09.2021)

----------------

- NEW: first release for AmigaOS 3.x besides 4.1 and MorphOS

- NEW: lots of performance improvements to make it usable on a 68060 cpu,

resulting in being blazingly fast on PPC-Amigas.

- NEW: MUI 3.8 compatibility (instead of 5.0)

- NEW: zones (= rooms) are now saved in the config file so when starting the

app the next time no network scan is necessary, resulting in a much quicker

startup.

- NEW: to save on network traffic and CPU load, loading of the current queue

can now be deactivated in the Preferences.

- NEW: network scan can now be cancelled and it's no longer possible to start

a second scan while one is already running (this led to speakers being

listed multiple times in v1.0).

- NEW: queue lists are now cached in memory and are only reloaded if a change

has been reported by the according UPNP event.

- NEW: various zone values are now cached in memory and are no longer reloaded

when switching between zones.

- NEW: loading of album art for radio stations

- NEW: timeout for UPNP subscription has been increased from 10 minutes to

1 hour (same as with the original Sonos app).

- NEW: added progress in percent while loading a list in the music source

- NEW: added the possibility to cancel loading a list in the music source

- NEW: "Settings" menu to accomodate the menuitems "Preferences..." and "MUI..."

- NEW: "About MUI..." menuitem to follow the MUI styleguide

- CHANGED: shortcuts for "Next" / "Previous" from Ctrl-LEFT/RIGHT to Alt-

LEFT/RIGHT because on an Amiga keyboard the Ctrl key is quite far away from

the cursor keys.

- REMOVED: browsing the music library by song: it was useless and took ages,

it's much better to use the search instead.

- FIXED: renewal of UPNP subscription as well as unsubscription

- FIXED: TV input is now handled correctly.

- FIXED: improved handling when clicking like mad into the track position

slider.

- FIXED: disable play button if action "Play" is not available

- FIXED: lots of minor bugfixes

----------------

1.0 (16.08.2021)

----------------

- first public release for AmigaOS 4.1 and MorphOS 3.x

Contents of comm/misc/SonosController_OS3.lha

PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                 2825    4500  62.8% -lh5- 7873 Jan 31 18:34 SonosController.info
[unknown]                 3460    7850  44.1% -lh5- 7964 Feb  2 18:51 SonosController/Catalogs/dutch/SonosController.catalog
[unknown]                 3589    7972  45.0% -lh5- 0146 Feb  2 18:39 SonosController/Catalogs/german/SonosController.catalog
[unknown]                 3548    8115  43.7% -lh5- 05ab Feb  2 18:51 SonosController/Catalogs/italian/SonosController.catalog
[unknown]                 2824    6058  46.6% -lh5- 0589 Jan 31 18:35 SonosController/Rexx.info
[unknown]                  191     279  68.5% -lh5- c0c6 Jan 26 14:05 SonosController/Rexx/Next.rexx
[unknown]                 1465    1754  83.5% -lh5- beac Jan 26 14:13 SonosController/Rexx/Next.rexx.info
[unknown]                  187     247  75.7% -lh5- 955d Jan 26 14:05 SonosController/Rexx/PlayPause.rexx
[unknown]                 1465    1754  83.5% -lh5- beac Jan 26 14:13 SonosController/Rexx/PlayPause.rexx.info
[unknown]              2128832 4209328  50.6% -lh5- 785f Feb  2 23:06 SonosController/SonosController
[unknown]                 8097   23064  35.1% -lh5- 2326 Feb  2 21:48 SonosController/SonosController.guide
[unknown]                 1579    2025  78.0% -lh5- 698e Jan 31 18:35 SonosController/SonosController.guide.info
[unknown]                 4047    7759  52.2% -lh5- 157f Aug 30  2021 SonosController/SonosController.info
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        13 files 2162109 4280705  50.5%            Feb  4 03:54

Aminet © 1992-2024 Urban Müller and the Aminet team. Aminet contact address: <aminet aminet net>