Hello;
I can’t even begin to figure out what is happing here. I have a win32 gen of
Liquidsoap. I have tried to do a simple command “Liquidsoap
Out(single(‘xxx.mp3’))”. The command appears to execute then hangs with no
audio playing. If I use the same command with a streaming server as source it
plays perfectly! Is there something I’m missing??? BTW I’ve tested a number of
files with different formats with no success.
Any help would be greatly appreciated.
Best
Joe Panarello
From: Martin Knapp [mailto:[email protected]]
Sent: Wednesday, December 06, 2017 5:06 PM
To: [email protected]
Subject: Re: [Savonet-users] on_blank for automatic Raspi shutdown after vinyl
streaming?
Hi Nick (I repost my answer because I just got a notification about its being
to big)
The problem is that LS won‘t start any longer when I add the cod to the liq
file.
Even if I only add
IsStarted = false
it doesn‘t work anymore.
What I have now is (I took out the = you‘d put after def dostartup() becuase I
thought it‘s a typo?):
#!/usr/bin/liquidsoap
# set the path and permissions for the logfile
set("log.file.path","/var/log/liquidsoap/phono.log")
set("log.file.perms",777)
#set("log.unix_timestamps",true)
#input from soundcard
phono = input.alsa(bufferize=true,fallible=false,device="hw:0")
isStarted = false
def dostartup()
# We have started playing, so set the flag
isStarted := true
end
def handler()
if !isStarted then
system("/etc/liquidsoap/shut_on_blank.sh")
end
end
source = on_blank(
max_blank=60.0,
on_noise=dostartup,
handler,
phono
)
#stream it to local icecast, default port and password
output.icecast(%ogg(%flac(samplerate=44100,channels=2,compression=5,bits_per_sample=16)),
mount="/phono", name="Phono", format="audio/ogg", description="Turntable
FLAC", url="http://192.168.178.200 <http://192.168.178.200&/#8221> ”",
genre = "Misc", source)
Regards
Martin
Am 06.12.2017 um 22:49 schrieb Nicholas Vrtis <[email protected]>:
Yes.. what you have should work. Didn't include the source statement in my
notes, since I was just trying to give the example on how to set/access
variables in functions.
Nick
On Wed, Dec 6, 2017 at 4:36 PM, Martin Knapp <[email protected]> wrote:
Thanks Nick, but isn‘t the on_noise part lacking in your suggestion, the one
that is meant to trigger dostartup?
Could it be integrated this way?
source = on_blank(
max_blank=60.0,
on_noise=dostartup,
handler,
phono
)
Regards
Martin
Am 06.12.2017 um 22:02 schrieb Nicholas Vrtis <[email protected]>:
Hi Martin..
Try this:
In the mainline of your script.
isStarted = false
def dostartup() =
# We have started playing, so set the flag
isStarted := true
end
def handler()
if !isStarted then
system("/etc/liquidsoap/shut_on_blank.sh")
end
end
basically, when you want to set an external value from within a function you
use := instead of just =
when you want to reference it, put a ! (exclamation point) in front it of.
(and for 'completeness' you use something like this if you want it in quotes
"#{!alsaDevice}" )
Nick
On Wed, Dec 6, 2017 at 3:07 PM, Martin Knapp <[email protected]> wrote:
Thanks again Nick, I really appreciate your help - and I feel pretty ashamed
for not having found the documentation you‘ve pointed me to.
Delaying shutdown with max_blank works perfectly, even with higher values (600)
Regarding on_noise and the variables, I‘ve spent a couple of hours studying the
documentation and the sample code, but didn‘t get very far. It‘s not trivial
for a non-programmer like me with only some superficial php and perl
knowledges. But I‘ll keep on trying.
Thanks & best regards
Martin
Am 05.12.2017 um 22:41 schrieb Nicholas Vrtis <[email protected]>:
Martin,
If you look at the documentation for on_blank
(http://liquidsoap.info/doc-dev/reference.html#on_blank), you can set the
on_blank(max_blank=40.0, handler, phono)
Note that max_blank takes a float, or you need the period.
You can also specify an on_noise=dostartup
So, what I would do is have the 'handler' check a Boolean to make sure the song
has started, and only shutdown if it has.
Then in the dostartup function, I would change the Boolean so that when
'handler' is called the next time (which would be after the end of the song),
it would issue the shutdown.
Check some of the examples on how to get and set a variable within functions.
Nick
On Tue, Dec 5, 2017 at 5:22 AM, Martin Knapp <[email protected]> wrote:
Hi,
it works! 30 seconds after finishing the playback the Raspi shuts down - thanks
again, Nick!
I imagine that 30 sec. is the default value. It's a little short, however, when
it comes to jumping of the sofa, running to the turntable and put another
record to play ;)
I've read that with Liquidsoap's blank operators you can fine-tune the length
and threshold parameters.
I have been trying to do so with on_blank, following the samples for skip_blank
etc.:
source = on_blank(handler,length=120.,phono)
The result is that Liquidsoap doesn't start any longer.
Hence my questions (it seems that bthere is no documentation on the on_blank
params?):
1. How can I define the minimum length a blank must have in order to be
recognized as such?
2. How can I avoid that the shutdown script is triggered after starting the
Raspi and before any record has been played, e.g. in cases that it takes longer
to find the record, clean it etc.?
In other words: The perfect setup for this vinyl streamer would be:
- Start the Raspi
- Liquidsoap is waiting (indefinitely) for the first record to be played
- Liquidsoap triggers the shutdown script after the amount of time defined for
on_blank recognition.
Thanks & best regards
Martin
Am 04.12.2017 um 12:35 schrieb Nicholas Vrtis:
It looks like you are trying to output the source 'phono', but it is the source
'source' that has the 'on_blank'.
It might be helpful to see the log to see what it happening, and to put a print
in the on blank handler to make sure it is actually being triggered.
Nick
On Mon, Dec 4, 2017 at 4:36 AM, Federico Allegretti <[email protected]> wrote:
And how do you resolve?
Il 01/dic/2017 01:15 PM, "Martin Knapp" <[email protected]> ha scritto:
Hi,
Please apologize if I bring my question (below) up again, It seems that I just
can't resolve the on_blank issue by myself. I would be very grateful for being
pointed to some additional information and/or examples (if they exist).
Regards
Martin
Am 23.11.2017 um 21:19 schrieb Martin Knapp:
Good morning everybody,
in the Slimdevices forums (LMS, squeezelite etc.) we've been looking for a way
to shut down a Raspberry Pi automatically after playing some music when no
sound is detected on the sound card any longer. This can be helpful in our
cases where we are recording or streaming "vinyl" from vintage turntables into
a multiroom enabled system like LMS.
For creating and transmitting the vinyl stream (FLAC), I use Liquidsoap and
Icecast. That works pretty fine, and I'm very thankful for having discovered
Liquidsoap.
My recipe is:
#!/usr/bin/liquidsoap
# set the path and permissions for the logfile
set("log.file.path","/var/log/liquidsoap/phono.log")
set("log.file.perms",777)
#set("log.unix_timestamps",true)
#input from soundcard
phono = input.alsa(bufferize=true,fallible=false,device="hw:0")
#stream it to local icecast, default port and password
output.icecast(%ogg(%flac(samplerate=44100,channels=2,compression=5,bits_per_sample=16)),
mount="/phono", name="Phono", format="audio/ogg", description="Turntable
FLAC", url= <http://192.168.178.200”> "http://192.168.178.200”",
genre = "Misc", phono)
Now we have been looking at the on_blank operator described in
http://liquidsoap.fm/doc-dev/blank.html, which seems to be able to do the job
of shutting down the Pi after finishing the playback of a vinyl record. I
created a shut down script (shut_on_blank.sh, owner: root) and tried to insert:
def handler()
system("/etc/liquidsoap/shut_on_blank.sh")
end
source = on_blank(handler,phono)
into the .liq file above, but the result was that the entire stream generation
didn't work any longer.
What am I doing wrong?
The second question that arose was whether the length of the blank to be
detected as such can be configured with on_blank, too - as it seems to be
possible with max_blank= for strip_blank. When searching through the mailing
list, I also found a post saying that the default threshold for blank detection
is -40db, and that it can be adjusted - but not how/where. It seems that we
weren't able to find further information on this in the docs.
Thanks for your help & best regards
Martin
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users