#acl FreaknetGroup:read,write,admin,delete,revert All:read <> (!) {OK} {OK} (!) = Streaming Radio Howto = '''by Asbesto, CORONAVIRUS EDITION 11/3/2020 ''' == PULSEAUDIO MERDA AS SYSTEM SERVICE, PORCAMADONNA == I had to do this on starlink for gqrx radio streaming. DIO MERDA in /etc/pulse I edited daemon.conf uncommenting those lines: {{{ daemonize = yes system-instance = yes high-priority = yes }}} Then I had to add {{{ /usr/bin/pulseaudio --system -D touch /tmp/pulseaudioMERDA }}} in rc.local THEN in /etc/group I added root and asbesto users in the correct groups (i include audio BECAUSE SHIT) {{{ audio:x:29:pulse,asbesto,root pulse:x:111:asbesto,root pulse-access:x:112:asbesto,root }}} then REBOOT AND FUCK OFF now from asbesto I can {{{sudo darkice}}} == SINK HOLE NEL CULO == DA UTENTE: {{{ pactl load-module module-null-sink sink_name=Radio sink_properties="device.description='Radio'" }}} dovrebbe creare un LAVANDINO Radio. NON SO A COSA SERVE: VEDI https://zackhobson.com/2020/05/26/internet-radio-pulseaudio-darkice-icecast/ non so come ma se setto device = pulse dentro darkice, strimma quel che esce dal mixer audio quindi anche il dsp out mp3 porcodio gqrx merda == DARKICE setup on vtroglos etc == What device to use? {{{ Use "aplay -l" to get a list of the devices on your system. The hw:X,Y comes from this mapping of your hardware -- in this case, X is the card number, while Y is the device number. root@rover:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: H2n [H2n], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 root@rover:~# card 1 is the ZOOM H2N. }}} {{{ # sample DarkIce configuration file, edit for your needs before using # see the darkice.cfg man page for details # this section describes general aspects of the live streaming session [general] duration = 0 # duration of encoding, in seconds. 0 means forever bufferSecs = 5 # size of internal slip buffer, in seconds reconnect = yes # reconnect to the server(s) if disconnected # this section describes the audio input that will be streamed [input] device = hw:1,0 # ZOOM H2N usb, vedi con aplay -l sampleRate = 44100 # sample rate in Hz. try 11025, 22050 or 44100 bitsPerSample = 16 # bits per sample. try 16 channel = 2 # channels. 1 = mono, 2 = stereo # this section describes a streaming connection to an IceCast2 server # there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7] # these can be mixed with [icecast-x] and [shoutcast-x] sections [icecast2-0] bitrateMode = cbr # avr=average bit rate format = mp3 #vorbis # format of the stream: ogg vorbis bitrate = 24 # bitrate of the stream sent to the server server = radio.dyne.org # host name of the server port = 8000 # port of the IceCast2 server, usually 8000 password = peturio # source password to the IceCast2 server mountPoint = rcyblive.mp3 # mount point of this stream on the IceCast2 server name = Radio Cybernet LIVE # name of the stream description = Live NOW! Shortwave Radio Listening # description of the stream #url = # URL related to the stream genre = live # genre of the stream public = yes # advertise this stream? localDumpFile = rcyb-cv.mp3 fileAddDate = yes }}} == Liquidsoap streaming for radiocybernet on zaverio.com == We installed liquidsoap: {{{ apt-get install liquidsoap }}} The program we use is "stream.liq" in ~/radiocybernet: {{{ #!/usr/bin/liquidsoap # Log dir set("log.file.path","/home/asbesto/radiocybernet/streaming.log") # local telnet server only, port 1234 set("server.telnet", true) # Music myplaylist = playlist("~/radiocybernet/playlist.m3u",reload_mode="watch") # Some jingles jingles = playlist("~/radiocybernet/jingles.m3u",reload_mode="watch") # If something goes wrong, we'll play this security = single("~/radiocybernet/alfacharlie.mp3") # Start building the feed with music radio = myplaylist # Now add some jingles radio = random(weights = [1, 4],[jingles, radio]) # And finally the security radio = fallback(track_sensitive = false, [radio, security]) # Stream it out output.icecast(%mp3, host = "radio.dyne.org", port = 8000, password = "bactrim", mount = "rcyb.mp3", icy_metadata="true", genre = "Live", description = "Historical Broadcast live 24/7 - Multilingual - WARNING, can contain STRONG ITALIAN LANGUAGE, MAYBE NSFW ", name = "Radio Cybernet - Online since 1997", url = "http://www.radiocybernet.org", audio_to_stereo(radio)) }}} Main playlist is there, you also have jingles and the security mp3 if something fail. random weights control jingles. audio_to_stereo reencode weird mp3 formats on the fly so everything work smooth! Just add a list of MP3 somewhere, create a playlist, and that's all! TELNET server (local only) is useful but kinda tricky. == TODO == * add automatic live insertion to the playlist above * ... check random playing (now is random) or sequential playing... == Tricks == Liquidsoap use MP3 id tag as titles etc. - If mp3 doesn't have tags, nothing will be display. So you MUST describe any mp3 in id tags. We used eye3D tool for that - very useful: eye3D -t title mp3. REALAUDIO FILES to mp3 - must be converted. ffmpeg does this. GOOGLE THAT TO BE EXPANDED = OLD CONFIGS HERE - Software used = by Asbesto & ''Fruity'' - Dyne.org, Freaknet.org, Radiocybernet.org, Poetry Hacklab '''TCPC9''', '''''Palazzolo Acreide, Oct 4, 2009''''' Server side: * [[ http://www.icecast.org/ | Icecast2 ]] Client side: * [[ http://muse.dyne.org/ | MuSE ]] * [[ http://code.google.com/p/darkice/ | Darkice ]] == Configurations == === Server side === ==== Icecast 2 ==== Please check IcecastServer ;) === Client side === ==== VLC ==== (to be added) ==== MuSE ==== Command line streaming tool "Strimma" by Asbesto {{{ #!/bin/bash echo "strimma v0.1 (c) 2002 Gabriele Zaverio (asbesto@freaknet.org)" muse -e mp3 -o -C -b 16 -q 4 -i \ -f rcyb-`date +%d%b%Y-%H%M%S`.mp3 \ -s radio.dyne.org:8000 -m rcyb.mp3 -U source -p peturio \ -n radiocybernet_LIVE_NOW # -s indivia.net:8000 -m rcyb -p xxxxxx \ # -n radiocybernet_HACKIT2005_NAPOLI \ # questo per strimmare su 2 server contemporaneamente analmente hackit03 }}} (work in progress) ==== Darkice config file ==== This is the config file for darkice under Linux, to stream on radio.dyne.org, use darkice as ''darkice -c darkice.cfg'' where darkice.cfg is the configuration file: ===== With OSS (OLD :-? Open Sound System) ===== Control permissions and existance of ''/dev/dsp dsp1 dsp2'', dependently from how many audio cards you have. Tri ''gom'' or ''aumix'' to control the mixer settings. {{{ # sample DarkIce configuration file, edit for your needs before using # see the darkice.cfg man page for details # this section describes general aspects of the live streaming session [general] duration = 0 # duration of encoding, in seconds. 0 means forever bufferSecs = 5 # size of internal slip buffer, in seconds reconnect = yes # reconnect to the server(s) if disconnected # this section describes the audio input that will be streamed [input] device = /dev/dsp # OSS DSP soundcard device for the audio input sampleRate = 22050 # sample rate in Hz. try 11025, 22050 or 44100 bitsPerSample = 16 # bits per sample. try 16 channel = 1 # channels. 1 = mono, 2 = stereo # this section describes a streaming connection to an IceCast2 server # there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7] # these can be mixed with [icecast-x] and [shoutcast-x] sections [icecast2-0] bitrateMode = cbr # avr=average bit rate format = mp3 #vorbis # format of the stream: ogg vorbis bitrate = 32 # bitrate of the stream sent to the server server = radio.dyne.org # host name of the server port = 8000 # port of the IceCast2 server, usually 8000 password = peturio # source password to the IceCast2 server mountPoint = rcyb.mp3 # mount point of this stream on the IceCast2 server name = Radio Cybernet # name of the stream description = Test from tcpc9 # description of the stream url = http://www.radiocybernet.org # URL related to the stream genre = live # genre of the stream public = yes # advertise this stream? localDumpFile = rcyb.mp3 fileAddDate = yes }}} ===== With ALSA ===== Control that there is an audio card with aplay -l and always control that you are part of group audio ( or be root ) ||||''' NOTE '''|| ||{i}{X}X-({X}{i}|| ||~-On ubuntu ( and on debian to be tried ) pulseaudio take over hw:0,0 so your audiocard will be hw:1,0 (blarg...). There must be a more gently way of __killing pulseaudio__ and clearing this naming issue... to be investigated :)-~|||| {{{ # sample DarkIce configuration file, edit for your needs before using # see the darkice.cfg man page for details # this section describes general aspects of the live streaming session [general] duration = 0 # duration of encoding, in seconds. 0 means forever bufferSecs = 5 # size of internal slip buffer, in seconds reconnect = yes # reconnect to the server(s) if disconnected # this section describes the audio input that will be streamed [input] device = default # hw:0,0 # ALSA soundcard device #(hw:1,0 in case of the cadaver of pulseaudio in the way) # DEFAULT works! sampleRate = 22050 # sample rate in Hz. try 11025, 22050 or 44100 bitsPerSample = 16 # bits per sample. try 16 channel = 1 # channels. 1 = mono, 2 = stereo # mp3 [icecast2-0] bitrateMode = cbr # avr=average bit rate format = mp3 # format of the stream: ogg vorbis bitrate = 32 # bitrate of the stream sent to the server server = radio.dyne.org # host name of the server port = 8000 # port of the IceCast2 server, usually 8000 password = peturio # source password to the IceCast2 server mountPoint = rcyb.mp3 # mount point of this stream on the IceCast2 server name = Radio Cybernet # name of the stream description = Test from tcpc9 # description of the stream url = http://www.radiocybernet.org # URL related to the stream genre = live # genre of the stream public = yes # advertise this stream? localDumpFile = rcyb.mp3 # backup locally fileAddDate = yes # add date to filename # ogg [icecast2-1] # Note is icecast2 sezione di configurazione numero 1 bitrateMode = cbr # avr=average bit rate format = vorbis # format of the stream: ogg vorbis mp3 bitrate = 32 # bitrate of the stream sent to the server server = radio.dyne.org # host name of the server port = 8000 # port of the IceCast2 server, usually 8000 password = petacci # source password to the IceCast2 server mountPoint = rcyb.ogg # mount point of this stream on the IceCast2 server name = Radio Cybernet # name of the stream description = Test from tcpc9 # description of the stream url = http://www.radiocybernet.org # URL related to the stream genre = live # genre of the stream public = yes # advertise this stream? localDumpFile = rcyb.ogg fileAddDate = yes }}} Control the mixer with alsamixer ( alsamixer -c1 in case of pulseaudio cadaver ) {{attachment:alsamixer-card-fullduplex.png}} In alsamixer press the [tab] button on your keyboard to go to the input capture view: {{attachment:alsamixer-capture-volumes-view-1.png}} Don't put the capture volume at max or you will get poor quality audio, if your terminal supports colors keep it under the red bar :), in amixergui or thing like that keep the capture volume 2/3 of the max volume. With the arrows you can cross the input channels, put the capture on the -mix- by pressing the space bar and then set the volumes of the outputs ( again [tab] to switch back to the outputs volumes views) as you wish. If you plan to use a player like mplayer or audacious or xmms remember to set them to use Master as volume and not PCM otherwise with the music you will take down also mikes line-in cd and what-sallamadonna-not , best to set them on software volume control ( -softvol for mplayer ) == Hardware == === Microphones === === Other stuff === ==== ID3 tag, titles etc ==== to do {{{ 501 apt-cache search id3 502 apt-get install id3 503 id3 504 id3 radiocybernet.mp3 505 id3 -v radiocybernet.mp3 506 id3 -l radiocybernet.mp3 507 eyeD3 radiocybernet.mp3 508 id3 -l radiocybernet.mp3 509 id3 radiocybernet.mp3 510 id3 radiocybernet.mp3 511 man id3 512 id3 -l title radiocybernet.mp3 513 id3 -l radiocybernet.mp3 514 eyeD3 radio 515 eyeD3 radiocybernet.mp3 516 apt-get install soxi 517 apt-get install sox 518 soxi 519 soxi radiocybernet.mp3 520 apt-get install libsox-fmt-mp3 521 soxi radiocybernet.mp3 522 history }}} === Tip'n tricks === ----- CategoryMuseo