Skip to content

hirve/old-radio-sound

Repository files navigation

Old Radio Sound

The old receiver photo.

The server to emulate old warm AM radio sound on Raspberry Pi

The video how it works

https://youtu.be/I7pTWe61BHY

Installation

Install dependencies

sudo apt install git icecast2 ffmpeg pv

When Icecast asks to configure it say no, because we will use the config we have in the project.

Clone the project

git clone https://github.com/hirve/old-radio-sound/

Build the sound processing tool

cd old-radio-sound/generate-am-radio/bin/
./build

The old receiver photo.

Usage

Start Icecast

cd ../../icecast/
./start-icecast

It will start on localhost:8092 so make sure this port is free or change it in the config file. If you want your server to be available via internet - don't forget to change passwords in icecast/icecast-config.xml and generate-am-radio/bin/stream-radio from "hackme" to something stronger.

Go to generate-am-radio folder

cd ../generate-am-radio/

and edit the script stream-template-1206am

#!/bin/bash

DIR=`cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd`

$DIR/bin/stream-radio \
  "PUT_YOUR_FAVORITE_AUDIO_STREAM_HERE" \
  "PUT_HERE_ANY_BACKGROUND_STREAM" \
  1206 \
  1 \
  "Radio Station Name or City" \
  &

Put here your favorite audio streams and change the other parameters if you want:

  • 1206 means the radio frequency, it will name the icecast stream like .../1206am.ogg, and also will initialize the random generator to make "air conditions" repeatable,

  • 1 is the level of main audio stream in microvolts, the value may be in the range 1...10 or other if you like.

If all is ok after starting this script you can hear the vintage AM radio on localhost:8092/1206am.ogg

You can copy this script with different audio streams and different frequencies and run them simultaneously, for me it worked well with about 5 streams on Raspberry Pi 2.


The old receiver photo.

Autostart and restart of some streams

./start-some-streams

Now it's just a test mode, this script may be unstable.

To set streams you want to watch, edit the line:

streams='stream-template-1206am one-more-radio-station-1035am'

Notice that this script takes frequency from the station script name (stream-template-1206am).