Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Moderator: Gurus
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Shhhhh. I didn't told you this but MM 4.x will see uPnP servers (it even saw my WMP 12 Library). So you may not need to pay anything, but you need to wait.
Best regards,
Peke
MediaMonkey Team lead QA/Tech Support guru
Admin of Free MediaMonkey addon Site HappyMonkeying
How to attach PICTURE/SCREENSHOTS to forum posts
Peke
MediaMonkey Team lead QA/Tech Support guru
Admin of Free MediaMonkey addon Site HappyMonkeying
How to attach PICTURE/SCREENSHOTS to forum posts
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Peke wrote:Shhhhh. I didn't told you this but MM 4.x will see uPnP servers (it even saw my WMP 12 Library). So you may not need to pay anything, but you need to wait.
Ooooh! How long?
-
- Posts: 23640
- Joined: Wed Aug 09, 2006 10:20 am
- Location: NJ, USA
- Contact:
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Until MM4 is released for alpha testing, I imagine.kalowski wrote:Peke wrote:Shhhhh. I didn't told you this but MM 4.x will see uPnP servers (it even saw my WMP 12 Library). So you may not need to pay anything, but you need to wait.
Ooooh! How long?
MediaMonkey user since 2006
Need help? Got a suggestion? Can't find something?
Please no PMs in reply to a post. Just reply in the thread.
Need help? Got a suggestion? Can't find something?
Please no PMs in reply to a post. Just reply in the thread.
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
danyal wrote:Mediamonkey is really great for a large collection of music which is exactly why I use it. But as of late I listen to most of my music via a squeezebox + home audio system. It would be great if I could play music via Mediamonkey and have it play on my squeezebox. I don't want it playing in both places or anything like that. I just want to be able to use MM to manage my media.
I don't think this would be too hard to implement. Basically each song in squeezecenter has a songId. If MM could scan the squeezecenter database and retrieve those songIds and store them in its own database for each song, all it would need to do is send the songId via CLI to squeezecenter when a user selects a song to play. The squeezecenter db could be re-scanned from time to time...
++++++++++++++!!!!!!!!!!!!!
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
I've just jumped into this topic among others on a search around as I contemplate getting a squeeze box to get all my music from PC to fat stereo, and what this might mean for my beloved MM. I'm no technical expert so I can't even contemplate clever scripts etc but having read round a few of the related topics are the following conclusions I have reached correct?Peke wrote:Shhhhh. I didn't told you this but MM 4.x will see uPnP servers (it even saw my WMP 12 Library). So you may not need to pay anything, but you need to wait.
1. At present SB Duet and MM basically don't talk to each other and you have to run two separate libraries if you want to continue with MM once you get a SB.
2. But it is possible, somehow, to get the SB library to sync with the MM once per day which is a small step in the right direction. Somehow...
3. But MM4, when it appears, is going to have some clever new thing in it that means it will be able to read the SB library. Or something. So I should wait.
Sorry if this makes me sound like a dull witted technofool, either stating the obvious or getting the wrong end of the stick, but I'm sure I'm not the only MM-committed but generally "light" computer user who would like to know the state of play on all this without having to read several threads, make notes and then cross reference them via some sort of mind map to get the full picture. I plan to be running one Windows blah media centre PC, one SB duet attached to the aforementioned fat stereo and Media Monkey.
Your patience and assistance in this is much appreciated.
gid9000
MediaMonkey Gold user and general MM evangelist to anyone who will listen
gid9000
[still wondering how you do that clever thing where your last played tracks appear on your posts]
[still wondering how you do that clever thing where your last played tracks appear on your posts]
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
As far as I can tell your conclusions 1+2 seem to be right. About MM4's UPnP support I am not really sure what this means. Ideally MM4 could act as UPnP server itself, and SC/SB could access that. But that seems unlikely ("MM 4.x will see uPnP servers"). If MM4 can see SC as UPnP server what does that really mean? It can play files from that server? Does not help with SB - we want to play on SB. It can update its library with the data from SC? Also does not help with SB - we need the other way around. And after all it still means maintaining two libraries with practically the same content. I am not thrilled about this.gid9000 wrote:I'm no technical expert so I can't even contemplate clever scripts etc but having read round a few of the related topics are the following conclusions I have reached correct?
We were discussing two different approaches and both need extra development. Does not look like anything would happen in this regard though. Those approaches were:
a) make MM talk directly with SB (either with a plugin, or with MM code change) - only one library left but we need the SB/SC interface protocol for that and would lose any other SC feature on the way
b) create an SC plugin acting as a bridge between MM and SC/SB - still only one library but the plugin would have to be written in Perl and so far nobody was up to the task
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
My Roku Soundbridge can access PS3MediaServer, and I created a plugin for it. Can you check if that works for you? That way there is no need to synchronize SqueezeBox Server with MediaMonkey info.gid9000 wrote:I've just jumped into this topic among others on a search around as I contemplate getting a squeeze box to get all my music from PC to fat stereo, and what this might mean for my beloved MM. I'm no technical expert so I can't even contemplate clever scripts etc but having read round a few of the related topics are the following conclusions I have reached correct?Peke wrote:Shhhhh. I didn't told you this but MM 4.x will see uPnP servers (it even saw my WMP 12 Library). So you may not need to pay anything, but you need to wait.
1. At present SB Duet and MM basically don't talk to each other and you have to run two separate libraries if you want to continue with MM once you get a SB.
2. But it is possible, somehow, to get the SB library to sync with the MM once per day which is a small step in the right direction. Somehow...
3. But MM4, when it appears, is going to have some clever new thing in it that means it will be able to read the SB library. Or something. So I should wait.
Sorry if this makes me sound like a dull witted technofool, either stating the obvious or getting the wrong end of the stick, but I'm sure I'm not the only MM-committed but generally "light" computer user who would like to know the state of play on all this without having to read several threads, make notes and then cross reference them via some sort of mind map to get the full picture. I plan to be running one Windows blah media centre PC, one SB duet attached to the aforementioned fat stereo and Media Monkey.
Your patience and assistance in this is much appreciated.
gid9000
MediaMonkey Gold user and general MM evangelist to anyone who will listen
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
I've just read this thread today and for some of you may have a solution to this subject.
I'm able to play my music using the MM interface and play music over ethernet using the Squeezebox which is hooked up to my stereo.
To accomplish this, my notebook runs both MediaMonkey and Squeezebox Server.
The Squeezebox Server on my notebook uses the WaveIn plugin (http://wiki.slimdevices.com/index.php/WaveInput_plugin) to stream music to my Squeezebox. Using the Duet Remote Control I select my NoteBook as Library and WaveIn as stream.
I just installed the MAD 14.2b MP3 Input Plug-in to Media Monkey and must confess my music sounds really awkward.
Pros: Nice Interface, No stereo cable needed, Great sound, without any interrupt, even over 54 Mb Wifi.
Cons: 6-7 seconds time-lag between PC and Squeezebox, any sounds on PC can be heard at your stereo.
Enjoy.
I'm able to play my music using the MM interface and play music over ethernet using the Squeezebox which is hooked up to my stereo.
To accomplish this, my notebook runs both MediaMonkey and Squeezebox Server.
The Squeezebox Server on my notebook uses the WaveIn plugin (http://wiki.slimdevices.com/index.php/WaveInput_plugin) to stream music to my Squeezebox. Using the Duet Remote Control I select my NoteBook as Library and WaveIn as stream.
I just installed the MAD 14.2b MP3 Input Plug-in to Media Monkey and must confess my music sounds really awkward.
Pros: Nice Interface, No stereo cable needed, Great sound, without any interrupt, even over 54 Mb Wifi.
Cons: 6-7 seconds time-lag between PC and Squeezebox, any sounds on PC can be heard at your stereo.
Enjoy.
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
I've been using both MediaMonkey and Squeezecenter for a few years - love them both. I have Squeezecenter running on a home server and the best part, I control it via the iPeng app on my iphone and itouch - its great, esp. when entertaining guests, acting like a mobile DJ as I pass the iPhone around for my guests to select their favorite songs.
However, if you are looking for a solution of playing music wirelessly to your stereo via MM then I have another suggestion on a method I used before discovering Squeezecenter. I bought a Linksys WMB54G Wireless Music Bridge. It works by loading a small app on your PC that basically redirects the music stream to the small wireless music bridge device which in turn plugs into your stereo. From there you can play music from MM, stream wirelessly (or wired if you prefer) to the bridge into your stereo. Works like a charm. Only issue is since the sound is redirected, you cannot play it to the wireless bridge at the same time as through your PC speakers. Other than that, works well.
However, if you are looking for a solution of playing music wirelessly to your stereo via MM then I have another suggestion on a method I used before discovering Squeezecenter. I bought a Linksys WMB54G Wireless Music Bridge. It works by loading a small app on your PC that basically redirects the music stream to the small wireless music bridge device which in turn plugs into your stereo. From there you can play music from MM, stream wirelessly (or wired if you prefer) to the bridge into your stereo. Works like a charm. Only issue is since the sound is redirected, you cannot play it to the wireless bridge at the same time as through your PC speakers. Other than that, works well.
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Hi there,
I've got yet another "solution" for the MM<->Squeezebox problem, albeit only in theory.
I've got yet another "solution" for the MM<->Squeezebox problem, albeit only in theory.
- -Squeezecenter, by means of existing plugins can talk to MusicIP: 2 for playing (a default plugin for creating mixes and third-party Sugarcube as a kind of auto-DJ), and using Trackstat, playcounts and probably other stuff can be written into MusicIP.
-A MM MusicIP Auto-DJ already exists, so we've got at least an open communication channel already
-
- Posts: 4
- Joined: Sun Sep 14, 2008 9:09 am
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Hi folks, I am also a squeezebox & MM lover and I made a script with settings to control squeezebox by using MM as the UI. So when MM starts playing a song it will send a command to the squeezecenter to start playing the same song. Works cool (at least at my place).
Place the following squeeze.vbs script in the mediamonkey/scripts/auto directory:
An example of the squeeze.ini file:
Enjoy!!!
Any comments are welcome!
Place the following squeeze.vbs script in the mediamonkey/scripts/auto directory:
Code: Select all
' This script connects MediaMonkey to a SqueezeBox
' Place the script in the .../MediaMonkey/Scripts/Auto
' and restart MediaMonkey.
' Edit the file squeeze.ini to setup your installation.
Dim socket
Dim enableSqueeze
Dim previousEnableSqueeze
Dim squeezeCenterIp
Dim playerId
Dim playerName
Dim previousPlayerName
Dim mediaMonkeyPath1
Dim squeezeCenterPath1
Dim mediaMonkeyPath2
Dim squeezeCenterPath2
Dim settingsFile
Dim powerOffOnExit
Dim initialVolume
Sub OnStartup
initialVolume = SDB.Player.Volume
settingsFile = SDB.ScriptsPath & "\Auto\squeeze.ini"
SqueezeLoadOptions settingsFile
Script.RegisterEvent SDB, "OnPlay", "SqueezePlay"
Script.RegisterEvent SDB, "OnPause", "SqueezePause"
Script.RegisterEvent SDB, "OnShutdown", "SqueezeOnShutdown"
dlg = SDB.UI.AddOptionSheet ("SqueezeBox", Script.ScriptPath, "SqueezeInitOptions", "SqueezeSaveOptions", -2)
End Sub
Sub EnableDisableSqueeze
If previousEnableSqueeze Then
If enableSqueeze Then
' squeeze --> squeeze
Set socket = CreateObject("Socket.TCP")
socket.DoTelnetEmulation = True
socket.TelnetEmulation = "TTY"
socket.Host = squeezeCenterIp
socket.Open
If StrComp (playerName, previousPlayerName) <> 0 Then
SendCommand "power 0"
SDB.Player.Stop
SDB.Player.Play
End If
playerId = DeterminePlayerId (playerName)
SendCommand "power 1"
Else
' squeeze --> pc
SendCommand "power 0"
SDB.Player.Stop
SDB.Player.Volume = initialVolume
SDB.Player.Play
End If
Else
If enableSqueeze Then
' pc --> squeeze
initialVolume = SDB.Player.Volume
SDB.Player.Volume = 0.0
if SDB.Player.IsPlaying Then
SDB.Player.Stop
SDB.Player.Play
End If
Set socket = CreateObject("Socket.TCP")
socket.DoTelnetEmulation = True
socket.TelnetEmulation = "TTY"
socket.Host = squeezeCenterIp
socket.Open
playerId = DeterminePlayerId (playerName)
SendCommand "power 1"
Else
' pc --> pc
End If
End If
End Sub
Sub SendCommand (cmd)
' Send command
command = playerId + " " + cmd
command = Replace (command, "/", "%2F")
command = Replace (command, ",", "%2C")
command = Replace (command, "#", "%23")
command = Replace (command, "&", "%26")
'command = Replace (command, "ë", "%C3")
command = Trim (command)
socket.SendLine (command)
' Retrieve answer
response = socket.GetLine
response = Trim (response)
If StrComp (command, response) <> 0 Then
text = "Error sending command to SqueezeBox" & vbCrLf & vbCrLf &_
"Send: " & command & " (" & Len(command) & ")" & vbCrLf & vbCrLf &_
"Received: " & response & " (" & Len(response) & ")"
MsgBox text, vbOKOnly + vbCritical, "Squeeze Error"
End If
End Sub
Sub SendCommandParam (cmd, param)
param = Replace (param, " ", "%20")
param = Replace (param, "\", "/")
SendCommand (cmd + " " + param)
End Sub
Function DeterminePlayerId (name)
id = ""
socket.SendLine "player count ?"
response = Split(Trim (socket.GetLine), " ")
For i = 1 to response(2)
socket.SendLine "player name " & i-1 & " ?"
data = Split (Trim (socket.GetLine), " ")
answer = Replace(data(3), "%20", " ")
If StrComp (answer, name) = 0 Then
socket.SendLine "player id " & i-1 & " ?"
data = Split (Trim (socket.GetLine), " ")
id = data(3)
End If
Next
If StrComp (id, "") = 0 Then
text = "Unable to find the Squeezebox with the name '" &_
name & "' !"
MsgBox text, vbOKOnly + vbCritical, "Squeeze Error"
End If
DeterminePlayerId = id
End Function
Sub SqueezeInitOptions (Sheet)
Dim x1
Dim x2
Dim width
Dim height
Dim y
x1 = 20
x2 = 210
y = -10
width = 250
height = 20
y = y + 30
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "Enable Squeezebox support:"
Set edit = SDB.UI.NewCheckBox (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Checked = enableSqueeze
edit.Common.ControlName = "enableSqueeze"
y = y + 50
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "Squeeze Center IP address:"
Set edit = SDB.UI.NewEdit (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Text = squeezeCenterIp
edit.Common.ControlName = "squeezeCenterIp"
y = y + 30
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "Player Name:"
Set edit = SDB.UI.NewEdit (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Text = playerName
edit.Common.ControlName = "playerName"
y = y + 50
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "MediaMonkey Path 1:"
Set edit = SDB.UI.NewEdit (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Text = mediaMonkeyPath1
edit.Common.ControlName = "mediaMonkeyPath1"
y = y + 30
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "SqueezeCenter Path 1:"
Set edit = SDB.UI.NewEdit (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Text = squeezeCenterPath1
edit.Common.ControlName = "squeezeCenterPath1"
y = y + 30
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "MediaMonkey Path 2:"
Set edit = SDB.UI.NewEdit (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Text = mediaMonkeyPath2
edit.Common.ControlName = "mediaMonkeyPath2"
y = y + 30
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "SqueezeCenter Path 2:"
Set edit = SDB.UI.NewEdit (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Text = squeezeCenterPath2
edit.Common.ControlName = "squeezeCenterPath2"
y = y + 50
Set label = SDB.UI.NewLabel (Sheet)
label.Common.SetRect x1, y, width, height
label.Caption = "Power Off on Exit:"
Set edit = SDB.UI.NewCheckBox (Sheet)
edit.Common.SetRect x2, y, width, height
edit.Checked = powerOffOnExit
edit.Common.ControlName = "powerOffOnExit"
End Sub
Sub SqueezeSaveOptions (Sheet)
oldEnableSqueeze = enableSqueeze
Set edit = Sheet.Common.ChildControl ("enableSqueeze")
previousEnableSqueeze = enableSqueeze
enableSqueeze = edit.Checked
Set edit = Sheet.Common.ChildControl ("squeezeCenterIp")
squeezeCenterIp = edit.Text
Set edit = Sheet.Common.ChildControl ("playerName")
previousPlayerName = playerName
playerName = edit.Text
Set edit = Sheet.Common.ChildControl ("mediaMonkeyPath1")
mediaMonkeyPath1 = edit.Text
Set edit = Sheet.Common.ChildControl ("squeezeCenterPath1")
squeezeCenterPath1 = edit.Text
Set edit = Sheet.Common.ChildControl ("mediaMonkeyPath2")
mediaMonkeyPath2 = edit.Text
Set edit = Sheet.Common.ChildControl ("squeezeCenterPath2")
squeezeCenterPath2 = edit.Text
Set edit = Sheet.Common.ChildControl ("powerOffOnExit")
powerOffOnExit = edit.Checked
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set file = objFSO.OpenTextFile (settingsFile, ForWriting, True)
file.WriteLine ("enableSqueeze=" & enableSqueeze)
file.WriteLine ("squeezeCenterIp=" & squeezeCenterIp)
file.WriteLine ("playerName=" & playerName)
file.WriteLine ("mediaMonkeyPath1=" & mediaMonkeyPath1)
file.WriteLine ("squeezeCenterPath1=" & squeezeCenterPath1)
file.WriteLine ("mediaMonkeyPath2=" & mediaMonkeyPath2)
file.WriteLine ("squeezeCenterPath2=" & squeezeCenterPath2)
file.WriteLine ("powerOffOnExit=" & powerOffOnExit)
file.Close
EnableDisableSqueeze
End Sub
Sub SqueezeLoadOptions (file)
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile (file, ForReading)
Do Until objTextFile.AtEndOfStream
line = objTextFile.Readline
data = Split(line , "=")
If StrComp(data(0), "enableSqueeze") = 0 then
enableSqueeze = data(1)
previousEnableSqueeze = enableSqueeze
End If
If StrComp(data(0), "squeezeCenterIp") = 0 then
squeezeCenterIp = data(1)
End If
If StrComp(data(0), "playerName") = 0 then
playerName = data(1)
previousPlayerName = playerName
End If
If StrComp(data(0), "mediaMonkeyPath1") = 0 then
mediaMonkeyPath1 = data(1)
End If
If StrComp(data(0), "squeezeCenterPath1") = 0 then
squeezeCenterPath1 = data(1)
End If
If StrComp(data(0), "mediaMonkeyPath2") = 0 then
mediaMonkeyPath2 = data(1)
End If
If StrComp(data(0), "squeezeCenterPath2") = 0 then
squeezeCenterPath2 = data(1)
End If
If StrComp(data(0), "powerOffOnExit") = 0 then
powerOffOnExit = data(1)
End If
Loop
EnableDisableSqueeze
End Sub
Sub SqueezePause
If enableSqueeze Then
SendCommand "pause"
End If
End Sub
Sub SqueezePlay
If enableSqueeze Then
song = SDB.Player.CurrentSong.Path
song = Replace (song, mediaMonkeyPath1, squeezeCenterPath1)
song = Replace (song, mediaMonkeyPath2, squeezeCenterPath2)
SendCommandParam "playlist play", song
End If
End Sub
Sub SqueezeOnShutdown
If enableSqueeze Then
If powerOffOnExit then
SendCommand "power 0"
SDB.Tools.Sleep 1000
End If
socket.Close
End If
End Sub
Code: Select all
enableSqueeze=True
squeezeCenterIp=192.168.0.200:9090
playerName=Squeezebox
mediaMonkeyPath1=\\HUSHY\music1
squeezeCenterPath1=/home/marcel/Music/disk1
mediaMonkeyPath2=\\HUSHY\music2
squeezeCenterPath2=/home/marcel/Music/disk2
powerOffOnExit=True
Any comments are welcome!
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Very interesting! I don't have my squeezebox yet, but I can't wait to try out your solution.
Thanks.
Thanks.
--
The gpzbc
The gpzbc
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
Wow, thank you for the code.m_schuitema wrote:Hi folks, I am also a squeezebox & MM lover and I made a script with settings to control squeezebox by using MM as the UI. So when MM starts playing a song it will send a command to the squeezecenter to start playing the same song. Works cool (at least at my place).
Question, you say "So when MM starts playing a song it will send a command to the squeezecenter to start playing the same song" Does this mean I need to maintain two databases of songs, or does MM actually stream the audio to squeezecenter, so I can maintain all my music in one place, MM?
-
- Posts: 20
- Joined: Sun Feb 26, 2006 1:30 am
Re: Slimdevices Squeezebox / Squeezecenter Support (Plugin) or D
The idea of using MM as the UI for SB is interesting and I'd like to see it, however... I think it misses one point. Many users (myself included) store music libraries on a NAS. To me, the benefits are I don't have to dedicate a computer to access my library via SB to my home audio system, and I can USE my computer for anything, even shut it down, my music plays on.
My desire is to have MM and SB share the music resource, share playlists. iTunes used to actually do this reasonably well until some version "upgrade" screwed that up too. All you had to do was tell SB you wanted it to use your iTunes library and playlists, then tell it the directory it was located in.
I'm sitting here working on my computer and listening to my home system play my NAS library via SB... Need to reboot? No problem, I'm not dependent on MM to feed my SB.
Many of you want to use MM as a controller for SB. That's cool. But what about an ability to use SB *without* a computer. That ability almost exists now... except for playlists.
MM is superior to iTunes in so many ways... I hopeful for one more reason to be happy I left iTunes behind.
My desire is to have MM and SB share the music resource, share playlists. iTunes used to actually do this reasonably well until some version "upgrade" screwed that up too. All you had to do was tell SB you wanted it to use your iTunes library and playlists, then tell it the directory it was located in.
I'm sitting here working on my computer and listening to my home system play my NAS library via SB... Need to reboot? No problem, I'm not dependent on MM to feed my SB.
Many of you want to use MM as a controller for SB. That's cool. But what about an ability to use SB *without* a computer. That ability almost exists now... except for playlists.
MM is superior to iTunes in so many ways... I hopeful for one more reason to be happy I left iTunes behind.