SoniqBoom· info
✕

Audio types

Everything SoniqBoom knows how to play, and where each one comes from.

At a glance

Local files

MP3, WAV, OGG, FLAC, M4A, AAC — anything your browser can decode. Files live in your browser's IndexedDB and play through the standard HTMLAudioElement.

YouTube

Single videos and chapter-style tracklists. Plays via the official YouTube iframe widget, so any format YouTube serves is supported (Opus, AAC, anything).

SoundCloud

Single tracks and full /sets/ playlists. Plays via the SoundCloud Widget iframe, so SoundCloud's own transcoding pipeline is used.

Google Drive

Files and folders. Audio bytes are streamed through a small Next.js API route that proxies Drive's download endpoint.

Local audio files

  • FormatsAnything the browser can decode works. In practice that's MP3, WAV, OGG (Vorbis), FLAC, M4A / MP4 / AAC, and most browser-supported containers. The file picker filters on audio/* plus a short list of common extensions, but you can drop any audio file via drag-and-drop.
  • How they playFiles are loaded as Blob objects and turned into Object URLs. The HTMLAudioElement streams them, and a Web Audio AnalyserNode is patched in for the spectrum visualization. No upload, no transcoding — what you drop in is what you hear.
  • Where they liveIn IndexedDB on your machine. Clearing site data removes them. There is no cloud copy.
  • Waveform dataGenerated client-side from the decoded AudioBuffer and stored next to the file. It feeds the per-track waveform preview in the progress bar.

YouTube

  • Single videosPaste any youtube.com/watch?v=… URL (or a youtu.be short link) and the track plays in an embedded YouTube player.
  • Chapter tracklistsPaste the URL plus a list of timestamps in the + Timestamps panel and SoniqBoom splits the video into one track per chapter. Each chapter track plays only its assigned start → end slice, then auto-advances.
  • Accepted timestamp formatsBoth the YouTube description style ("0:00:00 Track title") and the user-submitted style ("01 Track title 0:00") are recognized. Seconds are also accepted.
  • Playback enginePlays through the official YouTube IFrame Player API. SoniqBoom hides the logo, title, and controls by default — see Settings to revert to the standard YouTube chrome for embed-TOS compliance.
  • LimitsIf a YouTube video is private, age-gated, region-locked, or removed, SoniqBoom cannot play it. The track will appear in the playlist but the embed will report an error when you select it.

SoundCloud

  • TracksPaste a soundcloud.com/artist/track URL.
  • Sets (playlists)Paste a soundcloud.com/artist/sets/name URL and SoniqBoom resolves it via SoundCloud's /resolve endpoint, fetches every track, and adds them as one playlist.
  • Playback enginePlays through the SoundCloud Widget iframe. SoniqBoom controls the widget from outside (play, pause, seek, volume, current-time events), and there's a hide-toggle that swaps the widget for the retro synthwave scene.
  • LimitsTracks must be publicly playable. Go+ exclusives and private uploads can't be played by the Widget API. Long imports (a set with 100+ tracks) take a few seconds while SoniqBoom calls the /resolve endpoint for each one — the import panel shows a progress message.

Google Drive

  • FilesPaste a drive.google.com/file/d/…/view URL. SoniqBoom extracts the file ID, resolves its download endpoint, and proxies the bytes through the /api/google-drive route.
  • FoldersPaste a drive.google.com/drive/folders/… URL. SoniqBoom lists the folder contents via the Drive API and adds every audio file it finds. The import panel shows a "Loading folder…" / "Importing N tracks…" progress.
  • Format supportWhatever Drive can serve and the browser can decode — typically MP3, WAV, M4A, OGG, FLAC, AAC. Files whose MIME type Drive won't let you download (some work documents) are skipped.
  • LimitsFiles must be either publicly shared or owned by the Google account you've authorized. SoniqBoom does not handle the OAuth flow itself — see the Drive API setup notes for the env variables the proxy needs.

Mobile & devices

SoniqBoom works on phones and tablets, but mobile browsers are stricter about how web apps can play audio than desktop ones are. Below is an honest rundown of what's solid, what's flaky, and what we're actively working on.

What works well on mobile

  • Local file playbackMP3, WAV, OGG, FLAC, M4A, AAC all play back through the standard HTMLAudioElement, same as on desktop. Visualization, scrubbing, and volume all behave normally while the tab is in the foreground.
  • YouTube playbackThe YouTube iframe widget handles mobile playback well. Tracks start with a tap, auto-advance works, and the embed keeps audio going when the screen locks on Android.
  • Playlist managementAdding tracks, renaming, reordering, switching tabs, searching — all of these are touch-friendly and work identically to desktop.
  • PersistencelocalStorage and IndexedDB are both available on mobile browsers, so your playlists and downloaded files survive reloads the same way.

Known limitations

  • SoundCloud auto-advance is unreliableSoundCloud's Widget API on mobile Safari and Chrome doesn't reliably fire the on-ended callback that SoniqBoom uses to advance to the next track. When a SoundCloud track finishes you'll often need to tap the player to start the next one. This is a SoundCloud Widget limitation, not something SoniqBoom can work around from outside the iframe.
  • Background playback is restrictedMost mobile browsers pause or kill audio when you switch apps, lock the screen, or leave the tab in the background for more than a few seconds. iOS Safari is the strictest — only the YouTube iframe keeps playing in the background reliably. Android Chrome is more lenient for foreground playback but still pauses when the screen sleeps.
  • Background tab throttlingMobile browsers aggressively throttle background tabs to save battery. If you switch away and come back, the visualization and progress bar can be out of sync for a few seconds until the next event tick catches up. The audio itself usually survives; the UI just lags briefly.
  • No wake-lock yetSoniqBoom doesn't currently request a screen wake-lock during playback, so your phone will sleep on its normal timer. On long sessions this means audio pauses when the screen turns off.
  • Small touch targets in the footerThe footer icons are designed for desktop density. Most are still tappable but a couple (the close buttons on the URL input rows in particular) are smaller than is ideal for fat-finger tapping on a phone.

What we're improving

Mobile is an active area. Things on the near-term list:

  • Wake-lock during playbackUse the Screen Wake Lock API where supported (Chrome / Edge / Safari 16.4+) so the screen stays awake while audio is playing. The user can still lock manually — wake-lock just prevents the auto-sleep timer from firing.
  • Better SoundCloud next-track handlingPolling the widget for current-time + duration and firing next-track from SoniqBoom's side, instead of relying on SoundCloud's on-ended event. Should close most of the auto-advance gap on mobile.
  • Larger touch targets on mobileDetect narrow viewports and bump the footer icon hit areas up to a more comfortable 32px+ size while keeping the desktop layout compact.
  • Media Session integrationWire up the Media Session API so lock-screen / notification controls (play, pause, next, track metadata) work on mobile, which also helps some browsers keep playback alive in the background.

Practical tips for now

  • For background playback on iPhoneUse the YouTube app (or AirPlay to a HomePod) — Safari will not keep most web audio alive in the background.
  • For long SoundCloud sessionsKeep the SoniqBoom tab in the foreground and tap once when each track ends. On Android Chrome you can also enable desktop site in the browser menu for a slightly better widget experience.
  • For local-file mixtapes on a phoneDrop the files into SoniqBoom from your phone's file manager (most share sheets have an “Open in browser” option that hands the files off). They persist to IndexedDB and play back without needing an internet connection.
  • If visualization looks frozen after switching tabsTap the play / pause button once to nudge the audio engine back into a foreground tick. The display should snap back to current state immediately.

What about other sources?

Direct URLs to MP3 / OGG / M4A files (e.g. a CDN-hosted podcast feed) work today through the same local-file path — drop the URL into the file picker's address bar, or save the file and drop it. Bandcamp, Mixcloud, and similar sources are not directly supported because their embeds require different widget APIs; you can still add individual tracks by uploading the audio file manually.