tag:blogger.com,1999:blog-51861422024-03-05T20:42:21.447+00:00DABDigDabbling with digital media. Electronic programme guides, automated recording and networked audio.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.comBlogger206125tag:blogger.com,1999:blog-5186142.post-35679559422667636532022-05-15T18:21:00.002+01:002022-05-15T22:54:08.041+01:00Radio Now Playing plugin for LMS-Enhancing the Squeezebox (LMS) with information about what is now playing<font color="#008000"></font><div><br /></div><div>Over the years I have developed a few plugins for the Logitech Media Server (LMS aka slimserver).</div><div>A "plugin" is software that is added to LMS that brings additional functionality.</div><div><br /></div><div>My first, back in 2017, was to show what is now playing on <a href="https://www.fipradio.fr" target="_blank">FIP</a> - artist, track name, image and duration.</div><div>It was quite hard work to get the first one done because there is not very much documentation on how to do this in LMS and it is a long time since I have written some Perl and even when I did, it really was not very much.</div><div><br /></div><div>Anyway - I managed to get it working and had some <a href="https://forums.slimdevices.com/showthread.php?106900-Announce-Song-info-plugin-for-FIP-radio" target="_blank">good responses</a> from listeners.</div><div><br /></div><div>I built on that and made a more generic one for Radio France (and therefore retired the FIP one) - which included their stations in the various groups (for example FIP, France Musique, France Bleu).</div><div>I made contact with a couple of people in Radio France to explain what I was doing and they seemed OK with it ... so I built more into it ... to include the ability to browse the radio schedules and replay shows from the last few days.</div><div><br /></div><div>A few requests came in asking for stations from other broadcasters ... and I was able to make a few of them as well. Over time this meant that I had released plugins for:</div><div>ABC Australia</div><div>CBC Canada (English and totally different French service)</div><div>Planet Radio (Bauer Media) - Jazz FM, Planet Rock, Absolute etc</div><div>Supla (Finland)</div><div>KCRW</div><div>RTE (Ireland)</div><div><br /></div><div>Each one was heavily based on one of the earlier ones but as time went on the code was diverging and becoming painful to look after. If I had to fix or enhance something then there was a chance that the change would need to be applied to 2 or 3 other code bases.</div><div>In the back of my mind was building something more generic that would allow me to add or change things in one set of code and also add new stations by simply adding a new configuration file.</div><div><br /></div><div>I September 2021 I released the first version of this new plugin - called <a href="https://forums.slimdevices.com/showthread.php?115201-Announce-Radio-Now-Playing-plugin" target="_blank">Radio Now Playing</a>.</div><div><br /></div><div>The first station that I included in it was <a href="https://forums.slimdevices.com/showthread.php?115087-Testers-wanted" target="_blank">Juke Radio</a> - a new station from another LMS user. They were starting up and wanted to get their cover art (album covers) to appear in LMS but were not in a position to feed the image URL into their flac audio stream. So I offered to help and used this as the <a href="https://forums.slimdevices.com/showthread.php?115087-Testers-wanted&p=1032725&viewfull=1#post1032725" target="_blank">starting point</a> for the more generic plugin. As I write this, that station is currently off-air - but it gave me the incentive to turn my original idea into something real.</div><div><br /></div><div>Since then I have migrated some of the stations from individual plugins to this new one (Supla, KCRW and RTE) plus added a lot more. At the moment there are around 40 - 50 different station groups with many of them having multiple stations meaning that there are hundreds of stations in the plugin.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsJBeA6r6Cx5Q3_JBxz8NaYrknhCd3XAytUR-FLqs-5L4_CsSXW_E7LNMpMmpRRiGax2ZmY4Icirz4W-X7ki1Tftil1uq-n36BavYGHe_nruLdz2pAuSNKYnabjjJ7GcmT7nHt3T33DLRrlF-MkM38G9COaV26pFX7EF2HBH2lFSk2xHSVgA/s1173/lms-rnp1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="852" data-original-width="1173" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsJBeA6r6Cx5Q3_JBxz8NaYrknhCd3XAytUR-FLqs-5L4_CsSXW_E7LNMpMmpRRiGax2ZmY4Icirz4W-X7ki1Tftil1uq-n36BavYGHe_nruLdz2pAuSNKYnabjjJ7GcmT7nHt3T33DLRrlF-MkM38G9COaV26pFX7EF2HBH2lFSk2xHSVgA/s320/lms-rnp1.png" width="320" /></a></div><br /><div><br /></div><div><br /></div><div>All sorts of different techniques are used by the plugin to get the data that it needs to show.</div><div>The most common approach is to use the JSON data that the broadcaster presents to their own web interface.</div><div>It might be as simple as a HTTP GET to return something like:</div><div><span style="font-family: courier;">{</span></div><div><span style="font-family: courier;"><span> "artist": "Someone",</span><br /></span></div><div><span><span style="font-family: courier;"><span> "title": "Something",</span><br /></span></span></div><div><span><span><span style="font-family: courier;"><span> "image": "h t t p :// somewhere / xxx.jpg"</span><br /></span></span></span></div><div><span style="font-family: courier;">}</span></div><div>although it is usually a lot more complex than that.</div><div><br /></div><div>The approach has meant that sometimes it is really very easy to add in something new.</div><div>For example - a <a href="https://forums.slimdevices.com/showthread.php?116380-What-s-happened-to-quot-The-Mix-Radio-80s-quot-(UK)" target="_blank">request to the Squeezebox forum</a> asking about a station that had been removed from the usual radio listing service was added (along with 2 sister stations) in about 15 minutes without a single change to the underlying code - just the addition of a configuration file.</div><div><br /></div><div>From here .... the only way is up</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcf3axjObFMvwVZSoVGwRj0iyZ9qQ_MWcWDvHC9pzJSUVA4Zya-fu9Sob2n72JpXhdbM-ZeOuwhcKhmi5-FjnDwmD994j_oYuGTa5i-IpHpYAOHPZ6C5UexdKNEP1G9tHFXnGoZfpdFJmmTMsjTfLwTl0uxZZD3IZzSqbZnuZpmnUM2IisnA/s596/lms-rnp3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="315" data-original-width="596" height="169" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcf3axjObFMvwVZSoVGwRj0iyZ9qQ_MWcWDvHC9pzJSUVA4Zya-fu9Sob2n72JpXhdbM-ZeOuwhcKhmi5-FjnDwmD994j_oYuGTa5i-IpHpYAOHPZ6C5UexdKNEP1G9tHFXnGoZfpdFJmmTMsjTfLwTl0uxZZD3IZzSqbZnuZpmnUM2IisnA/s320/lms-rnp3.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div><br /></div><div><br /></div>Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-86486948354162082972018-10-01T16:35:00.001+01:002018-10-01T16:50:59.950+01:00Revitalising an Audiotron - Part 1- New life to an old device<span style="color: green;"></span><br />
<br />
///THIS IS A FIRST DRAFT TO GIVE SOME POINTERS SO THAT SOMEONE ELSE CAN TRY IT OUT .. it might have mistakes and sections that are not clear because this started simply as a scribble pad as I experimented.<br />
So - if you are going to try it out then let me know and we can go through things slowly together and improve the guide.<br />
Sorry - no pictures yet///<br />
<br />
<br />
Long ago I wrote about my first experiences with Internet radio devices. It was the Audiotron that I started with. It still works fine but I wanted to have a go at converting it so that it can have a new lease of life.<br />
My efforts of a while ago to get the "TurtleRadio" function within it live again and then to keep it alive plus the likelihood that keeping the old SMB client within the embedded Windows operating system working against changing household infrastructure would become more difficult in the future so I speculated to others about reusing much of the hardware but putting a Raspberry Pi inside the case to do most of the work.<br />
This resulted in a quick response from Sam Zantos to say that it he had already done it - although his approach used a combination of Raspberry Pi and Arduino.<br />
So I thought that I would try to do it myself and see how far I could get with only a Raspberry Pi and document the steps.<br />
<br />
I have had this working on a Rev 1 Raspberrry Pi and the Raspberry Pi 2 that was released in February 2015.<br />
<br />
In my case, I want it to become a "Squeezebox" client (and possibly a LMS server) so that it works with the other main components dotted around the house.<br />
The hardware parts (display, infra-red remote, keys, rotary encoder) would be largely the same solution regardless of the software - so I will cover that first.<br />
<br />
But before we get into that, it is important to note that if you follow the steps described here then you would be opening up your Audiotron and taking things apart and then putting them back together in a different way.<br />
Clearly any such actions need to be taken with great care since you are working with a device that connects to an electricity supply. At no time during these steps do you need the Audiotron power to be switched on - so disconnect that first of all. But if you do reconnect it then be very careful to ensure that everything is safe and you have done nothing silly like leaving a bare wires or some jumper wires lying around inside the case.<br />
<br />
<div style="text-align: center;">
<b>Everything described here is undertaken at your own risk.</b></div>
<br />
The detailed description of using a compatible display controller and rotary encoder at <a href="http://www.bobrathbone.com/raspberrypi_radio.htm" rel="nofollow">http://www.bobrathbone.com/raspberrypi_radio.htm<span id="goog_1934178227"></span><span id="goog_1934178228"></span></a> (the PDF in particular) was the ideal starting point.<br />
<br />
I wanted to do this in a way that would be easily reversible and something that could be tackled by someone with almost no electronics skills - so I have avoided cutting wires or soldering.<br />
<div>
<br />
This Part 1 goes through the steps to get the LCD and infra-red remote control working with a Raspberry Pi (RPi).<br />
<br />
So - here we go ...<br />
<br /></div>
<div>
Disconnect the Audiotron and open up the case - 5 screws on the back and 3 on each side. The 2 screws on each side towards the front are longer than the other. The case slides out backwards - nothing else is attached to it.<br />
Then use Dupont/jumper cables to join up various parts of the Audiotron to the RPi.<br />
<br /></div>
<div>
Disconnect the ribbon cable at JP4 - by carefully pulling it upwards using the edges of the connector - not the cable. There is a red line on the cable to denote pin 1.<br />
You can then plug in your jumper cables into the end of the cable - male in this cable and female onto the RPi GPIO connector.<br />
Following the numbering guide below.<br />
<br />
The Audiotron infra-red and rotary controller connects to JP3 on the Audiotron board.<br />
My Audiotron did not have ZIF a socket for this cable. If your is the same then simply pull the cable straight up and out of the socket - do not wiggle it.<br />
If yours has a ZIF socket then release the lock (typically by pulling up the sides) and the cable comes out very easily.<br />
<br />
This cable is more difficult to get connected to the RPi. I managed to find a supplier of an adapter that can take this 1mm pitch FFC/FPC cable and connect it to a breadboard. They even modified their standard product to make all new shipments use ZIF sockets. So top marks to Technological Arts, Inc of Toronto Canada. I bought 2 of their ADIMMFLEX24 connectors. These are for 24-way FPC cables but we do not need that many for the Audiotron. So take care when putting the cable in to make sure that you have pin 1 lined up exactly. They were contemplating making some adapters for different numbers of pins - so if you get the choice then you need a 10 way (rotary and IR) and a 22 way (keys).<br />
Now plug the adapter into the breadboard and then run cables to hook up the IR device.<br />
NOTE: I could not get the IR device to work at 3.3v (3v3) so I connected it up to a 5v pin on the RPi GPIO connector. This then brings the danger of feeding 5V back into the GPIO data pin and causing damage because it cannot take that much. So it is essential to put a resistor into the circuit.<br />
<br />
Note - shows how long ago I was working on this ... the RPi pin numbers below are for the very first Raspberry Pi model that had only 26 GPIO pins. Devices after that have 40 and that should make it much easier to connect up more of the Audiotron buttons. However, check carefully that the pins described below do remain the same for 40 pins versions (for example some might have dual purpose and need to be configured at boot time).</div>
<div>
<br /></div>
<table>
<tbody>
<tr><th>RPi<br />
Pin Number</th><th>RPi<br />
Pin Name</th><th>Audiotron<br />
LCD<br />
JP4</th><th>Audiotron<br />
Rotary knob and IR<br />
JP3</th><th>Audiotron<br />
Keypad<br />
JP2</th>
</tr>
<tr><td>1</td><td>3V3</td><td><br /></td><td><br /></td><td><br /></td></tr>
<tr><td>2</td><td>5V</td><td>2 (+5V)</td><td>1 (+5V) IR ***</td><td></td></tr>
<tr><td>3</td><td>GPIO2</td><td></td><td></td><td></td></tr>
<tr><td>4</td><td>5V</td><td></td><td></td><td></td></tr>
<tr><td>5</td><td>GPIO3</td><td></td><td></td><td></td></tr>
<tr><td>6</td><td>GND</td><td>5 (RW)</td><td>6 (GND)</td><td></td></tr>
<tr><td>7</td><td>GPIO4</td><td></td><td></td><td></td></tr>
<tr><td>8</td><td>GPIO14</td><td></td><td></td><td></td></tr>
<tr><td>9</td><td>GND</td><td>1 (GND)</td><td></td><td></td></tr>
<tr><td>10</td><td>GPIO15</td><td></td><td></td><td></td></tr>
<tr><td>11</td><td>GPIO17</td><td></td><td></td><td></td></tr>
<tr><td>12</td><td>GPIO18</td><td>14 (D7)</td><td></td><td></td></tr>
<tr><td>13</td><td>GPIO21 (GPIO27)</td><td></td><td></td><td></td></tr>
<tr><td>14</td><td>GND</td><td>3 (Contrast)</td><td></td><td></td></tr>
<tr><td>15</td><td>GPIO22</td><td></td><td>2 (DATA) ***</td><td></td></tr>
<tr><td>16</td><td>GPIO23</td><td>13 (D6)</td><td></td><td></td></tr>
<tr><td>17</td><td>3V3</td><td></td><td></td><td></td></tr>
<tr><td>18</td><td>GPIO24</td><td>12 (D5)</td><td></td><td></td></tr>
<tr><td>19</td><td>GPIO10</td><td></td><td></td><td></td></tr>
<tr><td>20</td><td>GND</td><td></td><td></td><td></td></tr>
<tr><td>21</td><td>GPIO9</td><td></td><td></td><td></td></tr>
<tr><td>22</td><td>GPIO25</td><td>11 (D4)</td><td></td><td></td></tr>
<tr><td>23</td><td>GPIO11</td><td></td><td><br /></td><td></td></tr>
<tr><td>24</td><td>GPIO8</td><td>6 (EN)</td><td></td><td></td></tr>
<tr><td>25</td><td>GND</td><td></td><td></td><td></td></tr>
<tr><td>26</td><td>GPIO7</td><td>4 (RS)</td><td></td><td></td></tr>
<tr><td></td><td></td><td>Unused:<br />
3 (Contrast adjustment)</td><td></td><td></td></tr>
<tr><td></td><td></td><td>7,8,9,10 (D1,D2,D3,D4)</td><td></td><td></td></tr>
</tbody></table>
<br />
<div>
*** Take care with the IR voltage. Mine would not work at 3.3V but Sam said that his did.<br />
If you go with 5V then you need to protect the GPIO pin with a resistor.<br />
So try 3.3V first (pin 1 on RPi) and if the IR tests do not work then try 5V but fit a resistor first (certainly if using an old RPi like I was). I put a 4k7 resistor in series between the data pin and the GPIO pin.<br />
<br />
The software starting point of these instructions is Squeezeplug - http://www.squeezeplug.eu<br />
At the time of writing the version of Squeezeplug was 7.5 (released December 2014).<br />
However, the instructions are likely to work with other releases but it might miss some of the prerequisites and you would have to resolve them yourself.<br />
<div>
<br /></div>
<div>
The commands below assume that you are logged into your Raspberry Pi as user "pi".</div>
<br />
<br />
Bringing the LCD to life:</div>
<div>
<br /></div>
<div>
Install LCDproc</div>
<div>
<br /></div>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">sudo apt-get install lcdproc</span><br />
<br />
Then check the version that was installed with the following command<br />
lcdproc -v<br />
<br />
This should respond with something like:<br />
LCDproc 0.5.5<br />
<br />
<br />
If the version is lower than 0.5.7 then this version does not include the built-in support for Raspberry Pi GPIO driven support of the HD44780-compatible LCD controller.<br />
<br />
Also - if you are using a "Raspberry Pi 2" then there might be a problem - depending on whether or not the version that you have recognises the RPi. I made a change to my version to handle this but at the time of writing this that update had not been made in the official source. If that is still a problem then I'll put my version somewhere for download or contact me if I have not yet done that.<br />
<br />
<br />
<pre style="white-space: pre-wrap; word-wrap: break-word;"># If you need to make and install the CVS version of LCDproc:
sudo apt-get install cvs autoconf automake
# download the CVS source, then make and install
cvs -z3 -d:pserver:anonymous@lcdproc.cvs.sourceforge.net:/cvsroot/lcdproc \
checkout -P lcdproc
# make and install the CVS source
cd lcdproc
sh ./autogen.sh
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
--enable-drivers=hd44780
make
# do a sanity check on LCDd before installing it
sudo invoke-rc.d LCDd stop
server/LCDd -f # a curses LCD emulation window should show.
<ctrl><c> # terminates LCDd
# install the new version over the old version
sudo make install
</c></ctrl></pre>
<div>
<br /></div>
<br />
<div>
<br /></div>
<div>
Configure LCDproc:</div>
<div>
<br /></div>
Then edit the LCDproc configuration file to use the <span style="white-space: pre-wrap;">hd44780 compatible LCD</span><br />
<span style="white-space: pre-wrap;">locate:</span><br />
sudo nano /etc/LCDd.conf<br />
<br />
Locate the section that starts<br />
## Server section with all kinds of settings for the LCDd server ##<br />
[server]<br />
<div>
<br /></div>
<div>
In there you will see<br />
DriverPath=<br />
If the full line is<br />
DriverPath=server/drivers/<br />
then it has been set to that via the installation of the special lcdproc<br />
but since the installation has been done then change it to the usual value<br />
DriverPath=/usr/lib/lcdproc/<br />
If you do not do this then the process will not start properly<br />
<br />
Then look for</div>
<div>
Driver=</div>
<div>
and above that are a list of supported devices.</div>
<div>
<br /></div>
<div>
Probably it shows:</div>
<span style="white-space: pre-wrap;">Driver=curses</span><br />
<span style="white-space: pre-wrap;">Change to</span><br />
<span style="white-space: pre-wrap;">Driver=hd44780</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Then look for</span><br />
<span style="white-space: pre-wrap;">## Hitachi HD44780 driver ##
[hd44780]
# Select what type of connectiDriverPath=server/drivers/on. See documentation for types.
ConnectionType=4bit</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">and change to</span><br />
<span style="white-space: pre-wrap;">ConnectionType=</span><span style="white-space: pre-wrap;">raspberrypi</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">The scroll down to find Size=</span><br />
<span style="white-space: pre-wrap;">and change from</span><br />
<span style="white-space: pre-wrap;">Size=20x4</span><br />
<span style="white-space: pre-wrap;">to</span><br />
<span style="white-space: pre-wrap;">Size=40x2</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<br />
<div>
<span style="white-space: pre-wrap;">You can also change the lcdproc startup and exit message to personalise things.</span><br />
<span style="white-space: pre-wrap;">These appear on the LCD screen</span><br />
<span style="white-space: pre-wrap;"># Hello message: each entry represents a display line; default: builtin
#Hello=" Welcome to"
#Hello=" LCDproc!"
# GoodBye message: each entry represents a display line; default: builtin
#GoodBye="Thanks for using"
#GoodBye=" LCDproc!"</span><span style="white-space: pre-wrap;">
</span><br />
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<div>
<span style="white-space: pre-wrap;">You could change these to something like:</span></div>
<div>
<span style="white-space: pre-wrap;"># Hello message: each entry represents a display line; default: builtin
Hello=" Welcome to"
Hello=" rpitron"
# GoodBye message: each entry represents a display line; default: builtin
GoodBye="Thanks for using"
GoodBye=" rpitron</span><span style="white-space: pre-wrap;">"</span></div>
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Next is to get the audio player installed.</span></div>
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<div>
<span style="white-space: pre-wrap;">Squeezelite with LCD support</span></div>
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<div>
<span style="white-space: pre-wrap;">sudo apt-get install libasound2-dev libflac-dev libmad0-dev libvorbis-dev libfaad-dev libmpg123-dev liblircclient-dev libncurses5-dev
</span></div>
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<div>
<span style="white-space: pre-wrap;">git clone https://github.com/fpasteau/squeezelite.git</span></div>
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<div>
<span style="white-space: pre-wrap;">cd squeezelite</span><br />
<span style="white-space: pre-wrap;">OPTS=-DINTERACTIVE make</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Assuming all goes well - it should look something like this:</span><br />
<span style="white-space: pre-wrap;">pi@rpitron ~/squeezelite $ OPTS=-DINTERACTIVE make
cc -Wall -fPIC -O2 -DINTERACTIVE main.c -c -o main.o
cc -Wall -fPIC -O2 -DINTERACTIVE slimproto.c -c -o slimproto.o
cc -Wall -fPIC -O2 -DINTERACTIVE buffer.c -c -o buffer.o
cc -Wall -fPIC -O2 -DINTERACTIVE stream.c -c -o stream.o
cc -Wall -fPIC -O2 -DINTERACTIVE utils.c -c -o utils.o
cc -Wall -fPIC -O2 -DINTERACTIVE output.c -c -o output.o
cc -Wall -fPIC -O2 -DINTERACTIVE output_alsa.c -c -o output_alsa.o
cc -Wall -fPIC -O2 -DINTERACTIVE output_pa.c -c -o output_pa.o
cc -Wall -fPIC -O2 -DINTERACTIVE output_stdout.c -c -o output_stdout.o
cc -Wall -fPIC -O2 -DINTERACTIVE output_pack.c -c -o output_pack.o
cc -Wall -fPIC -O2 -DINTERACTIVE decode.c -c -o decode.o
cc -Wall -fPIC -O2 -DINTERACTIVE flac.c -c -o flac.o
cc -Wall -fPIC -O2 -DINTERACTIVE pcm.c -c -o pcm.o
cc -Wall -fPIC -O2 -DINTERACTIVE mad.c -c -o mad.o
cc -Wall -fPIC -O2 -DINTERACTIVE vorbis.c -c -o vorbis.o
cc -Wall -fPIC -O2 -DINTERACTIVE faad.c -c -o faad.o
cc -Wall -fPIC -O2 -DINTERACTIVE mpg.c -c -o mpg.o
cc -Wall -fPIC -O2 -DINTERACTIVE interactive.c -c -o interactive.o
cc main.o slimproto.o buffer.o stream.o utils.o output.o output_alsa.o output_pa.o output_stdout.o output_pack.o decode.o flac.o pcm.o mad.o vorbis.o faad.o mpg.o interactive.o -lasound -lpthread -lm -lrt -ldl -lcurses -llirc_client -o squeezelite</span><span style="white-space: pre-wrap;">
</span><br />
<div>
<span style="white-space: pre-wrap;"><br /></span></div>
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Then make a backup of the original Squeezelite and copy the newly built one into place</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Edit /etc/default/squeezelite to add a -L option</span><br />
<span style="white-space: pre-wrap;">(in this special version of Squeezelite ... -L means use LCDproc)</span><span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Probably will find that the Squeezelite output is being alternated with information about the state of the Raspberry Pi.</span><br />
<span style="white-space: pre-wrap;">This is useful when checking that things are working - but is a distraction when in normal use.</span><br />
<span style="white-space: pre-wrap;">To disable this you can edit /etc/LCD.conf and change</span><br />
<span style="white-space: pre-wrap;">#AutoRotate=off</span><br />
<span style="white-space: pre-wrap;">to</span><br />
<span style="white-space: pre-wrap;">AutoRotate=off</span><br />
<br />
and<br />
#ServerScreen=off<br />
to<br />
ServerScreen=off<br />
<br />
<br />
Using infrared remote control:<br />
<br />
To get the infrared remote control working:<br />
<br />
sudo apt-get install lirc<br />
Then get lirc working with your remote control ...<br />
<br />
Edit /etc/modules to add:<br />
# Load RPi lirc support for GPIO driven IR device<br />
lirc_dev<br />
lirc_rpi gpio_in_pin=22<br />
<br />
e.g. using<br />
sudo nano /etc/modules<br />
Note - the number shown is GPIO22 which is pin 15 on the GPIO connector<br />
<br />
<br />
Edit /etc/lirc/hardware.conf (for example by using nano) and make it look like this:<br />
<br />
# /etc/lirc/hardware.conf<br />
#<br />
# Arguments which will be used when launching lircd<br />
LIRCD_ARGS=""<br />
<br />
#Don't start lircmd even if there seems to be a good config file<br />
#START_LIRCMD=false<br />
<br />
#Don't start irexec, even if a good config file seems to exist.<br />
#START_IREXEC=false<br />
<br />
#Try to load appropriate kernel modules<br />
LOAD_MODULES=true<br />
<br />
# Run "lircd --driver=help" for a list of supported drivers.<br />
DRIVER="default"<br />
# usually /dev/lirc0 is the correct setting for systems using udev<br />
DEVICE="/dev/lirc0"<br />
MODULES="lirc_rpi"<br />
<br />
# Default configuration files for your hardware if any<br />
LIRCD_CONF=""<br />
LIRCMD_CONF=""<br />
<div>
<br /></div>
<br />
create a new directory to hold the lirc configuration files<br />
<br />
cd $HOME<br />
mkdir rpitron<br />
cd rpitron<br />
<br />
Now create the configuration file for the remote control that you are going to use.<br />
In my case I want to use the remote control that came with the Audiotron.<br />
I have made some configuration files for that - which you should then download and copy to the default for lirc.<br />
<br />
wget ... (info to be added in here)...<br />
<br />
cp /etc/lirc/lircrc ./lircrc.backup<br />
cp audiotron.lircrc /etc/lirc/lircrc<br />
<br />
cp /etc/lirc/lircd.conf ./lircd.conf.backup<br />
cp audiotron.lircd.conf /etc/lirc/lircd.conf<br />
<br />
<br />
Then modify the startup parameters for the modified Squeezelite to include<br />
-i -F /etc/lirc/lircrc<br />
The "-i" means use Infrared via lirc - and the -F gives the location of the lirc remote control configuration file that maps the various key presses into Squeezelite commands.<br />
<br />
<br />
In theory ... if you now reboot then things should work!<br />
If they do not then you will have to go back through the steps one at a time to work out what went wrong.<br />
Most likely if that cables were connected to the wrong pins. Hopefully that did not break anything!<br />
<br />
You will probably find that the scroll rate on the display is too fast when long track names are being shown.<br />
<br />
In LMS (via web browser to port 9000 on your LMS server) you can change the scroll rate - via<br />
Settings/Player/Display - and change the scroll rate from 0.033 to 0.8 or some other value that suits.<br />
It does not look good when scrolling through - so probably best to set the title format (in Settings/Player/Basic) to something that is less likely to need scrolling.<br />
<br />
<br />
To be done:<br />
Add some pictures to show the inside of the Audiotron and the mass of cables.<br />
Clear up the various sections and provide breakpoints and test methods so that steps can be verified<br />
Upload the Audiotron remote control configuration files<br />
Add links<br />
Add list of parts<br />
<br />
Useful tools:<br />
To check or set GPIO pins<br />
WiringPi -<br />
<br />
While working on this I submitted updates to the modified Squeezelite (to make the -F parameter work) and to LCDproc to add support for Raspberry Pi 2 B.<br />
<br />
<br />
<br /></div>
Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-86106251308132076162014-08-19T18:49:00.000+01:002018-01-26T15:22:39.984+00:00Infra-red remote controlling LMS on RPiAcronym soup follows - but as a quick summary ... this is about controlling, via an infra-red remote control, the sounds from a Logitech Media Server.<br />
<br />
<div>
I wanted to get a <a href="https://uk.creative.com/p/sound-blaster/sound-blaster-x-fi-surround-5-1-pro" rel="nofollow">Creative Labs Soundblaster X-Fi Surround 5.1 Pro USB Sound Card</a> (part number SB-1095 with remote RM-820) working with one Raspberry Pi that is set-up as a Squeezebox music server (LMS) and player (Squeezelite) and a different RPi working with the <a href="http://iqaudio.com/?page_id=28" target="_blank">IQaudIO DAC</a> and a generic Philips remote control.</div>
<div>
<br /></div>
<div>
Getting the sound working was pretty straight-forward but I also wanted to make use of the infra-red remote controls to at least control the volume and ideally do much more.</div>
<div>
<br />
Why not simply use the web interface or a smartphone or tablet or a real Squeezebox to control it?</div>
<div>
Well, they can be used of course and are needed to select what to play but leaving the simple remote near the player makes it very easy for someone to pause the music when the phone rings, skip a track or pump up the volume.</div>
<div>
<br /></div>
<div>
Getting it to work required pulling a few things together and then doing some custom scripting.</div>
<div>
<br /></div>
<div>
Most of this is not Raspberry Pi specific - it should work on nearly any Linux system. The exception is the installation of the IR receiver for the Philips (and in theory any other regular remote).</div>
<div>
Note: there is no need to install an IR receiver for the Soundblaster because there is one built-in to the device and for this particular device this also works with the rotary control that is on top of the device (twist for volume and push for mute/pause).<br />
<br />
Here is what it looks like. This is the RPI with the IQaudIO DAC installed and the lid removed from the IQaudIO case. The DAC is attached to the RPi in the top right.<br />
Attached to that is the infra-red receiver - with the "eye" attached (using blue sticky stuff) so that a signal can get through the holes along the top edge of the IQaudIO case (you cannot see them),<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgClMoLFDNUddp35G4ja8Me7Ha4Dj29LEzW-lBZBIlc2AX21ka3PCOrNfYs6S3qF8Sy6klbfes0cjt4PmTW4mB_KXZy1e9rPjYavxVNZCTD74c5bRjE4Vv-kUmINa5Cl-hA97IQ/s1600/pw-rpi-lirc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgClMoLFDNUddp35G4ja8Me7Ha4Dj29LEzW-lBZBIlc2AX21ka3PCOrNfYs6S3qF8Sy6klbfes0cjt4PmTW4mB_KXZy1e9rPjYavxVNZCTD74c5bRjE4Vv-kUmINa5Cl-hA97IQ/s1600/pw-rpi-lirc.jpg" title="RPi with IQaudIO card and IR receiver" width="239" /></a></div>
<br />
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
So here is how I did it.</div>
</div>
</div>
<div>
<br />
I decided to use the "<a href="http://en.wikipedia.org/wiki/Expect" target="_blank">expect</a>" application to drive LMS because it has can send data in "telnet" style, as made available through the <a href="http://wiki.slimdevices.com/index.php/Logitech_Media_Server_CLI" target="_blank">LMS CLI</a>, and then take actions using a simple built-in scripting language based on the reply.</div>
<div>
<br />
Text below that is in <span style="color: red; font-family: "courier new" , "courier" , monospace;">monospaced font and/or red</span> shows what appears on the console or needs to be typed.<br />
<br />
The full "expect" script is below. Some key points from it are:<br />
<br />
<ul>
<li>This assumes that you have already installed Squeezelite and it has access to LMS either locally on same system or somewhere remote that can be accessed through the network (for example by installing <a href="http://www.squeezeplug.eu/" target="_blank">SqueezePlug</a> on RPi)</li>
<li>"expect" and possibly "telnet" might not be installed on your system. In which case you will have to install them yourself. On Debian-based systems (like Raspbian for Raspberry Pi) you can do this with<br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">sudo apt-get install expect telnet</span></li>
<li>If you are going to force actions via infra-red (IR) remote control then you will also need to install "lirc"<br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">sudo apt-get install lirc</span></li>
<li>You might not have the ALSA sound utilities installed. They are used to control some of the sound settings ... to install them you would do<br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">sudo apt-get install alsa-utils</span></li>
<li>Settings (such as where is the LMS server relative to this controlling client) are included in the file but they can also come from the settings file for Squeezelite ... in which case you probably would not have to edit this file at all.</li>
<li>Lines that start with "# " are comments. Some of them have some tracing statements to help if things are not working as expected. Simply remove the "#" from the front<br />e.g.<br /><span style="color: red; font-family: "courier new" , "courier" , monospace;"># puts "settings: host:\"$params(SBSHOST)\" and player MAC:\"$params(SLMAC)\""</span><br /><span style="font-family: inherit;">becomes</span><br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">puts "settings: host:\"$params(SBSHOST)\" and player MAC:\"$params(SLMAC)\""</span><br /><span style="font-family: inherit;">In this case this will output (puts = put string on console) the settings that were found</span></li>
<li><span style="font-family: inherit;">There are some special functions in there - such as treating the OK button as a special case (to restore things to a default configuration with middle volume, mute off, power on, shuffle off, repeat off) but they should be easy to understand simply by reading the script</span></li>
<li>Take care with line wrapping when copying the file below. It is up to you to work out where the blogging software has wrapped lines that should not have been wrapped. If you cannot do that then contact me directly and ask for a copy of the file to be sent by email to you</li>
<li>I stored this file as lmscli.exp in /home/pi/lmscli and performed a chmod on it<br />i.e. I logged in as "pi" then<br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">mkdir lmscli</span><span style="color: red; font-family: "courier new" , "courier" , monospace;"><br />cd lmscli</span><br />(then copy the file and save as lmscli.exp)<br /><br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">chmod +x lmscli.exp</span><br />You can test this by hand like this:<br /><span style="color: red; font-family: "courier new" , "courier" , monospace;">./lmscli.exp pause</span><br />You should see something like this if it worked (and any music that was playing via your local Squeezelite should have then paused or resumed)<br /><span style="font-family: "courier new" , "courier" , monospace;">spawn telnet 127.0.0.1 9090</span><span style="font-family: "courier new" , "courier" , monospace;"><br />Trying 127.0.0.1...</span><span style="font-family: "courier new" , "courier" , monospace;"><br />Connected to 127.0.0.1.</span><span style="font-family: "courier new" , "courier" , monospace;"><br />Escape character is '^]'.</span><span style="font-family: "courier new" , "courier" , monospace;"><br />login user pass </span><span style="font-family: "courier new" , "courier" , monospace;">b8:27:eb:aa:bb:cc<br /><br />pause</span><span style="font-family: "courier new" , "courier" , monospace;"><br />exit</span><span style="font-family: "courier new" , "courier" , monospace;"><br />login user ******</span><span style="font-family: "courier new" , "courier" , monospace;"><br />Connection closed by foreign host.</span><br />Note: the output above is slightly out of sequence but do not worry about it if it worked</li>
</ul>
<br />
<br />
Here is the lmscli.exp script (between but not including the separator lines):<br />
------------------------------------------------------------------------------<br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#!/usr/bin/expect -f</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># lmscli "Expect" script</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Author: Paul Webster</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Version: 0.1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Date: 29-Mar-2014</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">##</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Simple script (with no error checking) to send Logitech Media Server (SqueezeCenter) CLI commands to control a player</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Attempts to read parameters from Squeezelite defaults file - where syntax is</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># keyword="value"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># "Expect" and telnet are required</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># sudo apt-get install expect telnet</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Also - if this is to be driven via infrared remote (expected use) then also install lirc</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># sudo apt-get install lirc</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">set settingsfile /etc/default/squeezelite</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Defaults</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Values here are overridden by values found in /etc/default/squeezelite (if present)</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># SBSHOST = ip address of the LMS/Squeezebox Server</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># SBSPORT = port number on LMS that cli runs on (rarely changed)</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># SLMAC = the MAC address claimed by the player to be controlled - not always the real MAC address and is specified to Squeezelite</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># SBSUSER / SBSPASS = username and password to access LMS. Usually not configured - in which case leave as is</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># - if used then make sure that the user/pass fields are URL-encoded (e.g. %20 for space)</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">array set params {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> SBSHOST 127.0.0.1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> SBSPORT 9090</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> SLMAC 00:11:22:33:44:55:66</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> SBSUSER user</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> SBSPASS pass</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Override the defaults that are in this script with the ones from the Squeezelite settings</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">if {[file exists "$settingsfile"]} {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> set fp [open "$settingsfile" r]</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> set file_data [read $fp]</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> close $fp</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> # get lines</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> set data [split $file_data "\n"]</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> foreach line $data {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> #parse lines for config data</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> if {[regexp {^(\w+)\s*=\s*[\"|](.*)[\"|]} $line -> name value]} {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> # puts "found name of \"$name\" with value \"$value\""</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> set params($name) $value</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># puts "settings: host:\"$params(SBSHOST)\" and player MAC:\"$params(SLMAC)\""</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># The settings are now in place</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">set arg1 [lindex $argv 0]</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">set arg2 [lindex $argv 1]</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># puts "recieved arguments of \"$arg1\" and \"$arg2\""</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">spawn telnet $params(SBSHOST) $params(SBSPORT)</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">expect "Escape character is *"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">send "login $params(SBSUSER) $params(SBSPASS)\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">expect "login user"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">switch $arg1 {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">pause {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) pause\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* pause"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">bb {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) time -10\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* time"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">ff {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) time +10\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* time"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">muteoff {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) mixer muting 0\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* mixer muting"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">muteon {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) mixer muting 1\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* mixer muting"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">next {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) playlist index +1\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* playlist index"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">prev {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) playlist index -1\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* playlist index"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">power {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) power\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* power"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">voldown {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) mixer volume -2.5\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* mixer volume"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">volup {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) mixer volume +2.5\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* mixer volume"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">shuffle {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) playlist shuffle\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* playlist shuffle"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">repeat {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) playlist repeat\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* playlist repeat"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">stop {</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) stop\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* stop"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">ok { #Restore to base values</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) playlist repeat 0 1\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* playlist repeat"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) playlist shuffle 0\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* playlist shuffle"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) mixer volume 50\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* mixer volume"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) mixer muting 0\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* mixer muting"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> send "$params(SLMAC) power 1\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> expect "* power"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">default {puts "Unknown command issued to lmscli"}</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># End of switch (do not put on same line as the closing brace)</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">send "exit\n"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">expect eof</span><br />
------------------------------------------------------------------------------<br />
<br />
Next step is to get the commands that are sent by infra-red to get sent to lmscli.<br />
I have not covered all of the steps required to get lirc working (there are plenty of posts and FAQs about that elsewhere) - so all I am showing here are the configuration files to link lirc to the "expect" script.<br />
<br />
This first file should be saved as "root" in /etc/lirc as lircrc<br />
To be safe, make a copy of the file that is already there (if there is one).<br />
This particular file is set-up to handle 2 different remote controls, "RM-820" and "philipsdvd".<br />
Therefore you will see that many of the functions are repeated. By doing it this way it meant that I could have the same config file on two different RPi systems, making life easier for me.<br />
The full file is below - some key points from it are:<br />
<br />
<ul>
<li>the "remote =" line define which remote control this is referring to. It has to match the name used in other lirc config files (see more about that much further below)</li>
<li>the text after the "button =" has to exactly match what you have mapped the button presses to for the particular remote control - via the lirc config files (see more about that much further below)</li>
<li>I was still getting occasional lock-ups resulting in no sound coming out or sometimes a few digital burps and in worst case the Ethernet connection stops responding. So while trying to work out why that was happening (and I had tried what was the most recent official firmware and the work-in-progress FIQ handler at the time) I mapped one of the keys to a "reboot" command. I chose the long-back command on the RM-820 or the "scan" button on the Philips remote rather than Power for that as it very unlikely to be used accidentally and the Power key is mapped to the player power function on LMS because sometimes toggling the soft power button is enough to get things working again since Squeezelite releases something when it is told to power down. However, if you face similar problems and you do not have a button/function that you can readily map then you could edit the "#Power" section below to comment out the current "config =" line (by putting a "#" in front of it) and then put in "config = reboot". Applications/scripts that are invoked by lirc are run as "root" so you do not need to put "sudo" in front. This makes it very powerful and dangerous so take care<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
</li>
<li>the volume is controlled through ALSA (sound libraries) directly. Therefore I set the command to change the volume via ALSA and also repeat the command to LMS so that it shows the volume change. However, these are not really matched up so it would be easy to have LMS show a very different volume to what is really set in ALSA. To help get around that potential issue I configured things to use the "OK" button to try to return this setting (and some others) to defaults. There is similar trickery in place for the "mute" function for the same reason. The ALSA settings are stored so that they can be restored when needed. The hint for some of this came from <a href="http://alsa.opensrc.org/Usb-audio" target="_blank">http://alsa.opensrc.org/Usb-audio</a> and possibly other places that I found while hunting for a solution but have since forgotten.</li>
</ul>
<br />
<div>
<br /></div>
------------------------------------------------------------------------------<br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Power</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = power</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp power</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> # config = reboot</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_POWER</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp power</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Hold the menu button down for a long time ... to try to force a reboot</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = menu/back-long</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = reboot</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># On philipsdvd remote - there does not seem to be a long-hold ... so use the "scan" button - saved as SYSRQ</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_SYSRQ</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = reboot</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># S51 Volume Knob</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = knobvoldn</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = amixer sset Master 1- ; /home/pi/lmscli/lmscli.exp voldown</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = voldn</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = amixer sset Master 1- ; /home/pi/lmscli/lmscli.exp voldown</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_DOWN</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = amixer sset Master 1- ; /home/pi/lmscli/lmscli.exp voldown</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = knobMute</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = if [ `amixer sget Master|grep "Front Left:"|awk '{print $3}'` -gt 0 ]; then alsactl store -f ~/.asound.state; amixer sset Master 0; amixer sset 'Power LED' off; /home/pi/lmscli/lmscli.exp muteon; else alsactl restore -f ~/.asound.state; amixer sset 'Power LED' on ; /home/pi/lmscli/lmscli.exp muteoff; fi</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = mute</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = if [ `amixer sget Master|grep "Front Left:"|awk '{print $3}'` -gt 0 ]; then alsactl store -f ~/.asound.state; amixer sset Master 0; amixer sset 'Power LED' off; /home/pi/lmscli/lmscli.exp muteon; else alsactl restore -f ~/.asound.state; amixer sset 'Power LED' on ; /home/pi/lmscli/lmscli.exp muteoff; fi</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_AUDIO</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = if [ `amixer sget Master|grep "Front Left:"|awk '{print $3}'` -gt 0 ]; then alsactl store -f ~/.asound.state; amixer sset Master 0; /home/pi/lmscli/lmscli.exp muteon; else alsactl restore -f ~/.asound.state; /home/pi/lmscli/lmscli.exp muteoff; fi</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = play-pause</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = if [ `amixer sget Master|grep "Front Left:"|awk '{print $3}'` -gt 0 ]; then alsactl store -f ~/.asound.state; amixer sset Master 0; amixer sset 'Power LED' off; /home/pi/lmscli/lmscli.exp pause; else alsactl restore -f ~/.asound.state; amixer sset 'Power LED' on ; /home/pi/lmscli/lmscli.exp pause; fi</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_PAUSE</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = if [ `amixer sget Master|grep "Front Left:"|awk '{print $3}'` -gt 0 ]; then alsactl store -f ~/.asound.state; amixer sset Master 0; /home/pi/lmscli/lmscli.exp pause; else alsactl restore -f ~/.asound.state; /home/pi/lmscli/lmscli.exp pause; fi</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_PLAY</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = if [ `amixer sget Master|grep "Front Left:"|awk '{print $3}'` -gt 0 ]; then alsactl store -f ~/.asound.state; amixer sset Master 0; /home/pi/lmscli/lmscli.exp pause; else alsactl restore -f ~/.asound.state; /home/pi/lmscli/lmscli.exp pause; fi</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = knobvolup</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = amixer sset Master 1+ ; /home/pi/lmscli/lmscli.exp volup</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = volup</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = amixer sset Master 1+ ; /home/pi/lmscli/lmscli.exp volup</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_UP</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = amixer sset Master 1+ ; /home/pi/lmscli/lmscli.exp volup</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = bb</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp prev</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_REWIND</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp prev</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = ff</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp next</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_FASTFORWARD</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp next</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = shuffle</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp shuffle</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_SHUFFLE</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp shuffle</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = repeat</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp repeat</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_MEDIA_REPEAT</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp repeat</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_MEDIA</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp repeat</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = right</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp ff</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_RIGHT</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp ff</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = left</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp bb</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_LEFT</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp bb</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_STOP</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp stop</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = RM-820</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = ok</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp ok</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> prog = irexec</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> remote = philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> button = KEY_OK</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> repeat = 0</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> config = /home/pi/lmscli/lmscli.exp ok</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end</span><br />
<div>
<br /></div>
<div>
------------------------------------------------------------------------------</div>
<br />
Next is the set-up of lirc to know what hardware is being used.<br />
The file shown below is my config file from the RPi that has the Philips Remote control - which is getting the data via a simple IR receiver attached to GPIO pins on the RPi.<br />
However, I have left the RM-820 set-up in there as well - but commented out. So if you are trying to get the Creative device to work then uncomment those lines and comment out the Philips ones.<br />
This file is stored as "root" as /etc/lirc/hardware.conf<br />
------------------------------------------------------------------------------<br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># /etc/lirc/hardware.conf</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Arguments which will be used when launching lircd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#LIRCD_ARGS=""</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">LIRCD_ARGS=""</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#Don't start lircmd even if there seems to be a good config file</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#START_LIRCMD=false</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#Don't start irexec, even if a good config file seems to exist.</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#START_IREXEC=false</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#Try to load appropriate kernel modules</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">LOAD_MODULES=true</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Run "lircd --driver=help" for a list of supported drivers.</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Uncomment the line below (and comment out the one following it) for Creative Labs Soundblaster X-Fi USB DAC</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#DRIVER="alsa_usb"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">DRIVER="default"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># usually /dev/lirc0 is the correct setting for systems using udev</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Uncomment the line below (and comment out the one following it) for Creative Labs Soundblaster X-Fi USB DAC</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#DEVICE="hw:Pro"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">DEVICE="/dev/lirc0"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Uncomment the line below (and comment out the one following it) for Creative Labs Soundblaster X-Fi USB DAC</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#MODULES=""</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">MODULES="lirc_rpi"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Default configuration files for your hardware if any</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Uncomment the line below (and comment out the one following it) for Creative Labs Soundblaster X-Fi USB DAC</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#LIRCD_CONF="creative/lircd.conf.alsa_usb"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">LIRCD_CONF="/home/pi/lircd-philipsdvd.conf"</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">LIRCMD_CONF=""</span><br />
<div>
<br /></div>
------------------------------------------------------------------------------<br />
<br />
In this case you can see that I put the configuration file for the Philips remote into the /home/pi directory.<br />
Here is the contents of that file.<br />
<br />
------------------------------------------------------------------------------<br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># Please make this file available to others</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># by sending it to <lirc bartelmus.de=""></lirc></span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># this config file was automatically generated</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># using lirc-0.9.0-pre1(default) on Wed Apr 16 18:37:15 2014</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># contributed by</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># brand: lircd-philipsdvd.conf</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># model no. of remote control:</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"># devices being controlled by this remote:</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">#</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">begin remote</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> name philipsdvd</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> bits 8</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> flags RC6|CONST_LENGTH</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> eps 30</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> aeps 100</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> header 2690 871</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> one 462 422</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> zero 462 422</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> pre_data_bits 13</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> pre_data 0xEFB</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> gap 106190</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> toggle_bit_mask 0x10000</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> rc6_mask 0x10000</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> begin codes</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_POWER 0xF3</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_1 0xFE</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_2 0xFD</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_3 0xFC</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_4 0xFB</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_5 0xFA</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_6 0xF9</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_7 0xF8</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_8 0xF7</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_9 0xF6</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_0 0xFF</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_BACK 0x7C</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_DISPLAYTOGGLE 0x10</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_MENU 0xAB</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_CONTEXT_MENU 0x7D</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_UP 0xA7</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_DOWN 0xA6</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_LEFT 0xA5</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_RIGHT 0xA4</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_OK 0xA3</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_REWIND 0xDE</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_FASTFORWARD 0xDF</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_STOP 0xCE</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_PLAY 0xD3</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_PAUSE 0xCF</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_SUBTITLE 0xB4</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_ANGLE 0x7A</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_ZOOM 0x08</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_AUDIO 0xB1</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_MEDIA_REPEAT 0xE2</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_MEDIA 0xC4</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_SHUFFLE 0xE3</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> KEY_SYSRQ 0xD5</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"> end codes</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="color: red; font-family: "courier new" , "courier" , monospace;">end remote</span><br />
<div>
------------------------------------------------------------------------------</div>
<br />
<br />
For the Creative device I used the default that came with lirc (as you can see from the commented out set-up in the hardware.conf).<br />
<br />
For the particular IR module that I used I connected it to GPIO pin 23 - which is one of the pins that the IQaudIO device exports to its connectors on top of the card. I forced this pin to be used by adding the following lines to /etc/modules<br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">lirc_dev</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">lirc_rpi gpio_in_pin=23</span><br />
This might not be right for you - so you will need to check the documentation for the IR module that you are using to see how to do it for your particular device. Note - this is not needed for the Creative device because it has a built-in IR receiver and it passes the commands in through the USB connection not GPIO.<br />
<br />
<br />
As always, if you have questions then ask it in the comments section below and I'll try to answer it.</div>
<div>
<br /></div>
Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com4tag:blogger.com,1999:blog-5186142.post-35912518972956495712013-01-07T22:37:00.000+00:002013-01-07T22:41:59.983+00:00BBC DQF Local Radio - Part 2- BBC Local Radio weekday evenings now consolidated<span style="color: green;"></span><br />
<br />
In a <a href="http://dabdig.blogspot.com/2011/10/bbc-dqf-local-radio.html">post</a> in late 2011 I wrote about the plans to save money in BBC local radio by having a single show across all of the networks. At that time the idea was to have the show in the afternoon - do you remember the ensuing protests to save Danny Baker's show (BBC London).<br />
Well things changed a bit since then. Danny (along with some other afternoon presenters kept their job - although Danny subsequently found his position axed in late 2012) and the consolidation has happened in the evening slot.<br />
Today it went live. The new show takes the name of the presenter "Mark Forrest".<br />
All of the BBC local radio stations in England and Channel Islands now carry it - but they have opt-outs for local sport or other locally significant news - and for the launch show tonight all but Gloucester and Mersyside were broadcasting it.<br />
<br />
Compare this schedule view to the ones that I posted in 2011.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguJZFXe3ilInIGgTOhwjAzBiM57And6R6fP2xtLk5WI3RpY834leBYMRgDXNF_StXdb0W6X16cUAacPto1gkICDaawL7IRBYGAY790-4u0nIpPyHYvaFVSjW7W6Z34kR0XCyFF/s1600/BBCLocalRadio-20120107.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguJZFXe3ilInIGgTOhwjAzBiM57And6R6fP2xtLk5WI3RpY834leBYMRgDXNF_StXdb0W6X16cUAacPto1gkICDaawL7IRBYGAY790-4u0nIpPyHYvaFVSjW7W6Z34kR0XCyFF/s1600/BBCLocalRadio-20120107.jpg" /></a></div>
<br />
If you listened, what did you think of it?<br />
<br />
<br />Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-70491847447820833582012-05-26T16:35:00.000+01:002012-09-24T12:05:49.681+01:00Running SqueezeSlave on Raspberry Pi- <span style="color: green;">Running SqueezeSlave on Raspberry Pi</span>
<br />
<br />
Getting Squeezeslave to run on the RPi is very easy - here is a revised version of the instructions that I posted on the Raspberry PI forum.<br />
<i><span style="color: orange;">NOTE: This has been tested on Debian Squeeze (and I think it also works on Wheezy) - <strike>but will almost certainly need some updated to work on hard-float builds such as Raspbian</strike> and has been updated since first published to include instructions for Raspbian Wheezy (the hardfloat version of Debian that is endorsed by Raspberry Pi Foundation).</span></i><br />
<i><span style="color: orange;">Version numbers shown here were correct when this blog was written but it is possible that newer versions have been released since then ... and they might work better (or worse) so check on Sourceforge (for official release) and GoogleCode (for latest test versions).</span></i><br />
<br />
<br />
Most of what is shown below could be copied to a script and run - but there is no error checking so it is best to run as individual commands - e.g. copy / paste into SSH session<br />
<br />
NOTE: Some of the lines below are very long and get wrapped when presented in the blog.<br />
I have left a blank line after those long lines to make it clearer. If you are using copy/paste to replay the commands then make sure that you take the full line and unwrap it if needed.<br />
<br />
Start an interactive login to the Raspberry Pi then ...<br />
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">mkdir squeezeslavesrc</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">cd squeezeslavesrc</span><br />
<span style="font-family: 'Courier New',Courier,monospace;"># If on Debian (not Raspbian) then perform the next 2 commands</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">wget http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.2.311/squeezeslave-1.2-311-armel-lnx26.tar.gz</span></div>
<div style="color: green;">
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">tar -xvf squeezeslave-1.2-311-armel-lnx26.tar.gz</span></div>
</div>
<div style="color: green;">
<br />
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;"># If on Raspbian (a hardfloat version of Debian) then perform the next 3 commands</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">wget http://squeezeslave.googlecode.com/files/squeezeslave-1.2-367-armhf-lnx31.tar.gz</span></div>
<div>
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">tar -xvf squeezeslave-1.2-367-armhf-lnx31.tar.gz</span><br />
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span>
<span style="font-family: 'Courier New',Courier,monospace;">mv squeezeslave-1.2-367 squeezeslave</span><br />
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
</div>
<div>
<br class="Apple-interchange-newline" /></div>
<br />
<br />
<span style="font-family: 'Courier New',Courier,monospace;"># at this point you have the various binaries for ARM/Linux so no need to build from source</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># and you now have enough to run squeezeslave</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># however, by downloading some more files you can make it easier to start/stop squeezeslave</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># to test what you already have - assuming you are already running LMS somewhere on the same LAN</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># type</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">./squeezeslave -L</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># if this lists audio device(s) then things will probably work for you</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># if there are none then try (note - this should not be necessary on Raspbian)</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo modprobe snd-bcm2835</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># and then</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">./squeezeslave -L</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># to run it as a player ...</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">./squeezeslave -D -F</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># to quit from that display mode hit the "q" key</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># remember - if you are doing this via SSH from a different room then</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># you will only hear something if you are at the device (e.g. the speakers on your TV!)</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span>
<span style="font-family: 'Courier New',Courier,monospace;"># If it acts like it is playing something but you cannot hear it then it might be that the sound on the Raspberry PI is set too low (in ALSA).</span><br />
<span style="font-family: 'Courier New',Courier,monospace;"># In that case - quit (q) Squeezeslave and run</span><br />
<span style="font-family: 'Courier New',Courier,monospace;">sudo alsamixer</span><br />
<span style="font-family: Courier New, Courier, monospace;">then boost the sound by pressing the up arrow key (and the "esc" key to exit and then try running Squeezeslave again</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># assuming all was OK from above - then you can do more to automate the startup</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">wget http://sourceforge.net/projects/softsqueeze/files/squeezeslave/squeezeslave-1.2.311/squeezeslave-1.2-311-src.tar.bz2</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># If you do not have bzip2 on your system you might need</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo apt-get install bzip2</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">tar -xjvf squeezeslave-1.2-311-src.tar.bz2</span></div>
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo cp squeezeslave /usr/bin</span></div>
<div style="color: green;">
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo cp squeezeslave-1.2-311/config/squeezeslave.init.debian /etc/init.d/squeezeslave</span></div>
</div>
<div style="color: green;">
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo chmod 755 /etc/init.d/squeezeslave</span></div>
</div>
<div style="color: green;">
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo update-rc.d squeezeslave defaults</span></div>
</div>
<div style="color: green;">
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">echo "SBSHOST=\"-F\"" > defaultsqueezeslave</span></div>
</div>
<div style="color: green;">
<br />
<span style="font-family: 'Courier New',Courier,monospace;"># the backslashes above are needed to make the quotation marks go into the file</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># if you look at the file afterwards it should look like this</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># SBSHOST="-F"</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># if you needed to run the modprobe to get sound working then also do this</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">echo "modprobe snd-bcm2835" >> defaultsqueezeslave</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># then copy the file over to become the default configuration for SqueezeSlave</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># Done this way because trying to use sudo to echo direct to /etc/default does not work on some builds</span></div>
<div style="color: green;">
<br />
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo cp defaultsqueezeslave /etc/default/squeezeslave</span></div>
</div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># then to start it ...</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo /etc/init.d/squeezeslave start</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># and to stop it (for example if something else is trying to use the audio port and sharing not working)</span></div>
<div style="color: red;">
<span style="font-family: 'Courier New',Courier,monospace;">sudo /etc/init.d/squeezeslave stop</span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"><br /></span></div>
<div style="color: green;">
<span style="font-family: 'Courier New',Courier,monospace;"># it should start automatically on the next reboot of your Raspberry Pi</span></div>
<div>
<div style="color: green;">
<br /></div>
<div style="color: green;">
Here is a short video showing the result ... to be honest there is not much to see because it SqueezeSlave is running in the background. However, it does show how quickly the Raspberry Pi reboots.</div>
<div style="color: green;">
<br /></div>
<div class="separator" style="clear: both; color: green; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/IfH8W0k3qkQ?feature=player_embedded' frameborder='0'></iframe></div>
<div style="color: green;">
<br /></div>
<div style="color: green;">
<br /></div>
<div style="color: green;">
I also had this synchronising with a couple of real Squeezeboxes. It needed some tweaks to the timing offsets in LMS to get it to be closely in sync.</div>
<div style="color: green;">
<br /></div>
<div style="color: green;">
If you plan to add more SqueezeSlave devices to your set-up then you will need to change the fake MAC address that SqueezeSlave uses. It defaults to 00:00:00:00:00:01</div>
<div style="color: green;">
I will probably update the default to set the SqueezeSlave MAC address to be the real MAC address of the Raspberry Pi (which in turn is usually derived from the serial number of the device).</div>
<div style="color: green;">
<br /></div>
<div style="color: green;">
If you did download and unpack the source - then it is also possible to build your own copy of SqueezeSlave. I did this as well and it worked - but you have to build the "contribs" as well to get the ARM version. I might update this blog entry with how to do it if there is some interest.</div>
<div style="color: green;">
Remember, though, if you are on Raspbian then start from a software release that is known to work on hard-float (armhf).</div>
<div style="color: green;">
<br /></div>
<span style="color: orange;">September 2012 - updated with some extra information for Raspbian users</span></div>
Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com63tag:blogger.com,1999:blog-5186142.post-83763241592583761162011-10-09T17:34:00.003+01:002011-10-10T08:23:22.618+01:00BBC DQF Local Radio- <font color="#008000">BBC DQF and Local Radio</font><br /><br />The BBC DQF* proposals include significant changes for BBC Local Radio.<br />The main change is for those that listen in the afternoon.<br />One plan is to reduce the number of different shows that are on around the country and, for example, have nearby regions share a show.<br /><br />I have attached 2 pictures - from my BBC Local Radio listings. The first show the afternoon and the second the evening.<br />You will see that there is already a lot of "show sharing" in the evenings - so I guess that the afternoons will end up looking somewhat similar - in other words the shows become less "local".<br /><br />If you do listen, or know people that do, or if you have other reasons for caring about this (whether agreeing or disagreeing) then BBC is wants feedback at <a href="http://www.bbc.co.uk/aboutthebbc/dqf/">http://www.bbc.co.uk/aboutthebbc/dqf/</a><br /><br /><br />You can see the two screenshots by clicking on the image below<br /><a href="http://goo.gl/photos/88fFf9215y" imageanchor="1" style="clear:right;margin-bottom:1em;margin-left:1em"><img border="0" src="https://lh4.googleusercontent.com/-AbdiweN3rrU/TpHIwuPNeOE/AAAAAAAAAOY/gxQYAGPsStA/s160-c/BBCDQFRadio.jpg"></a>Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-59521093527864648232010-02-23T12:12:00.009+00:002011-02-16T23:26:59.697+00:00Mobile applications using Reciva database- <span style="color:#008000;">Reciva on the go</span><br /><br /><span style="font-style:italic;">Update: Radiostar app updated mid-Feb 2011</span><br /><br />The Reciva database of thousands of radio stations and On Demand content (Podcasts and "Listen Again") is used within many different radio devices - many of which I have mentioned here before. There is also an application from Grace Digital that is able to control a Reciva-based radio over UPnP, but until very recently there has not been a software-only application that uses the Reciva database.<br />Reciva announced a framework to support such things long ago - Reciva Connect.<br /><br />Finally in February 2010 there is something that uses it - in fact there are two iPhone/iPod Touch applications.<br /><br />The first off the block, at the start of February, was easybox from Switzerland with their "<a href="http://www.easybox.ch/produits/radiostar">Radiostar</a>" application. <a href="http://www.easybox.ch/images/radiostar_57x57.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 57px; height: 57px;" src="http://www.easybox.ch/images/radiostar_57x57.png" alt="" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvJKCNYwqn4JtmfydQqNGIMJ7or5_jBCM6SuUheAXS_dtSHFAsM_Z82RZQUQOsPqwd8Pg0HtGaE2OHGgcNeW1LSwiQj0bDvSqnhV9QzRD8l5oRhxJXoVg2Kb1ZO4LOvIG6fuNI/s1600-h/Radiostar1.PNG"><img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvJKCNYwqn4JtmfydQqNGIMJ7or5_jBCM6SuUheAXS_dtSHFAsM_Z82RZQUQOsPqwd8Pg0HtGaE2OHGgcNeW1LSwiQj0bDvSqnhV9QzRD8l5oRhxJXoVg2Kb1ZO4LOvIG6fuNI/s200/Radiostar1.PNG" alt="" id="BLOGGER_PHOTO_ID_5443709240704476562" border="0" /></a><br /><br />This application features searching and playing stations from the Reciva database and adds the ability to recommend to friends and followers on Twitter and Facebook.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJxu3ixybd6Kdeahnu6E2qF_cMO7KQjqRgfnKxswv7wAhwBeFO8zWivjbVUEPHorlz8oRsVwfuPOk4iQGfg0dY0qTogPzyjCsv4jdmCJxgZWKcxBSfa6CQejgdML0bJErfWY7C/s1600-h/Radiostar2.PNG"><img 0="" 10px="" style="cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJxu3ixybd6Kdeahnu6E2qF_cMO7KQjqRgfnKxswv7wAhwBeFO8zWivjbVUEPHorlz8oRsVwfuPOk4iQGfg0dY0qTogPzyjCsv4jdmCJxgZWKcxBSfa6CQejgdML0bJErfWY7C/s200/Radiostar2.PNG" alt="" id="BLOGGER_PHOTO_ID_5443709243958837250" border="0" /></a><br />It can also show what friends are recommending - however, I think it was finding people outside my personal friends list. The developers told me that they would take a look to try to resolve (or explain) it.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaQTbI9WNcT7IHoggUqo212eXS68IzyHodYXr7aihebAVNbzgG81fseHRyZQRB9cr3ePbHeL0wrS7QNx03_2pKyXrTI88dWOwJ1oMn_1FPekT11evRIONw5QvhGeqAJ8QeZxfC/s1600-h/Radiostar3.PNG"><img 0="" 10px="" style="cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaQTbI9WNcT7IHoggUqo212eXS68IzyHodYXr7aihebAVNbzgG81fseHRyZQRB9cr3ePbHeL0wrS7QNx03_2pKyXrTI88dWOwJ1oMn_1FPekT11evRIONw5QvhGeqAJ8QeZxfC/s200/Radiostar3.PNG" alt="" id="BLOGGER_PHOTO_ID_5443709251980777474" border="0" /></a><br /><br />The use of the back-end Reciva system is relatively simple for now - it allows searching and browsing through the stations and then playing them. Included is the "Now Playing" information from SHOUTcast-compatible streams and a small level meter jumps around at the bottom of the screen.<br /><br />They describe it like this:<br /><br /><em>Radiostar: The Social Internet Radio Player<br /><br />Radiostar lets you stream more than 10,000 stations from the award winning Reciva directory service directly to your iPhone. Interact with your friends, see what they are listening to, recommend a station on your Facebook timeline and tweet directly from within the application.<br /><br />- 10,000+ radio stations from the Reciva directory<br />- Support of the MP3 and AAC audio codecs (Feb 2011 update adds WMA)<br />- Facebook integration: see what ones friends are listening to or recommending, post recommendation to the facebook news feed<br />- Twitter integration: tweet which station you are listening to<br />- Browse stations by location and genre<br />- Search a station by name<br />- Stream over WiFi and, if desired, over 3G/EDGE<br />- Support of many playlist formats like PLS, RAM, M3U and ASX<br />- Feb 2011 update adds <br /> -Plays On Demand content (Listen Again material)<br /> -Supports Apple AirPlay so can stream to devices like Apple TV</em><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaAV49gjrYOJxY0qvLtDaaidu_e5C9UZLicsxlBn1Gp6b-PY-fCksPzKm9lQPFSEBgHp-2vSE4WEJEGlpNh7Ea5wMxQSomX1ku0DStbvz7O90UeIWpi7YCHn8lKjHpdDUOI89s/s1600-h/Radiostar4.PNG"><img 0="" 10px="" style="cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaAV49gjrYOJxY0qvLtDaaidu_e5C9UZLicsxlBn1Gp6b-PY-fCksPzKm9lQPFSEBgHp-2vSE4WEJEGlpNh7Ea5wMxQSomX1ku0DStbvz7O90UeIWpi7YCHn8lKjHpdDUOI89s/s200/Radiostar4.PNG" alt="" id="BLOGGER_PHOTO_ID_5443709260542603410" border="0" /></a> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoGL1OVQlXq2bjKk3FXvDr807O2_lUyVm5YqtEqEoUphlSZ6jQ5c9xOnnmGLnCMXCZQL-BUgmu_JRvVQZAm15deDX3fhUiyHw3bZU9RUADTCpJzno0iJu09LKM5VGMEx9IDWQT/s1600-h/Radiostar5.PNG"><img 0="" 10px="" style="cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoGL1OVQlXq2bjKk3FXvDr807O2_lUyVm5YqtEqEoUphlSZ6jQ5c9xOnnmGLnCMXCZQL-BUgmu_JRvVQZAm15deDX3fhUiyHw3bZU9RUADTCpJzno0iJu09LKM5VGMEx9IDWQT/s200/Radiostar5.PNG" alt="" id="BLOGGER_PHOTO_ID_5443709263164011666" border="0" /></a> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFZZCe46ywI3BGPKBJW-taV8lTWKHQSVAkM8drT3_DyUEnGuX5rvDUE31d8hNdixCgdiKtbgyGeHRexvT5z6xnSJC6nzgz4OQw6m6m3ZJFgil1ePwJtHW7rWHBnnMaU96tA9G9/s1600-h/Radiostar6.PNG"><img style="margin: 0pt 0pt 10px 10px; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFZZCe46ywI3BGPKBJW-taV8lTWKHQSVAkM8drT3_DyUEnGuX5rvDUE31d8hNdixCgdiKtbgyGeHRexvT5z6xnSJC6nzgz4OQw6m6m3ZJFgil1ePwJtHW7rWHBnnMaU96tA9G9/s200/Radiostar6.PNG" alt="" id="BLOGGER_PHOTO_ID_5443713256410289522" border="0" /></a><br /><br />The launch price is 1.79GBP.<br /><br /><hr /><br /><br />When comparing with a Reciva-based radio there are a number of other things that are missing.<br />For example<br />- being able to access "On Demand" content (Feb 2011 update resolves this)<br />- "My Stuff" list that users can maintain via the Reciva web site<br />- extra codecs (e.g. OGG, RealAudio and WMA) (Feb 2011 update adds WMA)<br />They have acknowledged that a priority is to add support for WMA (and have included it on Feb 2011 update)<br /><br />Then, like the buses, another app follows quickly behind ... "Reciva iRadio" ... it is from Reciva themselves.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHN8UqGPaMoMjuke1cIeAL3b7goSfB26ubudOwaayxRAH4EjwjG2z09jULTx8FwQrKENnJ31CgLhQPaNzHvw3B2dWBSvhll9y6AKEyy1eFodyWK4WqXZ2aPK3qkK3_CB02gs2D/s1600-h/Reciva1.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHN8UqGPaMoMjuke1cIeAL3b7goSfB26ubudOwaayxRAH4EjwjG2z09jULTx8FwQrKENnJ31CgLhQPaNzHvw3B2dWBSvhll9y6AKEyy1eFodyWK4WqXZ2aPK3qkK3_CB02gs2D/s200/Reciva1.PNG" alt="" id="BLOGGER_PHOTO_ID_5443715145739101698" border="0" /></a><br /><br />It costs more (2.79GBP at launch) - and lacks the social network integration, but adds in a lot more integration with the Reciva back-end system plus support for WMA and OGG.<br /><br />Here is how Reciva promote theirs:<br /><em>Listen to thousands of radio stations from all over the globe, from local AM/FM stations to DAB, HD Radio, DMB, Satellite and Internet only streams! Available on your iPhone using 3G and WiFi or iPod Touch using WiFi. You can listen to it all on the Reciva iRadio app...<br /><br />Using a industry recognised leader of Internet Radio platforms, the Reciva directory of audio streams will give you access to News, Sports, Music, Weather, Travel plus over 60 other Genres. You can also choose from over 150 locations all over the world so you will never be without your local station, however far from home you travel.<br /><br />Catch-up radio is also available via the 'Listen Again' feature (subject to availability from individual station), and you can store your favourites for instant access to the stations you want to listen to. With a fully functioning search option, a recommendation engine and access to thousands of podcasts you have everything you need from a radio app..<br /><br />Register your Reciva iRadio app at www.radios.reciva.com to add additional features!<br /><br />Key Features<br /><br />· Reciva Radio directory featuring over 17,000 live streams, 30,000 on-demand streams and 10,000+ podcasts<br />· Easy to use interface<br />· Store favourites directly to the app or via the Reciva website<br />· Search by Location, Genre or Keyword<br />· Pause live radio<br />· Play all stream formats including AAC, MP3, WMA and Ogg Vorbis<br />· Instantly view your listening history<br />· Add your own podcast feeds to your favourites list<br />· See station logos where available<br />· Play in background<br />· Create folders of your favourite stations so you can easily access lists like your summer or Christmas music<br />· Get recommendations based on your listening habits<br />· Enter your custom URLs for stations not available on the Reciva database</em><br /><br />Reciva iRadio claims more stations than Radiostar because of the additional codec support. It is the WMA support that provides the biggest additional set (at present there are 5983 WMA stations marked as "Passed" in the Reciva database).<br />Unlike the Radiostar application, there is no presentation of the title/artist information and no level meters.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCyWg8dNQLwKoot0buad6-bpJoRAKoCN-L2EX4C-czYxvsrxqJE8P6wa0y7Dd-0R5mN6_Ayz2bE0rHfWV1cjDlGHKncfV0m2uwvsPJlV6nbTniNM3ayW8jAGTo7Msynj4p27PF/s1600-h/Reciva9.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCyWg8dNQLwKoot0buad6-bpJoRAKoCN-L2EX4C-czYxvsrxqJE8P6wa0y7Dd-0R5mN6_Ayz2bE0rHfWV1cjDlGHKncfV0m2uwvsPJlV6nbTniNM3ayW8jAGTo7Msynj4p27PF/s200/Reciva9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5443720428559845650" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqqPpPths54NH-SfTLcRPZvUNSDpHfN3PTm01vWljGmrT4rNNpAw651bfSLLs0J-VEjb1oPozkaAatWOoFAzqsmeYNUWVA6a5_90GMBKVs-mqWfGnwXbZ1ITL9KdygW3qol9iR/s1600-h/Reciva2.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqqPpPths54NH-SfTLcRPZvUNSDpHfN3PTm01vWljGmrT4rNNpAw651bfSLLs0J-VEjb1oPozkaAatWOoFAzqsmeYNUWVA6a5_90GMBKVs-mqWfGnwXbZ1ITL9KdygW3qol9iR/s200/Reciva2.PNG" alt="" id="BLOGGER_PHOTO_ID_5443715145768182482" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9rerTjcfFytFBGixiKR0vlmbCR1HWNRuwXXNVEkAzRixfh1Y9q_lwuY1hxxMGdI7xw4Qr2ZciOyNrQsKrJXXRIOQ8aZCif7Ia5nC1IdgC4vZ4C81dvpaP2kynwbgRYCOYvHMg/s1600-h/Reciva3.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9rerTjcfFytFBGixiKR0vlmbCR1HWNRuwXXNVEkAzRixfh1Y9q_lwuY1hxxMGdI7xw4Qr2ZciOyNrQsKrJXXRIOQ8aZCif7Ia5nC1IdgC4vZ4C81dvpaP2kynwbgRYCOYvHMg/s200/Reciva3.PNG" alt="" id="BLOGGER_PHOTO_ID_5443715150817165986" border="0" /></a><br /><br />Navigation through regions to stations is similar to other applications.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJqyPDxzh7xRJ8Q7ErqpXbWLuo8b_XJdXHEOzSNys7i4MS9_gTfgvqXkLRtnxQiWdvFArpedMChDgdL5ijJHwYeUh4zYpq6cwJeiObX6eQdSwJ_xGruNLK11ZlDZWSgBCLg3d/s1600-h/Reciva4.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJqyPDxzh7xRJ8Q7ErqpXbWLuo8b_XJdXHEOzSNys7i4MS9_gTfgvqXkLRtnxQiWdvFArpedMChDgdL5ijJHwYeUh4zYpq6cwJeiObX6eQdSwJ_xGruNLK11ZlDZWSgBCLg3d/s200/Reciva4.PNG" alt="" id="BLOGGER_PHOTO_ID_5443715164348898114" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQjCZOIk_j7TELywdmThvY8WsZzcJUFjgu77NLYZAdE1kU7OWRtysJhlpP_Ehh5GdhHz6SNxWdHTEdeCpydWEq9R6VXLfPLELt4xF-XPIe_TesACDr3sNP6brU9lBqRWtJYm9U/s1600-h/Reciva5.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQjCZOIk_j7TELywdmThvY8WsZzcJUFjgu77NLYZAdE1kU7OWRtysJhlpP_Ehh5GdhHz6SNxWdHTEdeCpydWEq9R6VXLfPLELt4xF-XPIe_TesACDr3sNP6brU9lBqRWtJYm9U/s200/Reciva5.PNG" alt="" id="BLOGGER_PHOTO_ID_5443715163779963234" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMQ5nYd6ABeU3lYe6NWQ9bmUKmTdqGoHv-MfRRxkj2mvODR2_jFohVLTS8kCEHG9Gx-dXbxU8BNnPpm1aZ2Q4y9TxboA91a5z3UV0I0E9inFUl7CJkp-NDl0v3XtOVJzyv4oFG/s1600-h/Reciva6.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMQ5nYd6ABeU3lYe6NWQ9bmUKmTdqGoHv-MfRRxkj2mvODR2_jFohVLTS8kCEHG9Gx-dXbxU8BNnPpm1aZ2Q4y9TxboA91a5z3UV0I0E9inFUl7CJkp-NDl0v3XtOVJzyv4oFG/s200/Reciva6.PNG" alt="" id="BLOGGER_PHOTO_ID_5443716048557709650" border="0" /></a><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg19MoIcg_kV65udfW1gCLU9-Nluat27SwDMxvMw7KUC255HPqjz4LvrLpNph3L2DrhKUh7x023jp4Gk8k9MSkMX57WMjzmXVYltVIJ1gzdiVRrrwDDP6qrJwYA-gCePX4p4T05/s1600-h/Reciva8.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg19MoIcg_kV65udfW1gCLU9-Nluat27SwDMxvMw7KUC255HPqjz4LvrLpNph3L2DrhKUh7x023jp4Gk8k9MSkMX57WMjzmXVYltVIJ1gzdiVRrrwDDP6qrJwYA-gCePX4p4T05/s200/Reciva8.PNG" alt="" id="BLOGGER_PHOTO_ID_5443716058082349554" border="0" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJA_DyHO24u2dBBIO9ojInleNYJl1txxHUX0NuNEHJFEGahpTcFQZAdm12Pz7AejorbI1gTRSphHozXQFMnFBzzMpfp8vTNky2rDhKGd8M5uOyHVPl1RFmlO4QxE3WWf59Q_rL/s1600-h/Reciva7.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 134px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJA_DyHO24u2dBBIO9ojInleNYJl1txxHUX0NuNEHJFEGahpTcFQZAdm12Pz7AejorbI1gTRSphHozXQFMnFBzzMpfp8vTNky2rDhKGd8M5uOyHVPl1RFmlO4QxE3WWf59Q_rL/s200/Reciva7.PNG" alt="" id="BLOGGER_PHOTO_ID_5443716054365014402" border="0" /></a><br /><br /><br />Also - I could not find a way to update the "My Stuff" information from within the application - but maybe I have not found the right way to do it yet.<br /><br /><br />I have bought both and have them up and running. For me, both work as advertised. All I need now is a much longer lasting battery on my iPhone!Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-13999560351605175332010-01-12T18:30:00.005+00:002010-01-12T20:29:40.216+00:00CES 2010 roundup- <font color="#008000">What was new (in internet radio) at CES 2010?</font><br /><br />I have been to a couple of CES events in Las Vegas over the last few years. The glitz of the strip seems like the right atmosphere for this huge event. However, this year I attended only vicariously through various blogs and news releases.<br /><br />With 2700 exhibitors covering the whole of the consumer elexctroics world you can imagine that internet-enabled audio devices do not get the same sort coverage as 3D-TV or tablet devices.<br /><br />Anyway - there were only a few internet radio items of note that I noticed.<br />In this post I have picked out the Innovation Awards "Honoree" status but none made it to "Best of".<br /><br /><br />Pure - announced it is now selling products in America.<br />They have listed an office in San Francisco and I presume have tweaked some of the devices (e.g. remove DAB, FM tuning steps, ensure power supplies work).<br />There is a new sub-set of their site at <a href="http://www.pure.com/us" target="_blank">http://www.pure.com/us</a><br />New models previewed (due to ship later in 2010) were the Oasis Flow and Sirocco 550.<br /><a href="http://www.pure.com/images/pressreleases/oasis-sirocco.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 650px; height: 200px;" src="http://www.pure.com/images/pressreleases/oasis-sirocco.jpg" border="0" alt="Pure Oasis Flow and Scirocco 550" /></a><br /><br /><br />The <a href="http://www.pure.com/products/product.asp?Product=VL-61212" tragte="_blank">Oasis Flow</a> looks, at first glance, the same as their old splashproof Oasis DAB radio. It has touch controls and OLED display (like the Evoke Flow) and adds FM plus Internet radio.<br />The <a href="http://www.pure.com/products/product.asp?Product=VL-61224" target="_blank">Sirocco 550</a> is a mini-hifi featuring radio (Internet, DAB/DAB+/DMB and FM), CD, iPod Dock and USB for flash drive. Sound promises to be good, with a CLass-D amp and 40W RMS per channel.<br /><br />Naim - launched the <a href="http://www.naimaudio.com/unitiqute" target="_blank">UnitiQute</a> a sibling to their Uniti (which arrived around May 2009).<br /><a href="http://www.naim-audio.com/unitiqute/img/qute_01_600.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 300px; " src="http://www.naim-audio.com/unitiqute/img/qute_01_600.jpg" border="0" alt="" /></a><br /><br />This high-spec device has a preamplifier with two analogue inputs, five 24bit/192kHz-capable digital inputs and conventional radio (DAB/FM) along with internet radio (vTuner powered). It can also play from UPnP-AV sources along with a USB socket to play from a Flash drive and proper Apple iPod connectivity. It also comes with a large remote control.<br /><br /><a href="http://www.naim-audio.com/unitiqute/img/qute_07_600.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 300px; " src="http://www.naim-audio.com/unitiqute/img/qute_07_600.jpg" border="0" alt="" /></a><br /><br />Compared to the Uniti, it lacks the CD drive and appears to have a slightly lower spec analogue preamp.<br />Looks like the price will be around 2000 USD.<br /><br /><br />Logitech - picked up 7 honoree awards overall - 2 of which were from the ex-Slimdevices group - namely the Squeezebox Radio and the (not yet shipping) Squeezebox Touch. Both have been extensively covered <a href="http://dabdig.blogspot.com/2009/09/logitech-finally-announce-touch-and.html" target="_blank">here</a> before - so not so much to say this time.<br /><br />Sonos - had an award for the Controller 200 and ZonePlayer S5 - again products covered <a href="http://dabdig.blogspot.com/2009/11/first-all-in-1-device-from-sonos-s5.html" target="_blank">here</a> before.<br /><br /><br />A related group is the IMDA - Internet Media Device Alliance - held one of their meetings at the event - http://www.imdalliance.org/<br />Hopefully we will see some progress on standards for use by broadcasters, device suppliers and software builders that will further enhance how internet radio access on-line content ... audio and related information (for example cover art, biographies, "buy now" and EPGs should all become easier to access and present).<br />Last year they published presentations from their CES event on their site - so watch out for it happening again this year.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-61876343892537374612009-11-21T20:08:00.007+00:002009-12-10T08:28:38.262+00:00Remote control of Reciva-based radios- <span style="color: rgb(0, 128, 0);">Controlling your Reciva radio without touching it</span><br /><br />Many, but not all, internet radios come with a remote control. Sometimes they are very simple credit-card sized devices, sometimes they can be big dedicated boxes needing two hands to use with all sorts in between.<br /><br />Basic models tend to use infrared and more sophisticated use TCP/IP over Wi-Fi - with a proprietary application protocol on top.<br /><br />The underlying firmware in the Reiva-based radios generally have infrared control enabled even if there is no infrared hardware included in the radio. This fact has been exploited by a few people who have opened up their radios and inserted a supported infrared detector (<a href="http://internetradiohack.blogspot.com/2007/05/remote-control.html" target="_blank">one</a> directly wired to the Barracuda board and another simply using the USB connection ... but I cannot find it while writing this).<br />Some other Reciva users have gone down a software route by using the unofficial Sharpfin patch to run a small web server on the radio and have it present a simple web interface that in turn performs some radio management commands. An example of this is documented in the <a hred="http://groups.google.com/group/sharpfin/browse_thread/thread/29b543918e80d313/ffb87ab6baae4e05?lnk=gst&q=enhance#ffb87ab6baae4e05" target="_blank">Sharpfin mailing list</a>.<br /><br />However, Reciva have been working away quietly in the background and have implemented a way to achieve almost complete control of the radio (including managing the alarms, examining presets, tuning to radio stations and even browing the menu).<br />The initial implementation of UPnP-AV (aka DLNA) within the Reciva software performed the basic minimum - allowing it to access a media server and allowing the user to browse the music then select and play tracks.<br />This was extended to all external control points to send music to it - but the big addition was to add a Reciva specific service (RecivaRadio:0.0) that opened up much more of the proprietary capabilities of the radios.<br /><br />A regular UPnP-AV controller will not know how to use these functions - so using them requires custom software. But the open nature of this (standard protocols and self-documenting web services calls) means that building something is relatively straight-forward ... using existing tools I was reading presets, searching the database and changing stations in less than 15 minutes.<br /><br />This service is what I presume is being used by the <a href="http://dabdig.blogspot.com/2009/11/control-your-grace-digital-reciva-based.html" target="_blank"> Grace Digital remote control</a> for the iPhone & iPod Touch.<br /><br />If you plan to build something then here are some pointers - and let me know via a comment here or direct via other routes:<br />Check the power-on status - since some commands will not work if the radio is (soft) powered off.<br />Some of the calls require the use of a NavigatorId - obtain one with RegisterNavigator. This can then be used for the session - and should be released at the end with ReleaseNavigator (otherwise, I presume, the radio will eventually run out of memory).<br />The local controls at the radio appear to be disabled while controlling from remote - which may well be the most important reason to ReleaseNavigator.<br /><br /><span style="font-weight:bold;">Presets:</span><br />There can be more presets supported in the software than are accessible via the buttons on the device itself. Plus - the number available can be different on each radio. So use GetNumberOfPresets to determine how many there can be.<br />GetPreset returns the data of a single preset. Preset0 is a special case - it is automatically set to be the last station played.<br />Presets can be set in 2 ways - one is via SetPreset (see the return from a GetPreset to better understand the data required) and the other is to set the current playing station to a preset via SaveCurrentStationAsPreset<br />Tune to a given preset with PlayPreset.<br /><br /><span style="font-weight:bold;">Stations:</span><br />The station database can be searched (SearchForStationByName) and browsed (GetMenu).<br />It is also possible to get the station logo.<br />Here is an example of the return from one of these (GetPlaybackDetails):<br /><br /><pre><span style="font-size:85%;"><span style="font-family:courier new;"><reciva><br /><playback-details><br /> <state>Playing</state><br /> <station id="9256" custommenuid="0"><br /> <logo>http://www.dandelionradio.com/images/logo.jpg</logo><br /> </station><br /> <playlist-entry></playlist-entry><br /> <stream id="fa3be23929b7339f9d2ce90f2c84ec37"><br /> <url>http://www.dandelionradio.com/DandelionRadio.pls</url><br /> <title>Dandelion Radio</title><br /> <album-art-url>http://www.dandelionradio.com/images/logo.jpg</album-art-url><br /> </stream><br /> </playback-details><br /></reciva></span></span></pre><br /><br /><span style="font-weight:bold;">Volume:</span><br />Take care here - some devices have an analogue volume control. So if the volume is turned down at the radio then you will not be able to adjust it from remote.<br /><br /><br />I have not yet managed to navgate the sub-menus - the item ids do not seem to work when I try them ... work in progress.<br /><br />Some of the commands return an error (for example GetIsUpgradeAvailable) and there may well be differences between firmware versions (GetCurrentServicePack) - plus it returns all possible source types even if the hardware is not installed - so try to make your code flexible and extensible.<br /><br />There is a lot more in there - such as:<br /><ul><br /><li>Volume controls (up / down / mute)</li><br /><li>Playlists (view list, change order, remove item)</li><br /><li>Soft Power (on / off)</li><br /><li>Alarms (view, set, delete)</li><br /><li>Reply (equivalent to hitting the reply buttton)</li><br /><li>Device (hardware id, upgrade, language)</li><br /></ul><br /><br /><br />For those who do not know how to examine the available services - but who are simply interested in knowing what is there ... I have uploaded a dump of the available set from firmware v257-a-865-a-400 (very recent beta) to the very useful "UPnP/AV Device Capability Database" being run as part of a research project at Institut für Pervasive Computing of Johannes Kepler Universität, Linz, Austria.<br /><br />The specific entry for the recent firmware is at:<br /><a href="http://www.upnp-database.info/service.jsp?serviceId=464" target="_blank">http://www.upnp-database.info/service.jsp?serviceId=464</a><br /><br />You could help developers who do not have access to all radios/firmware by making your own upload of data by downloading the <a href="http://www.upnp-database.info/" target="_blank">Magpie tool</a> from their site. It would be particularly interesting to see the output from a Reciva-based Grace radio to check if there are any extra capabilities that are being used by their remote ... but I suspect that they have no more than is in the current firmware. If you do download and run the tool then make sure that it is not blocked by your firewall - and let it sit listening for a few minutes while waiting for a radio to advertise itself. Powering the radio off and on is likely to make it broadcast immediately. The radio should then appear on the left. Click on it - and it should start analysing. Once complete you can upload via the "Submit Data" button in the top left. After you finish the process you can view you new data on the site.<br />Note - there is not much point uploading data for a device/firmware combination that is already there so do browse the device list first (some of the names might not be obvious - and there a devices from all sorts of suppliers not just Reciva of course).Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com10tag:blogger.com,1999:blog-5186142.post-7389143349943491822009-11-21T16:37:00.008+00:002010-08-06T09:40:11.679+01:00Control your Grace Digital (Reciva-based) radio from iPhone- <font color="#008000">Grace release free iPhone app</font><br /><br /><span style="font-style:italic;">*UPDATED to add info about Reciva-branded version</span><br /><br /><a href="http://www.gracedigitalaudio.com/iphone/" target="_blank">Grace Digital</a> have released a free application to the Apple AppStore (for iPhone and iPod Touch) that can be used to control their range of Reciva-based internet radios (hence it does not work with their <a href="http://dabdig.blogspot.com/2009/01/new-internet-radios-from-grace-digital.html" target="_blank">GDI-IRP600</a> which is not Reciva-based). UPDATE: In July 2010 a Reciva-branded version of the same application appeared (from PlugPlayer). This is not free but provides control for all modern Reciva-based radios.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLrb1hRB-L5a5mHqa194bH_rAntoaX4kBLHEoKMfjAHnv0evSdWcgOYsZFPohVxe1hTE7U5MKBWrKT8fpSMyB32hkm8CACRbNfeeLWYAJkJraMtc981LNuX5Tcn2Sug9h-ryl-/s1600/grace-iphoneremote.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 214px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLrb1hRB-L5a5mHqa194bH_rAntoaX4kBLHEoKMfjAHnv0evSdWcgOYsZFPohVxe1hTE7U5MKBWrKT8fpSMyB32hkm8CACRbNfeeLWYAJkJraMtc981LNuX5Tcn2Sug9h-ryl-/s320/grace-iphoneremote.jpg" border="0" alt="Grace iPhone Remote" id="BLOGGER_PHOTO_ID_5406601726107823042" /></a><br /><br />This is by no means the first internet radio that can be readily controlled by an iPhone application - there are excellent examples for Sonos (from Sonos) and Logitech Squeezebox (from 3rd-parties) plus Apple's own. But it is the irst that I am aware of for a Reciva-based device.<br /><br />There are a few things to watch ut for. First off - make sure that you have recent firmware in the radio (at least v257-865-a-349) then if it is connected to your network wirelessly and you do not want to have to go and wake it up to control it then change the wifi configuration so that it stays connected while "sleeping".<br /><br />It includes access to pretty well everything that you can do from the radio - including viewing presets, "My Stuff", accessing the alarms, changing volume (and muting), accessing Pandora (if you have it) plus accessing the entire Reciva library of stations.<br /><br />I have not had a look at the underlying network communications to see how it works - but I suspect that it is using UPnP-AV for at least part of its operation (if not all of it). It does not work with non-Grace radios so I expect that it is looking for a manufacturer id or model number in the initial discovery process ... watch out for further reports.<br /><br />You can watch an informative 4 minute video about it from Grace<br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7ClcHvmmOPc&hl=en_GB&fs=1&rel=0&color1=0x2b405b&color2=0x6b8ab6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7ClcHvmmOPc&hl=en_GB&fs=1&rel=0&color1=0x2b405b&color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />Links:<br />Grace Digital Audio: <a href="http://www.gracedigitalaudio.com/iphone/" target="_blank">http://www.gracedigitalaudio.com/iphone/</a><br />Reciva press release: <a href="http://corporate.reciva.com/pages/112#more-112" target="_blank">http://corporate.reciva.com/pages/112#more-112</a>Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-40552903865196651652009-11-21T11:34:00.005+00:002009-11-23T17:38:35.538+00:00Roberts ColourStream- <font color="#008000">Roberts' first touch-screen internet radio due soon</font><br />Roberts joining the band of suppliers of touch-screen internet radios.<br />The COLOURSTREAM <a href="http://www.dnacaraudio.co.uk/roberts-radio-colour-stream-wi-fi-radio-internet-radio-colour-stream-wi-fi-radio/" target="_blank">is reported</a> (at dnacaraudio.co.uk) as having a 3.5-inch colour touch-screen - and, as is clear from the photo, an iPod dock, in addition to DAB and FM.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrtdx3hAHoROYwaBcOICel3JNwp83hDTZf6Tsxzxp2DyMQYuAmFB-JaSbzgGR1b3vi2F-rGAUTpUoe1M5huQvYRlNqGXnqZ619jLzoY2IN4aaeIF2T24YvfVDZH87H0oUiSueg/s1600/roberts-colourstream.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 283px; height: 189px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrtdx3hAHoROYwaBcOICel3JNwp83hDTZf6Tsxzxp2DyMQYuAmFB-JaSbzgGR1b3vi2F-rGAUTpUoe1M5huQvYRlNqGXnqZ619jLzoY2IN4aaeIF2T24YvfVDZH87H0oUiSueg/s400/roberts-colourstream.jpg" border="0" alt="Roberts COLOURSTEAM" id="BLOGGER_PHOTO_ID_5406521615634629922" /></a><br /><br />Remaining feature list broadly the same as other devices - Aux In, headphone socket, line out, UPnP-AV.<br /><br />No mention yet if the touch screen will be used for display of other matieral - such as cover art - or if they will be following the current trend of providing links to social networking systems and last.fm.<br />I presume that there is a matching Sangean model for non-UK audience but have not seen a sign of it yet.<br /><br /><br />At the time of writing this - it is not visible on the <a href="http://www.robertsradio.co.uk/" target="_blank">Roberts site</a><br /><br />Priced around 400 Euro - but not available to ship yet.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-69354386022682282992009-11-18T08:37:00.008+00:002009-11-24T15:52:06.862+00:00Roberts Stream83i - Sturdy-looking multi-function radio- <font color="#008000">Internet, DAB and FM radio</font><br /><br />I hear the question .... "Sturdy-looking" is that some sort of euphemism?<br />The answer - Yes it is. My first reaction was that it looked like a car battery!<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfMRfYODeGZZanrMRvr7DBBEqC7KAcb28-s7eZMvQLzQlMh58MfVeKZ_7zz-iyMMsHcDuiJjxvmcImknMOg0eIVC54N7zenN_C45DRx6b99Cvv1hygCBhBfzDthSKegf3rNTH7/s1600/roberts-stream83i.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfMRfYODeGZZanrMRvr7DBBEqC7KAcb28-s7eZMvQLzQlMh58MfVeKZ_7zz-iyMMsHcDuiJjxvmcImknMOg0eIVC54N7zenN_C45DRx6b99Cvv1hygCBhBfzDthSKegf3rNTH7/s320/roberts-stream83i.jpg" border="0" alt="Roberts Stream83i" id="BLOGGER_PHOTO_ID_5405882947094370978" /></a><br /><br />However, beauty is more than skin-deep. It looks like a capable device. It has the classic radio facilities (FM with RDS and DAB - including a telescopic aerial and 5 presets per band) plus Internet radio via Frontier Silicon portal over wired and wireless (b and g modes) and playback of media files on USB flash disk and from local LAN via UPnP-AV.<br /><br />There are 3 speakers and audio connections both in and out (headphone, line in, line out)<br /><br />Access to last.fm to play back music (and "scrobbling" of non-Internet radio tracks) is supported - with dedicated buttons for love/ban on both the radio and the remote control.<br /><br />It looks like this has been designed to be sit well in the bedroom (as well as elsewhere in the house). For example, 2 different alarms with selectable volume level, dimable display (hopefully including a complete blackout), plus sleep and snooze functions.<br /><br />The alarms can be set to play a buzzer, Internet radio, DAB radio, FM radio or Last.fm - an can be set as a one-off, daily, week-end or week-day.<br /><br />For those who plan to move the radio between different locations - for example taking it away on holiday (for you not it!) there is the ability to store four different connection profiles - which should make it easier when you bring it back home or if you visit the same places regularly.<br /><br />No mention of DAB+ on the site on the manual - which might be a problem in the future (or it could simply be an omission in the documentation).<br />More details over on <a href="http://www.robertsradio.co.uk/Products/Internet_radios/STREAM83i/index.htm" target="_blank">the Roberts site</a> including a detailed <a href="http://www.robertsradio.co.uk/assets/User_guides/Internet_Radios_PDFs/ug_Stream83i.pdf" target="_blank">User Guide</a>Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com3tag:blogger.com,1999:blog-5186142.post-71351619091087093552009-11-16T17:05:00.005+00:002009-11-16T18:11:05.199+00:00First all-in-1 device from Sonos - S5- <font color="#008000">Sonos S5</font><br />Sonos have released their first all-in-1 device.<br /><a href="http://www.sonos.com/whattobuy/zoneplayers/s5/default.aspx" target="_blank"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 496px; height: 317px;" src="http://www.sonos.com/whattobuy/zoneplayers/s5/micro/images/gallery_5_Kitchen.jpg" border="0" alt="Sonos S5" /></a><br /><br />It has the core Sonos zone-player functionality along with built-in speakers ... 5 of them.<br /><a href="http://www.sonos.com/whattobuy/zoneplayers/s5/default.aspx"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 385px; height: 222px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYiagmBqXV6Wa4UH3EQ7IBgogU8gTe8oQNiFsbCj-uGVSJlVUviWTroOERM5siNf0VnXATWPvWjiIvJdi1xF7jbkH2YkyY0wUMDmidy-5p5qkS24qB-gk0HkIeAzTWWosBFZEI/s400/sonos-s5-int.jpg" border="0" alt="Sonos S5 internals" id="BLOGGER_PHOTO_ID_5404761331888307634" /></a><br /><br />Reports from early adopters have been positive - with people praising the sound in particular.<br />The device has minimal controls - so a remote control device is needed. The promotional material makes it clear that an iPhone or iPod Touch is the expected route - but the Sonos dedicated controller works fine but I expect that this is more important to existing Sonos customers than it will be to new ones given the price of the Sonos CR200.<br /><br />Like all Sonos devices, it is very easy to set-up and start using - and Sonos excel at expanding to become a multi-room set-up.<br /><br />If this were to be your first Sonos device then you would need to wire it to your router (possibly via an intermediate wired hub) - or buy an extra Sonos player or bridge. This is because the Sonos players do not use regular wi-fi for their wireless implementation - one of the Sonos devices has to connect via wire. Subsequent ones can connect wirelessly (via the other Sonos device(s).<br /><br />On the back of the device are connections for Ethernet (x2 - 1 for your LAN and the other to allows other wired devices to benefit from its network connection), sockets for mini-jacks for audio-in and headphone plus the power socket.<br />The power cable prevents the device from sitting fluch against the wall - but given that there is a hole for audio to come out through at the back then sitting it a little away from a wall is likely to make it sound better.<br /><br />Listed at 399USD (349GBP) it is at the top end of the price range for such devices - but it is a lot less expensive than buying Sonos ZonePlayer and new speakers.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-67829445336661433182009-11-05T22:22:00.004+00:002009-11-12T15:44:25.037+00:00O2 Joggler radio app seems close- O2 and Imagination Technologies press release<br />Promised from the start - the O2 Joggler has had a placeholder in the bottom right of the front screen since launch ... showing that internet radio would be coming soon.<br /><br /><a href="http://o2.co.uk/familytour"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-0qJ98FZqgOUDXgXlld8J73XoXCLO66xS81UcSvkzctJN7vEuwulzep_MNks83S0OlxLC1XL28Qn6OiaajGFecgX5wOyQdrZY1xKtgeTjrLjsJ-UA_o0Gbl8IUXtI68FcWdzL/s320/jogglerradio1.jpg" border="0" alt="Joggler radio announcement" id="BLOGGER_PHOTO_ID_5403242709532881506" /></a><br /><br /><br /><a href="http://yourfamily.o2.co.uk/o2familyjoggler"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 308px; height: 149px;" src="http://www.o2.co.uk/assets2/nemo/devicev2.JPG" alt="O2 Joggler" border="0" /></a><br /><br /><br />Finally a press release has been issued by Imagination Technologies - the parent of Pure - saying that they will be providing the application - including a customised version of the Pure Lounge.<br />From the <a href="http://www.imgtec.com/News/Release/index.asp?NewsID=488">press release</a> it looks like the number of stations will be limited.<br /><br />To quote:<br />Sally Cowdry, O2 Marketing Director said: "Internet Radio will transform the experience for O2 Joggler customers and with PURE we are partnering with the market leading provider. PURE’s parent company, Imagination, has delivered this capability in an easy-to-use interface which brings the UK’s most popular radio stations onto the device."<br /><br />Will be interesting to see how much of the Pure Sensia functionality is ported over to the Joggler Flash front-end. On the asusmption that it is free upgrade to the device then I expect that it will be much simpler.<br /><br />http://yourfamily.o2.co.uk/o2familyjoggler<br /><br />(I have one - and have had some involvement behind the scenes with other aspects of the overall offering)<br /><br />Update: 12/11/2009<br />Message arrived on the device (picture included) and upgrades of devices started.<br />No On Demand contentPaul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-6507490033236787382009-09-17T10:30:00.012+01:002009-09-17T23:26:34.435+01:00Touchscreens are in fashion - Pure Sensia- <span style="color: rgb(0, 128, 0);">Pure Sensia</span><br /><br />There have been a few new touchscreen models announced over recent weeks - with the IFA event in Berlin chosen as the launch venue.<br /><a href="http://dabdig.blogspot.com/2009/09/logitech-finally-announce-touch-and.html" target="_Blank">Logitech</a> and <a href="http://dabdig.blogspot.com/2009/08/revo-ikon-more-promise-than-your.html" target="_blank">Revo</a> showed off their devices there. Pure launched the <a href="http://dabdig.blogspot.com/2009/09/pure-siesta-flow.html" target="_Blank">Siesta Flow</a> - but strangely seemed to hold back on the new <a href="http://www.pure.com/products/product.asp?Product=VL-61294" target="_blank">Sensia</a> touchscreen model - now it even has its own <a href="http://www.touchmyradio.com/" target="_blank">microsite</a>.<br /><a href="http://www.absoluteradio.co.uk/images/galleries2/20090917/1253174873_1253110489_sensia_lifestyle_black.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 540px; height: 409px;" src="http://www.absoluteradio.co.uk/images/galleries2/20090917/1253174873_1253110489_sensia_lifestyle_black.jpg" alt="Pure Sensia" target="_blank" border="0" /></a><br />The device has Internet radio, DAB and FM - and is the first model to support some of the <a href="http://radiodns.org/">RadioDNS</a> protocols, in particular <a href="http://radiodns.org/documentation/">RadioVIS</a>. That probably explains why the first place to have the details was Absolute Radio ... who are among the first broadcasters to support this.<br />This means that the radio is able to collect more information about what is being broadcast by connecting back to the Internet ... in a standard way. This could include What's On, Album artwork and potentially a click-to-buy option.<br /><br />Other features of note.<br /><ul><li>A 5.7-inch 640x480 capacitive touchscreen (that is bigger than the fore-mentioned rivals are offering)</li><li>DAB, DAB+ (via future upgrade), FM and Internet Radio<br /></li><li>2 15W speakers<br /></li><li>Remote control</li><li>Headphone socket</li><li>Stereo Out</li><li>Alarm</li><li>UPnP connectivity for playing media from home LAN (like the Flow models)<br /></li><li>iPod connection via extra dock</li><li>Optional battery pack<br /></li><li>Various internet apps - including Facebook (not at launch), Twitter and the weather forecast<br /></li><li>Available in 4 different colours</li><li>Priced around 250GBP and slated for delivery in mid-October</li></ul>There is also some talk of a public API coming so that 3rd-parties can develop add-ins for it.<br /><br />Absolute Radio are running a contest to win some of these up until launch day - see <a href="http://www.absoluteradio.co.uk/listen/pure_sensia/index.html">here</a> for more information.<br /><br />So - while the radio may have the outward design of a 1960s guess at a space-age gadget ... it does have abilities that are futuristic.<br /><br />There are more good looking photos over at the <a href="http://www.touchmyradio.com/#tabs-7" target="_blank">Pure microsite</a> site<br />What Hi-Fi has a <a href="http://www.whathifi.com/Video/EXCLUSIVE-NEWS-PREVIEW-Pure-Sensia-radio/Vidcasts/" target="_blank">video</a> but it looked like a fairly slowly running UI. Probably late beta code with some time left to speed things up before release.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-40905515208733571432009-09-04T18:52:00.005+01:002009-09-09T08:31:53.773+01:00Pure Siesta Flow- <font color="#008000">Pure Siesta Flow</font><br /><a href="http://www.pure.com" target="_blank">Pure</a> used the IFA event in Berlin to <a href="http://www.pure.com/press/release.asp?ID=339" target="_Blank">officially launch</a> their new Siesta Flow.<br />Word had come out a few weeks ago through a financial analyst briefing<br />"<a href="http://www.iii.co.uk/investment/detail/?display=discussion&code=cotn%3AIMG.L&it=le&action=detail&id=5179348" target="_Blank">There will be a range of new products announced at IFA in Germany in 3 weeks - we were able to see a few in the Pure demo room but not all - we will have a new Siesta bedside radio with I-pod docker- neat- also a Siesta Flow with internet functionality</a>".<br />I've been waiting for more material to arrive - and now it has ...<br /><br />So - what is it?<br />Basically - it is a 100GBP bedside radio with internet connectivity. Using the same internet radio database as the other Flow models - <a href="http://www.thelounge.com" target="_Blank">Pure Lounge</a>.<br /><br />It has DAB and FM - plus can take input from external source - and can supply power out to a USB socket (e.g. to charge your phone) ... just in case you only have one power socket by the bed!<br /><br /><br />Pocket-Lint have a good photo - so I'll link to their article until Pure do their own official site update<br /><a href="http://www.pocket-lint.com/news/26875/pure-siesta-flow-elan-chronos" target="_blank">Pocket-Lint article</a><br /><br />Should be available soon (this year).Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-47348964508222318212009-09-03T09:20:00.015+01:002009-09-10T09:39:53.477+01:00Logitech finally announce Touch and Radio- <font color="#008000">Announced for IFA</font><br /><br />In my original posting regarding the Logitech Touch (yes - it was me that found reported the FCC report for the Touch) I suggested that the launch would be at this week's IFA in Berlin.<br />Looks like that is the case - as the first official info arrives on the press briefing day.<br /><br /><a href="http://blog.logitech.com/2009/09/03/logitech-unveils-squeezebox-radio-and-squeezebox-touch/"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 191px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7vpkvieI_zCmu3VSOLiyQzJkx-v9lAjJFaXEC3XwSmPVPpc3yM4hFyBHRgQHBK793oZBmJr6jk63Kb9EeARxbneI9RXmcKs4k3uH00VtAwlgU-TirHFnjikehoTklC_ZPJ_7l/s320/sb-touchandradiorevealed.JPG" border="0" alt="SB Touch and Radio presentation" id="BLOGGER_PHOTO_ID_5377160594056549922" target="_blank" /></a><br /><br />Long-time Squeezebox fan, Radish, was a beta tester and has made a video showing off the Touch device. You can see it <a href="http://www.adamreeve.com/files/slim/Touch.wmv" target="_Blank">here</a> (Windows Media file)<br /><br /><a href="http://ir.logitech.com/releasedetail.cfm?ReleaseID=406806" target="_blank">Official press release</a><br /><a href="http://www.logitechsqueezebox.com/products/squeezebox-touch.html" target="_blank">Squeezebox Touch</a><br /><a href="http://www.logitechsqueezebox.com/products/squeezebox-radio.html target="_blank"">Squeezebox Radio</a><br /><br /><a href="http://blog.logitech.com/2009/09/03/logitech-unveils-squeezebox-radio-and-squeezebox-touch/" target="_blank">Logitech Blog</a><br /><br />Given that most of the information that was used to make the earlier postings had come from reliable sources (e.g. FCC test reports and mistaken publishing on Logitech sites) then it was unlikely to have much new information.<br />Couple of things I spotted - plus a confirmation from the Slimdevices forum:<br /><br />For the Touch - a <span style="font-weight:bold;">cut-down SqueezeCenter</span> (new name coming) <span style="font-weight:bold;">runs on the device</span> so that the access music from the USB disk or SD card. This includes proper searching and providing album art not just browsing by folder ... and <span style="font-weight:bold;">potentially even more useful</span> ... it can <span style="font-weight:bold;">act as a server to other Squeezeboxes</span> (not the original Slimdevices but everything from SB2 onwards).<br /><br />The Touch presents the contents of the USB/SD as a network attached drive - so you can copy files to it. This is still work in progress, since the device is not expected to ship until end of November, but beta testers report it as working.<br /><br /><br />For the Radio - the battery pack and remote are indeed optional (50 USD for the pair as an "Accessory Pack") and the six buttons around the screen are presets to store favourites.<br /><br />New facility to post to Facebook (presumably all devices will get this since it will be a feature of the server software rather than the device) and see friend updates (presumably on the new full screen versions only).<br />Plus - a Flickr-based screensaver (clearly only applicable to the new devices with regular display screens)Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-5308900449608980052009-08-24T10:53:00.010+01:002009-08-24T12:30:03.272+01:00Revo IKON - more promise than your average iPod dock- <font color="#008000">Revo IKON</font><br />Announced today, for shipment in late October, is the <a href="http://www.revo.co.uk/digital-radio/revo-ikon.php" target="_BLANK">Revo IKON</a>.<br />List price is 280GBP <br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1mAblgJ8GDub7D5XZsFETsPq1R0n0w6A9-ByJFTGQJX1Yt2rDZ16gyr6LLe7PedyWgFe617zi4sWxMygHRtVFx3vu4h0Vi0JRXup6_QsaFZhvMvSjxNrTeFZWVgY81s2Uz8i/s1600-h/revo-ikon.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE1mAblgJ8GDub7D5XZsFETsPq1R0n0w6A9-ByJFTGQJX1Yt2rDZ16gyr6LLe7PedyWgFe617zi4sWxMygHRtVFx3vu4h0Vi0JRXup6_QsaFZhvMvSjxNrTeFZWVgY81s2Uz8i/s320/revo-ikon.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5373469647087461682" /></a><br /><br />This looks like a good attempt at an all-in-one device - iPod dock, radio (FM, DAB/DAB+), internet radio, home media - with what should be pretty good sound for its size, combined with attractive looks and modern features (touchscreen, last.fm, album art, station info).<br />Inside it is using Frontier Silicon’s new multi-standard Venice 8 module.<br />If the implementation is a good as the device promises then this should be a winner - provided there are enough people who are willing to pay over 250GBP for something to do everything.<br /><br />It includes <a href="http://last.fm/user/bondjamesbond" target="_BLANK">last.fm</a> functionality - both listening and scrobbling, although it looks like the listening part is only free for 30-day trial, which is odd given that last.fm is free for UK (and Germany plus USA) listeners. Support also claimed for Sirius, Rhapsody and Pandora - but today all of these require the listner to be in USA.<br /><br />When playing your local music it will also try to show album art on the 3.5-inch touch-screen.<br /><br />Feature list:<br />* 3.5” colour TFT touch-screen display<br />* High sensitivity DAB and DAB+ digital radio<br />* Advanced internet radio with Wi-Fi and wired LAN connection<br />* Easy access to over 11,000 internet radio stations (vTuner-based)<br />* Wirelessly stream music from your PC or MAC<br />* FM radio reception with RDS<br />* iPod docking functionality with full control and charging (folds away)<br />* 30 watts (2 x 15 watts) from class D amplifier<br />* NXT Balanced Radiator speaker technology<br />* Digital alarm clock with sleep and snooze<br />* 20 favourite station presets<br />* Compatible with all iPod and iPhone models<br />* Includes compact remote control<br />* 3.5mm headphone connector<br />* Stereo RCA line-out connectors<br />* Optical digital out connector<br /><br /><a href="http://www.revo.co.uk/downloads/Revo_IKON_Press_Release.pdf" target="_BLANK">Click here</a> for press release from Revo (PDF) <br /><a href="http://www.revo.co.uk/media/gallery-ikon.php" target="_BLANK">Click here</a> for Revo image galleryPaul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com1tag:blogger.com,1999:blog-5186142.post-3329017409363740782009-08-21T17:14:00.012+01:002010-01-03T12:03:50.998+00:00Logitech Squeezebox Radio- <span style="color:#008000;">Baby Boom?</span><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCqwRgV0tXoHNlBsMFtxmiKg1D7L4MdDbI2di0HxqPzg0V5V4VBD0X6FteyXNrlCsZNLNxYOt-mgFR6P2ne4iGnA1rShynjnYWobjZMoU2gdd7qQvKFkOU6rO2OxkCgqOpUdQ/s1600-h/sb-radio-babyboom.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 113px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKCqwRgV0tXoHNlBsMFtxmiKg1D7L4MdDbI2di0HxqPzg0V5V4VBD0X6FteyXNrlCsZNLNxYOt-mgFR6P2ne4iGnA1rShynjnYWobjZMoU2gdd7qQvKFkOU6rO2OxkCgqOpUdQ/s320/sb-radio-babyboom.jpg" border="0" alt="Squeezebox Radio aka BabyBoom" id="BLOGGER_PHOTO_ID_5422481876776113890" /></a><br /><br /><a href="http://www.engadget.com/2009/08/21/fcc-reveals-logitech-squeezebox-radio-could-make-all-those-stre/" target="_BLANK">Engadget report</a> lead me towards another <a href="https://fjallfoss.fcc.gov/prod/oet/forms/blobs/retrieve.cgi?attachment_id=1156870&native_or_pdf=pdf" taget="_BLANK">FCC test report</a> posted today - this time it reveals a small Squeezebox with integrated speakers - a cut down Squeezebox Boom.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhDCPFA6BUdt9NG_-K8G1RJpPIcxnLwuLjpS1KtGdFAm7TBxtYxLFRiFTTJ104_tIbpU_5y-H7LZabCT2KpqaOQ1VaIgWGCrXYJ8-HH46Vasnxx_iBBMjHl-8ivQnFMETExgfB/s1600-h/Logitech-SBRadioLab.PNG"><img style="cursor: pointer; width: 320px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhDCPFA6BUdt9NG_-K8G1RJpPIcxnLwuLjpS1KtGdFAm7TBxtYxLFRiFTTJ104_tIbpU_5y-H7LZabCT2KpqaOQ1VaIgWGCrXYJ8-HH46Vasnxx_iBBMjHl-8ivQnFMETExgfB/s320/Logitech-SBRadioLab.PNG" alt="Squeezebox Radio - under test" id="BLOGGER_PHOTO_ID_5372457015504215330" border="0" /></a><br />It is described as:<br />Squeezebox Radio model X-R0001 is a compact tabletop network music player and internet radio that lets you listen to virtually any internet radio station, music service or entire personal digital music collection.<br />Providing remarkable sound in a compact footprint, the X-R0001 extends the power and ease-of-use of the Squeezebox to any room. The Squeezebox Radio model X-R0001 features:<br />• Compact Design<br />• Bi-amplified design with ¾-inch high-definition, soft-dome tweeter<br />• 3-inch high-power, long-throw woofer<br />• 10W digital power amplifier<br />• <span style="font-weight: bold;">2.4” Color TFT LCD</span><br />• Front panel controls including scroll wheel<br />• 802.11b/g Wi-Fi<br />• One-touch WPS wireless setup<br />• Built-in 10/100 Ethernet<br />• Headphone Jack<br />• Works with all Squeezebox family products<br /><br />Something to note - looks like this is a mono device (one dome and one tweeter).<br />Dimensions listed as 4” x 6” x 3.25”<br />Although not mentioned in the summary above - the test document does refer to a battery pack - so this looks like it is a truely portable device (perhaps they will charge extra for the battery module).<br />Price: around 180USD<br /><br /><span style="font-weight: bold;">Teaming up with Queen ...</span><br />A page leaked out (and was pulled) from Logitech site stating:<br />"Queen<br /><br />Listen to an exclusive premiere of Queen's forthcoming album, Absolute Greatest, streamed to your <span style="font-weight: bold;">Squeezebox Touch</span> or <span style="font-weight: bold;">Squeezebox Radio</span> for free until the album release in November. With Queen and Squeezebox you can: Preview Queen’s upcoming album, ..."<br /><br />Here is one of the more unusual views - from underneath (showing where the product label is)<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUVd07WKmYpNm3z5MTOSl9jqABalhECmbja9K3NWAPPXE04LJnOKIczI_liUK2OjmcrgV9PA7EmgPGYIwlcep-LbTs5JI2P1KlYYy1SNMFKLUNTN02VtI7vhYvw218XhF1zt6J/s1600-h/Logitech-SBRadio.PNG"><img style="cursor: pointer; width: 320px; height: 179px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUVd07WKmYpNm3z5MTOSl9jqABalhECmbja9K3NWAPPXE04LJnOKIczI_liUK2OjmcrgV9PA7EmgPGYIwlcep-LbTs5JI2P1KlYYy1SNMFKLUNTN02VtI7vhYvw218XhF1zt6J/s320/Logitech-SBRadio.PNG" alt="Squezebox Radio from underneath" id="BLOGGER_PHOTO_ID_5372456841940882674" border="0" /></a><br /><br />26/Aug/2009<br />Updated with another picture and price<br />03/Sep/2009<br />Updated with latest inmage from Logitech (officially blogged about on their site)Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com2tag:blogger.com,1999:blog-5186142.post-60863085009205008612009-07-28T10:40:00.004+01:002009-07-28T13:40:24.333+01:00New Sonos controller launched- <font color="#008000">Sonos CR200</font><br />Photos have been floating around for a few weeks - but yesterday was the launch party (no - I wasn't there).<br /><a href="http://www.sonos.com"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 75px; height: 94px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYnx3I9dox9ze7Qfp6xJqYRjlpZI5d-btaajm8f3xQ_ht6dinwxsMoHqLrxxY8YtNir_kwDVGCWzwrV10VJZONSCDKk0VQIU1WMBRKP96fnc-_7YeO_XYRq7JmwUPNylhV_zYM/s320/sonos-CR200_1.jpg" border="0" alt="Sonos CR200" id="BLOGGER_PHOTO_ID_5363444973016209234" target="_BLANK"/></a><br /><br />Touch screen (3.5” full-color VGA display 640x480 pixels) with some dedicated function buttons.<br />List price 349 USD<br /><br />As always from Sonos - it looks good, it seems to works well - and it is at the top-end of the price range.<br />Remember - this is just a remote control for their devices - so you still need a Sonos player. Their iPhone/iPod Touch application remains free and offers very similar capability (but clearly without dedicated buttons for very quick access to some parts).<br /><br /><a href="http://www.sonos.com/demo/demo.aspx" target="_BLANK">Sonos Demo</a><br /><a href="http://www.sonos.com/company/press/releases/release/default.aspx?id=6242" target="_BLANK">Sonos Press Release</a><br /><a href="http://www.ehomeupgrade.com/2009/07/27/sonos-introduces-the-sonos-controller-200/" target="_BLANK">Video from the launch party</a> via <a href="www.ehomeupgrade.com" target="_BLANK">ehomeupgrade</a>Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-64043639489852973662009-06-23T22:31:00.016+01:002009-08-28T08:19:57.080+01:00Logitech Squeezebox Touch on the way- <font color="#008000">Squeezebox with touch screen expected by October 2009</font><br />First time I came across this was a posting back in May on, of all places, the Sonos forum. Someone (using the fourm name "walera") <a href="http://forums.sonos.com/showthread.php?p=78215" target="_BLANK">reported</a> that he had been to a consumer focus event and the device was revealed as a new Squeezebox. I would have expected some form of NDA to have been in place - anyway - word was out.<br />Then over the last week-end some more info <a href="http://forums.slimdevices.com/showthread.php?t=64706" target="_BLANK">leaked out</a> - including a picture.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj752pkLpIdDZorYHci2Nzk5EU1nX4YCtdlMTAWgGjPaHsC08yktMFFC2WDZ8ZHCBmriAJ0VG4hysZCEVXAPwKni1mLAQmQCWXxSCkTDV08xI60T31DSGq0mcO3VqFgjXL1PnP7/s1600-h/SBT-1.jpg"><img style="float:left; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 164px; height: 175px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj752pkLpIdDZorYHci2Nzk5EU1nX4YCtdlMTAWgGjPaHsC08yktMFFC2WDZ8ZHCBmriAJ0VG4hysZCEVXAPwKni1mLAQmQCWXxSCkTDV08xI60T31DSGq0mcO3VqFgjXL1PnP7/s320/SBT-1.jpg" border="0" alt="Squeezebox Touch" id="BLOGGER_PHOTO_ID_5350640900739870322" /></a><br />It looks like a Squeezebox Classic with the VFD replaced by a 4.3" touchscreen.<br />But there may well be more - with reports of it also having a USB port and SD slot.<br />Various implications here - for example - this could allow for local storage of music and photos (show cover art when playing - and photos when idle).<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwcZuS-QzwgSKiiGZQoD_PvgVX6D1mUJ2vFVHdRTJg7Q4WBVihH6z4OQZyP6S9sMIxF4mo1rkMfRgH-aDV86WYoj-3B0ljkKAnVW9oUyBEXaaKHP3t8k_dDiVKlEUF5U77KMcH/s1600-h/SBT-2.jpg"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 120px; height: 120px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwcZuS-QzwgSKiiGZQoD_PvgVX6D1mUJ2vFVHdRTJg7Q4WBVihH6z4OQZyP6S9sMIxF4mo1rkMfRgH-aDV86WYoj-3B0ljkKAnVW9oUyBEXaaKHP3t8k_dDiVKlEUF5U77KMcH/s200/SBT-2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5362677150743657730" /></a><br />There is also reported to be an infra-red presence detector that makes the screen spring back into life as you walk up to it - always fun when giving a demo.<br />Smaller updates also likely for the Boom and perhaps Receiver (the player half of the Duet).<br /><br />Update 28/Jul/2009:<br />I found more details ... and have highlighted some new findings<br />Squeezebox Touch, model X-RC4 is countertop or wall-mounted (with included back-plate) music streaming system featuring:<br />• 4.3” LCD panel with capacitive touch screen<br />• High quality analog and headphone outputs (24bit/96k)<br />• Optical and coax S/PDIF outputs<br />• 802.11g wireless<br />• 64MB SDRAM & 64MB NAND flash<br />• SD card slot & USB host connector<br />• Internal <span style="font-weight:bold;">speech-grade microphone and speaker</span> – sound effects and preview<br />• IR sensor for remote control<br />• Ambient light sensor for dimming screen at night<br />• IR proximity sensor for detecting user approaching<br />• <span style="font-weight:bold;">Digital temperature sensor</span> for home automation<br /><br />Interesting - perhaps there are some mistakes there ... but a microphone, small speaker and thermometer? Maybe for future expansion. Slimdevices have in the past included hardware that is not necessarily used when first released - for example infrared and headphone connector on the Squeezebox Controller.<br />It may well be running SqueezeOS - the same as in the Squeezebox Controller - since it gets a mention in the FCC report.<br /><br />Also - an odd part number - "X-RC4". RC usually implies a Remote Control - and is nothing like the part numbers that Logitech Slimdevices folks use<br />(spotted so far ...<br />930-000074 - USA<br />930-000089 - Europe<br />930-000090 - USA/Canada<br />930-000091 - Aus/NZ<br />)<br /><br /><a href="https://fjallfoss.fcc.gov/prod/oet/forms/blobs/retrieve.cgi?attachment_id=1138908&native_or_pdf=pdf">FCC test report</a><br />The implication from another document is that this is due for release by the end of September 2009 - my guess ... IFA Berlin is the launch.<br /><br />Update 15-Aug-2009<br />It looks like Logitech web site folks made a premature release of information onto the main corporate site. It was spotted first in New Zealand and pulled soon after it was reported. However, that gave time for the details above to be confirmed.<br />Some more pictures as well ...<br /><br /><a href="http://www.logitech.com/repository/1521/jpg/13595.1.0.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguVbTAJX_iiQmFw2LYIoW7RHKttXG2uVvq0LFak2MsS-C9um3Odov9lXTRFBUo6Psg8AhVK9DvbfINYEF305orLZ-M52Fhm0_8G0jwL8_WAlbNe2bWEKoyBZtLmeZaAOczNXfs/s320/13595.1.0.jpg" border="0" alt="SBT in situ" id="BLOGGER_PHOTO_ID_5370225586371445154" /></a><br /><a href="http://www.logitech.com/repository/1521/jpg/13593.1.0.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfL4GvNXbPf2v2AYDEU8KOJOiNp4KxwNwvlkvHfGXJ0bwoznDbF9pJ8Mj653S4kC1-o1VqRo8hCxNEOUORj8x2BfYUAlCAl-O6BgMkmE6UNry6DmU5VbittqR3G0w2sS_4IFQy/s320/13593.1.0.jpg" border="0" alt="SBT Memory Card"id="BLOGGER_PHOTO_ID_5370225582383836114" /></a><br /><a href="http://www.logitech.com/repository/1521/jpg/13591.1.0.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpeo0PI5ACvIn5th6UrW-JHomFOcsMFkwd8GpLtbGdeK-L-llBYiT3SwP-fnGjHHSPu9atTj9Lzqsp8hw1xjh3poi9eduoqHtEvbRoesg9r9Hoo88MyCG9kM8xYy8v_qcKDbM2/s320/13591.1.0.jpg" border="0" alt="SBT Rear"id="BLOGGER_PHOTO_ID_5370225577020062370" /></a><br /><a href="http://www.logitech.com/repository/1521/jpg/13589.1.0.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuvzajw3__ZCjl7ieGfr1-LLmWIBNWuXf9fYL0kPps0tmqxt_B7wHkhOTVGVFzuIzZDE9TnocbTRjedSnkBXlZEYIjug3IYCZ6fw96YDiDlLeZhkUl_3mTCakcMKkOuiSEvcHX/s320/13589.1.0.jpg" border="0" alt="SBT Front"id="BLOGGER_PHOTO_ID_5370225568660120786" /></a><br /><a href="http://www.logitech.com/repository/1521/jpg/13587.1.0.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir4nmFoL8qpF0tP1aEjwI6fnVOOc1a4-LTDcb2pZ7NfFTAN5c6jjJaA-S_Aa2Me2CNzsvkbfnKvIIh1PHuAUspIIdItPkjz2l3K85OgGNv6IY6ygL-0ydrsOMYNxOiTHknit6j/s320/13587.1.0.jpg" border="0" alt="SBT with remote"id="BLOGGER_PHOTO_ID_5370225561344901970" /></a><br /><br />Prices:<br />No official word yet ... however, 3rd-party resellers are listing it around 300 USD, 400 Canadian, 450 New Zealand - implying approximately 220 - 250 Euro.<br />Plus there are tiny snippets visible on the Logitech site for replacement parts.<br />For example - a replacement power supply is 19.99 USD (same as Boom but more than Receiver) - which is the same price as a remote control (the smaller Boom remote is 9.99 USD and the bigger backlit one that ships with the Transporter is 29.99). It is not clear yet if a remote is shipped with the device although there are publicity pictures showing them together.<br /><br />Update: 28/08/2009<br />First reported home use through a purchase rather than Logitech beta programme.<br /><a href="http://picasaweb.google.com/nilskp/SqueezeboxTouch?authkey=Gv1sRgCMq1rMLW7bfH7QE#" target="_BLANK">Nils' Picasa page</a><br /><a href="http://forums.slimdevices.com/showthread.php?t=67109" target="_BLANK">Forum post</a><br />Looks like a mistaken premature shipment because without a working SqueezeCenter 7.4 (being renamed SqueezeboxServer) it looks like it cannot do much.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com3tag:blogger.com,1999:blog-5186142.post-10436713673546827072009-06-23T22:05:00.004+01:002009-06-24T07:31:21.749+01:00Reciva adds native Live365 support- <font color="#008000">Live365 from the device menu</font><br />It has been possible to play Live365 stations on Reciva devices for a long time - but with some limitations.<br /><br /><a href="http://www.live365.com"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 468px; height: 60px;" src="http://ads.live365.com/sponsors/live365houseredirects/classy_468x60.gif" border="0" alt="" target="_BLANK"/></a><br /><br />The stations had to be submitted to the database (or via the local My Streams) rather than being collected directly from Live365.<br />While "Professional" Live365 stations could be added easily enough, there had to be work-arounds to get the regular Live365 stations to work - and the VIP "Preferred" stations were more difficult again because Live365 requires the end-user to be a paying subscriber.<br /><br />Other internet streaming devices, such as Logitech (ex Slimdevices) Squeezebox have had Live365 support for a long time.<br /><a href="https://www.reciva.com/index.php?option=com_joomlaboard&Itemid=108&func=view&catid=2&id=43129#msg43206" target="_BLANK">Now</a> Reciva has provided a free upgrade (initially for users of Grace Digital versions of the Reciva radios, but presumably with others to come as the brands approve it) to extend the menus to provide native access to Live365 - so that means 6,000+ more stations to try out!Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-56922563059531851552009-04-27T17:48:00.004+01:002009-04-27T18:20:59.417+01:00Updated Pandora integration from Reciva- <font color="#008000">First Reciva-based radio with dedicated Pandora buttons</font><br /><br />Reciva announced their plans for official Pandora support at CES January 2008 - with a limited number of brands initially supported, the first was Grace at end of May 2008.<br /><br />In April 2009 there was another related set of announcements - one was just to say that there are <a href="http://corporate.reciva.com/pages/107" target="_BLANK">a few more brands with Pandora support</a>. But I found the other more interesting ... for a couple of reasons.<br /><br />The <a href="http://corporate.reciva.com/pages/105" target="_BLANK">press release</a> says "Livio Radio’s sleek features puts Pandora® at your finger tips".<br /><a href="http://www.shoplivio.com/livio.ashx"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 168px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_4YVQasNmD_qe4Qgi_Fji5ymM2hYS40B-1eBIo3ElcGrI24SShU9-YjUh8u352FS0GQW1-Yv6BI5jAC7UHZ7kZShNFendRfDQhWGXBUVkQ8TDuf7xwxSG1z_D_iHhijQyLAOq/s320/livio_01.jpg" border="0" alt="Livio radio" id="BLOGGER_PHOTO_ID_5329421158518223474" target="_BLANK"/></a><br /><br />First there are like/dislike buttons on the device and the remote control.<br /><a href="http://www.shoplivio.com/livio.ashx"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 184px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimh6qIOVg8JsElg2TSMCC-spKjM_mi9ALN8mAWd-RiTXnT2cWCIeMv7K2Takfg3DVOGWkCql6KCq433oKSzDmuz1W7b59LTBWznmj8Fsc0z-msfOFx3IDrvmS6c1rn7iCpTGrb/s320/livio_02.jpg" border="0" alt="Livio Remote" id="BLOGGER_PHOTO_ID_5329421798055880482" /></a>OK - no big thing (love/ban has been on other systems before but I think that this is the first time on a dedicated internet radio).<br />Second though is that Livio appears to be a sister company of Myine who recently released their Ira device which is using vTuner.<br />This is not the first time that a brand has gone with more than one supplier - but I don't remember anyone else having 2 suppliers so quickly.Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0tag:blogger.com,1999:blog-5186142.post-23862332308259915322009-03-20T18:51:00.005+00:002009-03-20T19:38:18.203+00:00New internet radio from Myine - ira- <font color="#008000"></font><br /><br />Massimo Baldini of Myine Electronics (Ferndale, Michigan, USA) replied to an email that I sent back in January to ask about this new device. The reply came recently to say that their new internet radio was nearly ready to ship ... and today an official announcement to say it is now available.<br /><br />The form-factor is somewhat like a Logitech Squeezebox Classic - and like that device, it does not have its own built-in speakers.<br /><a href="http://www.myine.com/ira.php" target="_BLANK"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 197px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCcUdzNFI3h9yQMWLFn3C7S8bYrWtJj9JlurM0W0SHSBqGFdiA11DnAbssBrNt0zbwdfmmj7F2eyIpOx9wnrlVLsZ7a6R8-DjtSJ8zjhxVhhwdWe1iQ4nA_KNMNeJlBW8uWFL0/s320/myine-ira01.jpg" border="0" alt="Myine ira" id="BLOGGER_PHOTO_ID_5315353541545960370" /></a><br /><br />So - connect up via RCA to powered speakers or hi-fi amp - set the wi-fi parameters (no Ethernet on this one) and off you go.<br />I think that the radio database is powered by a customised version of the vTuner system.<br />It comes with a remote control (and no local controls) - and has a fairly large (for this sort of device) white/blue LCD display.<br /><br />Listed at 150 USD - with more details over at:<br /><a href="http://www.myine.com/ira.php" target="_BLANK">http://www.myine.com/ira.php</a><br />(the user guide is in the Help section)Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com1tag:blogger.com,1999:blog-5186142.post-83644371865483383202009-03-20T18:37:00.004+00:002009-03-20T18:47:35.221+00:00Do you want everyone to know what you record?- <font color="#008000">DABDig and Twitter</font><br />More for a bit of fun than a serious practical use, I have added some support for posting to Twitter from DABDig.<br />So - if you are automating your recordings<br />- e.g. DigiGuide -> DABDig -> Windows TV software<br />then you can now send info about what you are recording to your Twitter account (or in theory to other web-based services with an equally simple interface).<br /><br />Maybe it will remind someone to switch to watch the same thing. I think I'll add the facility to hide shows by name though just in case people do not want some of their guilty pleasures highlighted (e.g. "Desperate Housewives" gets timeshifted here).<br /><br />You can see some examples in Twitter<br /><a href="http://search.twitter.com/search?q=%23dabdig">http://search.twitter.com/search?q=%23DABDig</a><br /><br />I have not released this test version of DABDig yet - but if you already have a released version up and running and you have a Twitter account and fancy sharing your recording details with the rest of the Twitter-world (not the shows themselves - just info about them) then contact me (address is at the top of your dabdig.ini).Paul Websterhttp://www.blogger.com/profile/17286797680202140990noreply@blogger.com0