Skip to content
Tsimafei Yefimenka
← All projects

RadioHeart

Client work

Internet radio that plays to a schedule with nobody at the desk

Role
Frontend engineer: the DJ console
Client
AKDev Group
Period
08.2018 — 02.2019, AKDev Group
Stack
TypeScript, Vue, Vuex, Node.js, Express, PHP, Laravel, MySQL, Web Audio API, SASS, Docker, Jest

The radio runs on a schedule by itself, but a host sometimes needs to go live on top of the stream already playing. That needs a mixing desk in the browser: crossfade two tracks, drop in an ad, open the microphone, and hear how it came out before it reaches the listeners.

An internet radio platform: a user schedules broadcasting days or weeks ahead and the stream runs on its own. My part was the DJ console, the mode where you go live into your own stream. The mixing runs on the Web Audio API: two decks with crossfading between them, jingles and ads, the host's microphone, and the stream fed back into the headphones so the host hears the result before it goes out live.

Deck ADeck BJingles and adsMicrophoneMixerWeb Audio APILive streamlistenersHeadphonescue before air

Outlined boxes are the parts I built

  • —The DJ console on the Web Audio API: two decks with tracks and crossfading between them, jingles and ad breaks over the live stream.
  • —The host's microphone with per-channel volume and a headphone return. You hear the mix before it goes out live.
  • —A dark theme for the console: people sit at that desk in the evening and at night.
  • —Contributed to billing and the 24-hour trial before buying a subscription.