Quantcast
Channel: Squeezebox : Community : Forums - 3rd Party Software
Viewing all 2057 articles
Browse latest View live

Good alternatives to Napster?

$
0
0
Hi,

Since learning that Napster has changed its encryptions and no longer works on older models i.e. squeezebox Boom in the UK, does anyone know of any good alternatives please? Is Spotify the only one?

Thanks

My way of connecting squeezelite, brutefir and drc (and Kodi)

$
0
0
I wanted to use squeezelite with brutefir in cubox-i-4pro with also Kodi running on same machine.

So I made a program controlling squeezelite and brutefir using alsa loopback for communication, because it works better than a pipe. The program restarts squeezelite and brutefir automatically, if hang would happen and also with HUP signal, so you can switch brutefir filter files on easily. Squeezelite up/downsamples with sox to 96kHz/24bits, only one brutefir config file needed. Brutefir is only running when squeezelite is playing, that way Kodi can use same USB DAC (Kodi set to release DAC too). DAC is XMOS DIY-IN-HK, system runs weeks without stopping. In my system lms is separate NAS, but cubox-i-4pro has enough power to run it too. The Linux distribution that I am using is Squeeze On Arch (soa).

System block diagram:
Name:  drc.png
Views: 43
Size:  117.9 KB

The code of sqbrctl:
Code:

#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <sched.h>
#include <unistd.h>
#include <signal.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/wait.h>
#include <arpa/inet.h>

int room_correction = 1;
int upsample = 1;

typedef struct {
  char *key;
  char *value;
  int *parameter;
  int setvalue;
} config_t;

#define CONFS 4

config_t confs[CONFS] = {
  { "roomcorrection", "off", &room_correction, 0 },
  { "roomcorrection", "on" , &room_correction, 1 },
  { "upsample",      "off", &upsample,        0 },
  { "upsample",      "on" , &upsample,        1 },
};

void read_sqbrctl_conf(void)
{
  FILE *f;
  char key[4096];
  char *value;
  int i;

  f = fopen("/etc/drc/sqbrctl.conf", "r");
  if (f == NULL) return;

  /* read key/value pairs */
  while (!feof(f)) {
    if (fgets(key, sizeof(key), f) != NULL) {
      value = strstr(key, ":");
      if (value == NULL) continue;
      value++;
      for (i = 0; i < CONFS; i++) {
        if (strncmp(key,confs[i].key,strlen(confs[i].key)) == 0) {
          if (strncmp(value,confs[i].value, strlen(confs[i].value)) == 0) {
            *confs[i].parameter = confs[i].setvalue;
          }
        }
      }
    }
  }
  fclose(f);
}

int set_rt_priority(int priority)
{
    struct sched_param schp;

    memset(&schp, 0, sizeof(schp));
    schp.sched_priority = priority;

    if (sched_setscheduler(0, SCHED_FIFO, &schp) != 0) {
        return errno;
    }
    return 0;
}

int need_reload;

void signal_callback_handler(int signum)
{
  need_reload = 1;
  return;
}

pid_t stop_brutefir(pid_t previous)
{
    if (previous != 0) {
        system("killall brutefir");
        waitpid(previous, NULL, 0);
    }
    return 0;
}
               
pid_t start_brutefir(pid_t previous)
{
    pid_t pid;
    static char *argv[]={"brutefir","/etc/drc/brutefir.conf",NULL};

    stop_brutefir(previous);

    pid=fork();
    if (pid == 0) {
        /* child process */
        execv("/usr/bin/brutefir",argv);
        exit(0); /* only if execv fails */
    } else if (pid > 0) {
        return pid;
    } else {
        return 0;
    }
}

typedef enum { SQLITE_LOOP_PLAY, SQLITE_DIRECT_PLAY } sqlite_mode_e;

pid_t stop_squeezelite(pid_t previous)
{
    if (previous != 0) {
        system("killall squeezelite");
        waitpid(previous, NULL, 0);
    }
    return 0;
}
                       
pid_t start_squeezelite(pid_t previous, sqlite_mode_e sqlite_mode)
{
  pid_t pid;
  static char *argv_direct_upsample[]=
        {
                "squeezelite",
                "-n", "soa-sql-kjh",
                "-p", "9",
                "-r", "96000-96000",
                "-a", "200:128:32",
                "-u", "vLs:18:3",
                "-C", "2",
                "-o", "front:CARD=D20,DEV=0",
                NULL
        };
  static char *argv_direct_noupsample[]=
        {
                "squeezelite",
                "-n", "soa-sql-kjh",
                "-p", "9",
                "-a", "200:128:32",
                "-C", "2",
                "-o", "front:CARD=D20,DEV=0",
                NULL
        };

  static char *argv_loop_upsample[]=
        {
                "squeezelite",
                "-n", "soa-sql-kjh",
                "-p", "9",
                "-r", "96000-96000",
                "-a", "200:128:32",
                "-u", "vLs:18:3",
                "-C", "2",
                "-o", "hw:Loopback,1,0",
                NULL
        };

  static char *argv_loop_noupsample[]=
        {
                "squeezelite",
                "-n", "soa-sql-kjh",
                "-p", "9",
                "-a", "200:128:32",
                "-C", "2",
                "-o", "hw:Loopback,1,0",
                NULL
        };

  stop_squeezelite(previous);

  pid=fork();
  if (pid == 0) {
        /* child process */
        if (sqlite_mode == SQLITE_DIRECT_PLAY) {
                if (upsample) {
                        execv("/usr/bin/squeezelite", argv_direct_upsample);
                } else {
                        execv("/usr/bin/squeezelite", argv_direct_noupsample);
                }
        } else {
                if (upsample) {
                        execv("/usr/bin/squeezelite", argv_loop_upsample);
                } else {
                        execv("/usr/bin/squeezelite", argv_loop_noupsample);
                }
        }
        exit(0); /* only if execv fails */
  } else if (pid > 0 ) {
        return pid;
  } else {
        return 0;
  }
}

#define BUFFER_SIZE (4096)

int sqlite_playing_loop(void)
{       
        int ret = 0;
        char buffer[BUFFER_SIZE];
        int fd = open("/proc/asound/Loopback/cable#1",O_RDONLY);
        if (fd < 0) return ret;
        if (read(fd, buffer, BUFFER_SIZE) > 0) {
                if (strstr(buffer, "Playback") != NULL) {
                        ret = 1;
                }
        }
        close(fd);
        return ret;
}

int sqlite_playing_direct(void)
{
        int ret = 0;
        char buffer[BUFFER_SIZE];
        int fd = open("/proc/asound/D20/pcm0p/sub0/hw_params",O_RDONLY);
        if (fd < 0) return ret;
        if (read(fd, buffer, BUFFER_SIZE) > 0) {
                if (strstr(buffer, "access") != NULL) {
                        ret = 1;
                }
        }
        close(fd);       
        return ret;
}

#define SLEEP_TIME (1000*1000)

int main(int argc, char *argv[])
{
  int run_mode = 1;
  pid_t squeezelite = 0;
  pid_t brutefir    = 0;
  int st;
  int sqlite_play;
  pid_t exited;
  int loops = 0;
         
  usleep(20*1000*1000);

  close(2);
  close(1);
  close(0);
  open("/dev/null", O_RDONLY);
  open("/dev/null", O_WRONLY);
  open("/dev/null", O_WRONLY);
       
  signal(SIGHUP, signal_callback_handler);

  set_rt_priority(10);

  need_reload = 1;

  for (;;) {

    if (need_reload) {
      /* run at start, when play stopped or signal HUP send to sqbrctl */
      need_reload = 0;

      run_mode = 1;
      brutefir = stop_brutefir(brutefir);
      read_sqbrctl_conf();
      squeezelite = start_squeezelite(squeezelite,SQLITE_LOOP_PLAY);
    }

    usleep(SLEEP_TIME);

    if ((run_mode == 2) && (room_correction == 0)) {
        sqlite_play = sqlite_playing_direct();
        if (sqlite_play == 0) need_reload = 1;
    }

    if ((run_mode == 1) || (room_correction)) {

          sqlite_play = sqlite_playing_loop();

            if ((run_mode == 1) && (sqlite_play != 0)) {
                run_mode = 2;
                if (room_correction) {
                        brutefir = start_brutefir(brutefir);
                } else {
                              squeezelite = start_squeezelite(squeezelite,SQLITE_DIRECT_PLAY);
                }
        }
    }

    if ((run_mode == 2) && (room_correction) && (sqlite_play == 0)) need_reload = 1;

    if (++loops > 10) {
        loops = 0;
            exited = waitpid(-1, &st, WNOHANG);
            if (WIFEXITED(st)) {
                if (exited == squeezelite) {
                              squeezelite = start_squeezelite(0,SQLITE_LOOP_PLAY);
                    }
                if (exited == brutefir) {
                              if (run_mode == 2) {
                                      brutefir = start_brutefir(0);
                              }
                    }
            }
    }
  }

  return 0;
}

Brutefir config file /etc/drc/brutefir.conf:
Code:

float_bits: 64; # internal floating point precision
sampling_rate: 96000; # sampling rate in Hz of audio interfaces
filter_length: 32768; # length of filters
overflow_warnings: false; # echo warnings to stderr if overflow occurs
show_progress: false; # echo filtering progress to stderr
max_dither_table_size: 0; # maximum size in bytes of precalculated dither
allow_poll_mode: false; # allow use of input poll mode
modules_path: "/usr/lib/"; # extra path where to find BruteFIR modules
monitor_rate: false; # monitor sample rate
powersave: false; # pause filtering when input is zero
lock_memory: true; # try to lock memory if realtime prio is set
sdf_length: 63; # subsample filter length
convolver_config: "/etc/drc/convolver_config"; # location of convolver config file

coeff "drc_l" {
filename: "/etc/drc/filter-l.pcm";
format: "FLOAT_LE"; # file format
attenuation: 5.0; # attenuation in dB
shared_mem: true;
};

coeff "drc_r" {
filename: "/etc/drc/filter-r.pcm";
format: "FLOAT_LE"; # file format
attenuation: 5.0; # attenuation in dB
shared_mem: true;
};

## INPUT DEFAULTS ##
# module and parameters to get audio

input "left_in", "right_in" {
device: "alsa" { device: "hw:Loopback,0,0"; link: false; };
sample: "S32_LE";
channels: 2;
};

## OUTPUT DEFAULTS ##

output "left_out", "right_out" {
device: "alsa" { device: "front:CARD=D20,DEV=0"; link: false; ignore_xrun: true; };
sample: "S32_LE";
channels: 2;
dither: true;
};

## FILTER DEFAULTS ##

filter "l_filter" {
from_inputs: "left_in"/5.0;
to_outputs: "left_out"/0.0;
coeff: "drc_l";
};

filter "r_filter" {
from_inputs: "right_in"/5.0;
to_outputs: "right_out"/0.0;
coeff: "drc_r";
};

sqbrctl config file /etc/drc/sqbrctl.conf:
Code:

roomcorrection:on
upsample:on

I also made independent Kodi plugin visualisation, getting information from lms. It takes screen from Kodi when squeezelite starts to play and goes away when squeezelite is stopped or paused. Display is simple, just showing stream source (NAS, Spotify, Tidal), disc cover image, song information, progress and Kodi artist fan images from internet as backgound (with fallback images from a directory). It is too big and messy (server ip hard coded to python code) to be in this post, but if anybody is interested I can send the zip file.

Bad photo from small cheap screen in my device:
Name:  jjcale_kodi_sqliteplugin_small.png
Views: 38
Size:  182.6 KB
Attached Images
  

Triode Spotify Plugin on Synology NAS - spotifyd will not run

$
0
0
Hi,

On Sun, 3 May 2015 16:41:36 +0000, reesesys wrote:
>
> NAS: Synology DS413 (CPU: FREESCALE QorIQ P1022 - Linux 2.6.32.12 ppc)
> LMS: 7.7.3-042
> Players: Duet and Radio
>
> Spotify with the Triode plugin seemed like the best solution, however
> spotifyd will not run.


I think there is no version of spotifyd for you cpu architecture. The file command on the spotify binary for the Mac tells the following:

spotifyd: Mach-O universal binary with 2 architectures
spotifyd (for architecture x86_64): Mach-O 64-bit executable x86_64
spotifyd (for architecture i386): Mach-O executable i386

> Since this device is ppc and not arm or i386 I'm thinking this is the
> end of the road. Am I right?


Yes, if there are really no PPC binaries for the plugin...

But there is also the official spotify plugin from Logitech. It is not that comfortable like the plugin from Triode, but maybe it works with your hardware...

Ciao,

Schöpp

Conflict between 'BBC iPlayer' plugun and 'Dynamic Mix' plugin causing rebuffering

$
0
0
Along with a number of others I have been getting very frustrated with repeated rebuffering of BBC iPlayer streams. The problem doesn't appear consistently - some days it happens every minute or so, some days rarely.

Today I had a look at the logfile for my server (which is at "your server":9000/server.log?lines=1000) and found this


Code:

(15-05-05 18:23:58.8693)  Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist play
(15-05-05 18:23:58.8741) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist jump
(15-05-05 18:23:58.8896) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist load_done
(15-05-05 18:24:00.2093) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist open
(15-05-05 18:24:00.2181) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist open
(15-05-05 18:24:02.3410) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist newsong
(15-05-05 18:24:02.3417) Plugins::DynamicMix::Plugin::isDynamicPlaylistActive (609) DynamicPlaylist not active
(15-05-05 18:24:10.6682) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist pause
(15-05-05 18:24:42.6359) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist pause
(15-05-05 18:25:15.7590) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist pause
(15-05-05 18:25:46.6675) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist pause
(15-05-05 18:26:19.5779) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist pause
(15-05-05 18:26:55.4870) Plugins::DynamicMix::Plugin::commandCallback (371) DynamicMix: received command: playlist pause

I have the DynamicMix plugin installed and it looks like it is treating the iPlayer stream as a playlist and pausing it at random. I've uninstalled the plugin (alog with the dynamicPlaylist plugin beause i'm not wearing my glasses) and restarted the server and, so far, no rebuffering after the initial pause at the start of the stream?

Does this solve the problem for anyone else?
Does this make any sense to someone who knows how these plugins work?

Neil

Rocki with LMS

$
0
0
Is anyone using Rocki's with Logitech Media Server?

I've already got LMS installed and have purchased 3 Rocki's for different zones, but of course LMS doesn't detect them as they are not Logitech products.

I've found a utility called squeeze2upnp in another post on this forum which can make uPNP devices appear as LMS devices which sort of works as the Rocki's are now detected by LMS but as yet I am unable to successfully get them to play.

Anyone one using these with LMS or can offer any advice?

[Test] Repo for LMS 7.8.0 on Synology DSM 5.*

$
0
0
> Just created a repository for Logitech Media Server on Synology nas. I
> repacked the latest official version of LMS provided by Synology. So
> updated the package from 7.7.3 to 7.8.0. Most architectures are
> supported. Just add the repo to your Package Center in DSM 5.0 or
> higher.


You should probably use 7.9 right away ;-).

--

Michael

SqueezeCenter CustomLibraries (Installation on Synology DS)

$
0
0
Hello experts,

I am struggeling here since almost two hours. Need help.

Current setup:
Synology DS214+
DSM 5.1-5022 Update 5
Logitech Media Server Version: 7.7.3 - 1375965195 @ Mon Aug 19 11:42:55 PDT 2013

What I would like to do:
Install CustomLibraries beta (by Erland Isaksson) via LMS extension downloader as recommended
(http://erland.isaksson.info/download...ustomlibraries)
Remark: I know, that there is also the older method using various plugins (multilibrary, custom scan, custom browse), but this seemed very complicated to me and I absolutely could not find out, what a lifetime license would cost. I am willing to spend 15 EUR for a working solution, but not 40 or 50 EUR. That's why I am interested in the plugin Install CustomLibraries.

Where I got stuck:
In the LMS Plugin Tab (I guess this is the extension downloader), I do not see CustomLibraries. I flagged that also other plugin should be shown (german: "Alle Plugins anderer Hersteller anzeigen").

EDIT:
One step further: I saw that the extension downloader is actually a plugin. ok. Next problen: In the moment I click on settings, I receive the follwowing message on top of the plugin tab "Falsches Repository http://www.mysqueezebox.com/public/plugins/logitech.xml - Timed out waiting for data" ("Falsches Repository" means "Bad repository"). If I enter the URL to my browser, I get "504 Gateway Time-out". What is wrong here?

What do I have to do to install CustomLibraries on my Synology DS?

Thanks very much in advance
Jacob

[Test] Repo for LMS 7.9.0 on Synology DSM 5.*

$
0
0
Hello all,

Just created a repository for Logitech Media Server on Synology nas. I repacked the latest official version of LMS provided by Synology. So updated the package from 7.7.3 to 7.9.0. Most architectures are supported. Just add the repo to your Package Center in DSM 5.0 or higher.
Make sure before installing the new package to remove any version of LMS (outside the repository) on your nas,

Name: LMS Repack
Location: http://lms-repack.pinkdot.nl/

Port 9000 instead of 9002 is used!

This repo is to test if the procedure of repacking the spk will work. It is already tested on several machines but more info is needed and very welcome.

Thanks for testing!

Martin

You can also find a thread on the Dutch Synology Forum: http://www.synology-forum.nl/overige...0-voor-dsm-5-*

SB Player and DSD audio

$
0
0
The latest version of SB Player (1.2.6), which I just published, supports LMS 7.9's ability to stream DSD audio. It can handle both DSF and DFF formats. It plays DSD by converting to it PCM similar to how Squeezelite does it.

However the conversion process and the resampling of the resulting 352.8 kHz floating point PCM to something playable in Android is very processor intensive. On my two fastest test devices, a Nexus 7 (2013) and a Nexus 5, only the Nexus 5 can keep up and only if I put an ice pack on it to stop the CPU from throttling. The Nexus 7 seems to be just under the threshold of being able to keep up.

If somebody has a current gen high end device, I would really like to know if it can handle the playback without external cooling.

How to control a pair of Radios as one but stay sync'd with others?

$
0
0
I usually keep almost all my player's playlists sync'd so that I can pick up where I left off anywhere in the house. I don't sync power state or volume though. Now I have two Radios set as left and right speakers in the bedroom and I want to control them as if they were one player but keep them within my larger sync group. I would want the power state and volume between just these two players linked while keeping them in the larger sync group. Is this even doable? :confused:

I looked at SyncOptions and I don't see anything there that would cover this.

I also tracked down The Synchronizer, and created the two sync groups, but I still don't see how to set the two Radios to power off and on together or link their volume levels.

So I'm thinking what I want isn't possible. If so, I'll just not have those two set to left and right.

Thanks for any tips!

Softsqueeze And 48K Flacs

$
0
0
Added some new music to my library and noticed that a couple of the purchased flac tracks were sampled at 48K.

My classics have no problem playing the 48K variants, but softsqueeze had issues (sort of like pitch shifting down).

So I pulled the code on the two respective products and tweaked the strm protocol. I had to change not only softsqueeze but also the server as well. (Specifically I needed the server to not always send '?' as the sample rate for all flac files and modify softsqueeze to react to the given sample rate.)

The question I have is there any point in re-contributing these changes back to the repositories? Both products are essentially dead.

Further complicating the decision is the question of is my "solution" the best practice?

Anyone have some constructive thoughts here?

Repositories on Googlecode

$
0
0
> I hope I have most of the latest zip files tucked away somewhere, but
> wonder if the plugin authors concerned would consider moving their repos
> and code to another site? I have PM'd a couple of people.


So did I a while back...

--

Michael

Announce: UPnPBridge = integrate UPnP/DLNA players with LMS (squeeze2upnp)

$
0
0
This is a re-announcement of the UPnP/DLNA to LMS bridge I've published under the name 'squeeze2upnp'. For ease of use, I've now added a proper LMS plugin, so it made sense to start a new thread, as suggest by users on the original one.

This plugin/app integrates UPnP/DLNA players found on your network and let LMS use them as if they were regular Squeezeboxes (they appear as a squeezelite instance).

To install, you need to add this repository to your "Plugins" page
Code:

http://sourceforge.net/projects/lms-to-upnp/files/stable/repo-sf.xml
and choose "UPnPBridge" in the list of plugins

It should provide pretty much all the features of squeezelite, except a few things
- synchronization does not work (at least don't use "keep synchronization during playback")
- crossfade is not available
- gapless only works if the UPnP player supports it

Once installed, there is a "UPnP/DLNA Bridge" page added to your "Settings" and you'll have to tweak probably a few parameters there. A list of pre-existing profiles is available as well, but if your player is not included and you manage to have it working, please post here your successful configuration settings so that I can add them to the list of known devices
There is a complete guide that explains all this in details and goes through all the parameters, including the advanced ones that are not available from the LMS webpage. It can be found here
Code:

https://github.com/philippe44/LMS-to-uPnP/blob/master/doc/New%20user%20guide%20(with%20plugin).pdf
If should work for Windows, OSX, Linux x86 and ARMv5 and v6+

Key parameters are in blue in the LMS webpage and info-bubble do help understanding their respective usage

"what codec to choose" ? is a frequent question, so here are few tips:

- Remember that UPnPBridge is ... a bridge between LMS and your UPnP players, so it does not do transcoding, just a few format tweaking. So the "agreement" on supported codecs is between LMS and your player, UPnPBridge just helps the negotiation
- mp3 will give you best mileage, but I understand most hate it
- flc,mp3 is very likely to work in all cases - transcode the rest in LMS, do not try sample rate higher than 48kHz
- in many cases, flc,pcm and mp3 work fine as well

- if your player does not support 24 bits samples (Sonos and many others) and you have such files, then you *must* use uncompressed codecs format like 'pcm' and/or 'aif'. There is an option in UPnPBridge to truncate down to 16 bits
- You won't know if 24 bits works before you try as players won't say (they go silent) and LMS does not offer the possibilities for the player to feedback its sample size abilities
- If you feel adventurous you have many options to play with uncompressed formats, but there are various side effects (stuck in playlist, song skipping ...). Sample rate can go up 192kHz, you can use 32 bits and play with all parameters, including the advanced ones explained in the manual but if you go that route, I strongly suggets reading the manual

I'd like to really thank PasTim for his numerous suggestions, tests and support and ralphy for patches and builds that allowed this to work on OSX, Windows XP and ARM

NB: the port used for UPnP (49152 by default) must be open. Under Windows, you might have a popup (only the very first time the application is started) asking to allow squeeze2upnp-win to access your network. If not and if players are detected and seem to play but you have only silence, go under c:\programdata\squeezebox\cache\Installedplugins\p lugins\upnpbridge and launch squeeze2upnp-win.exe - only need to do that once

Jive / Squeezeplay characters

$
0
0
I have some Thai tracks in my LogitechMediaServer but the tittle is no displayed right on Jive/SqueezePlay. Can I contact the developer of Jive/SqueezePlay?

Raspberry Pi squeezelite plays Mickeymouse

$
0
0
Hi,

i've read this "strange" issue sometimes and didnt believe it.
Now i believe and here is my Tip for someone who find this thread cause of the same issue.


"play" with your -o values!


just start squeezelite with -l and try each of the devices.

To prove Mr. Murphys Law in my case it was the two last ones.

Quote:

hw:CARD=Device,DEV=0 - USB Audio Device, USB Audio - Direct hardware device without any conversions
plughw:CARD=Device,DEV=0 - USB Audio Device, USB Audio - Hardware device with all software conversions
And no i have no clue why this is happen - cause that rpi is running since a long time without changing Hardware and has the same Hard/Software revision ident like two other rpis that do not have this mickeymouse tune.

Installing Squeezeplug on a Raspberry PI 2

$
0
0
Raspberry Pi 2 ordered

I'll be having a crack at this next week

So I'm going to download squeezeplug 7.50 image from here http://www.squeezeplug.eu/?p=485

Download and install PuTTy onto my laptop. From http://www.chiark.greenend.org.uk/~s.../download.html

If I need to find the IP address use Netscan https://www.softperfect.com/download...re/netscan.zip

The guide I'm probably working with is https://www.raspberrypi.org/forums/v...?f=35&t=101575

If anyone can offer any better advice let me know.

Sorry to be a Noob but what's Max2play?

SB Touch GoFlex Home NAS SqueezePlug 4.0 download?

$
0
0
I am a newbie and from what I have read, it looks like I need this version to be able to make it work with GoFlex Home.

If I understand correctly, after extracting the 4.0 in a USB drive (if I can find the file), I will put the USB drive on the GoFlex Home USB port. Then I will let it do its thing?
I will not have to have my Mac/PC on, correct?

This is the info, what else do I need to do to make it work?

Anybody has this 4.0 to download?

Logitech Media Server Version: 7.9.0 - 1433513811 @ Fri Jun 5 21:01:12 PDT 2015
Server HTTP Port Number: 9000
Operating system: OS X 10.10.3 - EN - utf8
Perl Version: 5.18.2 - darwin-thread-multi-2level
Database Version: DBD::SQLite 1.34_01 (sqlite 3.7.7.1)

Announce: ShairTunes2 plugin - Airtunes on your LMS

$
0
0
Hi,

this is a further development of the ShairTunes Plugin (http://forums.slimdevices.com/showth...irTunes-Plugin).

Installation instructions: https://github.com/disaster123/shair...ster/README.md
Repo URL: http://raw.github.com/disaster123/sh...ter/public.xml
Github: https://github.com/disaster123/shairport2_plugin

V0.16
Changelog since v0.15:
- fixed character encoding problems for metadata
- fixed killing of player publishing on restart

V0.15
Changelog since v0.14:
- really works on lms < 7.8
- added v0.1 binary for arm - lower cpu usage - better buffer handling
- support for 32bit osx

V0.14:
Changelog since v0.13:
- ARM binary added (sadly only from v0.13 - need somebody to recompile for v0.14)
- log startup errors / stderr of shairport_helper
- shairport_helper: MASSIVE reduce of CPU load using pthread_cond_wait instead of ugly sleeps
- shairport_helper: buffer tuning
- shairport_helper: introduce a version number for binaries

V0.13:
Changelog since v0.12:
- Mac OS X Suppor
- 32bit Linux Support
- more logging
- ensure to "restart" / shutdown avahi on init/shutdown of the plugin

Changes since ShairTunes:
- working covers / artwork
- working metadata like title, album, artist, duration...
- rework of socket reading and header parsing
- skipping and play works faster
- working only with LMS 7.8 or newer

It has automatic OS detection so no need to copy the helper binary. Please also ensue that you enable ipv6 in avahi AND restart avahi after install.

What is the best way to get BBC Radio these days (from the UK)?

$
0
0
Sorry, but it is a nightmare digging through all the endless problems people have had over recent months with iPlayer / BBC Radio. Just wondering, what is the currently accepted best way to get BBC live radio for a UK listener? Currently using BBC iPlayer (v1.3.1alpha3) plugin, with a good fibreoptic connection in London, and get endless re-buffering. Today it is unbelievably bad - I bitterly regret selling my old Quad FM tuner now!

How i get the LibraryDemo plugin to work

$
0
0
This is written for *ux Systems for the paths used by other OS look @ http://wiki.slimdevices.com/index.ph...file_locations

  • copy the whole Folder /usr/share/perl5/Slim/Plugin/LibraryDemo
    Otherwise your plugin / Work will be lost after a LMS Upgrade
  • to /usr/sbin/Plugins/
  • go to /usr/sbin/Plugins/yoursubfolder
  • change the id from install.xml to something unique (didnt find the mimik so i only changed some chars)
  • change in install.xml <name> to your specs - otherwise you would not find your plugin in the UI.
  • change <module> to your path :: is the delimiter for paths/Folders
  • change <importmodule> to the same as you changed <module>


Now comes the tricky part..
Remember to change everything in all three files - so a editor with search & replace is a good idea for the first try.

Plugin.pm

Since my kids Music and audiobooks are stored in subfolders i'd change the sql statement to:
The Music is stored in Kinderlieder:

Code:

foreach ( {
                id => 'Kinderlieder',
                name => 'Kinderlieder',
                # %s is being replaced with the library's ID
                sql => qq{
                        INSERT OR IGNORE INTO library_track (library, track)
                                SELECT '%s', tracks.id
                                FROM tracks
                                WHERE tracks.url LIKE '%%Kinderlieder%%'
                }

The Audiobooks are stored in Hoerbuch/Amelie:
Since i also got Artists with Amelie or Albums with Amelie, i use a double WHERE Statement to only fetch both matches.

Code:

{
                id => 'Kinder_Hoerbuecher',
                name => 'Kinder Hoerbuecher',
                sql => qq{
                        INSERT OR IGNORE INTO library_track (library, track)
                                SELECT '%s', tracks.id
                                FROM tracks
                                WHERE tracks.url LIKE '%%Hoerbuch%%' AND tracks.url LIKE '%%Amelie%%'
                }
        }

to get a menu in the UI:
Code:

my @menue_1 = ( {
                name => 'PLUGIN_AMELIE_LIBRARY_ALBUMS',
                icon => 'html/images/albums.png',
                feed => \&Slim::Menu::BrowseLibrary::_albums,
                id  => 'Kinderlieder Alben',
                weight => 25,
        }
        );
         
        my @menue_2 = ({
                name => 'PLUGIN_AMELIE_LIBRARY_SPEECH',
                icon => 'html/images/albums.png',
                feed => \&Slim::Menu::BrowseLibrary::_albums,
                id  => 'Kinder_Hoerbuecher',
                weight => 30,
        }
        );

since i use two different sublibrarys i changed the registernode to this

Code:

foreach (@menue_1) {
                Slim::Menu::BrowseLibrary->registerNode({
                        type        => 'link',
                        name        => $_->{name},
                        params      => { library_id => Slim::Music::VirtualLibraries->getRealId('Kinderlieder') },
feed        => $_->{feed},
                        icon        => $_->{icon},
                        jiveIcon    => $_->{icon},
                        homeMenuText => $_->{name},
                        condition    => \&Slim::Menu::BrowseLibrary::isEnabledNode,
                        id          => $_->{id},
                        weight      => $_->{weight},
                        cache        => 1,
                });
        }
       
        foreach (@menue_2) {
                Slim::Menu::BrowseLibrary->registerNode({
                        type        => 'link',
                        name        => $_->{name},
                        params      => { library_id => Slim::Music::VirtualLibraries->getRealId('Kinder_Hoerbuecher') },
                        feed        => $_->{feed},
                        icon        => $_->{icon},
                        jiveIcon    => $_->{icon},
                        homeMenuText => $_->{name},
                        condition    => \&Slim::Menu::BrowseLibrary::isEnabledNode,
                        id          => $_->{id},
                        weight      => $_->{weight},
                        cache        => 1,
                });
        }

Change also everything you changed in the strings.txt!
Stop LMS
start it and do a rescan.

Hopefully i didnt forget something
Viewing all 2057 articles
Browse latest View live