All Projects → codebox → old-time-radio

codebox / old-time-radio

Licence: MIT license
An internet radio station streaming classic shows from the Golden Age of Radio

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to old-time-radio

jamhub
low-latency jamming space for musicians
Stars: ✭ 29 (+52.63%)
Mutual labels:  webaudio
ptweb
An in-browser music player and visualizer for songs made in pxtone!
Stars: ✭ 23 (+21.05%)
Mutual labels:  webaudio
opus-recorder
A library for encoding and decoding web audio as OggOpus.
Stars: ✭ 852 (+4384.21%)
Mutual labels:  webaudio
mm-components
Music Markups components
Stars: ✭ 50 (+163.16%)
Mutual labels:  webaudio
midi
An Observable based library for the use of Web MIDI API with Angular
Stars: ✭ 35 (+84.21%)
Mutual labels:  webaudio
nesemu
NES Emulator written in TypeScript https://tyfkda.github.io/nesemu/
Stars: ✭ 47 (+147.37%)
Mutual labels:  webaudio
Bose-Frames-Web-SDK
A JavaScript version of the Bose Frames SDK
Stars: ✭ 74 (+289.47%)
Mutual labels:  webaudio
webmscore
MuseScore's core library (libmscore) in WebAssembly! Read mscz data, and generate audio/MIDI/MusicXML/SVG/PNG/PDF sheets right in browsers.
Stars: ✭ 91 (+378.95%)
Mutual labels:  webaudio
equalizer
SoundCloud music player with equalizer
Stars: ✭ 25 (+31.58%)
Mutual labels:  webaudio
nikku
👽 Web-based BRSTM player
Stars: ✭ 35 (+84.21%)
Mutual labels:  webaudio
fastidious-envelope-generator
Envelope generator (aka ADSR) for the Web Audio API that aims to be free of artifacts and handle edge cases well
Stars: ✭ 56 (+194.74%)
Mutual labels:  webaudio
modplayer-js
JavaScript player for SoundTracker mod files using AudioWorklet API
Stars: ✭ 30 (+57.89%)
Mutual labels:  webaudio
websynth
Web Synthesizer From Space
Stars: ✭ 16 (-15.79%)
Mutual labels:  webaudio
abletonpush
A library for working with the Ableton Push in the browser
Stars: ✭ 47 (+147.37%)
Mutual labels:  webaudio
Web-Audio-Fades
examples demonstrating fades using the web audio api
Stars: ✭ 21 (+10.53%)
Mutual labels:  webaudio
tilt
Live coding bytebeat-style language for the web
Stars: ✭ 30 (+57.89%)
Mutual labels:  webaudio
Harmonicon
An experimental DAW for music as code.
Stars: ✭ 57 (+200%)
Mutual labels:  webaudio
glicol
(Audio) graph-oriented live coding language and music DSP library written in Rust
Stars: ✭ 853 (+4389.47%)
Mutual labels:  webaudio
X-Piano
Now you can make your own piano!
Stars: ✭ 13 (-31.58%)
Mutual labels:  webaudio
webaudio-oscilloscope
A highly customizable oscilloscope for Web Audio 🔈 🎤
Stars: ✭ 57 (+200%)
Mutual labels:  webaudio

Old Time Radio

You can see this code running now at https://oldtime.radio

There are thousands of classic radio shows from the 1930s, 40s and 50s available on The Internet Archive, so I've made an internet radio station for them!

Website Screenshot

The server-side components of the site are written in Node.js. When the site starts up it reads this configuration file, which contains a list of the various radio shows that the site will broadcast. The site then uses the Internet Archive's metadata API to get a list of the individual episodes that are available for each show, together with the mp3 file urls for each one.

The configuration file also contains a list of channels (eg Comedy, Western, Action) and specifies which shows should be played on each one. A playlist is generated for each channel, alternating the shows with vintage radio commercials to make the listening experience more authentic. The commercials are sometimes more entertaining than the shows themselves, being very much of their time.

The audio that your hear on the site is streamed directly from The Internet Archive, my site does not host any of the content. The Same-Origin Policy often limits what websites can do with remotely hosted media. Typically such media can be displayed by other websites, but not accessed by any scripts running on those sites. However the Internet Archive explicitly allows script access to their audio files by including the following header in their HTTP responses:

Access-Control-Allow-Origin: *

This allowed me to write some JavaScript to analyse the audio signal in real-time and produce a satisfying visualisation, making the site more interesting to look at:

Visualisation Video

TODO List

  • Add some music channels

Bugs

  • CSS rule for div height: 100% breaks some browser extensions
  • Very long show titles don't wrap in message div

Visualiser Improvements https://ia800301.us.archive.org/31/items/ScreenGuildTheater/Sgt_47-11-03_ep360_The_Secret_Life_of_Walter_Mitty.mp3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].