Re: [Savonet-users] LIQUIDSOAP 2.0.3-1

2024-05-20 Thread Romain Beauxis
Hi Rich,

Le mar. 14 mai 2024 à 08:37, Richard Bartholomew  a
écrit :

> Hi,
>
> Firstly, apologies to those who gave me great steps to be able to install
> this version but, unfortunately, due to various things, I haven't been able
> to follow up on problems I've had after the install until now!
>
> BACKGROUND
>
> I am wanting to be able to use cue sheets in my liquidsoap script but am
> getting very erratic streaming under this version. Therefore, I want to
> update to the latest version of liquidsoap to see if I can get cue sheets
> to work reliably but do not have a test environment to do this on first.
>
> I have created a Windows subsystem for linux on Windows 11, installed
> icecast 2.4.4 and liquidsoap 2.0.3-1 so that I can try the update process.
> Everything seems to have installed correctly but I am unable to launch
> liquidsoap successfully. I am running the following commands:
>
> sudo systemctl start autodj;sudo systemctl status autodj
>
> and am getting the following message:
>
> Process: 33134 ExecStart=/home/richard/autodj [0;1;31m(code=exited,
> status=203/EXEC) [0m [m
>Main PID: 33134 (code=exited, status=203/EXEC) [m
>
> If I run ./autodj in the directory where it is located, I get the message
> /home/richard/.opam/default/bin/liquidsoap: bad interpreter: No such file
> or directory
>
> The first line of my autodj file is
>
> #!/home/richard/.opam/default/bin/liquidsoap
>
> Basically, I have just copied my autodj file from my working environment
> and simply changed directory structures as needed.
>
> Does anyone have any ideas as to what I'm doing wrong, please?
>
> Apologies for the length of this mail, too.
>


No worries!

Unfortunately, liquidsoap 2.0.3 is a pretty old version. Due to our limited
resources, we only support the current release cycle which is now on
`2.2.x` and soon to be `2.3.x`.

If you are interested in switching to one of these version, we would be
happy to see if we can support you.

Also, I would suggest posting on github discussion which is where most of
our user support is happening these days.

-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] How can I create a very low latency stream?

2024-04-23 Thread Romain Beauxis
Hi René!

Thanks for the words of encouragement and your continued support!

For questions like this, the best medium at the moment is github
discussions.

For your application, `input.harbor` is not what I would recommend. It uses
a TCP connection and requires buffering so you will never be able to get
below a certain threshold for latency.

The best I would suggest for latency is:
* Use a udp-based input. `input.srt` is probably the best for us.
* Reduce the frame size.

In `2.2.x` you can cheat a little bit by setting the video rate to 0 and
then the frame size can be whatever you want. See for instance:
https://www.liquidsoap.info/doc-2.2.4/cookbook.html#alsa-unbuffered-output

In `2.3.x`, the current `main` this is now a plain feature but this is also
the experimental version. If you wanted to try with this one, though, I
would personally help fixing whatever bug you encounter.

Lastly, you would also need a suitable output. Again, `output.srt` would be
great but it's not for general public consumption so you would then need
another broadcast server to receive it and make it available to your
listeners.

If you give more details we can see about this further. Also, happy to move
this to github discussion where you might be more feedback from other users.

-- Romain

Le lun. 22 avr. 2024 à 09:10, René Jaun  a écrit :

> Hello,
> We've been using Liquidsoap for more than six years now. It's very
> valuable for us. So thanks for doing such a great job.
> Currently, I am trying to set up a new system for our realtime broadcasts
> of soccer games.
> We would like to be able to provide an audio stream for people listening
> inside stadiums. This stream should of course have no or very little
> latency (ideally under 0.5 seconds).
> I read somewhere that Liquidsoap may not be suited for this, having
> somebuffers built-in which can't be changed.
> At the same time, I'd really like to keep using Liquidsoap to capture the
> audio from our hosts at the stadium, as it really works well with their
> broadcasting app, Backpack Studio.
> Thus my question is something like: Is there a way to have Liquidsoap
> relay / output the audio signal it gets via input.harbor without any
> buffering / delay to another program which could serve the realtime-output
> to our audience in the stadium? (I am looking at a Janus-based option for
> this).
> This should happen  in addition to our classical Icecast Output method,
> which would provide our complete program with  more latency. delay.
>
> Thanks for any help!
> Best regards
> René
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] INSTALLING LIQUIDSOAP

2024-03-24 Thread Romain Beauxis
Nice thanks Robban.

You can also install a given version like this:
  opam install liquidsoap.2.0.3-1

Be aware, though, that this is a rather old package so it is not clear if
it'll install right away..

Le sam. 23 mars 2024 à 11:57, Richard Bartholomew  a
écrit :

> Thank you very much for your speedy help. That's great.
>
> Cheers
> Richard Bartholomew
>
>
> On Sat, 23 Mar 2024 at 16:53, Robban Andersson 
> wrote:
>
>> "opam pin liquidsoap 2.0.3-1"
>> and then
>> "opam install liquidsoap ffmpeg"
>>
>> It should work :)
>>
>> Den lör 23 mars 2024 17:45Richard Bartholomew  skrev:
>>
>>> Hi,
>>>
>>> I presently have a live station running using Liquidsoap V2.0.3-1 on
>>> Ubuntu 22.04.4 which was set up by someone else and I now wish to upgrade
>>> it to V2.2.
>>>
>>> I have created a test server and wish to install Liquidsoap 2.0.3-1 so
>>> that I can go through the upgrade process in a safe environment. How can I
>>> install this version of Liquidsoap, please, since, if I issue opam install
>>> ffmpeg liquidsoap, it pulls down the latest version quite naturally!
>>>
>>> Any help gratefully received.
>>>
>>> Thanks
>>>
>>> Richard Bartholomew
>>>
>>> ___
>>> Savonet-users mailing list
>>> Savonet-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Detection of 18Hz Signal in Stream to remote control Jingle

2024-03-24 Thread Romain Beauxis
Hi Franz,

The github discussions and/or discord are a better place us these days!

Le sam. 23 mars 2024 à 10:22, franz--- via Savonet-users <
savonet-users@lists.sourceforge.net> a écrit :

> Hello everyone,
>
> i want to have a solution to detect a 2 second 18Hz Signal in a livestream
> to play out a Jingle over the input signal.
> I tried since das to get a solution. Someone told me that it is possible
> with liquidsoap.
> This is my current siple code (just for testing):
>
> #!/usr/bin/liquidsoap
>
> set("log.file.path", "/var/log/liquidsoap/radio.log")
> playlist = playlist("/media/USB/Musik/")
> jingle1= single("/media/USB/Musik/jingle.mp3")
>
> url = "https://stream.antenne.de/antenne/stream/mp3;
> interlude = mksafe(input.http(url))
> security = single("/media/USB/Musik/emergency.mp3")
> radio = playlist
>
> radio = fallback(track_sensitive = false, [radio, security])
>
> radio = fallback(track_sensitive=false, [blank.strip(max_blank=1., radio),
> interlude])
>
> output.icecast(%mp3(bitrate=256,id3v2=true,samplerate=48000),
>   host = "X", port = 8000,
>   password = "", mount = "radio",
>   radio)
>
>
> The current url is just for testing the fallback to an other stream if
> something went wrong.
> How is it possible to detect the 18Hz and play the jingle1.mp if a two
> second long 18Hz signal is detected (For safety it will be 180degree phase
> shifted between the Channels). If that would be possible, i would like to
> have more frequecies ( maybe 20Hz and 22Hz) for jingle2 and jingle3. Is
> there anybode who can help me?
>

I'm not quite sure that we have anything for this yet. We have
`sine.detect` operator that I am not very familiar with -- it was developed
as part of the DTMF generation/detection work. You might want to start with
it.

If not, it shouldn't be too hard to implement your own operator if you are
already familiar with the kind of signal processing required for it.

Once you have a working detection operator, triggering the jingle and etc
should indeed be pretty straight forward.

-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Logging out when something plays

2024-03-19 Thread Romain Beauxis
Hi!

Le mer. 13 mars 2024 à 06:33, TDAS via Savonet-users <
savonet-users@lists.sourceforge.net> a écrit :

> Additionally, is there some way I can say "Upon reloading the playlist,
> dump it to stdout"?
>
> Perhaps if I provide a bit more information...
>
> I am running liquidsoap in docker, and although it says it is reloading
> the playlist (the 'playlist' is a directory, and I have tried 'watch' and
> 'every 10 minutes'), the original files seem to be the only ones playing.
>
> So either it's not actually reloading (in which case, why?), or, it is
> having difficulty playing the files.
>
> Because there is no "Playing" or "Attempting to play", I'm a little stuck
> on the debugging side of things.
>
>
> > On 13 Mar 2024, at 09:18, TDAS via Savonet-users <
> savonet-users@lists.sourceforge.net> wrote:
> >
> > Anyone?
> >
> >> On 10 Mar 2024, at 21:14, TDAS via Savonet-users <
> savonet-users@lists.sourceforge.net> wrote:
> >>
> >> Hi
> >>
> >> Is it possible to get liquidsoap to log when a track successfully plays
> (ideally start and end, but at least the latter)?
> >>
> >> At the moment I just have when it 'identifies' a track, and when it
> 'successfully decodes' one
> >>
> >> The context is I have someone complaining that certain tracks are not
> being played, so I need to be able to say track X was definitely played at
> such and such a time.
> >>
> >> ___
> >> Savonet-users mailing list
> >> Savonet-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
The github discussions are a better location to get help these days!

You can track... tracks using `source.on_track` and `source.on_end`!

Likewise, you have a `on_reload` callback on playlists and a `queue` method
so I imagine that a combination of those two should allow you to implement
what you need.

Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] mixxx and input.harbor

2024-02-24 Thread Romain Beauxis
Le sam. 24 févr. 2024 à 14:03, Per Gunnarsson  a écrit :
>
> Hello!
>
> I am trying to stream to input.harbor with mixxx from Windows.
>
> When I shut down mixxx, liquidsoap does not go on from mixxx
> to my other sources but seems to crash.
>
> I can shut down for example Cool Mic and b u t t pretty rough,
> but then liquidsoap happily continues.
>
> # mixxx input
>
>
> mixxx = input.harbor(id="mixxx", debug=true, "mixxx", port=8090, 
> password="BoogleBay.46", buffer=1.0)
> #mixxx = input.harbor(id="mixxx", transport=transport, debug=true, "mixxx", 
> port=8090, password="BoogleBay.46", buffer=1.0)
>
> mixxx = server.insert_metadata(id="mixxx", mixxx)
>
> List of sources:
>
> dull =
>   fallback(track_sensitive=false,
> [(jive),
> (ejiv),
> (mopidy),
> (mixxx),
> (full),
> (grejs),
> (hefault)])
>
> Link to log level 6 below:
>
> 2024/02/24 20:22:31 is where it starts
>
> Is this because my mixxx input section is wrong,
> or is there some issue between mixxx and liquidsoap?

Thanks for reporting. The logs were very useful. Hopefully, this
should be fixed with this commit:
https://github.com/savonet/liquidsoap/commit/c8ad39009fed484a6d3666f713ff9fd58ffc2d61

This should be available with the next `rolling-release-v2.2.x` build.

Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Updating Ocamlimages Cause Trouble

2024-01-30 Thread Romain Beauxis
Thanks for reporting this. It looks like some issue with the default
compilation flags. Do you need camlimages for your script? We always
recommend minimizing the optional dependencies that you need to prevent
unwanted issues they might bring that you also wouldn't need :-)

Le ven. 12 janv. 2024 à 19:54, Aleksas Tunikas  a écrit :

> Hello fellow radio lovers,
>
> Having problem for a month updating my Liquid on Arch with OPAM, it
> gives the error with ocamlimages package which sounds like the
> following, dunno if it related to this dune thing, does anybody have any
> problems like that too?
>
> ### output ###
> File "png/dune", line 1, characters 0-332:   7)
> # [...]
> #  3 |  (public_name camlimages.png)
> # 
> # 12 |  (:include ../config/png_c_flags.sexp)))
> # 13 |  (c_library_flags
> # 14 |   (:include ../config/png_c_library_flags.sexp)))
> # (cd _build/default && /home/parakovsky/.opam/default/bin/ocamlmklib.opt
> -g -o png/camlimages_png_stubs png/pngwrite.o png/pngread.o -ldopt -lpng16)
> # /usr/bin/ld: png/pngread.o: warning: relocation against
> `caml_atom_table' in read-only section `.text'
> # /usr/bin/ld: png/pngwrite.o: relocation R_X86_64_PC32 against undefined
> symbol `Caml_state' can not be used when making a shared object; recompile
> with -fPIC
> # /usr/bin/ld: final link failed: bad value
> # collect2: error: ld returned 1 exit status
>  [...])
>
>
>
> <><> Error report
> <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
> ┌─ The following actions failed
> │ λ build camlimages 5.0.5
> └─
>
> --
> Aleksas Tunikas
> http://www.schopenhauer.fm
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] A small typo in the book

2024-01-29 Thread Romain Beauxis
Hi!

Thank you for this!

Sorry it took me so long to respond.

We're always looking for help keeping the book correct and up-to date!

-- Romain

Le dim. 14 janv. 2024 à 00:33, Aleksas Tunikas  a écrit :

> In the book page 40 it says
>
> Streams. The unique feature of Liquidsoap is that it allows the
> manipulation of
> sources which are functions which will generate streams. These streams
> typically
> consist of stereo audio data, but we do restrict to this: they can contain
> audio
> with arbitrary number of channels, they can also contain an arbitrary
> number
> of video channels, and also midi channels (there is limited support for
> sound
> synthesis).
>
> Which I think should've said but we do *not* restrict. A small thing
> that probably doesn't matter, but it is nice to compliment somethnig on
> this fine Sunday morning.
>
> Hope everybody is keeping it groovy, salute.
>
>
> --
> Aleksas Tunikas
> http://www.schopenhauer.fm
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Ffmpeg_decoder.End_of_file.

2023-12-22 Thread Romain Beauxis
Hello and thank you!

Le ven. 22 déc. 2023 à 07:24, Aleksas Tunikas  a écrit :

> Greetings to all the users of amazing software, especially my friend Toots.
>
> I don't want to start unnecessary noise with issues, however I have a
> question, is it just my ffmpeg decoder that gives an error like this, to
> almost every second file (they all flac so it might be a flac decoder
> right?)
>
>
> 2023/12/22 15:56:21 [decoder:2] Decoding "/storage/Audio/Kode9 -
> Escapology (2022) [FLAC]/09 Cross The Gap.flac" ended:
> Ffmpeg_decoder.End_of_file.
>
> This probably nothing to worry about, however I have some segmentation
> dumps and lags during crossfades sometimes, and wonder if this might be
> helping that situation in a negative way. Hope everybody has a wonderful
> day. Aleksas.
>

This specific error can indeed be ignored. However, the segmentation faults
should be reported so we can work on fixing them!

If you are using the ffmpeg decoder, I would suggest to make sure that the
flac decoder is not installed or at lease disabled (using the settings).
This decoder has caused us trouble in the past.

Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-06-04 Thread Romain Beauxis
Hi!

We fixed some issues with append and clock and content_type on May 31st in
commit b2e382829f7f48196527fddf9a26692b0371f961 after Issue #3116 was
reported.

Have you been able to test it since then? This might have fixed your issue
too!

Le jeu. 1 juin 2023 à 00:11, Tyna Pelletier-Bilodeau 
a écrit :

> Hmm, I commented out the output.file thing to see what it would do, and
> it seems to not be the problem. That's great in a way. But it allowed me
> to see more clearly what's going on. This is looping over and over and
> over, after the harbor stream ends and the blank played once, if I get
> this right:
>
> https://paste.xogium.me/Pc.txt
>
> On Wed May 31, 2023 at 9:13 PM CEST, Romain Beauxis wrote:
> > Hi!
> >
> > Do you have some logs around the issue? Also to confirm: you're running
> > 2.2.x, correct?
> >
> > Le mer. 31 mai 2023 à 04:02, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > a écrit :
> >
> > > Yeah, alright there's definitely something fishy somewhere here, I just
> > > don't know what that might be. After a while of using this insert_track
> > > and such, I will get spammed by source_fail on a regular basis, over
> and
> > > over, and no going back from the live stream to pulseaudio is possible.
> > > Really strange issue.
> > >
> > > On Sat May 27, 2023 at 4:45 PM CEST, Romain Beauxis wrote:
> > > > I think that this is because your input is pulseaudio so it doesn't
> have
> > > > tracks. In this case, you also need to insert a track mark to give
> the
> > > > append operator a chance to insert the blank.
> > > >
> > > > Something like this:
> > > >
> > > > binaural = insert_metadata(binaural)
> > > > insert_track = fun () -> binaural.insert_metadata(new_track=true, [])
> > > >
> > > > Then, later:
> > > > insert_track()
> > > > silence_source.skip()
> > > >
> > > > I just tested it locally and it worked!
> > > >
> > > > -- Romain
> > > >
> > > > Le mar. 23 mai 2023 à 02:31, Tyna Pelletier-Bilodeau <
> > > ecole.t...@gmail.com>
> > > > a écrit :
> > > >
> > > > > Of course, I will share everything needed here, even the effects I
> > > > > applied to the live stream in case they are useful in finding
> what's
> > > > > wrong.
> > > > >
> > > > > binaural = input.pulseaudio(device =
> > > > > "alsa_input.usb-ZOOM_Corporation_F3-00.analog-stereo")
> > > > >
> > > > > live =
> > > > >
> > >
> input.harbor("harbor",port=8005,user="username",password="password",icy=true)
> > > > >
> > > > > def multiband_band(live, from, _to, attack, release, ratio,
> threshold,
> > > > > gain)
> > > > > high_live = filter.iir.eq.high(live, frequency = from,)
> > > > > live_filtered = filter.iir.eq.low(high_live, frequency =
> _to,)
> > > > > live_compressed = ladspa.tap_limiter(limit_level = -0.5,
> > > > > ladspa.sc4(rms_peak = 0.5, attack_time = attack, release_time =
> > > release,
> > > > > threshold_level = threshold, ratio=ratio, makeup_gain = gain,
> > > > > live_filtered))
> > > > > live_compressed
> > > > > end
> > > > > live = ladspa.gate(live, threshold = -80.0, attack = 0.15, hold =
> 1.0,
> > > > > decay = 200.0, range = -25.0)
> > > > > live = normalize(gain_min = -16., gain_max = 0., target = 0.5,
> live)
> > > > > live = ladspa.sc4(rms_peak=0.3, attack_time = 0.5, release_time =
> 3.,
> > > > > threshold_level = -36.0, ratio=1., makeup_gain = 6., live)
> > > > > live = ladspa.tap_equalizer(band_1_freq=70., band_1_gain=4., live)
> > > > > live = ladspa.tap_equalizer(band_1_freq=150., band_1_gain=-2.,
> live)
> > > > > live = add(normalize=false,
> > > > > [
> > > > > multiband_band(live, 0., 200., 3.5, 30., 3., -10., 2.),
> > > > > multiband_band(live, 200., 1000., 2.25, 40., 2., -13., 2.),
> > > > > multiband_band(live, 1000., 3500., 2.25, 40., 3., -9., 2.),
> > > > > multiband_band(live, 3500., 6500., 2.25, 60., 2., -6.,
> 1.5),
> > > > > multiband_band(live, 6500., 2., 2.25, 70., 2., -4., 1

Re: [Savonet-users] 2.2 bug on windows

2023-06-03 Thread Romain Beauxis
Hi,

This looks like mostly positive except for that one radio with a leak.

For sure, feel free to send the script. Last I checked I wasn't able to
find a root cause but maybe this time things would bode better1

Thanks,
-- Romain

Le mer. 31 mai 2023 à 15:00, p· g···  a écrit :

> hi Romain!
>
> thanks for such an eventful yesterday!
>
> yes, the special tick-callback-2.2.0-win64 works fine!
>
> i mean, it doesn't have "must catch up" errors and no issues on harbour
> connecting - so in that regard it's as good as 2.1
>
> the memory - initially it takes more memory, yes, but as it starts leaking
> eventually anyways it doesn't matter. if there is no leak, process sits at
> about 300MB.
>
> sometimes it seems that only one of my radios has this leak, i kept on
> sending that config years ago.
> maybe would be useful to send it again? i've lost many of the good
> functions
> along version upgrades (writing track names to log, dynamic queues and
> wishlists - didn't manage to rewrite the code) but apparently it wasn't
> them
> making the trouble.
> yet, the assumption that only one of my radios leak can be misleading as i
> just checked that the process which seem not to be leaking is one hour
> fresh, what means that it has crashed just an hour ago. i re-start them
> all
> early in the morning and have a watchdog to check over them in the day's
> run... most often the crash happens soon after some harbour disconnects.
> it's been so throughout all v2 builds i think... but let's not get into v1
> nostalgia as it had other bugs which are solved now ;)
> also i noticed that with latest v2 build there is no duplicate jingles
> happening anymore - that bug appeared out of nowhere in V2 and plagued it
> till now... today i noticed it's fine!
>
> regards,
> Pranas
>
>
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 31 d. 22:05
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Hi!
>
> How's it going with the 2.2.x tests?
>
>
> Le ven. 26 mai 2023 à 17:25, p· g···  a écrit :
> thanks Romain!
> I've put that on! let's see what happens when some harbor connects ;)
> so far i have to note that the process is using more memory than  v2.1.
> if it survives harbor connections we'll se how it behaves in other regards
> (leaks, general stability...)
>
> thxxx,
> P
>
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 26 d. 16:55
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Thanks. I think I figured it out.
>
> Could you try the windows build that is available here:
> https://github.com/savonet/liquidsoap/actions/runs/5086497869
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-31 Thread Romain Beauxis
Hi!

Do you have some logs around the issue? Also to confirm: you're running
2.2.x, correct?

Le mer. 31 mai 2023 à 04:02, Tyna Pelletier-Bilodeau 
a écrit :

> Yeah, alright there's definitely something fishy somewhere here, I just
> don't know what that might be. After a while of using this insert_track
> and such, I will get spammed by source_fail on a regular basis, over and
> over, and no going back from the live stream to pulseaudio is possible.
> Really strange issue.
>
> On Sat May 27, 2023 at 4:45 PM CEST, Romain Beauxis wrote:
> > I think that this is because your input is pulseaudio so it doesn't have
> > tracks. In this case, you also need to insert a track mark to give the
> > append operator a chance to insert the blank.
> >
> > Something like this:
> >
> > binaural = insert_metadata(binaural)
> > insert_track = fun () -> binaural.insert_metadata(new_track=true, [])
> >
> > Then, later:
> > insert_track()
> > silence_source.skip()
> >
> > I just tested it locally and it worked!
> >
> > -- Romain
> >
> > Le mar. 23 mai 2023 à 02:31, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > a écrit :
> >
> > > Of course, I will share everything needed here, even the effects I
> > > applied to the live stream in case they are useful in finding what's
> > > wrong.
> > >
> > > binaural = input.pulseaudio(device =
> > > "alsa_input.usb-ZOOM_Corporation_F3-00.analog-stereo")
> > >
> > > live =
> > >
> input.harbor("harbor",port=8005,user="username",password="password",icy=true)
> > >
> > > def multiband_band(live, from, _to, attack, release, ratio, threshold,
> > > gain)
> > > high_live = filter.iir.eq.high(live, frequency = from,)
> > > live_filtered = filter.iir.eq.low(high_live, frequency = _to,)
> > > live_compressed = ladspa.tap_limiter(limit_level = -0.5,
> > > ladspa.sc4(rms_peak = 0.5, attack_time = attack, release_time =
> release,
> > > threshold_level = threshold, ratio=ratio, makeup_gain = gain,
> > > live_filtered))
> > > live_compressed
> > > end
> > > live = ladspa.gate(live, threshold = -80.0, attack = 0.15, hold = 1.0,
> > > decay = 200.0, range = -25.0)
> > > live = normalize(gain_min = -16., gain_max = 0., target = 0.5, live)
> > > live = ladspa.sc4(rms_peak=0.3, attack_time = 0.5, release_time = 3.,
> > > threshold_level = -36.0, ratio=1., makeup_gain = 6., live)
> > > live = ladspa.tap_equalizer(band_1_freq=70., band_1_gain=4., live)
> > > live = ladspa.tap_equalizer(band_1_freq=150., band_1_gain=-2., live)
> > > live = add(normalize=false,
> > > [
> > > multiband_band(live, 0., 200., 3.5, 30., 3., -10., 2.),
> > > multiband_band(live, 200., 1000., 2.25, 40., 2., -13., 2.),
> > > multiband_band(live, 1000., 3500., 2.25, 40., 3., -9., 2.),
> > > multiband_band(live, 3500., 6500., 2.25, 60., 2., -6., 1.5),
> > > multiband_band(live, 6500., 2., 2.25, 70., 2., -4., 1.)
> > > ])
> > > live = ladspa.tap_limiter(limit_level = -0.5, live)
> > >
> > > # Set to `true` when we should be adding
> > > # silence
> > > should_append = ref(false)
> > >
> > > # Append 10. of silence when needed.
> > > silence_source = append(
> > > binaural, fun (_) ->
> > > if should_append() then
> > > should_append := false
> > > blank(duration=10.)
> > > else
> > > source.fail()
> > > end
> > > )
> > >
> > > # Transition to live
> > > def to_live(binaural, live) =
> > > sequence([binaural,live])
> > > end
> > >
> > > # Transition back to playlist
> > > def to_binaural(live, binaural) =
> > > # Ask to insert a silent track.
> > > should_append := true
> > >
> > > # Cancel current track. This will also set the playlist
> > > # to play a new track. If needed, `cancel_pending` can
> > > # be used to for a new silent track without skipping the
> > > # playlist current track.
> > > silence_source.skip()
> > >
> > > sequence([live, binaural])
> > > end
> > >
> > > source = fallback(
> > > track_sensitive=false,
>

Re: [Savonet-users] 2.2 bug on windows

2023-05-31 Thread Romain Beauxis
Hi!

How's it going with the 2.2.x tests?

Le ven. 26 mai 2023 à 17:25, p· g···  a écrit :

> thanks Romain!
> I've put that on! let's see what happens when some harbor connects ;)
> so far i have to note that the process is using more memory than  v2.1.
> if it survives harbor connections we'll se how it behaves in other regards
> (leaks, general stability...)
>
> thxxx,
> P
>
>
> -----Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 26 d. 16:55
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Thanks. I think I figured it out.
>
> Could you try the windows build that is available here:
> https://github.com/savonet/liquidsoap/actions/runs/5086497869
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidshop 3 begins in a hour!

2023-05-30 Thread Romain Beauxis
Hi all,

The 3rd Liquidshop will begin in about an hour! Meet and greet at 12:45 GMT
followed by the first talk at 13:00.

Link for the event: http://bbb.liquidsoap.info/

See y'all soon!
-- Romain & Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-27 Thread Romain Beauxis
I think that this is because your input is pulseaudio so it doesn't have
tracks. In this case, you also need to insert a track mark to give the
append operator a chance to insert the blank.

Something like this:

binaural = insert_metadata(binaural)
insert_track = fun () -> binaural.insert_metadata(new_track=true, [])

Then, later:
insert_track()
silence_source.skip()

I just tested it locally and it worked!

-- Romain

Le mar. 23 mai 2023 à 02:31, Tyna Pelletier-Bilodeau 
a écrit :

> Of course, I will share everything needed here, even the effects I
> applied to the live stream in case they are useful in finding what's
> wrong.
>
> binaural = input.pulseaudio(device =
> "alsa_input.usb-ZOOM_Corporation_F3-00.analog-stereo")
>
> live =
> input.harbor("harbor",port=8005,user="username",password="password",icy=true)
>
> def multiband_band(live, from, _to, attack, release, ratio, threshold,
> gain)
> high_live = filter.iir.eq.high(live, frequency = from,)
> live_filtered = filter.iir.eq.low(high_live, frequency = _to,)
> live_compressed = ladspa.tap_limiter(limit_level = -0.5,
> ladspa.sc4(rms_peak = 0.5, attack_time = attack, release_time = release,
> threshold_level = threshold, ratio=ratio, makeup_gain = gain,
> live_filtered))
> live_compressed
> end
> live = ladspa.gate(live, threshold = -80.0, attack = 0.15, hold = 1.0,
> decay = 200.0, range = -25.0)
> live = normalize(gain_min = -16., gain_max = 0., target = 0.5, live)
> live = ladspa.sc4(rms_peak=0.3, attack_time = 0.5, release_time = 3.,
> threshold_level = -36.0, ratio=1., makeup_gain = 6., live)
> live = ladspa.tap_equalizer(band_1_freq=70., band_1_gain=4., live)
> live = ladspa.tap_equalizer(band_1_freq=150., band_1_gain=-2., live)
> live = add(normalize=false,
> [
> multiband_band(live, 0., 200., 3.5, 30., 3., -10., 2.),
> multiband_band(live, 200., 1000., 2.25, 40., 2., -13., 2.),
> multiband_band(live, 1000., 3500., 2.25, 40., 3., -9., 2.),
> multiband_band(live, 3500., 6500., 2.25, 60., 2., -6., 1.5),
> multiband_band(live, 6500., 2., 2.25, 70., 2., -4., 1.)
> ])
> live = ladspa.tap_limiter(limit_level = -0.5, live)
>
> # Set to `true` when we should be adding
> # silence
> should_append = ref(false)
>
> # Append 10. of silence when needed.
> silence_source = append(
> binaural, fun (_) ->
> if should_append() then
> should_append := false
> blank(duration=10.)
> else
> source.fail()
> end
> )
>
> # Transition to live
> def to_live(binaural, live) =
> sequence([binaural,live])
> end
>
> # Transition back to playlist
> def to_binaural(live, binaural) =
> # Ask to insert a silent track.
> should_append := true
>
> # Cancel current track. This will also set the playlist
> # to play a new track. If needed, `cancel_pending` can
> # be used to for a new silent track without skipping the
> # playlist current track.
> silence_source.skip()
>
> sequence([live, binaural])
> end
>
> source = fallback(
> track_sensitive=false,
> transitions=[to_live, to_binaural],
> [live, silence_source]
> )
>
> I stream to icecast in mp3.cbr with a 192 kbps bitrate, in case this
> matters.
>
> I also see the blanks coming on and going, and the append track being
> played, except it doesn't play any silence and just goes back to pulseaudio.
>
> Hope this helps!
>
> On Mon May 22, 2023 at 11:12 PM CEST, Romain Beauxis wrote:
> > No it should be the same. Could you share a little more of your script?
> >
> > Le lun. 22 mai 2023 à 09:20, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > a écrit :
> >
> > > Hi,
> > > I tried with a git pull on the master branch. Should I switch to the
> > > 2.2.x branch?
> > >
> > > On Mon May 22, 2023 at 3:46 PM CEST, Romain Beauxis wrote:
> > > > Hi,
> > > >
> > > > Have you tried with the latest rolling release code:
> > > >
> > >
> https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x
> > > >
> > > > Le dim. 21 mai 2023 à 15:14, Tyna Pelletier-Bilodeau <
> > > ecole.t...@gmail.com>
> > > > a écrit :
> > > >
> > > > > After I used the example provided in the cookbook to append a
> silence
> > > > > track, I get a whole bunch of these  while simulating a timeout
> from
> > > > > harbor by

Re: [Savonet-users] 2.2 bug on windows

2023-05-26 Thread Romain Beauxis
Thanks. I think I figured it out.

Could you try the windows build that is available here:
https://github.com/savonet/liquidsoap/actions/runs/5086497869

Le lun. 22 mai 2023 à 16:10, p· g···  a écrit :

> oookay, i found what crashes 2.2:
> it's a connection to any harbour. the cpu usage jumps and stays there, the
> stream crashes (liquidsoap ceases to streaming to icecaster).
> the log does not log anything wrong though. its last words:
>
> the moment source connects: 2023/05/22 20:32:52 [mm:3] Decoding...
> 2023/05/22 20:33:22 [switch_5:3] Switch to source_8 with transition.
> 2023/05/22 20:33:22 [lang.deprecated:2] WARNING: "add_timeout" is
> deprecated
> and will be removed in future version. Please use "thread.run.recurrent"
> instead.
> 2023/05/22 20:33:22 [add:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [add:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [fade_in:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [on_track_1:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [on_metadata_0:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [on_track_0:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [fade_in:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [amplify:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [amplify:3] Content type is {audio=pcm(stereo)}.
> 2023/05/22 20:33:22 [metadata_map:3] Inserting missing metadata.
>
> P
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-22 Thread Romain Beauxis
No it should be the same. Could you share a little more of your script?

Le lun. 22 mai 2023 à 09:20, Tyna Pelletier-Bilodeau 
a écrit :

> Hi,
> I tried with a git pull on the master branch. Should I switch to the
> 2.2.x branch?
>
> On Mon May 22, 2023 at 3:46 PM CEST, Romain Beauxis wrote:
> > Hi,
> >
> > Have you tried with the latest rolling release code:
> >
> https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x
> >
> > Le dim. 21 mai 2023 à 15:14, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > a écrit :
> >
> > > After I used the example provided in the cookbook to append a silence
> > > track, I get a whole bunch of these  while simulating a timeout from
> > > harbor by disconnecting the vpn while the phone was streaming, and
> > > there's no silence playing, it immediately switches to pulseaudio:
> > >
> > > 2023/05/21 22:02:16 [fail_0:3] Content type is {audio=pcm(stereo)}.
> > >
> > > What does that mean, exactly? Should I be doing something for the
> > > source.fail() portion of the code?
> > >
> > > Thanks for your work, by the way!
> > >
> > > On Sun May 21, 2023 at 6:43 PM CEST, Romain Beauxis wrote:
> > > > Le sam. 20 mai 2023 à 23:08, Romain Beauxis <
> romain.beau...@gmail.com> a
> > > > écrit :
> > > >
> > > > >
> > > > > Le sam. 20 mai 2023 à 13:02, Tyna Pelletier-Bilodeau <
> > > ecole.t...@gmail.com>
> > > > > a écrit :
> > > > >
> > > > >> Hi Romain,
> > > > >> thank you, I will try this and see how it goes.
> > > > >>
> > > > >> By the way I've been toying a bit with harbor, and wondered if
> there
> > > was
> > > > >> a way to have liquidsoap waiting a little in case the live drops
> out
> > > > >> for a few seconds instead of immediately swtching back to the main
> > > > >> source?
> > > > >>
> > > > >> I stream to the input over wireguard, which means sometimes I'm
> > > roaming
> > > > >> to get a signal from 4g towers. I'd like if I could stream some
> > > silence
> > > > >> instead of immediately falling back to the main source, which is
> > > another
> > > > >> live done with input.pulseaudio, and which is jarring since the
> > > > >> transition happens out of nowhere. Maybe up to say 10 seconds of
> delay
> > > > >> before giving up and switching to the main source, is this
> possible?
> > > > >>
> > > > >
> > > > > Yes, it's a pretty legit use-case. I'm sure it's possible right
> now but
> > > > > might be a little tricky to setup. I'll think about what we can do
> to
> > > make
> > > > > this easy to setup.
> > > > >
> > > >
> > > > I have a PR making a couple of tweaks to make it possible:
> > > > https://github.com/savonet/liquidsoap/pull/3098
> > > >
> > > >
> > > > >
> > > > >
> > > > >> On Sat May 20, 2023 at 2:18 AM CEST, Romain Beauxis wrote:
> > > > >> > Hi!
> > > > >> >
> > > > >> > Le ven. 19 mai 2023 à 02:39, Tyna Pelletier-Bilodeau <
> > > > >> ecole.t...@gmail.com>
> > > > >> > a écrit :
> > > > >> >
> > > > >> > > Hi,
> > > > >> > > it looks like after a connection timeout with liquidsoap
> 2.1.4, it
> > > > >> can't
> > > > >> > > automatically retry to reconnect to icecast. I'm not sure
> weather
> > > it's
> > > > >> > > because I use a tls enabled port or not, but in any event this
> > > > >> shouldn't
> > > > >> > > be happening. It is perfectly able to try reconnecting if for
> > > example
> > > > >> > > the icecast server has a too low maximum number of sources
> > > allowed,
> > > > >> but
> > > > >> > > when it is already streaming, and out of nowhere there's a
> > > problem, it
> > > > >> > > seems totally unable to do anything for itself.
> > > > >> > >
> > > > >> > > 2023/05/13 18:06:28 [asmrpmp3:3] Connection setup was
> successful.
> > 

Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-22 Thread Romain Beauxis
Hi,

Have you tried with the latest rolling release code:
https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x

Le dim. 21 mai 2023 à 15:14, Tyna Pelletier-Bilodeau 
a écrit :

> After I used the example provided in the cookbook to append a silence
> track, I get a whole bunch of these  while simulating a timeout from
> harbor by disconnecting the vpn while the phone was streaming, and
> there's no silence playing, it immediately switches to pulseaudio:
>
> 2023/05/21 22:02:16 [fail_0:3] Content type is {audio=pcm(stereo)}.
>
> What does that mean, exactly? Should I be doing something for the
> source.fail() portion of the code?
>
> Thanks for your work, by the way!
>
> On Sun May 21, 2023 at 6:43 PM CEST, Romain Beauxis wrote:
> > Le sam. 20 mai 2023 à 23:08, Romain Beauxis  a
> > écrit :
> >
> > >
> > > Le sam. 20 mai 2023 à 13:02, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > > a écrit :
> > >
> > >> Hi Romain,
> > >> thank you, I will try this and see how it goes.
> > >>
> > >> By the way I've been toying a bit with harbor, and wondered if there
> was
> > >> a way to have liquidsoap waiting a little in case the live drops out
> > >> for a few seconds instead of immediately swtching back to the main
> > >> source?
> > >>
> > >> I stream to the input over wireguard, which means sometimes I'm
> roaming
> > >> to get a signal from 4g towers. I'd like if I could stream some
> silence
> > >> instead of immediately falling back to the main source, which is
> another
> > >> live done with input.pulseaudio, and which is jarring since the
> > >> transition happens out of nowhere. Maybe up to say 10 seconds of delay
> > >> before giving up and switching to the main source, is this possible?
> > >>
> > >
> > > Yes, it's a pretty legit use-case. I'm sure it's possible right now but
> > > might be a little tricky to setup. I'll think about what we can do to
> make
> > > this easy to setup.
> > >
> >
> > I have a PR making a couple of tweaks to make it possible:
> > https://github.com/savonet/liquidsoap/pull/3098
> >
> >
> > >
> > >
> > >> On Sat May 20, 2023 at 2:18 AM CEST, Romain Beauxis wrote:
> > >> > Hi!
> > >> >
> > >> > Le ven. 19 mai 2023 à 02:39, Tyna Pelletier-Bilodeau <
> > >> ecole.t...@gmail.com>
> > >> > a écrit :
> > >> >
> > >> > > Hi,
> > >> > > it looks like after a connection timeout with liquidsoap 2.1.4, it
> > >> can't
> > >> > > automatically retry to reconnect to icecast. I'm not sure weather
> it's
> > >> > > because I use a tls enabled port or not, but in any event this
> > >> shouldn't
> > >> > > be happening. It is perfectly able to try reconnecting if for
> example
> > >> > > the icecast server has a too low maximum number of sources
> allowed,
> > >> but
> > >> > > when it is already streaming, and out of nowhere there's a
> problem, it
> > >> > > seems totally unable to do anything for itself.
> > >> > >
> > >> > > 2023/05/13 18:06:28 [asmrpmp3:3] Connection setup was successful.
> > >> > > 2023/05/19 08:12:42 [asmrpmp3:2] Error while sending data: could
> not
> > >> > > write data to host: connection timeout!
> > >> > > 2023/05/19 08:12:42 [asmrpmp3:3] Closing connection...
> > >> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Source asmrpmp3 failed
> while
> > >> > > streaming: could not close connection: SSL connection() error:
> > >> > > error::lib(0)::reason(0)!
> > >> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Raised at Cry.close in
> file
> > >> > > "src/cry.ml", line 193, characters 11-34
> > >> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > >> > > Icecast2.output#icecast_stop in file "outputs/icecast2.ml", line
> 596,
> > >> > > characters 14-34
> > >> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > >> > > Icecast2.output#icecast_send in file "outputs/icecast2.ml", line
> 509,
> > >> > > characters 10-27
> > >> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Call

Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-21 Thread Romain Beauxis
Le sam. 20 mai 2023 à 23:08, Romain Beauxis  a
écrit :

>
> Le sam. 20 mai 2023 à 13:02, Tyna Pelletier-Bilodeau 
> a écrit :
>
>> Hi Romain,
>> thank you, I will try this and see how it goes.
>>
>> By the way I've been toying a bit with harbor, and wondered if there was
>> a way to have liquidsoap waiting a little in case the live drops out
>> for a few seconds instead of immediately swtching back to the main
>> source?
>>
>> I stream to the input over wireguard, which means sometimes I'm roaming
>> to get a signal from 4g towers. I'd like if I could stream some silence
>> instead of immediately falling back to the main source, which is another
>> live done with input.pulseaudio, and which is jarring since the
>> transition happens out of nowhere. Maybe up to say 10 seconds of delay
>> before giving up and switching to the main source, is this possible?
>>
>
> Yes, it's a pretty legit use-case. I'm sure it's possible right now but
> might be a little tricky to setup. I'll think about what we can do to make
> this easy to setup.
>

I have a PR making a couple of tweaks to make it possible:
https://github.com/savonet/liquidsoap/pull/3098


>
>
>> On Sat May 20, 2023 at 2:18 AM CEST, Romain Beauxis wrote:
>> > Hi!
>> >
>> > Le ven. 19 mai 2023 à 02:39, Tyna Pelletier-Bilodeau <
>> ecole.t...@gmail.com>
>> > a écrit :
>> >
>> > > Hi,
>> > > it looks like after a connection timeout with liquidsoap 2.1.4, it
>> can't
>> > > automatically retry to reconnect to icecast. I'm not sure weather it's
>> > > because I use a tls enabled port or not, but in any event this
>> shouldn't
>> > > be happening. It is perfectly able to try reconnecting if for example
>> > > the icecast server has a too low maximum number of sources allowed,
>> but
>> > > when it is already streaming, and out of nowhere there's a problem, it
>> > > seems totally unable to do anything for itself.
>> > >
>> > > 2023/05/13 18:06:28 [asmrpmp3:3] Connection setup was successful.
>> > > 2023/05/19 08:12:42 [asmrpmp3:2] Error while sending data: could not
>> > > write data to host: connection timeout!
>> > > 2023/05/19 08:12:42 [asmrpmp3:3] Closing connection...
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Source asmrpmp3 failed while
>> > > streaming: could not close connection: SSL connection() error:
>> > > error::lib(0)::reason(0)!
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Raised at Cry.close in file
>> > > "src/cry.ml", line 193, characters 11-34
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
>> > > Icecast2.output#icecast_stop in file "outputs/icecast2.ml", line 596,
>> > > characters 14-34
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
>> > > Icecast2.output#icecast_send in file "outputs/icecast2.ml", line 509,
>> > > characters 10-27
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
>> > > Output.encoded#send_frame.output_chunks.f in file "outputs/output.ml
>> ",
>> > > line 240, characters 10-24
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
>> > > Output.output#output in file "outputs/output.ml", line 174,
>> characters
>> > > 10-35
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
>> > > Clock.clock#end_tick.(fun) in file "clock.ml", line 300, characters
>> > > 14-22
>> > > 2023/05/19 08:12:54 [clock.pulseaudio:2]
>> > > 2023/05/19 08:12:54 [asmrpmp3:3] Closing connection...
>> > > 2023/05/19 08:12:54 [clock:2] Error when leaving output asmrpmp3:
>> could
>> > > not close connection: SSL connection() error: error:0A000126:SSL
>> > > routines::unexpected eof while reading!
>> > > 2023/05/19 08:12:54 [main:3] Shutdown started!
>> > >
>> > > Any ideas what I can do to mitigate this issue? I'm thinking of
>> checking
>> > > out the latest 2.2.x but I don't know if that has been solved or not,
>> if
>> > > it was even known to begin with, but I don't know how I could try this
>> > > out if I'm using opam.
>> > >
>> >
>> > This looks like a leak in the resources initializations.
>> >
>> > I would definitely try with `2.2.x`. The SSL stack was entirely
>> rewritten
>> > there and some resource cleaning issues were fixed. And we also have TLS
>> > support now so you have two stacks to try if one still has issues.
>> >
>> > To use SSL/TLS in v2.2.x you can now pass an abstract transport
>> variable.
>> > This is explained here:
>> > https://www.liquidsoap.info/doc-dev/harbor_http.html#https-support
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-20 Thread Romain Beauxis
Le sam. 20 mai 2023 à 17:27, p· g···  a écrit :

> hi Romain!
> 2.1.4 uses like 1-3% per instance.
> 2.2 is maybe 1% more under normal usage BUT for the radio in question it
> just grows up to using all available % of the core and catch-up messages in
> log (not sure what happens first - cpu hog or time deficit).
> the cpu is loaded around 10%, no big deal, it's not a tight virtual
> machine filled server...
> with latest 2.2 rolling build it just trips completely... but just this
> one radio, the config you have.
>

Hmm. This sounds like a bad issue indeed.

Any hint about what's going on? Does it loop on things? Or get stuck?


> P
>
> > On 20 May 2023, at 19:58, Romain Beauxis 
> wrote:
> >
> > 
> > Yeah I have noticed some changes on that level. Essentially, it looks
> like we are able to run do better parallel initialization of sources. On my
> machine I can see more than one core being utilized during the initial
> sources preparation, which is cool.
> >
> > I'm not sure yet what to do in your case. What's the total CPU load when
> running on 2.1.4? It seems to me that the script is already on the edge of
> the maximum CPU/memory capacity in 2.1.4 so any increase in CPU and/or
> memory usage, being a bug like we just fixed or an "improvement" as I think
> this is, ends up pushing it to the wrong side and choking.
> >
> >>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-20 Thread Romain Beauxis
Le sam. 20 mai 2023 à 13:02, Tyna Pelletier-Bilodeau 
a écrit :

> Hi Romain,
> thank you, I will try this and see how it goes.
>
> By the way I've been toying a bit with harbor, and wondered if there was
> a way to have liquidsoap waiting a little in case the live drops out
> for a few seconds instead of immediately swtching back to the main
> source?
>
> I stream to the input over wireguard, which means sometimes I'm roaming
> to get a signal from 4g towers. I'd like if I could stream some silence
> instead of immediately falling back to the main source, which is another
> live done with input.pulseaudio, and which is jarring since the
> transition happens out of nowhere. Maybe up to say 10 seconds of delay
> before giving up and switching to the main source, is this possible?
>

Yes, it's a pretty legit use-case. I'm sure it's possible right now but
might be a little tricky to setup. I'll think about what we can do to make
this easy to setup.


> On Sat May 20, 2023 at 2:18 AM CEST, Romain Beauxis wrote:
> > Hi!
> >
> > Le ven. 19 mai 2023 à 02:39, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > a écrit :
> >
> > > Hi,
> > > it looks like after a connection timeout with liquidsoap 2.1.4, it
> can't
> > > automatically retry to reconnect to icecast. I'm not sure weather it's
> > > because I use a tls enabled port or not, but in any event this
> shouldn't
> > > be happening. It is perfectly able to try reconnecting if for example
> > > the icecast server has a too low maximum number of sources allowed, but
> > > when it is already streaming, and out of nowhere there's a problem, it
> > > seems totally unable to do anything for itself.
> > >
> > > 2023/05/13 18:06:28 [asmrpmp3:3] Connection setup was successful.
> > > 2023/05/19 08:12:42 [asmrpmp3:2] Error while sending data: could not
> > > write data to host: connection timeout!
> > > 2023/05/19 08:12:42 [asmrpmp3:3] Closing connection...
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Source asmrpmp3 failed while
> > > streaming: could not close connection: SSL connection() error:
> > > error::lib(0)::reason(0)!
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Raised at Cry.close in file
> > > "src/cry.ml", line 193, characters 11-34
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > > Icecast2.output#icecast_stop in file "outputs/icecast2.ml", line 596,
> > > characters 14-34
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > > Icecast2.output#icecast_send in file "outputs/icecast2.ml", line 509,
> > > characters 10-27
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > > Output.encoded#send_frame.output_chunks.f in file "outputs/output.ml",
> > > line 240, characters 10-24
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > > Output.output#output in file "outputs/output.ml", line 174, characters
> > > 10-35
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> > > Clock.clock#end_tick.(fun) in file "clock.ml", line 300, characters
> > > 14-22
> > > 2023/05/19 08:12:54 [clock.pulseaudio:2]
> > > 2023/05/19 08:12:54 [asmrpmp3:3] Closing connection...
> > > 2023/05/19 08:12:54 [clock:2] Error when leaving output asmrpmp3: could
> > > not close connection: SSL connection() error: error:0A000126:SSL
> > > routines::unexpected eof while reading!
> > > 2023/05/19 08:12:54 [main:3] Shutdown started!
> > >
> > > Any ideas what I can do to mitigate this issue? I'm thinking of
> checking
> > > out the latest 2.2.x but I don't know if that has been solved or not,
> if
> > > it was even known to begin with, but I don't know how I could try this
> > > out if I'm using opam.
> > >
> >
> > This looks like a leak in the resources initializations.
> >
> > I would definitely try with `2.2.x`. The SSL stack was entirely rewritten
> > there and some resource cleaning issues were fixed. And we also have TLS
> > support now so you have two stacks to try if one still has issues.
> >
> > To use SSL/TLS in v2.2.x you can now pass an abstract transport variable.
> > This is explained here:
> > https://www.liquidsoap.info/doc-dev/harbor_http.html#https-support
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-20 Thread Romain Beauxis
Yeah I have noticed some changes on that level. Essentially, it looks like
we are able to run do better parallel initialization of sources. On my
machine I can see more than one core being utilized during the initial
sources preparation, which is cool.

I'm not sure yet what to do in your case. What's the total CPU load when
running on 2.1.4? It seems to me that the script is already on the edge of
the maximum CPU/memory capacity in 2.1.4 so any increase in CPU and/or
memory usage, being a bug like we just fixed or an "improvement" as I think
this is, ends up pushing it to the wrong side and choking.

Le jeu. 18 mai 2023 à 06:16, p· g···  a écrit :

> hi Romain!
>
> just tried it - the radio in question just chokes on startup, eating all
> of
> the cpu (the config you have)
> catchup notices don't even make it to the log, that's where it ends:
>
> 2023/05/18 14:05:10 [studija:3] Decoding...
> 2023/05/18 14:05:37 [switch_17:3] Switch to buffer.producer_0 with
> transition.
> 2023/05/18 14:05:37 [add:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [add:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [fade_in:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [on_track_7:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [on_metadata_0:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [on_track_6:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [fade_in:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [amplify:3] Content type is {audio=pcm(stereo)}.
> 2023/05/18 14:05:37 [amplify:3] Content type is {audio=pcm(stereo)}.
>
> and then i have to kill it because there is no sound, just cpu usage which
> corresponds with one core eaten fully.
>
> regards,
> Pranas
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 18 d. 03:40
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> I was able to identify and fix the issue I believe. I recommend you try
> the
> latest `rolling-release-v2.2.x` build!
>
>
> Le lun. 15 mai 2023 à 18:19, Romain Beauxis  a
> écrit :
>
> It's a catch 22, the CPU will start burning when processing it too slow to
> produce content at real rate but this might start with an increase in CPU
> usage.
>
> I can indeed confirm the increase in CPU usage under normal script
> conditions. I'm investigating it now.
>
>
> Le dim. 14 mai 2023 à 16:58, p· g···  a écrit :
> hi!
> I think the CPU usage increases when "catch-up needed" start popping up...
> the question is perhaps what causes time starvation :o
> some fade implementation or what... because there are plenty of free
> resources on the server.
>
> P
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] liquidsoap 2.1.4 unable to reconnect to icecast after connection timeout

2023-05-20 Thread Romain Beauxis
Hi!

Le ven. 19 mai 2023 à 02:39, Tyna Pelletier-Bilodeau 
a écrit :

> Hi,
> it looks like after a connection timeout with liquidsoap 2.1.4, it can't
> automatically retry to reconnect to icecast. I'm not sure weather it's
> because I use a tls enabled port or not, but in any event this shouldn't
> be happening. It is perfectly able to try reconnecting if for example
> the icecast server has a too low maximum number of sources allowed, but
> when it is already streaming, and out of nowhere there's a problem, it
> seems totally unable to do anything for itself.
>
> 2023/05/13 18:06:28 [asmrpmp3:3] Connection setup was successful.
> 2023/05/19 08:12:42 [asmrpmp3:2] Error while sending data: could not
> write data to host: connection timeout!
> 2023/05/19 08:12:42 [asmrpmp3:3] Closing connection...
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Source asmrpmp3 failed while
> streaming: could not close connection: SSL connection() error:
> error::lib(0)::reason(0)!
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Raised at Cry.close in file
> "src/cry.ml", line 193, characters 11-34
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> Icecast2.output#icecast_stop in file "outputs/icecast2.ml", line 596,
> characters 14-34
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> Icecast2.output#icecast_send in file "outputs/icecast2.ml", line 509,
> characters 10-27
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> Output.encoded#send_frame.output_chunks.f in file "outputs/output.ml",
> line 240, characters 10-24
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> Output.output#output in file "outputs/output.ml", line 174, characters
> 10-35
> 2023/05/19 08:12:54 [clock.pulseaudio:2] Called from
> Clock.clock#end_tick.(fun) in file "clock.ml", line 300, characters
> 14-22
> 2023/05/19 08:12:54 [clock.pulseaudio:2]
> 2023/05/19 08:12:54 [asmrpmp3:3] Closing connection...
> 2023/05/19 08:12:54 [clock:2] Error when leaving output asmrpmp3: could
> not close connection: SSL connection() error: error:0A000126:SSL
> routines::unexpected eof while reading!
> 2023/05/19 08:12:54 [main:3] Shutdown started!
>
> Any ideas what I can do to mitigate this issue? I'm thinking of checking
> out the latest 2.2.x but I don't know if that has been solved or not, if
> it was even known to begin with, but I don't know how I could try this
> out if I'm using opam.
>

This looks like a leak in the resources initializations.

I would definitely try with `2.2.x`. The SSL stack was entirely rewritten
there and some resource cleaning issues were fixed. And we also have TLS
support now so you have two stacks to try if one still has issues.

To use SSL/TLS in v2.2.x you can now pass an abstract transport variable.
This is explained here:
https://www.liquidsoap.info/doc-dev/harbor_http.html#https-support
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-17 Thread Romain Beauxis
I was able to identify and fix the issue I believe. I recommend you try the
latest `rolling-release-v2.2.x` build!

Le lun. 15 mai 2023 à 18:19, Romain Beauxis  a
écrit :

> It's a catch 22, the CPU will start burning when processing it too slow to
> produce content at real rate but this might start with an increase in CPU
> usage.
>
> I can indeed confirm the increase in CPU usage under normal script
> conditions. I'm investigating it now.
>
> Le dim. 14 mai 2023 à 16:58, p· g···  a écrit :
>
>> hi!
>> I think the CPU usage increases when "catch-up needed" start popping
>> up...
>> the question is perhaps what causes time starvation :o
>> some fade implementation or what... because there are plenty of free
>> resources on the server.
>>
>> P
>>
>> -Original Message-
>> From: Romain Beauxis
>> Date: 2023 m. gegužės 13 d. 15:51
>> To: savonet-users@lists.sourceforge.net
>> Subject: Re: [Savonet-users] 2.2 bug on windows
>>
>>
>> Thanks!
>>
>> Apart from the audio signal treatments, I see nothing that should be
>> consuming more CPU. I'll try it locally and will report.
>>
>>
>> Le jeu. 11 mai 2023 à 12:15, p· g···  a écrit :
>> just did!
>>
>>
>> -Original Message-
>> From: Romain Beauxis
>> Date: 2023 m. gegužės 11 d. 16:46
>> To: savonet-users@lists.sourceforge.net
>> Subject: Re: [Savonet-users] 2.2 bug on windows
>>
>>
>> Would you be able to share your script? Even privately so we can see if
>> there's an obvious cause for these?
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-15 Thread Romain Beauxis
It's a catch 22, the CPU will start burning when processing it too slow to
produce content at real rate but this might start with an increase in CPU
usage.

I can indeed confirm the increase in CPU usage under normal script
conditions. I'm investigating it now.

Le dim. 14 mai 2023 à 16:58, p· g···  a écrit :

> hi!
> I think the CPU usage increases when "catch-up needed" start popping up...
> the question is perhaps what causes time starvation :o
> some fade implementation or what... because there are plenty of free
> resources on the server.
>
> P
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 13 d. 15:51
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Thanks!
>
> Apart from the audio signal treatments, I see nothing that should be
> consuming more CPU. I'll try it locally and will report.
>
>
> Le jeu. 11 mai 2023 à 12:15, p····· g···  a écrit :
> just did!
>
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 11 d. 16:46
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Would you be able to share your script? Even privately so we can see if
> there's an obvious cause for these?
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-13 Thread Romain Beauxis
Thanks!

Apart from the audio signal treatments, I see nothing that should be
consuming more CPU. I'll try it locally and will report.

Le jeu. 11 mai 2023 à 12:15, p· g···  a écrit :

> just did!
>
>
> -Original Message-----
> From: Romain Beauxis
> Date: 2023 m. gegužės 11 d. 16:46
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Would you be able to share your script? Even privately so we can see if
> there's an obvious cause for these?
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidshop 3 is less than 20 days away!

2023-05-11 Thread Romain Beauxis


Hi !

Just one last reminder that Liquidshop 3 is less than 20 days away!

We’ve had a couple more talks submitted since the last email and we’re now 
looking forward to seeing all of them and getting to meet all y’all!

If you are still looking to present, in particular if you want to show us about 
your community project or radio, please don’t hesitate, though!

Wanna know more about the workshop? The details are here: 
https://liquidsoap.us21.list-manage.com/track/click?u=123571897e1c0aad278cf7622=eaf564f212=e920c07d50

If you haven’t registered already, you can do so here: 
https://liquidsoap.us21.list-manage.com/track/click?u=123571897e1c0aad278cf7622=a261ce87d1=e920c07d50

This will be our last email until the workshop. Hope to see you there!

— Romain and Sam

This is an email from the savonet team based on our slack channel member list, 
attendees to liquidshop 1/2/3 and the savonet-users mailing. You can update 
your preferences 
(https://liquidsoap.us21.list-manage.com/profile?u=123571897e1c0aad278cf7622=721dfb50a4=e920c07d50=a9e01503c1)
 or unsubscribe 
(https://liquidsoap.us21.list-manage.com/unsubscribe?u=123571897e1c0aad278cf7622=721dfb50a4=e920c07d50=a9e01503c1)___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-11 Thread Romain Beauxis
Would you be able to share your script? Even privately so we can see if
there's an obvious cause for these?

Le jeu. 11 mai 2023 à 05:20, p· g···  a écrit :

> thanks, Romain!
> running this day's build now.
>
> must say that it's instantly obvious that it eats like 3x RAM from the
> very
> start - for any radio.
> also, CPU usage of one radio jumps, it's perhaps because of time defficit
> which begins almost immediately (doesn't happen with 2.1 and earliers):
>
>
> 023/05/11 13:14:23 [decoder.ffmpeg:3] FFmpeg recognizes "A:/Fred again..,
> Brian Eno - Enough.flac" as video: {codec: mjpeg, 1200x1200, yuvj420p},
> audio: {codec: flac, 44100Hz, 2 channel(s)}
> 2023/05/11 13:14:23 [decoder.ffmpeg:3] Decoded content-type for "A:/Fred
> again.., Brian Eno - Enough.flac": {audio=pcm(stereo)}
> 2023/05/11 13:14:26 [clock.main:2] We must catchup 0.65 seconds!
> 2023/05/11 13:14:30 [clock.main:2] We must catchup 0.53 seconds!
> 2023/05/11 13:14:34 [clock.main:2] We must catchup 0.26 seconds!
> 2023/05/11 13:15:22 [clock.main:2] We must catchup 0.15 seconds!
> 2023/05/11 13:15:26 [clock.main:2] We must catchup 0.10 seconds!
> 2023/05/11 13:15:34 [clock.main:2] We must catchup 0.14 seconds!
> 2023/05/11 13:15:38 [clock.main:2] We must catchup 0.29 seconds!
> 2023/05/11 13:15:42 [clock.main:2] We must catchup 0.18 seconds!
> 2023/05/11 13:15:46 [clock.main:2] We must catchup 0.02 seconds!
> 2023/05/11 13:15:50 [clock.main:2] We must catchup 0.36 seconds!
>
> regards,
>
> P
>
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 11 d. 07:47
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
> Hi,
>
> Looks like the rolling-release-v2.2.x assets were not building for a
> while.
> It would be worth trying with the latest assets as of now:
> https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x
>
>
> Le lun. 8 mai 2023 à 05:43, p· g···  a écrit :
> hi Romain!
> i was using build liquidsoap-8101608-2.2.0-win64.zip -- the latest that
> there is?
>
> Pranas
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 7 d. 16:55
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
>
> Can we try to get to the bottom of the CPU usage increase? Have you tried a
> recent build? We recently fixed a bug involving replaygain metadata
> computing that was causing CPU spikes:
> https://github.com/savonet/liquidsoap/pull/3041
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-10 Thread Romain Beauxis
Hi,

Looks like the rolling-release-v2.2.x assets were not building for a while.
It would be worth trying with the latest assets as of now:
https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x

Le lun. 8 mai 2023 à 05:43, p· g···  a écrit :

> hi Romain!
> i was using build liquidsoap-8101608-2.2.0-win64.zip -- the latest that
> there is?
>
> Pranas
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 7 d. 16:55
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.2 bug on windows
>
>
>
> Can we try to get to the bottom of the CPU usage increase? Have you tried
> a
> recent build? We recently fixed a bug involving replaygain metadata
> computing that was causing CPU spikes:
> https://github.com/savonet/liquidsoap/pull/3041
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] pulseaudio support in 2.x ?

2023-05-07 Thread Romain Beauxis
Looks like your pulseaudio version is too old, the one required for
liquidsoap 2.1.4 is 0.1.4 or above.

Le sam. 6 mai 2023 à 01:48, Tyna Pelletier-Bilodeau 
a écrit :

> HiRomain,
> I run opam 2.1.4, and as far as I can tell my packages are all up to
> date.
>
> <><> liquidsoap.2.1.4 installed successfully
> ><><><><><><><><><><><><><><><><><>
>
> opam install pulseaudio
> The following actions will be performed:
>   ■ install   pulseaudio 0.1.3
> ■ downgrade mm 0.8.3 to 0.5.1 [uses pulseaudio]
>   ■ downgrade liquidsoap 2.1.4 to 1.4.4 [uses pulseaudio]
>   = ■ 1   ■ 2 =
>   Do you want to continue? [Y/n]
>
> I'm now officially puzzled.
>
> On Sat May 6, 2023 at 12:18 AM CEST, Romain Beauxis wrote:
> > Le ven. 5 mai 2023 à 14:55, Tyna Pelletier-Bilodeau <
> ecole.t...@gmail.com>
> > a écrit :
> > >
> > > Hi,
> > > been curious and wanting to live stream on my icecast from home... Only
> > > to realize that input.pulseaudio isn't a thing anymore in 2.x ?
> > >
> > > I don't know what to make of this. Installing pulseaudio with opam
> > > immediately forces a downgrade of ls to 1.4.4.
> > >
> > > I checked the changelog and didn't see any mention of pulseaudio not
> > > being supported anymore.
> > >
> > > Someone's got any tips for this ?
> >
> > We're usually pretty conservative with features! Pulseaudio should still
> be
> > supported.
> >
> > I'd suggest checking if your packages are up to date (opam update) or
> what
> > version of opam you are running..
> >
> > Romain
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-07 Thread Romain Beauxis
Hi,

Le dim. 7 mai 2023 à 06:39, p· g···  a écrit :

> bonjour!
>
> i'm back to 2.1.4 because of:
>
> 1) higher CPU count, like at least three times higher and i think it is
> because of second issue;
> 2) "[clock.main:2] We must catchup" issues which were not there before -
> causes silence patches in stream and high CPU usage; such process is
> neither
> dead neither too alive and it's hard for my watchdog to restart it -
> somehow
> the process remains [suspended] and impossible to kill in task manager, it
> sits there with 20KB memory;
> 3) memory bloat is no less than before...
>
> yet, in 2.1.4 i have errors which i think were not happening with earlier
> versions, namely
> "[decoder.id3:2] Error while decoding file tags: Permission denied in
> read()" - is it ffmpeg's trickery?
>

Can we try to get to the bottom of the CPU usage increase? Have you tried a
recent build? We recently fixed a bug involving replaygain metadata
computing that was causing CPU spikes:
https://github.com/savonet/liquidsoap/pull/3041




>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] pulseaudio support in 2.x ?

2023-05-05 Thread Romain Beauxis
Le ven. 5 mai 2023 à 14:55, Tyna Pelletier-Bilodeau 
a écrit :
>
> Hi,
> been curious and wanting to live stream on my icecast from home... Only
> to realize that input.pulseaudio isn't a thing anymore in 2.x ?
>
> I don't know what to make of this. Installing pulseaudio with opam
> immediately forces a downgrade of ls to 1.4.4.
>
> I checked the changelog and didn't see any mention of pulseaudio not
> being supported anymore.
>
> Someone's got any tips for this ?

We're usually pretty conservative with features! Pulseaudio should still be
supported.

I'd suggest checking if your packages are up to date (opam update) or what
version of opam you are running..

Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.2 bug on windows

2023-05-05 Thread Romain Beauxis
Le mer. 3 mai 2023 à 16:31, p· g···  a écrit :
>
> Reminder: Liquidshop 3 is on May 30th!hi peeps!
>
>
> output.file(%wav(stereo=true, channels=2, samplesize=16, header=false),
> "A:/%Y-%m-%d-%H-%M.wav", studija, fallible=true)
>
> used to create files like this:
>
> 2023-05-02-19-01.wav
>
> and now it makes a file literally this:
>
> %Y-%m-%d-%H-%M.wav

Yes, this was moved to an explicit code to simplify our internal
implementation to allow better maintenance on our side.

This is documented, along with all changes like that, here:
https://www.liquidsoap.info/doc-dev/migrating.html#strftime

You should use:
 output.file(%wav(stereo=true, channels=2, samplesize=16, header=false),
{time.string("A:/%Y-%m-%d-%H-%M.wav")}, studija, fallible=true)


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.1.x -> 2.2.x script rewrite

2023-05-05 Thread Romain Beauxis
Thanks for the report!

Le ven. 5 mai 2023 à 03:35, p· g···  a écrit :
>
> hi Romain!
> oh wow, 2.3 is round the corner already? ;o
>
>
> some more data about 2.2 behaviour on win:
>
> sometimes it gives interesting insigths on the tracks finding them as
> video - is it because of embedded artwork?
>
> [decoder.ffmpeg:3] FFmpeg recognizes "a:/Vladislav Delay - iS.mp3" as video:
> {codec: mjpeg, 700x700, yuvj444p}, audio: {codec: mp3, 44100Hz, 2
> channel(s)}

Yes, correct. This ffmpeg's way of reporting a cover image metadata tag.

> also permission denied errors plague logs now:
>
> 2023/05/04 23:02:34 [decoder.ffmpeg:3] Decoded content-type for
> "a:/Vladislav Delay - iS.mp3": {audio=pcm(stereo)}
> 2023/05/04 23:02:34 [decoder.id3:2] Error while decoding file tags:
> Permission denied in read()
> 2023/05/04 23:02:34 [decoder.id3:2] Error while decoding file tags:
> Permission denied in read()
>
> i'm not sure what's up with these permission denied things. how can the tags
> have other permissions than music data of same file?

This is weird. I have pushed some tweaks to the metadata library.
Anything special about these files?

> also i noticed some increased CPU usage by one of my radios and a strange
> latency fluctuation - how comes? nothing changed, catchups used to be very
> short and rarely happen, and now this, extensively, with elevated CPU usage,
> around 10% instead of usual 2%:
>
>
> 2023/05/04 22:11:53 [clock.main:2] We must catchup 6.26 seconds!
> 2023/05/04 22:11:54 [clock.main:2] We must catchup 6.77 seconds!
> 2023/05/04 22:11:55 [clock.main:2] We must catchup 7.13 seconds!
> 2023/05/04 22:11:56 [clock.main:2] We must catchup 7.49 seconds!
> 2023/05/04 22:11:57 [clock.main:2] We must catchup 7.93 seconds!
> 2023/05/04 22:11:58 [clock.main:2] We must catchup 8.32 seconds!
> 2023/05/04 22:11:59 [clock.main:2] We must catchup 8.54 seconds!
> 2023/05/04 22:12:00 [clock.main:2] We must catchup 8.65 seconds!
> 2023/05/04 22:12:01 [clock.main:2] We must catchup 8.76 seconds!
> 2023/05/04 22:12:02 [clock.main:2] We must catchup 8.96 seconds!
> 2023/05/04 22:12:03 [clock.main:2] We must catchup 9.12 seconds!
> 2023/05/04 22:12:04 [clock.main:2] We must catchup 9.42 seconds!
> 2023/05/04 22:12:05 [clock.main:2] We must catchup 9.66 seconds!
> 2023/05/04 22:12:06 [clock.main:2] We must catchup 9.99 seconds!
> 2023/05/04 22:12:07 [clock.main:2] We must catchup 10.15 seconds!
> 2023/05/04 22:12:08 [clock.main:2] We must catchup 10.44 seconds!
> 2023/05/04 22:12:09 [clock.main:2] We must catchup 10.92 seconds!
> 2023/05/04 22:12:10 [clock.main:2] We must catchup 11.26 seconds!
> 2023/05/04 22:12:11 [clock.main:2] We must catchup 11.49 seconds!
> 2023/05/04 22:12:12 [clock.main:2] We must catchup 11.85 seconds!
> 2023/05/04 22:12:13 [clock.main:2] We must catchup 11.76 seconds!
> 2023/05/04 22:12:14 [clock.main:2] We must catchup 11.26 seconds!
> 2023/05/04 22:12:15 [clock.main:2] We must catchup 10.87 seconds!
> 2023/05/04 22:12:16 [clock.main:2] We must catchup 10.36 seconds!
> 2023/05/04 22:12:17 [clock.main:2] We must catchup 9.93 seconds!
> 2023/05/04 22:12:18 [clock.main:2] We must catchup 9.43 seconds!
> 2023/05/04 22:12:19 [clock.main:2] We must catchup 9.00 seconds!
> 2023/05/04 22:12:20 [clock.main:2] We must catchup 8.51 seconds!
> 2023/05/04 22:12:21 [clock.main:2] We must catchup 8.09 seconds!
> 2023/05/04 22:12:22 [clock.main:2] We must catchup 7.62 seconds!
> 2023/05/04 22:12:23 [clock.main:2] We must catchup 7.25 seconds!
> 2023/05/04 22:12:24 [clock.main:2] We must catchup 6.79 seconds!
> 2023/05/04 22:12:25 [clock.main:2] We must catchup 6.36 seconds!
> 2023/05/04 22:12:26 [clock.main:2] We must catchup 5.94 seconds!
> 2023/05/04 22:12:27 [clock.main:2] We must catchup 5.56 seconds!
> 2023/05/04 22:12:28 [clock.main:2] We must catchup 5.10 seconds!
> 2023/05/04 22:12:29 [clock.main:2] We must catchup 4.64 seconds!
> 2023/05/04 22:12:30 [clock.main:2] We must catchup 4.17 seconds!
> 2023/05/04 22:12:31 [clock.main:2] We must catchup 3.71 seconds!
> 2023/05/04 22:12:32 [clock.main:2] We must catchup 3.27 seconds!
> 2023/05/04 22:12:33 [clock.main:2] We must catchup 2.80 seconds!
> 2023/05/04 22:12:34 [clock.main:2] We must catchup 2.37 seconds!
> 2023/05/04 22:12:35 [clock.main:2] We must catchup 1.87 seconds!
> 2023/05/04 22:12:36 [clock.main:2] We must catchup 1.41 seconds!
> 2023/05/04 22:12:39 [clock.main:2] We must catchup 0.21 seconds!
> 2023/05/04 22:30:40 [clock.main:2] We must catchup 0.32 seconds!
>
> what's also strange is that it elongates and shortens by itself. is it some
> drifty clock in play? is it something to do with hpet vs other types of
> timers in PC? parts of program using one timer and parts - another?

Let's figure this one out. Do you use replaygain in the script?
Anything more you could share about the script in question?

Thanks,
-- Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net

Re: [Savonet-users] 2.1.x -> 2.2.x script rewrite

2023-05-04 Thread Romain Beauxis
Le jeu. 4 mai 2023 à 09:28, p· g···  a écrit :

> thanks Romain, it worked out!
>
> by the way, what about FLAC metadata support? is it that LS supports
> receiving it or outputing it now? i've tried flac butt-streaming but it
> didn't pass any meta as in ol'good days!.. :)
>


It's an annoying bug with ffmpeg. I submitted a patch for it but it hasn't
been accepted and also would need to be re-released.

I might look into using a custom, patched ffmpeg for our builds.


> and some more info: memory leaks are still there BUT the process ceased
> crashing every day... maybe a bit early to say but daily crashes were a
> norm
> and there were none since i switched to 2.2!
>

Fingers crossed.

I'm looking forward to the next 2.3.x cycle. We'll be switching to OCaml 5
which has a vastly reworked memory management. Hopefully that'll fix it.


>
> P
>
> -Original Message-
> From: Romain Beauxis
> Date: 2023 m. gegužės 4 d. 17:06
> To: savonet-users@lists.sourceforge.net
> Subject: Re: [Savonet-users] 2.1.x -> 2.2.x script rewrite
>
>
> Hi,
>
> Partial application was removed in 2.1.x:
> https://www.liquidsoap.info/doc-dev/migrating.html#partial-application
>
> This would be the way to do it now:
> low = fun (s) -> filter.iir.eq.low(frequency = 300., s)
> mh = fun (s) -> filter.iir.eq.high(frequency = 180., s)
> mid = fun (s) -> filter.iir.eq.low(frequency = 1800., s)
> high = fun (s) -> filter.iir.eq.high(frequency = 1366., s)
>
>
> Le mar. 2 mai 2023 à 17:38, p· g···  a écrit :
> hiya!
>
> i took the plunge to see how 2.2 works on windows!
> well, i made it work but had to turn some multiband compressor off.
> it used to go like this:
>
>
> --
> def loudnesswar(s)
> # 3-band crossover
> low = filter.iir.eq.low(frequency = 300.)
> mh = filter.iir.eq.high(frequency = 180.)
> mid = filter.iir.eq.low(frequency = 1800.)
> high = filter.iir.eq.high(frequency = 1366.)
>
> # Add back
> compressed = add(normalize = false,
> [ compress(attack = 100., release = 200., threshold = -20.,
> ratio = 2.8, gain = 8.0, knee = 9.0,
> low(s)),
> compress(attack = 100., release = 200., threshold = -24.,
> ratio = 2.0, gain = 9.0, knee = 9.0,
> mid(mh(s))),
> compress(attack = 100., release = 200., threshold = -20.,
> ratio = 2.4, gain = 6.0, knee = 9.0,
> high(s))
> ])
> limit(attack=0.01, release=5000., threshold=-2., compressed)
> #ladspa.fastlookaheadlimiter(limit=-1.0, release_time=0.08, compressed)
> end
>
> radio = loudnesswar(normalize_music(radio))
>
> -
>
>
> it throws this:
>
> low = filter.iir.eq.low(frequency = 300.)
>
> Error 15: Missing arguments in function application: source('A).
>
> ---
>
> i've read about "Partial application" and tried to tweak this code in
> several ways but the error remained the same and i gave up eventually.
>
> that happens with liquidsoap-8101608-2.2.0-win64.zip
>
>
> cheers,
> P
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] 2.1.x -> 2.2.x script rewrite

2023-05-04 Thread Romain Beauxis
Hi,

Partial application was removed in 2.1.x:
https://www.liquidsoap.info/doc-dev/migrating.html#partial-application

This would be the way to do it now:
low = fun (s) -> filter.iir.eq.low(frequency = 300., s)
mh = fun (s) -> filter.iir.eq.high(frequency = 180., s)
mid = fun (s) -> filter.iir.eq.low(frequency = 1800., s)
high = fun (s) -> filter.iir.eq.high(frequency = 1366., s)

Le mar. 2 mai 2023 à 17:38, p· g···  a écrit :

> hiya!
>
> i took the plunge to see how 2.2 works on windows!
> well, i made it work but had to turn some multiband compressor off.
> it used to go like this:
>
>
> --
> def loudnesswar(s)
> # 3-band crossover
> low = filter.iir.eq.low(frequency = 300.)
> mh = filter.iir.eq.high(frequency = 180.)
> mid = filter.iir.eq.low(frequency = 1800.)
> high = filter.iir.eq.high(frequency = 1366.)
>
> # Add back
> compressed = add(normalize = false,
> [ compress(attack = 100., release = 200., threshold = -20.,
> ratio = 2.8, gain = 8.0, knee = 9.0,
> low(s)),
> compress(attack = 100., release = 200., threshold = -24.,
> ratio = 2.0, gain = 9.0, knee = 9.0,
> mid(mh(s))),
> compress(attack = 100., release = 200., threshold = -20.,
> ratio = 2.4, gain = 6.0, knee = 9.0,
> high(s))
> ])
> limit(attack=0.01, release=5000., threshold=-2., compressed)
> #ladspa.fastlookaheadlimiter(limit=-1.0, release_time=0.08, compressed)
> end
>
> radio = loudnesswar(normalize_music(radio))
>
> -
>
>
> it throws this:
>
> low = filter.iir.eq.low(frequency = 300.)
>
> Error 15: Missing arguments in function application: source('A).
>
> ---
>
> i've read about "Partial application" and tried to tweak this code in
> several ways but the error remained the same and i gave up eventually.
>
> that happens with liquidsoap-8101608-2.2.0-win64.zip
>
>
> cheers,
> P
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] What are the possible time literals?

2023-04-17 Thread Romain Beauxis
Hi Adrian,

Filenames can be functions that are executed every time the file is
created, something like this:

```
def my_filename() =
  "/archive/#{int_of_float(gettimeofday())}.mp3"
end
```

For simple functions like that, we have a simplified syntax that allows to
write them in a short way:
```
my_filename = {"/archive/#{int_of_float(gettimeofday())}.mp3"}
```
So, in your case, all you should have to do to make the filename dynamic in
your example is surround it with { }:
```
output.file(
  %mp3,
  {"/archive/#{int_of_float(gettimeofday())}.mp3"},
  s,
  reopen_when={0m}
)
```

If you want to read a more detailed presentation of the language and more,
I can recommend the liquidsoap book:
https://www.liquidsoap.info/doc-dev/book.html

Le dim. 16 avr. 2023 à 08:42, Adrian  a écrit :

> Hi everyone and thanks a lot for your work!
>
> I'm trying to adapt the cookbook example "Dump a stream into segmented
> files".
> I'd like to have the filename containing the unix timestamp (or epoch),
> but I don't know what are the possibles "time literals" mentioned in the
> cookbook:
>
> https://www.liquidsoap.info/doc-2.1.4/cookbook.html#dump-a-stream-into-segmented-files
>
> What I'm trying to achieve looks like this:
> output.file(%mp3, '/archive/%s.mp3', s, reopen_when={0m})
> Where %s would be replaced by the unix timestamp (%s taken from the date
> command) but unfortunately, %s is not a "time literal". Plus, I can't find
> any
> definition or list of "time literals" anywhere in the doc or in the
> source code.
>
> I managed to get the unix timestamp in my filename with:
> output.file(%mp3, '/archive/#{int_of_float(gettimeofday())}.mp3', s,
> reopen_when={0m})
> But the time is evaluated at the string creation and not a each file
> opening.
>
> Is it possible for you to document the "time literals"?
> Where can I find this list? And where can I add some new literals if
> needed?
>
> Thank you for your time,
> Niilos
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] [CfP] Liquidshop 3.0, May 30th, 2023!

2023-03-27 Thread Romain Beauxis
Hi everybody,

We are glad to announce the third edition of *Liquidshop*, the Liquidsoap
workshop, which will be held online on

** Tuesday 30 May 2023 **

The goal is to gather all people interested in Liquidsoap (of course) and
welcome any contribution, related or not to Liquidsoap.

We are particularly eager to get to know how people in the community do
radio, media streaming and more, learning about specific tools or workflow
that we could, in turn, use to enhance how liquidsoap works.

We also love to meet the people involved and engaged with these
technologies, community radios, non-profit but also budding startups or
more established businesses, art projects and installations and more!

Topics of interest are for instance

   - audio and video streaming
   - radio broadcasting
   - signal processing
   - audio and video synthesis
   - website interaction
   - community projects
   - creative art and art installations
   - and so on

This is thus the place to share to the world your favorite or cutting edge
technologies and projects!

We will have 3 different tracks for the event, namely

   - showcases: short presentations about a website / radio / art
   installation that you built using Liquidsoap or other related tools
   - tech talks: in-depth presentation of a technology related to
   Liquidsoap and streaming in general
   - workshops: user-centered freeform discussions about your project or
   issues around Liquidsoap and streaming

If you're interested to participate, whether it is as an attendee or a
presenter, make sure to register via our website at
http://www.liquidsoap.info/liquidshop/3/ or directly via the form available
at https://forms.gle/2QZDNJUH9XdRJ5bP8

We are super excited for this event. We have already secured a couple of
interesting speakers and we would love to get to know the community better,
see what y'all are doing with liquidsoap and other releated projects,
community radios, live video, weird installations, etc. and meet with
everyone.

Finally, if any of you have some specific topics to discuss and would like
to learn more about Liquidsoap, this will be a great place to connect!

See y'all soon!
-- Romain and Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.1.4 and rolling release 2.2.x and the next liquidshop!

2023-03-03 Thread Romain Beauxis
Hi all!

Liquidsoap 2.1.4 is out:
https://github.com/savonet/liquidsoap/releases/tag/v2.1.4 
Liquidsoap Rolling Release 2.2.x is now available:
https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.2.x 

The 2.1.4 release contains important bug fixes, including a last-minute
memory issue with http requests and queries that was introduced in 2.1.3.
All users are encouraged to migrate to it but make sure to use a staging
environment before pushing to production just in case!

Next, we would like to shift our focus to the 2.2.x release cycle. We are
done with the changes there and will nos focus on fixing issues there. We
do encourage new projects to start with it and users to report issues. We
will prioritize these issues over other ones.

The 2.2.x release contains some exciting changes, in particular a new
support for multitrack decoder/demuxing/muxing/encoding. You can read more
about it here: https://www.liquidsoap.info/doc-dev/multitrack.html

Lastly, based on feedback, it looks like a spring date for the next
liquidshop would be best for everyone. We will start working on it soon and
hope to see all y'all there!

Thanks for y'all support and continuous use of liquidsoap!
-- Sam & Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap at FOSDEM 2023

2023-01-25 Thread Romain Beauxis
Hi all!

As announced previously, we will be giving a talk at the 2023 FOSDEM
conference. If you are attending, we would love to see y'all there!

More details here:
https://www.liquidsoap.info/blog/2022-01-25-liquidsoap-at-FOSDEM-2023/

-- Romain and Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.1.3 is out!

2022-12-06 Thread Romain Beauxis
Man sorry to hear y'all feeling that way!

We've been working hard on making the rolling releases update as stable as
possible but we always recommend having some sort of staging/testing
environment.

Le mar. 6 déc. 2022 à 12:55, Mark Jeghers  a écrit :

> Yup, I'm scared to death of upgrading.
>
> On Tue, Dec 6, 2022, 7:20 AM p· g···  wrote:
>
>> heyy!
>> oh, this feels like a thriller - stick to the old version with known
>> bugs,
>> or jump into the unknown, finding your configs not working but fingers
>> crossed that the old bugs would not be there and welcome the new ones? or
>> skip it altogether and wait till 2.2 which will probably require another
>> config rewrite?
>>
>> a!! it's a fine line balancing between hiccups
>> and
>> functionalities [lost].
>>
>> is someone out there to help with rewriting configs?
>>
>> it's like version one:
>> the sky is blue, sunflower is yellow and follows the sun
>>
>> version two expects something like:
>> sunflower is a flower;
>> blue is the sky (sky is upstairs), follows the sun the sunflower
>>
>> version two point two is like:
>> sunflower is a flower;
>> blue is the sky (sky is upstairs), follows the sun the sunflower
>>
>> error 5: this value has no method `follows`
>>
>>
>>
>> o
>>
>>
>> P
>> -Original Message-
>> From: Romain Beauxis
>> Date: 2022 m. gruodžio 5 d. 22:21
>> To: savonet-users
>> Subject: [Savonet-users] Liquidsoap 2.1.3 is out!
>>
>>
>> Hi!
>>
>> Liquidsoap 2.1.3 is out:
>> https://github.com/savonet/liquidsoap/releases/tag/v2.1.3
>>
>> This is the third and, hopefully, last bug fix release for the 2.1.x
>> release
>> branch.
>>
>> Overall, this release cycle was thankfully pretty calm, hence the more
>> than
>> two months since the previous one. The release contains a couple of new
>> features that may also be useful such as being able to select or list
>> portaudio devices and some enhancements in input.harbor dynamic
>> capabilities.
>>
>> Anyone on one of the 2.1.x releases should be able to upgrade safely to
>> this
>> version.
>>
>> Up next we have some exciting things in the works:
>> * The 2.2.x release cycle is very close to being ready to be tagged for
>> stable release. The last feature we're working on before this can be done
>> is
>> pretty exciting: multi track and track manipulation! It's all happening
>> here
>> with some (on-going) examples:
>> https://github.com/savonet/liquidsoap/pull/2764. We are hopping to
>> branch
>> out this release during December, stabilize it and release it in the
>> following month or so.
>>
>> * We have submitted a talk at the open media dev room at the FOSDEM
>> conference! We presented the last year it was on and we're pretty excited
>> to
>> potentially get a chance to follow-up with it and maybe meet in person
>> with
>> other liquidsoap community members. If you are interested, the
>> application
>> for talks is still open here:
>> https://lists.fosdem.org/pipermail/fosdem/2022q4/003451.html.
>>
>> * Because of the FOSDEM submission, we will postpone the liquidshop
>> workshop, prolly to April.
>>
>> Happy hacking y'all!
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.1.3 is out!

2022-12-05 Thread Romain Beauxis
Hi!

Liquidsoap 2.1.3 is out:
https://github.com/savonet/liquidsoap/releases/tag/v2.1.3

This is the third and, hopefully, last bug fix release for the 2.1.x
release branch.

Overall, this release cycle was thankfully pretty calm, hence the more than
two months since the previous one. The release contains a couple of new
features that may also be useful such as being able to select or list
portaudio devices and some enhancements in input.harbor dynamic
capabilities.

Anyone on one of the 2.1.x releases should be able to upgrade safely to
this version.

Up next we have some exciting things in the works:
* The 2.2.x release cycle is very close to being ready to be tagged for
stable release. The last feature we're working on before this can be done
is pretty exciting: multi track and track manipulation! It's all happening
here with some (on-going) examples:
https://github.com/savonet/liquidsoap/pull/2764. We are hopping to branch
out this release during December, stabilize it and release it in the
following month or so.

* We have submitted a talk at the open media dev room at the FOSDEM
conference! We presented the last year it was on and we're pretty excited
to potentially get a chance to follow-up with it and maybe meet in person
with other liquidsoap community members. If you are interested, the
application for talks is still open here:
https://lists.fosdem.org/pipermail/fosdem/2022q4/003451.html.

* Because of the FOSDEM submission, we will postpone the liquidshop
workshop, prolly to April.

Happy hacking y'all!
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Mac OSx & ".DS_Store" how to ignore

2022-11-22 Thread Romain Beauxis
Hi,

`playlist` operator has a `check_next` parameter that you should be able to
use to exclude those files.

Le jeu. 17 nov. 2022 à 07:07,  a écrit :

> hello
>
> running Liquidsoap 2.1.1 on Mac OSx Catalina (10.15.7)
>
> I have a "clock playlist" pointing on a directory :
>
> clock   =
> playlist(mode="randomize",reload=600,reload_mode="rounds","/Volumes/Data3/Music-FM/Clock")
>
> The directory contains only 1 file (will contain more soon) + a hidden
> file ".DS_Store" wich is a system info file (I guess).
>
> Liquidsoap try to decode the ".DS_Store" wich fail :
>
> 2022/11/17 12:00:04 [decoder:3] Unable to decode
> "/Volumes/Data3/Music-FM/Clock/.DS_Store" using image decoder(s)!
>
> 2022/11/17 12:00:04 [decoder:3] Available decoders cannot decode
> "/Volumes/Data3/Music-FM/Clock/.DS_Store" as
> {audio=pcm(stereo),video=none,midi=none}
>
> Finally, Liquidsoap crashes with :
>
> zsh: bus error  liquidsoap
> '/Volumes/Data3/Music-FM/Medion/LiquidSoap/2Case.liq' --
>
>
> Is there a way to ignore those files ? or restricting only to decode .mp3,
> .aac etc 
>
>
> I cannot delete the ".DS_Store" file as it is automatically recreated by
> the OS.
>
>
> Thanks for help
>
> Pascal
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Mac OSx 10.15.7 Liquidsoap Installation issue

2022-11-12 Thread Romain Beauxis
Hi Pascal,

It looks like the previous process pinned the development version of
liquidsoap. `metadata` is a a package that we have developed for it but not
yet released.

You should do:
  opam pin list
and unpin at least liquidsoap but also all other dependencies. If you never
intended to pin anything, I would simply unpin all the listed packages:
  opam unpin liquidsoap ...

Then you should be able to proceed as previously instructed.
-- Romain

Le sam. 12 nov. 2022 à 02:37,  a écrit :

> Hi
>
> As Romain said in a previous reply, I followed the recommended method for
> Liquidsoap Installation.
>
> When doing a :
>
> opam install taglib mad lame cry ffmpeg liquidsoap
>
> I got the following error :
>
> macbook@MBP-de-MACBOOK ~ %
>
>
>
> <><> *Synchronising pinned packages*
> ><><><><><><><><><><><><><><><><><><><><>  
>
> [ERROR] Could not synchronize
> /Users/macbook/.opam/ocaml/.opam-switch/sources/liquidsoap from
>
> "git+file:///Users/macbook/liquidsoap#main":
>
> "/usr/bin/git fetch -q" exited with code 128
>
> [liquidsoap.2.2.0] fetching sources failed:
> git+file:///Users/macbook/liquidsoap#main
>
>
> *[NOTE]* Package ffmpeg is already installed (current version is 1.1.6).
>
> *[NOTE]* Package cry is already installed (current version is 0.6.7).
>
> [ERROR] Package conflict!
>
>   * Missing dependency:
>
> - *metadata*
>
> unknown package
>
>
> No solution found, exiting
>
>
> It's a new machine (I already made some unsuccessfull try), so I can
> "reset" / "erase"" or restart all the process.
>
> I don't understand why it's Liquidsoap.2.2.0 as I thought I was installing
> version 2.1.1 or 2.1.2 (maybe due to previous erratic process from my mind)
>
> Thanks for any help
> Pascal
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] error executing ./configure

2022-11-11 Thread Romain Beauxis
Hi!

You need to install `opam` and `dune` to be able to run the top-level
`liquidsoap-full` configure.

However, this is not the recommended way to install liquidsoap these days.
We recommend using `opam` directly. Have you tried this method? It is
documented here:
https://www.liquidsoap.info/doc-2.1.2/install.html#install-using-opam

Le ven. 11 nov. 2022 à 05:13,  a écrit :

> Hello
>
> On MAC OSx 10.15.7, I try to last version of Liquidsoap using the
> following method :
>
> git clone https://github.com/savonet/liquidsoap-full.git liquidsoap
> cd liquidsoap
> make init
>
> cp PACKAGES.minimal PACKAGES
>
> ./bootstrap
> ./configure
>
> When executing the "./bootstrap" command, I get :
>
> Liquidsoap directory seems empty. I assume that submodules were not
> downloaded. Hold on, I'm doing it for you!
>
> git fetch
>
> git branch --set-upstream-to=origin/master master
>
> Branch 'master' set up to track remote branch 'master' from 'origin'.
>
> git submodule init
>
> git submodule update
>
> I don't understand why I get "directories seems empty" because I can see
> the directories and these are not empty.
>
> When executing the "./configure" script, I get following messages - "no
> such file or directory" but I can see all the directories in the current
> location.
>
>
> test@MBP-de-MACBOOK liquidsoap % ./configure
>
>
> ---
>
> | This configure file is provided in order for you to be able to build
> |
>
> | liquidsoap without having to install all the dependencies.
> |
>
> | If you want to use the libraries, use the configure of the
> subdirectories.  |
>
> | This script will build liquidsoap with features indicated in PACKAGES.
> |
>
> | Edit it or build manually if you need something more specific.
> |
>
>
> ---
>
>
> You don't seem to have bootstraped yet. I'm doing it for you.
>
> Liquidsoap directory seems empty. I assume that submodules were not
> downloaded. Hold on, I'm doing it for you!
>
> git fetch
>
> git branch --set-upstream-to=origin/master master
>
> Branch 'master' set up to track remote branch 'master' from 'origin'.
>
> git submodule init
>
> git submodule update
>
>
> ** Configuring ocaml-cry
>
>
> ./configure: line 55: dune: command not found
>
> current options:
>
>
> ** Configuring ocaml-dtools
>
>
> ./configure: line 51: cd: ocaml-dtools: No such file or directory
>
> ./configure: line 58: cd: ocaml-dtools: No such file or directory
>
> current options:  --with-dtools-dir=/src
>
>
>
> when I do a "LS", I can see all the directories :
>
>
> test@MBP-de-MACBOOK liquidsoap % ls
>
> INSTALL docker ocaml-fdkaac ocaml-mad ocaml-soundtouch
>
> LICENSE liquidsoap ocaml-ffmpeg ocaml-mem_usage ocaml-speex
>
> Makefile ocaml-alsa ocaml-flac ocaml-metadata ocaml-srt
>
> Makefile.git ocaml-ao ocaml-frei0r ocaml-mm ocaml-taglib
>
> PACKAGES ocaml-bjack ocaml-gstreamer ocaml-ogg ocaml-theora
>
> PACKAGES.default ocaml-cry ocaml-ladspa ocaml-opus ocaml-vorbis
>
> PACKAGES.minimal ocaml-dssi ocaml-lame ocaml-portaudio ocaml-xmlplaylist
>
> README.md ocaml-dtools ocaml-lastfm ocaml-pulseaudio website
>
> bootstrap ocaml-duppy ocaml-lilv ocaml-samplerate
>
> configure ocaml-faad ocaml-lo ocaml-shine
>
> What am I doing wrong ?
>  Thank you
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.1.2 and other news!

2022-10-19 Thread Romain Beauxis
Thanks for chiming in y'all. I think that at the end of the day we also
want to meet people where they are and, for open source communities, it
seems that this discord at the moment.

I had a quick search on the internet about accessibility and screen readers
for discord. It seems that they used to be terrible but are getting better
at it. Can anyone confirm?

Romain

Le mer. 19 oct. 2022 à 12:30, John Malcolm Piccinno  a
écrit :

> Hi!
>
> I used mattermost as an open source alternative to slack but it didn't
> impress me too much. And you have to manage your own server if you don't
> want to pay the subscription fee
>
> In my experience discord did always great job
>
> Cheers
> John
>
> Il mer 19 ott 2022, 19:20 jaaky 325  ha scritto:
>
>>
>> I so wish we could have a one chat application we all agree upon. I was
>> thinking about this and I believe the most important deciding factor for us
>> should be accessibility. We are a radio project after all and we need to
>> make sure that our documentation and communities are welcoming in that
>> regard. I will enquiry about this.
>>
>>
>> Hello!
>> I’m a harsh judge when it comes to picking software tools… especially if
>> I’m about to bring others in on it.
>> I’m also a software developer myself and have experiencing building and
>> running chatting/communication websites and apps.
>> And I’ve been experimenting with and evaluating Discord for a major
>> community project for the last 4 years.
>> I may be preaching to the choir but…
>>
>> I find both the product and company to be amazing.
>> It is a deep and powerful platform.
>> And it’s a total joy to work with.
>> And many times over the years I’ve secretly wished that it could do X,
>> only to receive a “Whats new?” where they are introducing X.
>> Just 2 weeks ago they introduced Forum channels
>> which is a total game changer.
>> The Forum channels are perfect for the threaded question/answer/feedback
>> stuff that happens here.
>> Also been playing with Stage channels for live audio discussions which
>> are very fun.
>> It all “just works”.
>>
>> I’ve spent almost no time in other Discord communities.
>> I generally find it overwhelming.
>> Just enough to steal some good ideas.
>> But as a tool for creating “my own” community…
>> It’s been perfect.
>>
>> ~Scott
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.1.2 and other news!

2022-10-19 Thread Romain Beauxis
Le mer. 19 oct. 2022 à 07:20, Gilles Pietri  a
écrit :

> Le 19/10/2022 à 01:48, Romain Beauxis a écrit :
> > We've been overdue for an update! Here's some liquidsoap-related
> > news:
> >
> > * We released 2.1.2, the second bugfix release on the 2.1.x branch.
> > So far this branch seems to be doing well!
> >
> > * We have done some heavy lifting work on the main branch.
> [snip 2.2]
>
> Hey,
>
> Amazing work, though it probably won’t help me (unless we define a track
> title, and a cover art haha, though probably in reality, I’m not a
> direct user of that ;))
>
> I still am not running on 2.x on some instances, gotta go there…
>
> > * We have begun planning the next liquidshop workshop!
> >
> > One exciting development on this front is that we are planning on
> > using liquidsoap to run it! We have a workable proof of concept that
> > we are looking at solidifying for the workshop. Date should be around
> > January. If you are interested to speak, you can start thinking about
> > it. We're also looking for beta testers for the liquidsoap-based
> > presentation code!
>
>
> Count on me, I can try the presentation demos. I don’t plan on speaking,
> and will most likely won’t have time to prepare anything precise, but
> will participate and enjoy the community moments (depending on how soon
> we know the date, you can count on me hosting with you, should you want
> that ;))
>

Great! You're our official MC!


> >
> > * Leading to the workshop, we'd like to consider moving off of the
> > slack platform.
> >
> [snip discord]
>
> Discord sux, and is closed source. Why not go for gitter.im if you want
> it hosted? I even think they natively allow matrix federation, so you
> get that as well, but I may be wrong...
>

I so wish we could have a one chat application we all agree upon. I was
thinking about this and I believe the most important deciding factor for us
should be accessibility. We are a radio project after all and we need to
make sure that our documentation and communities are welcoming in that
regard. I will enquiry about this.

-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.1.2 and other news!

2022-10-18 Thread Romain Beauxis
We've been overdue for an update! Here's some liquidsoap-related news:

* We released 2.1.2, the second bugfix release on the 2.1.x branch. So far
this branch seems to be doing well!

* We have done some heavy lifting work on the main branch.

You might notice if you go to
https://www.liquidsoap.info/doc-dev/reference.html, along with
Samuel's excellent re-organization of the documentation categories, that
the source types have changed and now look like this:

  source(audio=pcm('a), 'b)

This is because we have been working on updating the typing system to
support any arbitrary collection of tracks in a source. Previously, a
source was only able to handle at most one audio ,video or midi track. With
these changes, we should now be able to support any configuration of
tracks, for instance, if the source is intended to carry the content of a
multi multilingual movie with subtitles:

  source(
audio_en=pcm(stereo),
audio_fr=pcm(stereo),
video=canvas,
subtitles=srt
  )

The next step now is to add support for these type of contents in the
decoders, muxers, demuxers, operators and encoders! Once this is done, we
will be ready to release the 2.2.x stable branch with it!

* We have begun planning the next liquidshop workshop!

One exciting development on this front is that we are planning on using
liquidsoap to run it! We have a workable proof of concept that we are
looking at solidifying for the workshop. Date should be around January. If
you are interested to speak, you can start thinking about it. We're also
looking for beta testers for the liquidsoap-based presentation code!

* Leading to the workshop, we'd like to consider moving off of the slack
platform.

Nothing wrong with the technical product but the fact that they do not
offer free plans for open-source communities is ridiculous and we're
constantly loosing history and, so, community knowledge. We previously
thought we could maintain a bridge between the two but this seems
unreasonable. Thus, we might have to do it cold turkey.. The leading
platform for the switch at the moment seems to be discord.

That's it for now! We have more ideas for the roadmap past 2.2.x but we'll
come back to it, maybe for the workshop presentation.

Thanks for y'all support!
-- Romain & Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap question: trimming audio from end of tracks

2022-07-24 Thread Romain Beauxis
Hi!

`cue_cut` should also be able to cut the last 2 minute of each file.

Le mar. 19 juil. 2022 à 08:29, Pedro Manuel  a écrit :

> Hello, I was wondering if I could get some assistance.
>
> I have a very basic stream, wherein I am reading a playlist and sending
> the audio out. My goal is to trim two minutes from the beginning and the
> end of each track.
>
> I've got the beginning trim covered by using cue_cut, but I haven't been
> able to think of a way to trim from the end, since there doesn't appear to
> be a way to retrieve the total duration of a file.
>
> I was wondering if any of you may have an idea about how this could be
> accomplished.
>
>
> Thanks
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!

2022-07-18 Thread Romain Beauxis
This is because we removed partial applications. This is documented here:
https://www.liquidsoap.info/doc-2.1.0/migrating.html

Le lun. 18 juil. 2022 à 12:35, p· g···  a écrit :

> tried again, the simpler radios fired on, but one is still stuck:
>
> Error 4: Undefined variable recurrent_request_function
>
> i had this:
> recurrent = request.dynamic(recurrent_request_function)
>
> and also before it, def recurrent_request_function() =  and it used to
> work
>
> P
>
> -----Original Message-
> From: Romain Beauxis
> Date: 2022 m. liepos 18 d. 19:14
> To: savonet-users
> Subject: Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!
>
>
> Hi,
>
> This is fixed now, please try to download the windows build again:
>
> https://github.com/savonet/liquidsoap/releases/download/v2.1.0/liquidsoap-2.1.0-win64.zip
>
>
> Le lun. 18 juil. 2022 à 11:07, p· g···  a écrit
> :
> hi Romain!
> I'm checking the new version but still it has issues - now ffmpeg encoders
> don't want to work:
>
> Error 8: Unsupported format: %ffmpeg(format="mp3",
> %audio(codec="libmp3lame", b=
> "192k"))
>
> and i guess that's precisely the way i should be using them - calling
> ffmpeg
> and not some internal encoder under windows...
>
> regards,
> P
>
> -Original Message-
> From: Romain Beauxis
> Date: 2022 m. liepos 18 d. 08:19
> To: savonet-users
> Subject: Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!
>
>
> This should now be fixed in the latest release at:
> https://github.com/savonet/liquidsoap/releases/tag/v2.1.0
>
>
> Le dim. 17 juil. 2022 à 21:16, Romain Beauxis  a
> écrit :
>
> Hi,
>
>
> Thanks for the quick feedback. There is indeed an issue with the windows
> build. I will replace it very soon with a fixed one and will let you know.
>
> Romain
>
>
> Le dim. 17 juil. 2022 à 19:18, p· g···  a écrit
> :
> hi Romain!
> running 2.0.7 on windows already - let's see if it leaks memory!
>
> couldnt't get 2.1.0 to take off - it spits out errors here ant here one
> after fixing other, seems like many things are broken, for example:
>
> At muilas.liq, line 15, char 15-22:
> pageidavimai = request.queue (id="geidauju")
> Error 5: this value has no method `queue`
>
> and
>
> At muilas.liq, line 19, char 11-20:
> dieninis = playlist(id="dieninis", mode="randomize", reload_mode="rounds",
> reload=1, "x:/dienius.m3u")
> Error 5: this value has type
>   unit
> but it should be a subtype of
>   (id : _, mode : _, reload_mode : _, reload : _, _) -> _
>
> i can't find anything on migrating.html regarding that...
>
> cheers,
> p
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!

2022-07-18 Thread Romain Beauxis
Hi,

This is fixed now, please try to download the windows build again:
https://github.com/savonet/liquidsoap/releases/download/v2.1.0/liquidsoap-2.1.0-win64.zip

Le lun. 18 juil. 2022 à 11:07, p· g···  a écrit :

> hi Romain!
> I'm checking the new version but still it has issues - now ffmpeg encoders
> don't want to work:
>
> Error 8: Unsupported format: %ffmpeg(format="mp3",
> %audio(codec="libmp3lame", b=
> "192k"))
>
> and i guess that's precisely the way i should be using them - calling
> ffmpeg
> and not some internal encoder under windows...
>
> regards,
> P
>
> -Original Message-
> From: Romain Beauxis
> Date: 2022 m. liepos 18 d. 08:19
> To: savonet-users
> Subject: Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!
>
>
> This should now be fixed in the latest release at:
> https://github.com/savonet/liquidsoap/releases/tag/v2.1.0
>
>
> Le dim. 17 juil. 2022 à 21:16, Romain Beauxis 
> a
> écrit :
>
> Hi,
>
>
> Thanks for the quick feedback. There is indeed an issue with the windows
> build. I will replace it very soon with a fixed one and will let you know.
>
> Romain
>
>
> Le dim. 17 juil. 2022 à 19:18, p· g···  a écrit
> :
> hi Romain!
> running 2.0.7 on windows already - let's see if it leaks memory!
>
> couldnt't get 2.1.0 to take off - it spits out errors here ant here one
> after fixing other, seems like many things are broken, for example:
>
> At muilas.liq, line 15, char 15-22:
> pageidavimai = request.queue (id="geidauju")
> Error 5: this value has no method `queue`
>
> and
>
> At muilas.liq, line 19, char 11-20:
> dieninis = playlist(id="dieninis", mode="randomize", reload_mode="rounds",
> reload=1, "x:/dienius.m3u")
> Error 5: this value has type
>   unit
> but it should be a subtype of
>   (id : _, mode : _, reload_mode : _, reload : _, _) -> _
>
> i can't find anything on migrating.html regarding that...
>
> cheers,
> p
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
>
>
>
>
>
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!

2022-07-17 Thread Romain Beauxis
This should now be fixed in the latest release at:
https://github.com/savonet/liquidsoap/releases/tag/v2.1.0

Le dim. 17 juil. 2022 à 21:16, Romain Beauxis  a
écrit :

> Hi,
>
> Thanks for the quick feedback. There is indeed an issue with the windows
> build. I will replace it very soon with a fixed one and will let you know.
>
> Romain
>
> Le dim. 17 juil. 2022 à 19:18, p· g···  a
> écrit :
>
>> hi Romain!
>> running 2.0.7 on windows already - let's see if it leaks memory!
>>
>> couldnt't get 2.1.0 to take off - it spits out errors here ant here one
>> after fixing other, seems like many things are broken, for example:
>>
>> At muilas.liq, line 15, char 15-22:
>> pageidavimai = request.queue (id="geidauju")
>> Error 5: this value has no method `queue`
>>
>> and
>>
>> At muilas.liq, line 19, char 11-20:
>> dieninis = playlist(id="dieninis", mode="randomize",
>> reload_mode="rounds",
>> reload=1, "x:/dienius.m3u")
>> Error 5: this value has type
>>   unit
>> but it should be a subtype of
>>   (id : _, mode : _, reload_mode : _, reload : _, _) -> _
>>
>> i can't find anything on migrating.html regarding that...
>>
>> cheers,
>> p
>>
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!

2022-07-17 Thread Romain Beauxis
Hi,

Thanks for the quick feedback. There is indeed an issue with the windows
build. I will replace it very soon with a fixed one and will let you know.

Romain

Le dim. 17 juil. 2022 à 19:18, p· g···  a écrit :

> hi Romain!
> running 2.0.7 on windows already - let's see if it leaks memory!
>
> couldnt't get 2.1.0 to take off - it spits out errors here ant here one
> after fixing other, seems like many things are broken, for example:
>
> At muilas.liq, line 15, char 15-22:
> pageidavimai = request.queue (id="geidauju")
> Error 5: this value has no method `queue`
>
> and
>
> At muilas.liq, line 19, char 11-20:
> dieninis = playlist(id="dieninis", mode="randomize", reload_mode="rounds",
> reload=1, "x:/dienius.m3u")
> Error 5: this value has type
>   unit
> but it should be a subtype of
>   (id : _, mode : _, reload_mode : _, reload : _, _) -> _
>
> i can't find anything on migrating.html regarding that...
>
> cheers,
> p
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.7 and 2.1.0 are out now!

2022-07-17 Thread Romain Beauxis
Hi all!

Liquidsoap 2.0.7 and 2.1.0 are out now! [image: :tada:]Liquidsoap 2.0.7 is
the seventh bugfix release of the 2.0.x release branch of liquidsoap. We
promised to only release new versions for this branch for important bug
fixes and found two:

   - A memory leak with the opus headers. Technically this is a bug in
   ocaml-opus but we also had to release new binary assets.
   - An inefficient initialization of decoding buffer and samplerate
   converters

This release addresses those issues as well as a minor one with initial
shoutcast/icecast metadata. It is intended as the last versioned released
with potential follow-up being pushed as rolling releases on a best-effort
basis.Liquidsoap 2.1.0 is the first release of the 2.1.x release branch!This
version comes with some major improvements and breaking changes. As usual,
you can get a (mostly) complete list in the migration page

In particular, the following changes are noticeable:*JSON parsing is
greatly improved*You should now be able to do:

let json.parse ({
  foo,
  bla,
  gni
} : {
  foo: string,
  bla: float,
  gni: bool
}) = '{ "foo": "aabbcc", "bla": 3.14, "gni": true }'

For any one who has ever tried to parse json in their liquidsoap scripts,
this is gonna be a game changer. We have a detailed article here
*Partial function
application has been removed*This is not so much an improvement but
something we thought was an acceptable trade-off. Support for partial
application is creating a lot of complexity in the language's
implementation and not a lot of users are actively using it. This change
means that instead of doing:

def f(x, y) =
...
end

g = f(0)

You will now have to do:

def f(x, y) =
...
end

def g(y) =
  f(0, y)
end

*Regular expressions are now first-class entities*This should be familiar
to anyone used to working with Javascript's regular expressions. So, now,
instead of doing:

string.match(pattern="\\d+", s)

You will now do:

r/\d+/.test(s)

There's a detailed description of this new feature here
.

Happy liquidsoap hacking!
-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.6 is out, 2.1.x is next!

2022-06-20 Thread Romain Beauxis
Hi all!

Liquidsoap 2.0.6 is out now!

You can check it out here:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.6. This is the 6th
and last bugfix release for the 2.0.x branch.

Following this release, the 2.0.x development branch will only be updated
on a best-effort basis. New projects are now advised to work with the
rolling-release-v2.1.x branch, which is set to be the next stable release.

This release contains a set of minor fixes. Production scripts using any
2.0.x version are advised to switch to it but, still, after testing that
there is no unforeseen regression.

A lot of effort has been put into debugging memory-related issues with
regard to requests. If your script uses a lot of requests (playlist,
request.dynamic etc.) you should benefit from upgrading to this version.

Next, we're gonna work on fixing any issue that comes up with the 2.1.x branch
and release a first stable version of it in the coming months.

The 2.1.x version comes with some major improvements and breaking changes.
As usual, you can get a (mostly) complete list here:
https://www.liquidsoap.info/doc-dev/migrating.html

In particular, the following changes are noticeable:

   - *JSON parsing is greatly improved and you should now be able to do:*

let json.parse { foo, bla, gni } : { foo: string, bla: float, gni:
bool } = json_string

For any one who has ever tried to parse json in their liquidsoap scripts,
this is gonna be a game changer. We have a detailed article here:
https://www.liquidsoap.info/doc-dev/json.html


   - *Partial function application has been removed.*

This is not so much an improvement but something we thought was an
acceptable trade-off. Support for partial application is making the
language much more complicated and not a lot of users are actively using
it. This change means that instead of doing:

def f(x, y) =
...
end

g = f(0)

You will now have to do:

def f(x, y) =
...
end

def g(y) =
  f(0, y)
end


   - *Regular expressions are now first-class entities. *

This should be familiar to anyone used to working with Javascript's regular
expression. So, now, instead of doing:

string.match(pattern="\\d+", s)

You will now do:

r/\d+/.test(s)

There's a detailed description of this new feature here:
https://www.liquidsoap.info/doc-dev/language.html#regular_expressions

We're very much looking forward to having this next version out and keep
improving with the stuff we have in store for the 2.2.x branch.

--
Romain & Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Replacing on_track callback in liquidsoap 2.x?

2022-06-15 Thread Romain Beauxis
Thanks!

I believe that all you need to do is:

```
#!/usr/bin/liquidsoap

set('encoder.export', ['artist', 'title', 'album', 'composer', 'comment'])
set('log.file.path', '/home/radioland/backend/sparetire/sparetire.log')
set('log.stdout', false)
set('harbor.bind_addr', '127.0.0.1')

url = 'http://' <http://65.108.3.217/>
streamuser = ''
streampass = ''

sparetirerandom =
nrj(playlist('/home/radioland/backend/sparetire/sparetirerandom.m3u',
mode='normal', reload_mode='watch'))
radio = mksafe(sparetirerandom)

def post_metadata(m) =
system("/usr/bin/python3 sparetire_info.py "^quote(m['artist'])^"
"^quote(m['title'])^" "^quote(m['album'])^" "^quote(m['composer'])^"
"^quote(m['comment']))
end

radio.on_track(post_metadata)

output.icecast(%mp3(bitrate=256, samplerate=44100, internal_quality=0,
id3v2=true), radio,
host='localhost', port=8000, user=streamuser, password=streampass,
description='SPARETIRE radio', url=url, genre='Freeform',
mount='sparetire', name='SPARETIRE radio')
```

Le lun. 13 juin 2022 à 20:19, Erik Schoster  a écrit :

> Here is the updated script -- thank you for taking a look!
>
> #!/usr/bin/liquidsoap
>
> set('encoder.export', ['artist', 'title', 'album', 'composer', 'comment'])
> set('log.file.path', '/home/radioland/backend/sparetire/sparetire.log')
> set('log.stdout', false)
> set('harbor.bind_addr', '127.0.0.1')
>
> url = 'http://' <http://65.108.3.217>
> streamuser = ''
> streampass = ''
>
> sparetirerandom =
> nrj(playlist('/home/radioland/backend/sparetire/sparetirerandom.m3u',
> mode='normal', reload_mode='watch'))
> radio = mksafe(sparetirerandom)
>
> def post_metadata(m) =
> system("/usr/bin/python3 sparetire_info.py "^quote(m['artist'])^"
> "^quote(m['title'])^" "^quote(m['album'])^" "^quote(m['composer'])^"
> "^quote(m['comment']))
> end
>
> radio = radio.on_track(post_metadata)
>
> output.icecast(%mp3(bitrate=256, samplerate=44100, internal_quality=0,
> id3v2=true), radio,
> host='localhost', port=8000, user=streamuser, password=streampass,
> description='SPARETIRE radio', url=url, genre='Freeform',
> mount='sparetire', name='SPARETIRE radio')
>
>
> On Mon, Jun 13, 2022, at 6:01 PM, Romain Beauxis wrote:
>
> Could you post your code after updating it?
>
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Replacing on_track callback in liquidsoap 2.x?

2022-06-13 Thread Romain Beauxis
Could you post your code after updating it?

Le jeu. 9 juin 2022 à 15:14, Erik Schoster  a écrit :

> Hi Martin,
>
> Thank you for the suggestion -- when I do that, I get a different error:
>
> At sparetire.liq, line 21, char 84-89:
> Error 5: this value has type
>   unit (inferred at sparetire.liq, line 19, char 8-37)
> but it should be a subtype of
>   source(_)
>
>
> Is it complaining about the signature of my callback? I'm not sure how to
> adapt it.
>
> Thanks very much for your help!
>
> Erik
>
> On Thu, Jun 9, 2022, at 2:09 PM, Martin Kirchgessner wrote:
>
> Hello Erik,
>
> Have you tried radio.on_track(post_metadata) ?
>
>
> Martin
>
> Erik Schoster a écrit le 09/06/2022 à 18:01 :
>
> Hi all,
>
> Happy liquidsoap user here, thank you for a wonderful system!
>
> I'm trying out upgrading from 1.x to 2.x and am running into a problem
> with a call to on_track in my old script.
>
> Under liquidsoap 2.0.5 running my script results in:
>
> At sparetire.liq, line 19, char 8-17:
> Error 4: Undefined variable on_track
>
>
> Removing the call to on_track allows the script to run. I'm using it to
> pass the metadata from the most recently played track to a python script
> which relays it elsewhere for display on a website.
>
> I looked through the documentation and upgrade notes and couldn't seem to
> find info about this, my apologies if it's already documented somewhere!
>
> My complete script looks like (with some things removed):
>
> #!/usr/bin/liquidsoap
>
> set('encoder.encoder.export', ['artist', 'title', 'album', 'composer',
> 'comment'])
> set('log.file.path', '')
> set('log.stdout', false)
> set('harbor.bind_addr', '127.0.0.1')
>
> url = '
> streamuser = ''
> streampass = ''
>
> sparetirerandom = nrj(playlist('playlist.m3u', mode='normal',
> reload_mode='watch'))
> radio = mksafe(sparetirerandom)
>
> def post_metadata(m) =
> system("/usr/bin/python3 sparetire_info.py "^quote(m['artist'])^"
> "^quote(m['title'])^" "^quote(m['album'])^" "^quote(m['composer'])^"
> "^quote(m['comment']))
> end
>
> radio = on_track(post_metadata(), radio)
>
> output.icecast(%mp3(bitrate=256, samplerate=44100, internal_quality=0,
> id3v2=true), radio,
> host='localhost', port=8000, user=streamuser, password=streampass,
> description='SPARETIRE radio', url=url, genre='Freeform',
> mount='sparetire', name='SPARETIRE radio')
>
>
> Is there another way I can accomplish passing metadata to my python
> script? Thank you!
>
> Erik
>
>
> ___
> Savonet-users mailing 
> listSavonet-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Update from the project

2022-05-28 Thread Romain Beauxis
Hi Martin,

Le sam. 28 mai 2022 à 09:39, Martin Kirchgessner  a écrit :
>
> Hello Romain,
>
> A remark about breaking changes and the stable branch.
>
> After updating to 2.0.5 I was surprised to see Showergel [1] crashing at
> start... because it starts by sending `list` to the telnet server (to
> discover available objects). Turns out the command has been removed in a
> single commit [2], which is not much motivated nor referring an issue...
> and not even mentioned in Releases' changes. I can't find a discussion
> on this topic either.
>
> I know LS objects discovery can be achieved with the `help` command
> alone - although I'm not sure it will be as reliable, we'll make do. And
> I understand the need to refactor/unclutter while maintaining only one
> stable branch, especially as you're giving much time already. Though,
> deprecating `list` (with a big warning in logs) and removing it only in
> 2.1 would have been nicer. Discovering this after the amount of breaking
> changes brought by v2 makes me worried for 2.1... Especially as 2.0.x
> likely won't be maintained once 2.1 will be considered stable.
>
> The roadmap is not clear on such changes. Is it possible to discuss more
> openly breaking changes before implementing them ?

Thanks for bringing that up and sorry about the frustration this caused you.

The command was removed because I realized that it was not populated and
used anymore. However, you are absolutely correct, this should have been
reserved for the `2.1.x` release branch or, at the very least, mentioned in
the changelog.

We'll try to do better in the future.
-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.5 and first 2.1.x rolling release!

2022-05-26 Thread Romain Beauxis
Hi !

As announced previously, we have just published two new releases:

   - Liquidsoap 2.0.5 is out, including minor bugfixes, available on our
   release page here
    and as opam
package.
   - The main branch has been branched out to create the 2.1.x rolling
   release
   .
   This is where we will put our bugfix efforts from now on with the goal of
   releasing 2.1.0 in the coming months.

We will send a recap of the changes and improvements that will come with
2.1.0 very soon. Meanwhile, feel free to migration page
 and point y'all
staging/testing environment to this rolling release to start preparing for
it and helping up report any possible issues.Lastly, if y'all are looking
for permanent URLs to release assets for packaging and automated installs,
please check out the associated liquidsoap-release-assets
 repository. All
releases should now be mirrored there and assets should never be deleted
from these.Thanks y'all!
-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Assets and stable branch URL (Was: Re: Update from the project)

2022-05-23 Thread Romain Beauxis
Le dim. 22 mai 2022 à 18:04, Gilles Pietri  a
écrit :
>
> Le 14/05/2022 à 16:44, Romain Beauxis a écrit :
> [snip Rolling releases]
>
> OK Romain… This looks like a mess to me.
>
> I understand the logic behind your choice, and I'm all for clarifying
> the maintained "current" branch, and the dev one, and I don't mind at
> all you specifying clever ways of putting it in our hands (and I'm quite
> thankful for all your work in general).
>
> I do mind that with every "major" release, URL pattern changes, naming
> changes, and every time, instead on focusing on making sure I got the
> latest craze from new operators, language specs… I'm kinda stuck on
> automating the upgrade process. Cool url don't changes, someone once
> said, and once again (it happened with 1.3, 1.4, and now 2.x, twice…), I
> need to understand how you release the binary packages, and make sure
> that my ansible scripts (that I'd be willing to share, if they didn't
> break every release ;)) fetch the 1) correct/latest stable version,
> related to my scripts, 2) don't hit a 404…
>
> I don't mind adapting, but this is getting on my nerve, and I'm afraid
> you'll play the same trick on us next time now… Chat échaudé craint
> l'eau froide ;)
>
> So now, I need to track a git hash, for a stable release, that's it? So
> if I run CI / tests against my scripts / live setups, I can add a
> variable setting the hash, and be "assured" it will still be there 2
> months later? ;)
>
> It's OK for me to add that on my side, but could we please stop changing
> the rules every now and then? I mean, I may not have engineered it the
> best way, but this is where I was at:
>  deb: "https://github.com/savonet/liquidsoap/releases/download/v{{
> liq_version }}/liquidsoap{{ liq_github_version }}-{{
> ansible_distribution | lower }}-{{ (ansible_distribution_release ==
> 'buster' ) | ternary('stable', ansible_distribution_release) }}-{{
> liq_arch_version }}.deb"
>
> And even then, I had liq_github_version format that changed between v1
> and v2, as well as arch_version… or horrible hacks like that that
> followed all releases… (happily enough, I love the stable branch, so I
> don't track that many versions at once ;))
>
> Anyway, that was a rant longer than I wanted it to be… But my main
> problem is: I need a way to url-target a release (at a given time, not a
> rolling one), so I can run my tests, make sure things run smoothly, and
> gradually upgrade my scripts from v(n-1) to v(n), which may occur months
> after the first tests, weeks (hopefully, at most) after a release. And
> I'm fine with targetting a v x.y.z-hash but I'd be grateful if with 3.x
> we didn't need to once again adapt to a new release / url / tag scheme...

I understand your concern. With those changes, the pattern is expected
to stay permanent, of the form:
  
https://github.com/savonet/liquidsoap-release-assets/releases/download/v/liquidsoap_---_amd64.deb
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Update from the project

2022-05-14 Thread Romain Beauxis
Hey all! Some updates from the project!*Release assets and process*Some of
you might have noticed the appearance of a couple of things related to our
release process, namely this rolling release page:
https://github.com/savonet/liquidsoap/releases/tag/rolling-release-v2.0.x and
a new release assets repository:
https://github.com/savonet/liquidsoap-release-assets/releasesFollowing the
3 (!) point releases of 2.0.4, we realized that we had to do something to:

   - * Make it easier to test a release before it is out
   - * Make it possible to have a unique link to a release asset that would
   never change
   - * Make it possible for us to only list the last point release in our
   main release page so as to not confuse the users.

This was solved by introducing:

   - * Rolling releases, which are pre-releases that are refreshed on each
   commit. They are versioned according to the git commit SHA of the last
   commit in the release. These releases have the same assets that we provide
   for final releases, binary packagers, source tarball and docker images.
   - * A release assets repository where we only add new assets.

Please note that the release assets repository is relying on the
current no-limit
policy on github release assets
.
If that changes, we would obviously have to adapt.Finally, we also have
updated our README to document the release process, how we decide on
versioning and which are the currently supported releases:
https://github.com/savonet/liquidsoap#release-detailsHopefully this
provides clarity to some of y'all!*What's next?*It's looking like the
2.0.x branch
is getting to be pretty stable. We have an ongoing 2.0.5 rolling release so
that would probably be the next stable release to come out.After that, we
would like to switch to the 2.1.x branch as the next stable release. One
mistake that we did after the 2.0.0 release was to pile up too many new
changes in the main branch, which got us so far that we actually had to
revert some of it to bring it back into a shape where it could be released
in a timely fashion.In the future, we would like to strike a good balance
between new & potentially breaking changes and stable releases. We
understand that, from a user perspective, having to rework your script when
the language changes can be annoying. However, on the other hand, we have
some important ideas and changes in the pipe that would greatly improve the
user experience overall. The new json parsing support in 2.1.x is an
example of such an advancement.Because we have limited resources, we do
plan on maintaining a single ongoing development branch, currently 2.1.x ,
living on the git main branch and an ongoing stable release, first as
rolling release from which we cut versioned, published release.With the
support of rolling releases, we may consider backporting patches to older
releases when they apply easily but will not guarantee that we always do.
One of the challenge with the releases assets build process is that
dependencies, OSes and etc change and we cannot keep maintaining release
build processes eternally.In order to support this effort and keep on
giving more clarity, we have started working on a roadmap
! Most of the
upcoming breaking changes will come from that list so feel free to check it
out, give us some feedback, suggest improvements or missing important
features and maybe work with us on some of it!One feature that we have been
cooking up that I'm pretty excited about is live switching with ffmpeg
encoded content. We are working on making switch and fallback properly work
when using encoded content so someone can, for instance, live switch
between an OBS source and a local file playlist and send that as HLS output
and/or rtmp output without having to re-encode! We believe that it should
be possible but this will eventually require the user to understand how
codecs and containers work and we might even have to write new ffmpeg
bitstream filters..!That's it for now, happy liquidsoap hacking to all
y'all!
-- Romain and Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.4 is out!

2022-04-23 Thread Romain Beauxis
Hi all!

Liquidsoap 2.0.4 is out!

Release 2.0.4 is mostly focused on CPU and memory optimization. As 2.0.x
was getting adopted, we started receiving reports of increased CPU and
memory usage compared to 1.4.4. We investigated them and found a couple of
places that needed to be optimized:

* Our new media content API, which was extended to support the new ffmpeg
raw and encoded data, was accessing content in a way that was not optimal
* Our internal format for PCM audio content had been switched from OCaml
native float array to Bigarrays holding C arrays of floats. However,
performances when accessing Bigarray float data in our audio filters
written in OCaml were problematic.

These two issues have been fixed and we've been able to observe
performances on-par with liquidsoap 1.4.4 for this release.

These improvements are particularly relevant if:
* Your liquidsoap script is using a lof of internal filters and audio
processing operators.
* Your liquidsoap is handling multiple stream/inputs/outputs.

The other breaking change for this release is related to source shutdown
methods. We realized that only specific sources (outputs and active
sources) should have a shutdown method so we removed it from the other
ones. Sources without a shutdown method are cleaned up when all the sources
depending on them have been shutdown.

While this release should be, for the most part, functionally equivalent to
any previous 2.0.x release, we recommend trying it in a staging environment
prior to deploying it to production. The changes for the underlying audio
format were pretty invasive and, also, there is always the chance that your
setup was relying on an incorrect behavior fixed in the release.

Full changelog and release details are here:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.4

-- Romain & Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Correct way to pass metadata through liquidsoap-2.0.0 FFmpeg filter?

2022-03-29 Thread Romain Beauxis
Hi John,


Le lun. 21 mars 2022 à 12:29, John Warburton  a
écrit :
>
> On Mon, 21 Mar 2022 at 09:36, Romain Beauxis 
wrote:
> I'm making the assumption that metadata mostly matters for audio streams
where they may hold track title/artist/album etc.
> >>>>
> > Curiously, the metadata sometimes flicks into life, but most of the
time my player reports "Unknown".
>
> > Do you have a script I could use to try & reproduce this?
>
> Thanks for asking Romain,
>
> By adding my own metadata handler, the problem went away. The metadata
handler was called before any crossfade.
>
> But on testing the script at the end of this email, which uses crossfade
before an FFmpeg filter for audio processing, the metadata stays the same
as the first track in the stream, no matter how many more tracks are
crossfaded afterwards.
>
> Incidentally, when putting an FFmpeg filter into the stream, do I still
need to change from stream to raw, thus, and back again afterwards with
ffmpeg.raw.decode.audio(s)?
>
> s = ffmpeg.raw.encode.audio(%ffmpeg(%audio.raw), s)
> ...
>
> with best wishes,
> John
>
> #!/usr/local/bin/liquidsoap
>
> set("log.level", 5)
> settings.server.telnet.set(true)
> settings.server.telnet.bind_addr.set("0.0.0.0")
> settings.server.telnet.port.set(1235)
> settings.server.timeout.set(-1.0)
> settings.request.metadata_decoders.set(["FFMPEG"])
> settings.decoder.decoders.set(["FFMPEG"])
> settings.decoder.file_extensions.wav.set([])
> settings.decoder.file_extensions.taglib.set([])
> settings.decoder.file_extensions.id3v2.set([])
> settings.decoder.file_extensions.ffmpeg.set(["mka"])
> settings.frame.audio.samplerate.set(48000)
>
> def audio_process(s) =
>   def mkfilter(graph) =
> s = ffmpeg.filter.audio.input(graph, pass_metadata=true, s)
> s = ffmpeg.filter.dynaudnorm(graph, s, gausssize=23, correctdc=true,
altboundary=true, maxgain=80., b=true, targetrms=1.)
> s = ffmpeg.filter.aresample(graph, s, sample_rate=192000)
> s = ffmpeg.filter.alimiter(graph, s, limit=0.95, attack=3.,
release=50., asc=true, asc_level=1.)
> s = ffmpeg.filter.aresample(graph, s, sample_rate=48000)
> ffmpeg.filter.audio.output(graph, pass_metadata=true, s)
>   end
>   ffmpeg.filter.create(mkfilter)
> end
>
> def audio_process_wrap(s) =
>   a = ffmpeg.raw.encode.audio(%ffmpeg(%audio.raw), s)
>   a = audio_process(a)
>   ffmpeg.raw.decode.audio(a)
> end
>
> def audio_process_multi(s) =
>   def mkfilter_multi(graph) =
> s = ffmpeg.filter.audio.input(graph, pass_metadata=true, s)
> s = ffmpeg.filter.dynaudnorm(graph, s, gausssize=7, correctdc=true,
altboundary=true, maxgain=80., b=true, targetrms=1.)
> s = ffmpeg.filter.volume(graph, s, volume="-18dB", precision=2,
replaygain=0)
> s = ffmpeg.filter.aexciter(graph, s, freq=6000.)
> s = ffmpeg.filter.mcompand(graph, s, args="0.005,0.1 6
-47/-37,-34/-34,-17/-33 90 | 0.003,0.05 6 -47/-40,-34/-34,-17/-33 180 |
0.003,0.05 6 -47/-40,-34/-34,-17/-33 360 | 0.000625,0.03 6
-47/-40,-34/-34,-17/-33 1600 | 0.000625,0.03 6 -47/-40,-34/-34,-17/-33 2800
| 0.0001,0.025 6 -47/-35,-34/-34,-17/-33 5000 | 0,0.025 6
-47/-35,-34/-34,-17/-33 8192 | 0,0.025 6 -47/-40,-34/-34,-17/-33 23999")
> s = ffmpeg.filter.volume(graph, s, volume="+20dB", precision=2,
replaygain=0)
> s = ffmpeg.filter.aresample(graph, s, sample_rate=192000)
> s = ffmpeg.filter.alimiter(graph, s, limit=0.8, attack=3.,
release=50., asc=false, asc_level=0., level=true)
> s = ffmpeg.filter.aresample(graph, s, sample_rate=48000)
> ffmpeg.filter.audio.output(graph, pass_metadata=true, s)
>   end
>   ffmpeg.filter.create(mkfilter_multi)
> end
>
> def audio_process_multi_wrap(s) =
>   a = ffmpeg.raw.encode.audio(%ffmpeg(%audio.raw), buffer(s))
>   a = audio_process_multi(a)
>   ffmpeg.raw.decode.audio(a)
> end
>
> security = single("/home/john/src/radio/fault.mka")
>
> # Here's the playlist, annotated as per our Python pre-production program
dictates
> myplaylist = playlist(reload_mode="watch",
mime_type="application/x-mpegURL",
"/home/john/src/radio/bc2-30DEC2020-complete.m3u8")
>
> # Cut off any silent starts
> myplaylist = cue_cut(myplaylist)
>
> # Amplify each track according to our own EBU R.128 volume data
> myplaylist = amplify(override="liq_amplify", 1.0, myplaylist)
>
> # Add the news
> myplaylist = fallback(track_sensitive=true, transition_length=30.0,
[request.queue(id="override"), myplaylist])
>
> # Do the crossfades
> myplaylist = crossfade(duration=30.0, smart=false, fade_out=0.0,
fade_in=0.0, minimum=-1.0, default=(fun(a,b)->add(no

Re: [Savonet-users] Correct way to pass metadata through liquidsoap-2.0.0 FFmpeg filter?

2022-03-21 Thread Romain Beauxis
Hi!


Le mer. 1 sept. 2021 à 23:41, John Warburton  a écrit :
>
> On Tue, 24 Aug 2021 at 08:11, Romain Beauxis  wrote:
>>
>> Cool! I forgot to add: make sure that you also update ocaml-ffmpeg, there 
>> was a big there in how we set frame metadata.
>> On Tue, Aug 24, 2021, 00:51 John Warburton  wrote:
>>>
>>> On Tue, 24 Aug 2021 at 02:35, Romain Beauxis  
>>> wrote:
>>>>
>>>> I just pushed the fix to pass liquidsoap's metadata down to ffmpeg 
>>>> filters! They are passed only when the `pass_metadata` parameter is set to 
>>>> `true`. By default, it only passes them to audio streams. I'm making the 
>>>> assumption that metadata mostly matters for audio streams where they may 
>>>> hold track title/artist/album etc.
>>>>
> Curiously, the metadata sometimes flicks into life, but most of the time my 
> player reports "Unknown".

Do you have a script I could use to try & reproduce this?


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.3 is out! / windows issues

2022-03-20 Thread Romain Beauxis
Hi again,

Le lun. 7 mars 2022 à 17:22, p· g···  a écrit :
> so i have to confirm that memory leaks are still here...

Could you try the build here:
https://github.com/savonet/liquidsoap/actions/runs/2011389479 ?

We have made some drastic changes and optimization that impact memory
usage. Curious to see if that may have improved your situation..
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.3 is out! / windows issues

2022-03-20 Thread Romain Beauxis
Hi,


Le lun. 7 mars 2022 à 17:22, p· g···  a écrit :
>
> hello!
>
> so i have to confirm that memory leaks are still here...
>
> also i think there is a new bug:
>
> if I have this in my config
>
> 2sec = single(id="dzingl", "F:/2sec.mp3")
> radio = add([radio, switch([({30m1s},2sec)])])
>
> it used to play the soundfile every 30 min 1 s.
> it always used to play it once in the timeframe.
> now it plays twice in a row every 30 min 1s! the file itself lasts two
> seconds so it can't be that it fits to one second twice... the internal LS
> clock has gotten flakey perhaps?

This is interesting. Could you file a ticket on github for this issue? Thanks!
-- Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.3 is out! - how to make it read files it produces

2022-03-20 Thread Romain Beauxis
Hi,

Le jeu. 17 mars 2022 à 14:18, p· g···  a écrit :
>
> hello!
>
> that's how i record it:
> output.file(%wav(stereo=true, channels=2, samplesize=16, header=false),
> "A:/minmon-%Y-%m-%d-%H-%M.wav", mm, fallible=true)
>
> then, when i have this file and try to queue for play:
>
> 2022/03/15 10:02:01 [decoder:3] Available decoders cannot decode
> "A:/minmon-2022-03-14-21-11.wav" as
{audio=pcm(stereo),video=none,midi=none}
> 2022/03/15 10:02:02 [decoder:2] Error while checking file's content:
> Avutil.Error(Invalid data found when processing input)
> 2022/03/15 10:02:02 [decoder:2] Error while checking file's content: IFF
> File error: Unknown file format.
>
> that makes sense as i do "header=false", but how can i know the header
> before whole file is recorded?
> perhaps there is a way to tell avutil what type of file my audio file is?
to
> feed it the same info - wav(stereo=true, channels=2, samplesize=16)?

FFmpeg is capable of decoding raw audio:
https://trac.ffmpeg.org/wiki/audio%20types however, there currently
isn't any way to pass the required arguments to the decoder.

Have you considered recording the file with a header?


Le jeu. 17 mars 2022 à 14:18, p· g···  a écrit :

> hello!
>
> that's how i record it:
> output.file(%wav(stereo=true, channels=2, samplesize=16, header=false),
> "A:/minmon-%Y-%m-%d-%H-%M.wav", mm, fallible=true)
>
> then, when i have this file and try to queue for play:
>
> 2022/03/15 10:02:01 [decoder:3] Available decoders cannot decode
> "A:/minmon-2022-03-14-21-11.wav" as
> {audio=pcm(stereo),video=none,midi=none}
> 2022/03/15 10:02:02 [decoder:2] Error while checking file's content:
> Avutil.Error(Invalid data found when processing input)
> 2022/03/15 10:02:02 [decoder:2] Error while checking file's content: IFF
> File error: Unknown file format.
>
> that makes sense as i do "header=false", but how can i know the header
> before whole file is recorded?
> perhaps there is a way to tell avutil what type of file my audio file is?
> to
> feed it the same info - wav(stereo=true, channels=2, samplesize=16)?
>
> thanxxx,
> P
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.3 is out!

2022-02-20 Thread Romain Beauxis
Hi all!

Thanks to the AzuraCast rolling release, we caught a bug in the 2.0.3 release
that was affecting crossfade transitions. The release has been updated
here: https://github.com/savonet/liquidsoap/releases/tag/v2.0.3 with:

   - A new 2.0.3-1 tarball
   - A new opam package submitted to the main repository
   - New versions of the binary packages, 2.0.3-2 for debian/ubuntu and
   2.0.3-r1 for alpine
   - The docker images tagged with v2.0.3 have been updated

This means that:

   - If you were building from source, please switch to
   liquidsoap-2.0.3-1.tar.bz2
   - If you are using opam, please wait a little until the package is added
   to main repository or pin it locally
   - If you are using a binary package provided through the release page,
   please install the new version
   - If you are using a docker image, please pull the latest v2.0.3.

Thanks y'all!

Le ven. 11 févr. 2022 à 18:30, Romain Beauxis  a
écrit :

> Hi alll! Liquidsoap 2.0.1 is out!
>
> [image: giphy]
> <https://user-images.githubusercontent.com/871060/153687681-3929c568-ce90-4a8f-b004-5346b241d8d6.gif>
>
> This is the third Liquidsoap bugfix release of the 2.0.x release branch.
> This release was focused on long-term concerns regarding memory
> consumptions, crossfade transitions and metadata issues. Overall, it
> follows a trend of stabilization of the 2.0.x features and we're happy to
> see adoption expanding and users reporting issues and usages that are more
> and more specialized.
>
> Specific things to focus on for this release:
>
>- We spent quite a while investigating issues related to memory
>consumption. It turns out that those seem to be mostly related to
>finer-tweaking of the OCaml memory management unit, called the garbage
>collector (GC). Details about our findings with some hints about how to
>change the settings there are here
><https://github.com/savonet/liquidsoap/issues/2146#issuecomment-1026280833>
> and here
>
> <https://github.com/AzuraCast/AzuraCast/issues/5010#issuecomment-1030131029>
>- The default buffer size for input.harbor has been increased to 12s to
>make it possible to use it with crossfade transition out of the box.
>Make sure to drop if while upgrading if you rely on a smaller buffer.
>- The API for fetching and manipulating date and time has been cleaned
>up to make it more user friendly. Details are here
><https://github.com/savonet/liquidsoap/discussions/2179>. Make sure to
>check out this link if you are using time.utc() or time.now()
>- The logic behind metadata being passed when switching between
>sources has been fixed. This could impact your running code if you relied
>on a broken implementation before. See #2138
><https://github.com/savonet/liquidsoap/issues/2138>
>
> This is mostly it!  Again, we want to thank all our users, contributors
> and supporters. We would never be able to keep improving the quality of the
> software without y'all patient testing, reporting and follow-ups! Merci!
>
>
> -- Romain & Sam
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Dockerfile for LS - next question

2022-02-16 Thread Romain Beauxis
Hi all,

With liquidsoap 2.0.3, we introduced an operator named
`liquidsoap.chroot.make`. This operator copies all the required files from
an existing liquidsoap install (don't run it from the source directory!),
excluding the dynamic libraries required for the liquidsoap binary. You can
use it to entirely wipe out the .opam directory after an install and only
keep the files exported by this operator.

If you're not on `2.0.3`, the files that are needed are:
* Everything from configure.libdir (this is a liquidsoap script variable)
* Everything from configure.bindir (this is a liquidsoap script variable)
* The camomile files. In 2.0.3, this was added as liquidsoap script
variable configure.camomile_dir. Before that, you can use this command:
  `ocamlfind -toolchain windows ocamlc -where`/../../share/camomile

Optional:
* The configured default font, if it exists. This is liquidsoap
variable configure.default_font
* The default log dir: configure.logdir, with appropriate permissions
* The default rundir for pid files: configure.piddir

Then, of course, the liquidsoap binary and all it's executable. I haven't
tested it but I can also pretty much expect the binary located in the
~/.opam folder to work when copied to /usr/bin provided you have all the
required files above and the right dynamic libraries.

The implementation of `liquidsoap.chroot.make` can be used as guideline
too: https://github.com/savonet/liquidsoap/blob/main/libs/liquidsoap.liq

Hope this helps!
-- Romain

Le mer. 16 févr. 2022 à 04:06, Romain Chambe  a
écrit :

> Hi Mark, thanks for that ! I'd be really interested to see the dockerfile
> you used to make it work. I also struggle with it. Thank you very much,
>
> Romain Chambe
>
> Le mer. 16 févr. 2022 à 09:58, Mark Jeghers  a
> écrit :
>
>> Ok I got LS 1.4 running in docker!  Very pleased with that.
>>
>> However, the docker image is really large because I've included *many*
>> files found under the /home/liquidsoap/.opam subdirectories.  I'd like to
>> remove the files not needed at runtime, but I'm not sure which ones they
>> are.
>>
>> Can someone plz advise which files under /home/liquidsoap/.opam are
>> actually used at runtime?  I really want to remove all the rest,
>>
>> Thanks,
>> /Mark
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
>
> --
> Romain
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] scheduling different webstream radio

2022-02-16 Thread Romain Beauxis
Hi!

What version of liquidsoap are you using?

Romain

Le mer. 16 févr. 2022 à 02:54, Pascal Delbruyere 
a écrit :

> hi all
>
>
> I try « simply » to re-broadcast different web radio depending on time and
> day.
>
> Following is the code I’m using.
>
>
> It works but :
>
>1. I get error message « buffer overrun » (trying to increase max
>buffer but no luck).. what to do ?
>2. I think the script is always listening to all the webstream in the
>same time, it is not very good for internet/data bandpass.
>Is there another way to proceed ? it would be nice to only listen of
>the webstream involved
>
>
> set("server.telnet", true)
>
> set("server.telnet.port", 1234)
>
> set("server.timeout",-1.0)
>
>
> set("log.level",4)
>
> set("log.file",false)
>
> set("log.stdout",true)
>
>
> ParadiseFM = input.http(buffer=30.,max=500.,"http://fmradio.hopto.org:7000
> ")
>
> ParadiseFM = rewrite_metadata([("artist","Radio 3 1
> 9"),("title","ParadiseFM")],ParadiseFM)
>
>
> MiAmigo = input.http(buffer=30.,max=500.,"http://stan319.radioca.st/stream
> ")
>
> MiAmigo = rewrite_metadata([("artist","Radio 3 1
> 9"),("title","$(filename)")],MiAmigo)
>
>
> R192 = input.http(buffer=30.,max=500.,"http://194.88.105.64:8192/stream;)
>
> R192 = rewrite_metadata([("artist","Radio 3 1
> 9"),("title","$(filename)")],R192)
>
>
> security = nrj(single("/Volumes/Data3/Music-FM/Security/Paradise -
> 20191119 0900 .mp3"))
>
>
> radio = crossfade(start_next=2., fade_out=2., fade_in=2.,
>
> fallback(track_sensitive = false, [ switch (track_sensitive=false,
>
> [
>
> ({ 0h00-10h00 }, ParadiseFM),
>
> ({ 10h00-13h00 }, MiAmigo),
>
> ({ 13h00-24h00 }, ParadiseFM),
>
>
> ({ (3w) and  0h00-12h00 }, ParadiseFM),
>
> ({ (3w) and 12h00-13h00 }, R192),
>   #Teenager Muziek Express
>
> ({ (3w) and 13h00-17h00 }, MiAmigo),
>
> ({ (3w) and 17h00-24h00 }, ParadiseFM),
>
>
> ({ (4w) and  0h00-12h00 }, ParadiseFM),
>
> ({ (4w) and 12h00-15h00 }, MiAmigo),
>
> ({ (4w) and 15h00-21h00 }, ParadiseFM),
>
> ({ (4w) and 21h00-22h00 }, R192),
>   #Vinyl Show
>
> ({ (4w) and 22h00-24h00 }, ParadiseFM),
>
>
> ({ (6w) and  0h00-12h00 }, ParadiseFM),
>
> ({ (6w) and 12h00-15h00 }, MiAmigo),
>
> ({ (6w) and 15h00-18h00 }, ParadiseFM),
>
> ({ (6w) and 18h00-19h00 }, R192),
>   #Vinyl Show
>
> ({ (6w) and 20h00-24h00 }, ParadiseFM),
>
>
>
> ({ (7w) and  0h00-12h00 }, ParadiseFM),
>
> ({ (7w) and 12h00-13h00 }, R192),
>   #Teenager Muziek Express
>
> ({ (7w) and 13h00-17h00 }, MiAmigo),
>
> ({ (7w) and 17h00-24h00 }, ParadiseFM),
>
>
>
> ]), security]),
>
> )
>
>
> # Information de diffusion  MAIN   ===
>
> output.icecast(%mp3(bitrate=128),
>
> host = "127.0.0.1", port = 8000,
>
> name = "Radio 3 1 9", description = "Offshore radio, Souvenirs", genre =
> "Pop", url = "Adresse de la radio",
>
> password = « xx »,
>
> mount = "Radio319", radio)
>
>
> thanks
>
> Pascal
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.3 is out!

2022-02-11 Thread Romain Beauxis
Hi alll! Liquidsoap 2.0.1 is out!

[image: giphy]


This is the third Liquidsoap bugfix release of the 2.0.x release branch.
This release was focused on long-term concerns regarding memory
consumptions, crossfade transitions and metadata issues. Overall, it
follows a trend of stabilization of the 2.0.x features and we're happy to
see adoption expanding and users reporting issues and usages that are more
and more specialized.

Specific things to focus on for this release:

   - We spent quite a while investigating issues related to memory
   consumption. It turns out that those seem to be mostly related to
   finer-tweaking of the OCaml memory management unit, called the garbage
   collector (GC). Details about our findings with some hints about how to
   change the settings there are here
   
and here
   
   - The default buffer size for input.harbor has been increased to 12s to
   make it possible to use it with crossfade transition out of the box.
   Make sure to drop if while upgrading if you rely on a smaller buffer.
   - The API for fetching and manipulating date and time has been cleaned
   up to make it more user friendly. Details are here
   . Make sure to
   check out this link if you are using time.utc() or time.now()
   - The logic behind metadata being passed when switching between sources
   has been fixed. This could impact your running code if you relied on a
   broken implementation before. See #2138
   

This is mostly it!  Again, we want to thank all our users, contributors
and supporters. We would never be able to keep improving the quality of the
software without y'all patient testing, reporting and follow-ups! Merci!


-- Romain & Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.2 - request [longfile?] bugs

2022-02-01 Thread Romain Beauxis
Hi,

Le mar. 25 janv. 2022 à 03:37, p· g···  a écrit :
>
> hi!
>
> i'm having an interesting issue when asking LS to play certain track via
> terminal: once i queue it, it plays for a few seconds, then everything cuts
> out as if the process died but actually what happens is that it disconnects
> from icecast, and reconnects after a while. also, i get a notice We must
> catchup 34.48 seconds! - where is that from?
> with old versions it would just play, but now it does this... also i have to
> notice that these are long 6+ hours files and it was always buggy - they
> would end prematurely. now at least it catches up to play further, althogh
> metadata display is lost as after re-connect as it doesn't re-send the
> metadata, which could also be addressed.
>
> there is nothing special in the config, a fallback with request queue
> sitting on top of it, and it's defined as request.queue (id="geidauju")
>
> 2022/01/25 11:16:10 [geidauju:3] Prepared "M:/minmon-op20220124.mp3" (RID
> 16).
> 2022/01/25 11:16:10 [switch_5:3] Switch to geidauju with transition.
> 2022/01/25 11:16:10 [lang.deprecated:2] WARNING: "add_timeout" is deprecated
> and will be removed in future version. Please use "thread.run.recurrent"
> instead.
> 2022/01/25 11:19:29 [clock.main:2] We must catchup 34.48 seconds!
> 2022/01/25 11:19:29 [radio.audiomastering.lt:2] Error while sending data:
> could not write data to host: An established connection was aborted by the
> software in your host machine.
>
> 2022/01/25 11:19:29 [radio.audiomastering.lt:2]  in write()!
> 2022/01/25 11:19:29 [radio.audiomastering.lt:3] Closing connection...
> 2022/01/25 11:19:29 [radio.audiomastering.lt:3] Will try to reconnect in
> 3.00 seconds.
> 2022/01/25 11:19:29 [radio.audiomastering.lt:2] Error while sending data:
> could not write data to host: An established connection was aborted by the
> software in your host machine.
>
> 2022/01/25 11:19:29 [radio.audiomastering.lt:3] Will try to reconnect in
> 3.00 seconds.
> 2022/01/25 11:19:33 [radio.audiomastering.lt:3] Connecting mount ogg for
> source@localhost...
> 2022/01/25 11:19:33 [radio.audiomastering.lt:3] Connection setup was
> successful.

The best way to get help would be to fill up a github bug report with
your issue. Make sure to include this description, the logs and an
extract of your script.

Thanks!
-- Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.2 - request [longfile?] bugs (windows)

2022-02-01 Thread Romain Beauxis
Hi Reto,

Le mar. 25 janv. 2022 à 13:41, Reto Wettstein  a écrit :
>
> Hi there
>
> I am looking for a liqidsoap developer.
>
> Any interest in a gig?
>
> We are a terrestrial Radio station in Switzerland.

What kind of project do you have in mind?

Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.2 is out!

2022-01-02 Thread Romain Beauxis
Thanks for reporting. This should be fixed with the latest windows build
here: https://github.com/savonet/liquidsoap/releases/tag/v2.0.2

Le ven. 31 déc. 2021 à 17:57, p· g···  a écrit :

> happy new year!!!
>
> wee, 2.0.2 doesn't work (windows):
>
> output.file(%ffmpeg(format = "mp3", %audio(codec = "libmp3lame", b =
> "320")), "L
> :/archyvas/radijos/traktorius-%Y-%m-%d-%H-%M.mp3", traktorius,
> fallible=true)
>
> Error 12: Unsupported format:
> %ffmpeg(format="mp3",%audio(codec="libmp3lame",sam
> plerate=44100,b="320",channels=2)).
> You must be missing an optional dependency.
>
> cheers!
> p
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.2 is out!

2021-12-31 Thread Romain Beauxis
Sorry for the delay. Yes, we got it!

Le mer. 29 déc. 2021 à 18:20, Mark Jeghers  a
écrit :

> Did you ever get my application to present on my playlist generator
> software?
>
> On Wed, Dec 29, 2021, 9:38 AM Romain Beauxis 
> wrote:
>
>> Hi!
>>
>> Liquidsoap 2.0.2 is out!
>> https://github.com/savonet/liquidsoap/releases/tag/v2.0.2. This is
>> another bugfix release and we highly recommend and update. This should
>> bring the 2.0.x branch to a nice level of stability.
>>
>> The liquidshop workshop is coming up in less than a month! We still need
>> speakers to make it happen and also, we're missing a couple of y'all who
>> were there last year. We think it was a really good time so, why not
>> register again?  Link: http://www.liquidsoap.info/liquidshop/2/
>>
>> Thanks for another year working with us. We sure hope the next time is a
>> good one and things get easier and better for everyone..
>> -- Romain and Sam
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.2 is out!

2021-12-29 Thread Romain Beauxis
Hi!

Liquidsoap 2.0.2 is out!
https://github.com/savonet/liquidsoap/releases/tag/v2.0.2. This is another
bugfix release and we highly recommend and update. This should bring the
2.0.x branch to a nice level of stability.

The liquidshop workshop is coming up in less than a month! We still need
speakers to make it happen and also, we're missing a couple of y'all who
were there last year. We think it was a really good time so, why not
register again?  Link: http://www.liquidsoap.info/liquidshop/2/

Thanks for another year working with us. We sure hope the next time is a
good one and things get easier and better for everyone..
-- Romain and Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidshop 2.0 on Jan. 23, 2022!

2021-12-02 Thread Romain Beauxis
Definitely! Feel free to fill up the submission form!

Le jeu. 2 déc. 2021 à 11:27, Mark Jeghers  a écrit :
>
> Maybe this would be another opportunity for me to present on my playgen 
> software, which provides 24/7 random playlist generation. Remember we 
> discussed before?
>
> On Thu, Dec 2, 2021, 5:48 AM Romain Beauxis  wrote:
>>
>> Hi everybody,
>>
>> We are glad to announce the second edition of Liquidshop, the Liquidsoap 
>> workshop, which will be held online on
>>
>> ** January 23rd 2022 **
>>
>> To goal is to gather all people interested in Liquidsoap (of course) but 
>> also in related topics:
>>
>> * audio and video streaming
>> * radio broadcasting
>> * signal processing
>> * audio and video synthesis
>>
>> and so on using whichever software. This is thus the place to share to the 
>> world your favorite or cutting edge technologies and projects!
>>
>> We will have 3 different tracks for the event, namely
>>
>> * showcases: short presentations about a website / radio / art installation 
>> that you built using Liquidsoap or other related tools
>> * tech talks: in-depth presentation of a technology related to Liquidsoap 
>> and streaming in general
>> * workshops: user-centered freeform discussions about your project or issues 
>> around Liquidsoap and streaming
>>
>> If you're interested to participate, whether it is as an attendee or a 
>> presenter, make sure to register via our website at 
>> http://www.liquidsoap.info/liquidshop/2 or directly via the form available 
>> at https://forms.gle/EDFsfMCS4dNKnrxc9
>>
>> We are super excited for this event. We have already secured a couple of 
>> interesting speakers and we would love to get to know the community better, 
>> see what y'all are doing with liquidsoap and other releated projects, 
>> community radios, live video, weird installations, etc. and meet with 
>> everyone.
>>
>> Finally, if any of you have some specific topics to discuss and would like 
>> to learn more about Liquidsoap, this will be a great place to connect!
>>
>> See y'all soon!
>> -- Romain and Sam
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidshop 2.0 on Jan. 23, 2022!

2021-12-02 Thread Romain Beauxis
Hi everybody,

We are glad to announce the second edition of Liquidshop, the Liquidsoap
workshop, which will be held online on

** January 23rd 2022 **

To goal is to gather all people interested in Liquidsoap (of course) but
also in related topics:

* audio and video streaming
* radio broadcasting
* signal processing
* audio and video synthesis

and so on using whichever software. This is thus the place to share to the
world your favorite or cutting edge technologies and projects!

We will have 3 different tracks for the event, namely

* showcases: short presentations about a website / radio / art installation
that you built using Liquidsoap or other related tools
* tech talks: in-depth presentation of a technology related to Liquidsoap
and streaming in general
* workshops: user-centered freeform discussions about your project or
issues around Liquidsoap and streaming

If you're interested to participate, whether it is as an attendee or a
presenter, make sure to register via our website at
http://www.liquidsoap.info/liquidshop/2 or directly via the form available
at https://forms.gle/EDFsfMCS4dNKnrxc9

We are super excited for this event. We have already secured a couple of
interesting speakers and we would love to get to know the community better,
see what y'all are doing with liquidsoap and other releated projects,
community radios, live video, weird installations, etc. and meet with
everyone.

Finally, if any of you have some specific topics to discuss and would like
to learn more about Liquidsoap, this will be a great place to connect!

See y'all soon!
-- Romain and Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.1 and Liquidshop 2!

2021-11-28 Thread Romain Beauxis
Hi,

Thanks for letting us know! If you're interested, we would love to have you
show what you've been doing with liquidsoap during the next workshop:
http://www.liquidsoap.info/liquidshop/2/

Romain

Le sam. 27 nov. 2021 à 16:46, unosonic  a écrit :

>
> hi Romain,
>
> still on 1.4.x ... but wanted to say thanks. I'm running liquidsoap 24/7
> since a decade and
> it never failed. Keep up with this great project!
>
> Udo
>
>
> Romain Beauxis:
> > Hello!
> >
> > We are pleased to announce the release of liquidsoap 2.0.1, the first
> > bugfix release for the 2.0.x release cycle. This release should bring
> more
> > stability and production-ready quality. We recommend upgrading to it
> > whenever available. Release details are here:
> > https://github.com/savonet/liquidsoap/releases/tag/v2.0.1
> >
> > For our next steps with the 2.1.x release cycle, we have decided to take
> on
> > more refactoring and tackle a full rewrite of the internal clocks and
> > streaming model. This is one of the last hold out from the old days and
> we
> > think we can simplify and reimplement it in a way that would make it less
> > bug-prone and also ready for the upcoming multicore OCaml compiler!
> >
> > Lastly, but perhaps most excitingly, we have decided to organize a second
> > Liquidsoap Workshop! Last year’s event was such a successful and
> > interesting time that we can’t wait to do it again and see what y’all
> might
> > want to talk about or present! It will be held online on Jan. 23rd, 2022.
> > Details of the event are here: http://www.liquidsoap.info/liquidshop/2/,
> > registration link is here: https://forms.gle/EDFsfMCS4dNKnrxc9
> >
> > Looking forward y’all! 
> > -- Romain
>
>
> > ___
> > Savonet-users mailing list
> > Savonet-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.1 and Liquidshop 2!

2021-11-27 Thread Romain Beauxis
Hello!

We are pleased to announce the release of liquidsoap 2.0.1, the first
bugfix release for the 2.0.x release cycle. This release should bring more
stability and production-ready quality. We recommend upgrading to it
whenever available. Release details are here:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.1

For our next steps with the 2.1.x release cycle, we have decided to take on
more refactoring and tackle a full rewrite of the internal clocks and
streaming model. This is one of the last hold out from the old days and we
think we can simplify and reimplement it in a way that would make it less
bug-prone and also ready for the upcoming multicore OCaml compiler!

Lastly, but perhaps most excitingly, we have decided to organize a second
Liquidsoap Workshop! Last year’s event was such a successful and
interesting time that we can’t wait to do it again and see what y’all might
want to talk about or present! It will be held online on Jan. 23rd, 2022.
Details of the event are here: http://www.liquidsoap.info/liquidshop/2/,
registration link is here: https://forms.gle/EDFsfMCS4dNKnrxc9

Looking forward y’all! 
-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Reload playlist from within liquidsoap yet?

2021-11-07 Thread Romain Beauxis
Hi Stephan,

With liquidsoap 2.0.0, you can now call `playlist.reload()` directly on the
playlist source variable from within the script.

Le dim. 7 nov. 2021 à 01:40, Stephan Hoppe  a
écrit :

> As of 1.4.4, is there a function, telnet command, or unix socket call yet
> to reload a playlist from within LiquidSoap on demand?  I don't mean:
> reload_mode="watch".  I'm referring to something else that simply reloads
> the playlist on demand.
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] LIQUIDSOAP 2.0 CRASHING

2021-10-22 Thread Romain Beauxis
Hi Richard,

Thanks for this report. This definitely looks like a bug somewhere on our
end. Would you mind following up here:
https://github.com/savonet/liquidsoap/issues/new?assignees===bug_report.md=

Make sure to add some logs, in particular the beginning of it, liquidsoap
and ubuntu version as reported above and perhaps the architecture, even if
it's just amd64.

If you have the file that caused it that would help a lot as well so we can
try to reproduce locally. If needed you can send it to me at:
to...@rastageeks.org

Thanks, let's fix this shortly!
Romain

Le ven. 22 oct. 2021 à 13:02, Richard Bartholomew  a
écrit :

> Hi,
>
>
>
> We're running 2.0 under ubuntu 21.10 and Icecast 2.4.4.
>
>
>
> We have a number of playlists running on a fallback mount which switch at
> various points during the week but twice, now, LiquidSoap has crashed
> without warning.  On Tuesday evening, it stopped with the error
>
>
>
> [decoder.id3v2:2] Error while decoding file tags: Out of memory
>
>
>
> However, memory usage on the box was very low!
>
>
>
> It crashed again this morning but there is no warning or error in the log
> to indicate what the problem was.
>
>
>
> Any ideas or suggestions, please?  For example, would a daily stop and
> start of the script help – I could understand that this would if there were
> memory leakage.
>
>
>
> Thanks for any help.
>
>
>
> Richard Bartholomew
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] UNPREDICTABLE RESULTS FROM ROTATE

2021-10-15 Thread Romain Beauxis
Hi all,

We are aware of the issues with rotate. A fix has been pushed to the
`v2.0.1` bugfix branch. We will release it shortly, maybe early next month.
Meanwhile, y'all can install it locally using `opam pin` or find a build of
the latest commit in our actions tab on github. As of now this is the
latest one: https://github.com/savonet/liquidsoap/actions/runs/1342462013

Romain

Le ven. 15 oct. 2021 à 09:39, Florian Reiterer  a
écrit :

> Hi,
> I have been running rotate successfully and switched to 2.0 today. I also
> have issues but different ones (I’m getting tracks from the same folder
> played twice, though I have a check_next defined)
>
> So, I’d say, done correct, it may well be an issue.
>
> Myself I will try with the latest 2.1. Let you know how it works the next
> days.
>
> Regards,
> Florian
>
> Excerpt:
> Musik =
> playlist(reload_mode="watch",check_next=check,"/home/motherearth/FTP/media/Musik")
> Musik = crossfade(smart=true, width=4., high=-25., medium=-39., Musik)
> Klassik =
> playlist(reload_mode="watch",check_next=check,"/home/motherearth/FTP/media/Klassik")
> show = ("/home/motherearth/FTP/media/Sendungen/show.flac")
> music = rotate (weights = [12, 1],[Musik, Klassik])
> music.on_leave(music.skip)
> radio = fallback(track_sensitive=false, [showtime, music])
>
> Am 15.10.2021 um 14:20 schrieb Richard Bartholomew :
>
> Hi,
>
> I'm very new to liquidsoap so expect that I'm doing (or not doing)
> something fundamental! I'm running liquidsoap 2.0 on ubuntu 21.04.
>
> I have a directory containing a mixture of jingles and promos all at the
> same level (ie not within sub-directories).
> I also have another directory containing sub-directories with music. What
> I want to happen is for a jingle or promo to be played every fourth music
> track.  What is happening, though, is:
>
>
>1. The source seems to get stuck on either jingles or promos rather
>than a mixture of them.
>2. The jingle/promo is not played everry fourth song – it can be
>played after three tracks or five, etc.  On one occasion, I've seen in the
>log that four tracks are prepared before a jingle is played; yet, when I
>was listening, the jingle was played after the third track!
>
>
> Below is an extract from my script and any help with it would be greatly
> appreciated.
>
> Thanks for any help.
>
> jingles=audio_to_stereo(mksafe(normalize(playlist("/home/radio/jingles"
>
> SixtiesPlus=audio_to_stereo(mksafe(normalize(playlist("/home/radio/music/decades/60s70s80s"
> radio=mksafe(switch(track_sensitive=false, [({1w}, Monday), ({2w},
> Tuesday), ({3w}, Wednesday), ({4w}, Thursday), ({5w}, Friday), ({6w},
> Saturday), ({7w}, Sunday)]))
> radio=mksafe(crossfade(smart=true, rotate(weights=[1, 4], [jingles,
> radio])))
>
> Regards
> Richard Bartholomew
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Runtime on debian/ubuntu slow vs docker

2021-10-13 Thread Romain Beauxis
Good to know, thanks. I've added a ticket for this:
https://github.com/savonet/liquidsoap/issues/2019

Le sam. 9 oct. 2021 à 08:49, Gilles Pietri  a
écrit :

> Le 08/10/2021 à 15:38, Romain Beauxis a écrit :
> > Hi!
> >
> > I've noticed it. There are a bunch of initialization stuff that get
> > triggered implicitly now and that could be the source.
> >
> > Considering that it does not seem to happen on docker, I'd suggest it
> > might be related to some hardware initialization.
> >
> > We use `libavdevice` now and I think it gets automatically initialized,
> > this is probably where this comes from.
> >
> > Do you think that this should be considered an issue?
>
> Hi,
>
> I don't think it's an issue, and it is even less of an issue to me as my
> VMs don't suffer from it, as I have a lot less stuff installed there (or
> use docker). Though if I'm missing a way to not let liq load say ladspa
> plugin through a setting, let me know, as in one scenario, this could
> help (and liq taking more than 1s to load is usually a symptom I don't
> ignore :P)
>
> However, I don't think it's hardware bound, as on a VM with no soundcard
> I can reproduce it, by installing the LSP plugin suite.
> root@radio-v6:~# time liquidsoap -h x
> Plugin not found!
>
> real0m1.153s
> user0m0.809s
> sys 0m0.053s
>
> after installing lsp-plugins-ladspa
>
> # time liquidsoap -h x
> Plugin not found!
>
> real0m4.500s
> user0m3.496s
> sys 0m0.087s
>
> And I can reproduce it right away in docker, so containers are not
> immune either. And I agree it's more of a ladspa/lsp issue, but well,
> maybe we can blacklist/whitelist some. But that is not a blocking issue
> nor an outstanding one.
>
> Cheers
> Gilou
>
>
>
> > -- Romain
> >
> > Le jeu. 7 oct. 2021 à 05:13, Gilles Pietri  > <mailto:contact%2b...@gilouweb.com>> a écrit :
> >
> > Le 07/10/2021 à 11:40, Gilles Pietri a écrit :
> >  > Hi,
> >  >
> >  > As I'm migrating v1.4 stuff to v2.0, it's expected that I often
> use
> >  > liquidsoap -h xx to check on new syntax... And it's quite slow,
> > on my
> >  > machine and my test env. I use the .deb provided by the ci @
> github.
> >
> > Info about platform was in the title, but wrong. On a freshly
> installed
> > debian, I don't have that issue. So I'm guessing there is a package
> > installed on ubuntu that leads to this.
> >
> > I did run it on a laptop that does a lot of sound related stuff, and
> > it's the worst there. Maybe ladspa plugns are the culprit… I'll
> > investigate more later.
> >
> > I ran strace -tt liquidsoap --version result (after removing frei0r
> > plugins, that I don't use), which seems to agree with the ladspa
> lookup
> > taking up to 1s.
> >
> > $ dpkg --list | grep ^ii  | grep -i 'ladspa' | awk '{ print $2 }'
> > ladspa-sdk
> > lsp-plugins-ladspa
> > rubberband-ladspa
> > swh-plugins
> > tap-plugins
> > zam-plugins
> >
> >
> > This is not a blocking issue, but may be a symptom for some
> > bloated-ness, and maybe it'd be good to be able to avoid loading all
> > the
> > stuff when it's not needed (or maybe I'll have to recompile it to
> avoid
> > it, but that would be sad, just to read the docs or check syntax :P)
> >
> >
> > Cheers,
> > Gilou
> >
> >
> >
> > ___
> > Savonet-users mailing list
> > Savonet-users@lists.sourceforge.net
> > <mailto:Savonet-users@lists.sourceforge.net>
> > https://lists.sourceforge.net/lists/listinfo/savonet-users
> > <https://lists.sourceforge.net/lists/listinfo/savonet-users>
> >
> >
> >
> > ___
> > Savonet-users mailing list
> > Savonet-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/savonet-users
> >
>
> --
> Gilles Pietri
> 29 avenue de la Libération, F-44400 Rezé
> 0634745199
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.0 is out!

2021-10-04 Thread Romain Beauxis
Hi all!

It is with great excitement and some ~2 years of anticipation that we have
now the pleasure to announce the release of Liquidsoap 2.0.0
!

[image: giphy]


The release is currently being deployed to opam and should be available
through their main repository shortly. If you need to install it right away
you can do:

git clone https://github.com/savonet/liquidsoap.git
cd liquidsoap && git checkout v2.0.0
opam install -y .

The release also includes binary packages for a bunch of platforms/OSes.
樂 What is liquidsoap?

Liquidsoap is a statically-typed, type-inferred, functional scripting
language equipped with specialized operators to build audio and video
stream automation.

The liquidsoap language offers all the flexibility and expressivity of a
fully featured programming language to help build your media streams.

Using liquidsoap, one can very quickly stand up a media streaming platform
that can rotate files from playlists, accept live DJ input, mux audio and
video, encode (or not!) and send the resulting data to youtube, icecast,
HLS and more..
✅ Why liquidsoap?

While there are many tools that offer competing features, the real
difference with liquidsoap is its scripting language.

Setting up tools using configuration files is often easier and more
straight forward, however, when it comes to the finer details, such as
inserting jingles between shows, defining crossfades between tracks and
more, potentially, each project has its own set of expectations, and this
is where liquidsoap becomes really useful!
⚡️ What's new in Liquidsoap 2.0.0? ⚡

Liquidsoap 2.0.0 brings major improvements in two areas:
️ Video support via ffmpeg

While video has been supported for a while, audio remained the primary
target of the software. This is all changed now! In keeping with the
tradition of focusing on what we do well and delegating to others what they
have expertise on, we implemented a tight integration of the remarkably
awesome ffmpeg API.

This has brought to liquidsoap all the exciting features of ffmpeg,
including support for multiple input and output formats, filters and also
support for end-to-end encoded content, which allows liquidsoap, when
possible, to stream content without having to re-encode it, a long
requested user feature.

Our aim with the ffmpeg integration is to become a scripting language built
on top of ffmpeg in such ways that, if something is possible with the
ffmpeg command-line, it should be possible with liquidsoap.

Meanwhile, the scripting language also provides functionalities based on
ffmpeg that are either hard or impossible to implement using the
command-line executable, such as fully typed, composable ffmpeg filter
operators 
and shared
encoding 
⚙️ Expanded language features

With this release, the liquidsoap language is expanded, introducing
multiple features much needed for the comfort of the programmer such as:

   - Module and records, allow to attach method to variables
   - Exception handling
   - Support for structured data, tuples and etc.

Along with these changes, we have released The Liquidsoap Book
, which we hope will help
users of all skill level to work with the liquidsoap language and streaming
projects.

But we are not stopping here! We have even more exciting features in store
for the liquidsoap language, some of them already committed to the main
development branch.
 Roadmap and versioning

Our roadmap consists of:
 Bugfix releases

While we are satisfied with the current 2.0.0 release and believe it is
safe to use for production-ready work, software projects are never free of
bugs so we will keep improving on the current stable branch.

Stable releases are numbered using the patch part of their version, i.e.
2.0.x. However, when it comes to liquidsoap, it is important to keep in
mind that some of our operators have complex behavior and interactions with
each other. While we do our best to maintain backward compatibility between
bugfix versions, we always recommend to test them in a staging area before
pushing them to production.

Our workflow for reporting bugs is via github's issues tracker
. This is our preferred way
to keep track of issues, discuss them and mark them as fixed. If you have
questions related to setting up your script, installing liquidsoap and etc,
you can also start a discussion
. In some cases, issues
get transfer to discussions as we see fit and, also, discussions can in
fact lead to reporting an associated issues.

We do encourage all reports as we find a lot of value in our users
feedback. We try to respond to all of them 

Re: [Savonet-users] Config Clinic - Switch to a preproduced show

2021-09-09 Thread Romain Beauxis
Hi Florian!

It looks like you need to set the switch to `track_sensitive=true`, which
is the default. Otherwise, the switch does not wait for the end of the
current track to change sources and, since your time predicate is only good
for one minute, it switches back after one minute like you have seen.

Another way of doing it is to use a time range instead of a single fixed
time predicate. I believe the syntax is:
  0w22h00m-0w22h59m
for instance.

Lastly, you could also use a `track_sentitive=false` switch with a
`request.queue` source and push your file exactly when you want it to play.

If you want to learn more about all these options, I recommend checking out
the Liquidsoap book here: https://www.liquidsoap.info/doc-dev/book.html. It
should have gradual explanations of all the options and some
accessible examples.

All the best!
Romain

Le dim. 5 sept. 2021 à 15:40, Florian Reiterer  a
écrit :

>
>
> Hi all,
>
> i am stuck with this task. I want to add prerecorded shows every some
> weekdays at say 18:00.
>
> Cant get my head round this; I tried with a switch, but it only plays one
> minute of the Show („Beitrag“) and returns to the regular stream („radio“).
>
> I was hoping for help on this one, or to point the right direction to
> achieve this.
>
> I only got to the level of a _*very*_basic script (though it streams
> perfectly: liquidsoap rules!) and am using liquidsoap 1.4.4
>
> Here is the test script:
>
> set("log.stdout", true)
>
> set("init.allow_root",true)
>
> set("frame.audio.channels",2)
>
> set("frame.audio.samplerate",96000)
>
> set("request.metadata_decoders",["FLAC","OGG","TAGLIB"])
>
> def transition(radio,Beitrag)
>
>   add(normalize=false,
>
>   [ fade.in(duration=1.,Beitrag),
>
> fade.out(duration=4.,radio) ])
>
> end
>
> Musik = playlist(reload_mode="watch","E:/FTP Mother Earth")
>
> Klassik = playlist(reload_mode="watch","E:/FTP Mother Earth/Bach")
>
> Beitrag = playlist(reload_mode="watch","E:/MER Sendungen")
>
> radio = rotate (weights = [12, 1],[Musik, Klassik])
>
>
>
> radio = fallback([switch(track_sensitive=false,
> transitions=[transition],[({0w22h00m}, Beitrag), ({ true }, radio)])])
>
>
>
> output.icecast(%ogg(%flac(samplerate=96000, channels=2, compression=5,
> bits_per_sample=24)), fallible = true, icy_metadata = "true",
> mount="source", radio)
>
>
>
> thanks!
>
> Florian
>
> Motherearthradio.de
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.0-rc1 is out!

2021-09-03 Thread Romain Beauxis
Hi!

Liquidsoap 2.0.0-rc1 is out:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.0-rc1The 2.0.0
release branch brings important and fundamental changes to liquidsoap, in
particular:
* First-class support of video
* Tight integration with ffmpeg, encoders, decoders, filters and more
* Enhanced language features making the script language a fully-featured
language
* A fully featured book  to learn about the language

About this release

This is the first release candidate for the 2.0.0 release branch. This
release means that we are satisfied with the current stability of the
branch and are looking at releasing a final version soon.

As a result, the repository’s main branch has been versioned to 2.1.0 and
we have forked off a 2.0.0-rc1 branch. This branch will only get bug fixes
and we shall keep releases of the 2.0.x series for bug fixes in the future.

This release is also the first to make it to the opam repository. This
means that users installing liquidsoap without a specific version will get
2.0.0~rc1 installed. While this version may not be entirely free of bugs
(are there any such thing?), we believe that it is ready for larger
consumption and, also, that this will accelerate the release process by
exposing more and more users to it, helping us to shape it to its final
form.

If you absolutely need to make sure you installed a given version, please
update your scripts using opam to install a fixed version, i.e.:

  opam install liquidsoap.1.4.4

This is actually a good practice for any automated liquidsoap opam install
that depends on a specific version.

We want to thank all our users for their critical help in testing,
reporting, working with us and trusting us through this release process. We
can’t wait to have the final 2.0.0 version out!

Personal note

This release was delayed as one of our developers was being displaced due
to hurricane Ida’s path of destruction through Southern Louisiana. While
New Orleans is often the focus of the world’s attention (and usually not
for so long), this catastrophic event has impacted a lot of smaller
communities around southern Louisiana that usually get little or no focus.
While this open-source project is provided free of charge, if you feel so
inclined to make a donation as a form of appreciation, we suggest they can
be send to:
Greater New Orleans Foundation: https://www.instagram.com/gnofoundation/
Cajun Navy Relief: https://www.instagram.com/cajunnavyrelief/
MutualAidLA: https://www.instagram.com/mutualaidlouisiana/

-- Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Correct way to pass metadata through liquidsoap-2.0.0 FFmpeg filter?

2021-08-24 Thread Romain Beauxis
Cool! I forgot to add: make sure that you also update ocaml-ffmpeg, there
was a big there in how we set frame metadata.

On Tue, Aug 24, 2021, 00:51 John Warburton  wrote:

> On Tue, 24 Aug 2021 at 02:35, Romain Beauxis 
> wrote:
>
>> Hi John,
>>
>> I just pushed the fix to pass liquidsoap's metadata down to ffmpeg
>> filters! They are passed only when the `pass_metadata` parameter is set to
>> `true`. By default, it only passes them to audio streams. I'm making the
>> assumption that metadata mostly matters for audio streams where they may
>> hold track title/artist/album etc.
>>
>> Thank you for this, Romain. I look forward to testing it later today.
> with best wishes,
> John
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Correct way to pass metadata through liquidsoap-2.0.0 FFmpeg filter?

2021-08-23 Thread Romain Beauxis
Hi John,

I just pushed the fix to pass liquidsoap's metadata down to ffmpeg filters!
They are passed only when the `pass_metadata` parameter is set to `true`.
By default, it only passes them to audio streams. I'm making the assumption
that metadata mostly matters for audio streams where they may hold track
title/artist/album etc.

Hope this works for you!
Romain

Le lun. 23 août 2021 à 06:21, John Warburton  a
écrit :

> On Mon, 23 Aug 2021 at 08:36, Romain Beauxis 
> wrote:
>
>> Hi John,
>>
>> Thanks for this report. I actually pushed the changes to decode and pass
>> metadata from ffmpeg frames when converting back to liquidsoap frame format
>> in this PR: https://github.com/savonet/liquidsoap/pull/1812
>>
>> In it, I failed to notice your use case and assumed that we could drop
>> metadata when converting from liquidsoap frame format to ffmpeg's. I'll be
>> fixing this shortly.
>>
>> When there's a blank piece of metadata (either title or artist), the
> metadata doesn't update, even though I've put this code in:
>
>t = m["title"]
>   a = m["artist"]
>   if null.defined(t) then
> t = "Unknown title"
>   end
>   if null.defined(a) then
> a = "Unknown artist"
>   end
> icy.update_metadata(host="127.0.0.1", port=8000, password="[PASSWORD]",
> mount="audio.aac", [("title", t), ("artist", a)])
>
> But t never seems to get updated to 'Unknown title', and a never gets
> updated to 'Unknown artist'.
>
> Not sure how to check for undefined data, therefore.
>
> Maybe that difficulty could vanish with the new code that you are working
> on.
> with best wishes,
> John
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta3 is out!

2021-08-14 Thread Romain Beauxis
Hi,

Sorry to hear that. Beta3 is mostly a bugfix over beta2. Is there any
chance you could file a bug report with enough of your script for us
to reproduce and also some logs?

Thanks!
Romain

Le sam. 14 août 2021 à 12:13, p· g···  a écrit :
>
> hello!
> i've tested the beta3 on windows and it locked up completely (even not
> responding to service restart messages) without any warnings in logs two
> times in two days already, with last log entries being normal operational
> messages.
> i'm back to b2...
>
> p
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta3 is out!

2021-08-12 Thread Romain Beauxis
Le jeu. 12 août 2021 à 12:12, Gilles Pietri  a écrit :
>
> Le 12/08/2021 à 10:07, Romain Beauxis a écrit :
> > Hi!
> >
> > This is the third and, hopefully, last beta for the upcoming `2.0.0`
> > major release!
> >
> > The `2.0.0` release branch brings important and fundamental changes to
> > liquidsoap, in particular:
> > * First-class support of video
> > * Tight integration with ffmpeg, encoders, decoders, filters and more
> > * Enhanced language features making the script language a fully-featured
> > language
> > * A fully featured [book](https://www.liquidsoap.info/doc-dev/book.html
> > <https://www.liquidsoap.info/doc-dev/book.html>) to learn about the language
> >
> > Since the second beta, we have pushed a bunch of bug fixes, thanks to
> > our early testers and reporters. We try to avoid breaking changes but we
> > also introduced some new features too:
> > * Parametrization of request-based sources such as playlist,
> > request.dynamic etc. has been simplified to be able to simply set a
> > prefetch argument to tell the operator to queue a certain number of
> > requests in advance. Methods have been added to the operator to also
> > allow advanced use, queue inspection, manual push and etc.
> > * Settings are now fully typed via a top-level settings module.
> > Typically, set("log.level", 4) becomes settings.log.level.set(4). This
> > is fully backward compatible too!
> > * The ffmpeg decoder can now be used to decode images so, if you are
> > planning to implement video streams using static images, all you should
> > need is the ffmpeg binding.
> >
> > Next, we are planning on ending the beta release cycle to keep fixing
> > bugs without introducing major changes so we can start looking at
> > release candidates. Once liquidsoap `2.0.0` is out, we will resume
> > adding new features.
> >
> > Again, we want to thank all y’all for y’all patience testing, reporting
> > and contributing, this is an immense help for us, we wouldn’t be able to
> > do all this work without y’all!
>
> Hey,
>
> Congrats, and well done, once again guys!
>
> I'm reading the book, and finding it very cool to read, but I could be a
> nerd!
>
> I have tested most of my stuff on 2.0, trying not to rely on the
> backward compatibility (thus maybe not being a good tester of that :P),
> so rewriting things that got a lot cooler on purpose. I'm still testing,
> and will give beta3 a test round as well. Still haven't found time to
> make some deeper feedback, but at least, it means I haven't been stuck
> at any point, and feel confident I'll be happy with that new version ;)

Great, looking forward to your feedback Gilou!


Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.0-beta3 is out!

2021-08-12 Thread Romain Beauxis
Hi!

This is the third and, hopefully, last beta for the upcoming `2.0.0` major
release!

The `2.0.0` release branch brings important and fundamental changes to
liquidsoap, in particular:
* First-class support of video
* Tight integration with ffmpeg, encoders, decoders, filters and more
* Enhanced language features making the script language a fully-featured
language
* A fully featured [book](https://www.liquidsoap.info/doc-dev/book.html) to
learn about the language

Since the second beta, we have pushed a bunch of bug fixes, thanks to our
early testers and reporters. We try to avoid breaking changes but we also
introduced some new features too:
* Parametrization of request-based sources such as playlist,
request.dynamic etc. has been simplified to be able to simply set a
prefetch argument to tell the operator to queue a certain number of
requests in advance. Methods have been added to the operator to also allow
advanced use, queue inspection, manual push and etc.
* Settings are now fully typed via a top-level settings module. Typically,
set("log.level", 4) becomes settings.log.level.set(4). This is fully
backward compatible too!
* The ffmpeg decoder can now be used to decode images so, if you are
planning to implement video streams using static images, all you should
need is the ffmpeg binding.

Next, we are planning on ending the beta release cycle to keep fixing bugs
without introducing major changes so we can start looking at release
candidates. Once liquidsoap `2.0.0` is out, we will resume adding new
features.

Again, we want to thank all y’all for y’all patience testing, reporting and
contributing, this is an immense help for us, we wouldn’t be able to do all
this work without y’all!
-- Romain & Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta2 is out!

2021-07-11 Thread Romain Beauxis
Hi John,


Le dim. 11 juil. 2021 à 05:03, John Warburton  a
écrit :
>
> On Tue, 6 Jul 2021 at 20:04, Romain Beauxis 
wrote:
>>
>> A little over a year after introducing support for abstract internal
frame content in liquidsoap, we’re happy to announce that the second beta
of liquidsoap 2.0.0 is now available:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.0-beta2
>>
> Hello!
>
> Thank you for progressing with this.
>
> A little test found that crossfading stopped working.
>
> If you are currently working on this, then no problem: I'll wait until
another iteration.
>
> I try not to use 'smart' functions, instead using cue-in and cue-out
timings on tracks which very successfully give an extremely smooth-sounding
stream in version 1.4.4
>
> But in 2.0.0 this stopped, and occasionally the log would look like this
for a couple of hundred lines:
> "2021/07/10 21:51:15 [crossfade_0:4] Setting crossfade duration to 4.46s"
>
> All files are .mka though the containers carry many different types of
audio including AAC-LC, AAC-HE and AAC-HEv2, MP3, flac and wav.
>
> Here is my crossfade function (I use 'duration=30.0 to ensure long track
fade-outs aren't compromised: I don't mind them under speech at all)
>
> The function aims to overlap, allowing the tracks' natural fades-in and
fades-out to do the cross-fade for me, with the cue points carefully chosen
to allow this.
>
> myplaylist = crossfade(duration=30.0, smart=false, fade_out=0.0,
fade_in=0.0, minimum=-1.0, default=(fun(a,b)->add(normalize=false,([b,
a]))), conservative=true,  myplaylist)
>
> Hope this helps. Please let me know if you'd like the full log, audio
files, etc.

Thank you for this report. Both crossfade and cue_cut have been reworked
recently so this is not entirely surprising. Would you mind starting a
ticket describing the issue?

Ideally, I'd like to be able to reproduce locally so, a couple of examples
of your request queries, which I imagine use `annotata` with custom cue
in/out points would help, along with some logs around the issue and a
description of what you are observing with 2.0.0.

Thanks, looking forward to fixing this!
Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.0-beta2 is out!

2021-07-06 Thread Romain Beauxis
Hi!

A little over a year after introducing support for abstract internal frame
content in liquidsoap, we’re happy to announce that the second beta of
liquidsoap 2.0.0 is now available:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.0-beta2

This journey, which started over a year and a half ago at FOSDEM is now
bringing liquidsoap to a new level. One can now do things that were
previously thought as impossible or very hard to implement. This includes:
* Taking advantage of a fully-featured language with modules, exceptions,
nullable values and more.
* Mixing encoded and raw content, sharing encoders, leveraging most of
FFmpeg’s supported encoders/decoders/filters
* Streaming video efficiently

With this second beta, we are solidifying the current code, although with
perhaps one more disrupting change in the pipes (see below). We encourage
any interested user to migrate their script and report any issue as we aim
to:
* Maintain compatibility with migrated scripts for the final version as
much as possible
* Provide production-ready stability as quickly as possible

To this end, we try our best to be responsive to any bug report concerning
the 2.0.0 release branch. In order to help migrating scripts, we have
started a migration page here:
https://www.liquidsoap.info/doc-dev/migrating.html with tips about what
needs to be changed and will update it as we get reports from our users.

We are in the process of updating our online documentation so you should
already see some improvements there.  Also, we now have a fully featured
Liquidsoap book (see: https://www.liquidsoap.info/doc-dev/book.html) that
provides a lot more details and background information about liquidsoap and
streaming in general.

This release also introduces new CI-based APK package builds for alpine for
the x86_64 and aarch64 architectures as well as docker images for Alpine
linux available here: https://hub.docker.com/r/savonet/liquidsoap-alpine.
These images are 5x smaller than our default production images!

One last thing: we have a pull request pending that aims at exporting
settings as proper, typed, module here. This pull-request will be merged in
the near future and should, hopefully, be the last breaking change for
existing scripts. While we try to maintain backward compatibility as much
as possible during the beta release cycle, this was not possible for this
one. However, we believe that the benefits it will bring outweighs the
drawback of having to change your script settings syntax.

Happy Liquidsoap hacking y’all!
— Romain and Sam
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta1 - windows issues

2021-07-01 Thread Romain Beauxis
Hi,

I'm glad to hear that the memory leak is getting better.

We have started a migration page to help users migrating from 1.4.x to
2.x so this feedback is very useful.

Le lun. 21 juin 2021 à 17:57, p· g···  a écrit :
> now this crossfade doesn't work:
>
> def crossfade (~start_next=5.,~fade_in=3.,~fade_out=3.,
>  ~default=(fun (a,b) -> sequence([a, b])),
>  ~high=-15., ~medium=-32., ~margin=4.,
>  ~width=2.,~conservative=true,s)
> #  fade.out = fade.out(type="sin",duration=fade_out)
> #  fade.in  = fade.in(type="sin",duration=fade_in)
>   add = fun (a,b) -> add(normalize=false,[b, a])
> #  log = log(label="crossfade")
> end
>
> commented lines show what i had to take out to avoid startup errors.
>
> this transition doesn't work either:
>
>   def transition(a,b,ma,mb,sa,sb)
> list.iter(fun(x)-> log(level=4,"Before: #{x}"),ma)
> list.iter(fun(x)-> log(level=4,"After : #{x}"),mb)
> log("Transition: crossed, fade-in, fade-out.")
> #add(fade.out(sa),fade.in(sb))
>   end

This is explained in:
https://www.liquidsoap.info/doc-dev/migrating.html You would now
write:

def transition(a,b)
  list.iter(fun(x)-> log(level=4,"Before: #{x}"),ma)
  list.iter(fun(x)-> log(level=4,"After : #{x}"),mb)
  log("Transition: crossed, fade-in, fade-out.")
  add(fade.out(a.source),fade.in(b.source))
end

> this definition of cross:
>
> #  cross(width=width, duration=start_next, conservative=conservative,
> #  transition,s)
>
> also this:
> #radio = crossfade(radio)
>
> then this important contraption which allowed me to insert metadata on the
> fly and also print out track names which have played:
>
> #x = insert_metadata(radio)
> #insert = fst(x)
> #radio = snd(x)
> #def set_meta(~protocol,~data,~headers,uri) =
> #x = url.split(uri)
> #meta = metadata.export(snd(x))
> #ret =
> #if meta != [] then
> #insert(meta)
> #"O jaa!"
> #else
> #"nier metadatos!"
> #end
>
> #http_response(protocol=protocol,code=200,headers=[("Content-Type","text/html")],data="#{ret}")
> #end
>
> #harbor.http.register(port=8020,method="GET","/setmeta",set_meta)
>
> # execute script on_metadata
>
> # radio = on_metadata(fun (meta) -> system("echo %date% %time%
> #{(meta[\"artist\"])} #{(meta[\"title\"])} >> c:/grojo.txt"), radio)
>
>
> then this jingle system and also primitive gain control:
> # radio = add([radio, switch([({30m31s},dzinglas)])])
> # radio = skip_blank(radio)
> # radio = fallback(track_sensitive=false, [ fail(), radio, fallback_file ])
> # limradio = amplify(0.9, radio)
>
> compression and normalization written like that also have no luck:
> #  target = interactive.float("target",-17.)
> #  k_up = interactive.float("k_up",10.)
> #  k_down = interactive.float("k_down",0.2)
> #  gain_min = -6.
> #  gain_max = 10.
> #  window = 10.
> #  threshold = interactive.float("threshold",-30.)
>
> #radio =
> normalize(target=target,k_up=k_up,k_down=k_down,gain_min=gain_min,gain_max=gain_max,window=window,threshold=threshold,radio)
> #radio = compress(attack=0.5,threshold=-9.,ratio=12.,gain=6.,
> release=2000.,radio)
>
> a simple limiter doesn't want to function:
> #radio = limit(attack=0.01, release=5000., threshold=-1., radio)

For the above, it's hard to tell without looking at the whole script.
From what you describe, it feels like you might have been using an
intermediate output. Something like this:
radio = output.dummy(fallible=true, radio)

With 2.x, outputs now return nothing and should not be re-used as
source so you should do:

output.dummy(fallible=true, radio)
# keep using radio afterward...

> and finally, radio = register_flow is also commented out but i don't
> remember if i did it because of LS v2 or some time earlier..:)

Flow is unmaintained and deprecated now, sadly.

> also one transition for fallback including live harbour that Martin
> Kirchgessner suggested earlier:
> def crossfade_1s(a,b)
> faded = add(normalize=false, [
> fade.in(duration=1., type="exp", b),
> amplify(mkfade(duration=1., start=1., stop=0., type="exp", a) ,a)
> ])
> add_timeout(3., { source.skip(a) ; -1.})
> faded
> end
>
> that behaved absolutely unusably shitty (fading in and out multiple times
> and never completing the fade, skipping tracks on fades happening in
> background in pre-V2 liquidsoap), now works absolutely perfect ;)

This might be a proper bug, if we can isolate and reproduce it.

Romain


___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta1 - windows issues

2021-06-19 Thread Romain Beauxis
Le jeu. 17 juin 2021 à 09:38, p· g···  a écrit :
>
> hello!
>
> so eventually i've managed to move my radios to a V2
> however i had to throw away great deal of configuration and loose
> functionality.. would be a huge message if i put it all together, so first
> the main ones (and perhaps you could give me the key to solving such
> issues):
>
>
> #1
> ogg doesn't work (flac or vorbis):
>
> %ffmpeg(format="ogg", %audio(codec="libvorbis", b = "192"))
>
> No format (mime) found, please specify one.

Thanks for reporting this. You can pass the value explicitly via the
"format" parameter. Also, bitrate should be in kbytes:
output.icecast(format="application/ogg", %ffmpeg(format="ogg",
%audio(codec="libvorbis", b = "192k")), ...)

I have added mime types for most of ffmpeg's formats so this won't be
needed in the future.

> #2
> if i try crossfading, radio becomes some other entity that i can't encode
it
> afterwards:
>
> radio = crossfade(radio)
>
> later on on encoding line gives such error:
> Error 5: this value has type
>   unit (inferred at line 168, char 2-48)
> but it should be a subtype of
>   source(_)
>
> if i don't crossfade, the encoding works.

I think I would need to see more of your script to help here.

> #3
> can't compress (or amplify):
> radio = compress(attack=0.5,threshold=-9.,ratio=12.,gain=6.,
> release=2000.,radio)
>
> At line 246, char 75-80:
> Error 5: this value has type
>   unit (inferred at line 171 char 2 - line 176 char 5)
> but it should be a subtype of
>   source(_)

Likewise

> #4
> can't limit:
> radio = limit(attack=0.01, release=5000., threshold=-1., radio)
>
> At line 250, char 57-62:
> Error 5: this value has type
>   unit (inferred at line 171 char 2 - line 176 char 5)
> but it should be a subtype of the type of the value at C:\Program
> Files\liquidso
> ap\libs\sound.liq, line 61, char 138
>   source(_) (inferred at C:\Program Files\liquidsoap\libs\sound.liq, line
> 62, ch
> ar 107)

Same

> #5
> can't fallback:
>
> radio = fallback(track_sensitive=false, [ fail(), radio, fallback_file ])
>
> At line 233, char 50-55:
> Error 5: this value has type
>   source(_)
> but it should be a subtype of the type of the value at line 233, char
50-55
>   unit

Ditto. These are all related to the same issue.

> #6
> can't skip blank:
>
> radio = skip_blank(radio)
>
> Error 6: Cannot apply that parameter because the function at line 232,
char
> 8-19
>
> has no unlabeled argument!

liquidsoap -h skip_blank? Also, this has been deprecated, we now have
blank.skip

> #7
> can't add jingle:
>
> radio = add([radio, switch([({30m31s},dzinglas)])])
>
>
> At line 231, char 20-49:
> Error 5: this value has type
>   unit
> but it should be a subtype of the type of the value at line 231, char
20-49
>   _.{selected : _}

Same probleme again

> #8
> can't set crossfades:
> cross(width=width, duration=start_next, conservative=conservative,
>   transition,s)
>
> Error 5: this value has type
>   (_, _, _, _, _, _) -> _ (inferred at line 69 char 2 - line 74 char 5)
> but it should be a subtype of
>   (_, _) -> source(_)

The arguments have changed for this one.

> and so on... the things must have changed significantly... is there an
> updated read about it?

Yeah, we want to work on a page to highlight most of the required changes.
Would you mind sending more of your script? That would be great to help us
getting started.

> let's see how it behaves concerning memory leaks. so far several hundreds
MB
> for every radio.

Curious to hear about how this is going?

Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta1 - windows issues

2021-06-12 Thread Romain Beauxis
Yes. For ogg/flac, I think this should work:
   %ffmpeg(format="ogg", %audio(codec="flac"))

Le ven. 11 juin 2021 à 17:37, p· g···  a écrit :

> hello!
> would this make sense for an mp3 then:
>
> out = output.icecast(%ffmpeg(format="mp3", %audio(codec="libmp3lame",
> b="192", q="1")), host = "localhost", port = 8000 ... , radio)
> ?
>
> also, how do i make ogg-flac? i can see ffmpeg has flac encoder, but how
> to
> put it into an ogg container?.. all ogg references link to vorbis there..
>
> thx,
> p
>
> -Original Message-
> From: Romain Beauxis
> Date: 2021 m. birželio 4 d. 02:04
> To: savonet-users
> Subject: Re: [Savonet-users] Liquidsoap 2.0.0-beta1 - windows issues
>
>
> Yes, we're having issues compiling with both `ffmpeg` support and all
> other
> encoders. We believe that ffmpeg brings all the other encoders
> functionalities and more so it was decided to only build with ffmpeg
> enabled. I'll make sure to add it to the release description.
>
> For a mp3 encoder, you should be able to use:
>   %ffmpeg(format="mp3", %audio(codec="libmp3lame"))
>
> Romain
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] Liquidsoap 2.0.0-beta1 - windows issues

2021-06-03 Thread Romain Beauxis
Yes, we're having issues compiling with both `ffmpeg` support and all other
encoders. We believe that ffmpeg brings all the other encoders
functionalities and more so it was decided to only build with ffmpeg
enabled. I'll make sure to add it to the release description.

For a mp3 encoder, you should be able to use:
  %ffmpeg(format="mp3", %audio(codec="libmp3lame"))

Romain

Le jeu. 3 juin 2021 à 16:45, p· g···  a écrit :

> so here we are, all the configs wouldn't start.
>
> for example, it wouldn't spit out even mp3:
>
> Error 12: Unsupported format:
> %mp3(stereo,bitrate=320,samplerate=44100,id3v2=fal
> se).
> You must be missing an optional dependency.
>
>
> and also it swears about my fades:
>
> fade.out = fade.out(type="sin",duration=fade_out)
> gives a simple
> At line 63, char 11:
> Error 3: Syntax error!
>
> p
>
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Liquidsoap 2.0.0-beta1

2021-06-03 Thread Romain Beauxis
Happy to announce the first beta release of liquidsoap 2.0 available here:
https://github.com/savonet/liquidsoap/releases/tag/v2.0.0-beta1

The 2.0.0 release branch brings important and fundamental changes to
liquidsoap, in particular:
* First-class support of video
* Tight integration with ffmpeg, encoders, decoders, filters and more
* Enhanced language features making the script language a fully-featured
language

This release is the first beta release, which means that we believe that we
are done with most of the fundamental changes and are now considering
stabilizing the existing core. We are encouraging users to test it, with
the confidence that, once their scripts are adapted to the new changes,
they will work with the final release with very little changes and that we
will be reactive to bug reports so we can move toward a final release
quicker.

This release also comes with the first version of the Liquidsoap book!! 

The book covers the Liquidsoap language, in version 2.0.0, with a view to
stream generation, from the basics to advanced use cases. We believe that
it’ll be a great companion while switching to or working on learning about
the 2.0.0 release.
It is available:
* For purchase on Amazon:
https://www.amazon.com/Liquidsoap-book-Samuel-Mimram/dp/B095PVTYR3/
* Online at: https://github.com/savonet/book/raw/main/book.pdfHi all!

Thanks for all the support y'all!
Romain
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] [cross_7373:4] More buffering will be needed.

2021-05-18 Thread Romain Beauxis
Ola!

This log may not be related to a problem, just information. Do you have any
issues with your script?

Romain

Le lun. 17 mai 2021 à 14:20, Francisco Oliver  a
écrit :

> Hola, cada vez que activo crossfade me sale este aviso en el log. ¿Hay
> alguna solucion para ello? He leido la documentacion pero no me queda claro
> como hacerlo.
> Gracias de antemano.
>
> Google Translator:
>
> Hello, every time I activate crossfade I get this warning in the log. Is
> there a solution for it? I have read the documentation but it is not clear
> to me how to do it.
> Thanks in advance.
>
> My script:
>
> #!/path to liquidsoap
>
> # Incluir scripts externos
> %include "putoscripts.liq"
>
> # Activar archivo log
> set("log.file",false)
> set("log.file.path","/path to putorock.log")
> # Activar log en consola
> set("log.stdout",true)
> set("log.level",4)
>
> # Activar comandos telnet
> #set("server.telnet",true)
>
> # Activar color en la salida de consola (allways, never o auto):
> set("console.colorize","allways")
>
> # Editar lista de metadatos exportados
>
> #set("encoder.encoder.export",["artist","title","album","genre","date","tracknumber","comment","track","year","dj","next"])
>
> # Definir Replay_gain path
> set("protocol.replay_gain.path","/path to extract-replaygain")
>
> # Activar extractor de etiquetas replaygain_metadata
> #enable_replaygain_metadata()
>
> # Definir security, clock y jingles
> security = single("/path to security.mp3")
> clock = single("/path to clock.mp3")
> #jingles = playlist("/path to 00-jingles")
>
> # Definir sources: normal, con nrj o con protocolo replay_gain
> #putoall = playlist("/path to 00-music")
> #putoall = nrj(playlist("/path to 00-music"))
> putorock = playlist("/path to 00-rock", prefix="replay_gain:")
> putometal = playlist("/path to 00-metal", prefix="replay_gain:")
> putoldies = playlist("/path to 00-oldies", prefix="replay_gain:")
>
> # Definir salida de putos
> putos = switch([({ 6h-16h }, putorock), ({ 16h-00h }, putorock), ({ 00h-6h
> }, putoldies)])
> putos = amplify(1., override="replay_gain", putos)
> putos = normalize(putos)
> # Activar crossfade o smart_crossfade
> putos = crossfade(duration=5., fade_in=3., fade_out=3., smart=true,
> width=2., conservative=true, putos)
>
> # Definir salida de radio
> radio = fallback(track_sensitive = false, [putos, security])
>
> # Añadir clock y jingles
> #radio = add([radio, switch([({0m0s},clock)])])
> #radio = random(weights = [1, 4],[jingles, putos])
>
> # Definir los datos del stream
> output.icecast(%mp3.cbr(samplerate=44100, bitrate=192),
>   host = "localhost", port = 8000,
>   password = "x", mount = "rock",
>   name="Radio PutoRock", description="Lo mejor del Rock",
>   radio)
>
> My log:
>
> 2021/05/17 21:15:06 [source:4] Source buffer_9529 gets up.
> 2021/05/17 21:15:06 [buffer_9529:4] Content kind is
> {audio=2;video=0;midi=0}.
> 2021/05/17 21:15:06 [buffer_9529:4] Activations changed:
> static=[cross_7373_after:sequence_9609:cross_7373], dynamic=[].
> 2021/05/17 21:15:06 [cross_7373_after:4] Activations changed:
> static=[sequence_9609:cross_7373], dynamic=[].
> 2021/05/17 21:15:06 [sequence_9609:4] Activations changed: static=[],
> dynamic=[cross_7373].
> 2021/05/17 21:15:06 [sequence_9609:4] Activations changed: static=[],
> dynamic=[cross_7373, cross_7373].
> 2021/05/17 21:15:11 [buffer_9527:4] End of track.
> 2021/05/17 21:15:11 [buffer_9527:4] Buffer emptied, buffering needed.
> 2021/05/17 21:15:16 [buffer_9529:4] Buffer emptied, buffering needed.
> 2021/05/17 21:15:16 [sequence_9609:4] Activations changed: static=[],
> dynamic=[cross_7373].
> 2021/05/17 21:15:16 [cross_7373:4] Buffering end of track...
> 2021/05/17 21:15:16 [cross_7373:4] More buffering will be needed.
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


  1   2   3   4   5   6   7   8   9   10   >