How OpenDJ.FM works
A walkthrough for new DJs and listeners — covers SoundCloud from scratch, the OpenDJ account model, running a community room, and everything else that makes a good set.
Quick start
Three steps to listening, three more to DJing.
- Roll a nickname on the splash page → walk into any Curated Set → listen.
- To DJ, you need a real account. Visit /signup — drop your email, click the magic link.
- To play music you need a SoundCloud playlist (yours or someone else's public one). Keep reading if that's new.
Creating a SoundCloud account
OpenDJ.FM plays music by embedding the SoundCloud player. You don't strictly need a SoundCloud account just to listen in a room (the SoundCloud widget plays for everyone), but you need one to queue tracks as a DJ.
- Go to soundcloud.com/signup and create a free account.
- Confirm your email when SoundCloud sends you a verification message.
- That's it — you're ready to favorite tracks and build playlists.
Building a playlist from other people's music
A SoundCloud playlist is just a saved list of tracks — yours, other people's, or a mix. OpenDJ.FM accepts single track URLs or a whole playlist URL, so playlists are by far the easiest way to queue up a set.
Find some tracks
- Search SoundCloud for an artist, a genre, or a mood (e.g. "ambient techno", "atmospheric drum and bass").
- Click into a track page. Below the waveform you'll see an Add to Playlist button (sometimes shown behind the ••• menu).
- First time you add: SoundCloud asks you to name the new playlist + set it Public (very important — OpenDJ.FM can only see public playlists). Set the title to something like "My Friday Night Set."
- Keep adding tracks. SoundCloud lets you reorder them on the playlist page once you have a few.
Get the playlist URL
Go to your profile → Playlists → click your playlist → copy the URL from the browser address bar. It looks like:
https://soundcloud.com/your-username/sets/my-friday-night-set
That's the URL you paste into your room's queue.
soundcloud.com/user/track-name— those work too, but they only queue one song. Playlist URLs have /sets/ in them and queue every track inside.Creating an OpenDJ.FM account
OpenDJ.FM has two tiers — pick whichever fits.
- Roll a random nickname
- No email, no password
- Listen, react, chat, dance
- Lives on one device only
- Pick your own nickname
- Email + magic-link sign-in
- Create rooms + DJ + favorite
- Sign in on any device
Roll a nickname (Casual)
- Visit opendj.fm → scroll to the "Roll a nickname" section.
- Tap 🎲 Roll again until you like the suggestion.
- Enter → you're in.
Upgrade to a real account (Regular)
- Go to /signup.
- If you've already rolled a nickname, you'll see an Upgrade your account form — your nickname is already locked in, just drop your email.
- Check your inbox. Click the magic link (it's good for 15 minutes).
- You're a Regular. The TopNav shows your nickname; the /profile page now shows the full feature set.
Customising your avatar
Every account gets a pixel-art avatar generated deterministically from a random seed. You can re-roll it from /profile:
- Scroll to Your avatar.
- You'll see 9 options in a grid.
- Click 🎲 Show me 9 more to roll a fresh batch.
- Click an avatar you like → it highlights → click Save this avatar.
Your chosen avatar shows up in the DJ booth, on the dance floor, in chat — anywhere a sprite of you appears.
Creating a Community Room
Community rooms are user-run rooms where anyone in the room can take the booth. You must be a Regular (verified email) to create one.
- Go to /rooms → click + Create a room in the Community section header.
- Give it a name (2–40 characters). The URL slug is derived automatically — "Saturday Night Session" becomes
/room/saturday-night-session. - Submit. You're dropped straight into the room, already seated behind the deck.
Queuing tracks
Once you're behind the booth, your queue panel sits in the left rail. Paste SoundCloud URLs into it.
- Paste a track URL (single song) or a playlist URL (a whole set of songs at once).
- Hit submit. Each track is fingerprinted for originality; verified tracks land in your queue.
- Queue runs top-to-bottom. When the current track ends, the next one in your queue plays automatically.
You don't have to load your whole set at once — queue 3–4 tracks deep and add more as you go. Reading the room.
The originality check
Every queued track is audio-fingerprinted against ACRCloud's commercial-music database before it can play. The platform is for original music — sets built from your own productions or other indie creators' work — not for streaming the top 40.
What happens to each submitted track:
- No commercial match → allow. The track enters your queue and will play when its turn comes.
- Match found → hold. The track is rejected at submission time. You'll see the matched artist + title so you know which one tripped the filter.
- Couldn't fetch audio → allow. SoundCloud occasionally restricts API stream access (typically on major-label-controlled accounts). When we can't fingerprint, we admit the track — known limitation.
Taking + leaving the booth
In your own room you take the booth automatically on creation. In someone else's community room, you can take the booth when nobody else is on it:
- Take the booth button — top-right of the stage area, only visible when the slot is empty.
- The demo/resident sprite steps aside; you're up.
- Queue tracks, hit play. The current song starts within a few seconds (and at the right offset for any listeners who joined mid-track).
- Leave booth when you're done — the slot opens for the next DJ.
Controlling the lights + colours
While you're on the booth in your community room, you have three colour controls — a small panel appears inline above the stage:
- Accent — the bright neon punctuating the UI (buttons, marquees, highlights). Use vivid hot colours.
- Stage lights — the spotlights bathing the booth. Soft, lighter tones work best.
- House lights — the dim ambient wash filling the rest of the page. Deep, dark tones (navy, plum, near-black) keep contrast readable.
Each colour change broadcasts to everyone in the room in realtime — pick what fits the mood.
The TAP speakers (BPM sync)
Two big speaker cabinets flank the booth. Each has the word TAP in the middle.
- Click TAP in time with the beat of the current track. The DJ avatar + everyone dancing on the floor will lock to that BPM and animate to your beat.
- Tap at least 3 times. Stop tapping for 2 seconds and the window resets — start over with a new tempo for the next song.
- The BPM persists per room — once anyone taps, every listener sees synchronised dance until someone re-taps.
Reactions, vibe, and the dance floor
Below the booth, five emoji buttons let listeners rate the current track:
- The floor reacts visually: 4–5 (Nice / Love) animate dancing, 1 (No) makes avatars face the camera with a frown, 2–3 (Meh / OK) stand neutrally.
- The Room Vibe card on the left rail shows the running average score, with the tile's background shifting red → orange → green → pink as the average moves.
- In Curated Sets, synthetic-audience bots also vote and chat so the floor never feels dead.
Skipping the current track
As the active DJ, you have a small Skip button on the bottom-right of the booth. Tapping it ends the current track immediately and advances to the next one in your queue. Useful when:
- You misjudged a track and want to move on.
- The Room Vibe is in the red — read the room.
- The track was a 10-minute deep cut and you want the energy back.
Admins can also skip via the chat command /skip.
Favouriting DJs
Anywhere you see a DJ's name in the "Now Playing" header, there's a small heart icon next to it. Tap it to favourite that DJ.
- All your favourites show up at /profile under Favorite DJs.
- If you're a Regular with notifications enabled, you get an email when one of your favourites starts a set. Throttled to once per favourite per 24 hours so a long DJ session doesn't spam you.
- Manage email opt-ins on /profile under Notifications.
Deleting your room when you're done
When your set is over and you don't plan to keep the room around:
- Go to /rooms.
- Find your room's card. In the top-right corner you'll see a small 🗑 Delete button (visible only to you, the creator).
- Click → confirm the prompt. The room and its chat, queue, and vote history are removed. Your queued tracks are preserved so you can use them in a future room.
Running a good Community Room
A few things that distinguish a good set from a forgettable one:
- Cue 3-4 tracks deep, not your whole catalog. You want flexibility to read the floor and switch direction.
- Pick a coherent palette. The Accent / Stage / House colour controls feel small but completely change the mood of the room. Match them to the genre.
- Tap the BPM early. Dance floors come alive when the dancers' bounce locks to the music. Tap on the first track and re-tap whenever you change tempo.
- Watch the Vibe meter. If it's drifting orange / red for a couple of tracks, the floor is telling you something. Skip or shift.
- Chat as you spin. The chat panel is open by default. A short note explaining a track, a callout to a dancer's reaction, a thanks for the favourite — listeners come back for that.
- Share the room URL early. Anyone with the link can join — DM it before you start so people are there for track 1, not joining mid-set.
- Step away when you're done. Click Leave booth rather than just closing the tab — that opens the slot for the next DJ instead of leaving the room in an ambiguous state.
Troubleshooting + getting help
- The track plays for me but not for new listeners. Browsers block autoplay until they see a user gesture. New listeners see a "▶ Tune in" overlay on the player — they have to tap it once.
- My SoundCloud playlist URL is rejected. Make sure the playlist is Public on SoundCloud, and the URL has
/sets/in it (not just a single track). - I'm a Regular but I can't take the booth. The room may already have a DJ. Wait for them to leave, or create your own room.
- I don't see the delete button on my room. Only the original creator (or a platform admin) can delete a room. Pre-launch rooms created before this feature shipped don't carry a creator ID — email support for those.
- Still stuck? Drop a note at /support and we'll get back to you.