This show has been flagged as Clean by the host.
Intro
Hello, this is your host, Archer72, for Hacker Public Radio.
In this episode, this is my third show involving my record
player.
I am using a Zoom H1essential
Stereo
Handy Recorder microphone, recording into Audacity for this
show.
Why visit the record shop?
Picking up a record at the record shop expands my music
choices.
I get a chance to talk to the owner on the weekend when searching
for
new music. He is an archaeologist and a teacher at a local college
during
the week, and is knowledgeable on all the music in the store.
One
Year
With the Institute - Archive.org
I wanted a way to listen to the records while on my laptop,
preferably with headphones, as to not disturb the household.
How is this accomplished?
This is done using a combination of Darkice to capture the
stream,
and Icecast to stream it to the local network.
What is Icecast?
Icecast is a streaming media (audio/video) server which
currently
supports Ogg (Vorbis and Theora), Opus, WebM and MP3 streams. It
can be
used to create an Internet radio station or a privately running
jukebox
and many things in between. It is very versatile in that new
formats can
be added relatively easily and supports open standards for
communication
and interaction.
Icecast is distributed under the GNU GPL, version 2.
The default config file is located in
/usr/share/doc/icecast2/icecast.xml.dist.gz
icecast.xml.dist
if the default config gets mangled or corrupted by myself.
Several
other types of configs are also in /usr/share/doc/icecast2/
that include a bare bones config
and the installed icecast2 config is located in
/etc/icecast2/icecast.xml
Configuration
needed to
be personalized
<location>Cynthiana,KY</location>
<admin>
[email protected]</admin>
Change
the
passwords from hackme to a more secure password
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>hackme</source-password>
<!-- Relays log in with username 'relay' -->
<relay-password>hackme</relay-password>
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>
<!-- In my case, this is the IP address of the Raspberry Pi -->
<hostname>192.168.x.x</hostname>
mountPoint = live # mount point of this stream on the IceCast2 server
name = DarkIce Vinyl Stream # name of the stream
description = This is my Vinyl stream # description of the stream
url = http://localhost # URL related to the stream
genre = Podcast # genre of the stream
public = yes # advertise this stream?
localDumpFile = recording.ogg # Record also to a file
metadata = yes # enable metadata
What is Darkice?
DarkIce is a live audio streamer designed to record audio from
an
audio interface, such as a sound card, encode it, and send it to
a
streaming server. It supports various streaming servers
including
IceCast 1 and 2, ShoutCast, and Darwin Streaming Server. DarkIce
can
encode audio in formats like MP3 and Ogg Vorbis. To use DarkIce,
you
configure it with settings such as the audio input device,
sample rate,
and streaming server details, including the server’s address,
port, and
authentication information.
This description of Darkice is a result of using the Brave Search
LLM, or Large Language Model.
The default config file is located in
/usr/share/doc/darkice/examples/darkice.cfg.gz and
is
copied to the /etc directory. From there, use the gunzip
command, for example gunzip darkice.cfg.gz
I used the config file from a blog by Steffen Müller on stmllr.net
August 10, 2012 as a template for my configuration
darkice.cfg
This is the configuration I used in the end.
darkice-pi.cfg
Changes to the template
The audio device is configured in the [input]
section,
defined by arecord dash lowercase ‘L’ to list the
capture
device, which in my case is the Behringer
UMC202HD USB
Audio Interface
[general]
duration = 0 # duration of encoding, in seconds. 0 means forever
The section of the config file for audio input looks like this.
[input]
device = plughw:0,0 # This refers to card 0, device 0
Start Darkice
darkice &
Update Metadata
I was looking for a way to update the Currently Playing metadata,
but
my coding skills are not too good. For this, I used Claude.ai to generate code from
the
prompt: BASH script to send HTTP request to change metadata on
icecast
stream
update-metadata.sh
Default values
HOST="localhost" # 192.168.x.x
PORT="8000" # Default Icecast port
MOUNT="/stream"
USER="admin"
PASSWORD="hackme" # Icecast admin password
SONG="Unknown"
Usage
update-metadata.sh -s "HPR Test"
If there are any suggestions for improvements, please leave a
comment or
upload a show. I look forward to hearing about if an how other
people
are using a personal streaming server. Also, I am looking forward
to the
show from the Reserve Queue,
2024-10-13 Fred Black What LP records do I have
Other References
Radiostreaming for
Beginners
Provide feedback on this episode.