Skip to content
Abhiroop1122Public

About

Sonic. Your FLAC albums kept like records: a crate of sleeves and a 3D turntable for Android. Dig for albums on Soulseek, claim free Creative Commons albums every Friday.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

The Sonic sleeve: a big orange circle with dotted grooves and SONIC in dot-matrix letters, on a worn paper card

Sonic.

Your FLAC albums, kept like records.
A crate of sleeves and a turntable to play them on, for Android.

Latest release MIT licence Android 9 or newer FLAC only

Download Sonic 1.4.2  ·  What it does  ·  Build it  ·  Changelog

Add the Sonic repository to F-Droid Get it on Obtainium

Our Vision.

Music is one search away now. Type a name and the song plays, then the next one, then the next. It’s effortless, which is exactly why it never feels like a collection. When everything is instant, you lose the weight of an album: the effort it took to track it down, the choice to commit to the highest audio quality, and the feeling of actually owning the music.

It used to take intention. Records piled up next to the turntable, and you flipped through them until one fit the evening. You slid the disc out of its sleeve, set the needle down, and got up to turn it over when Side A ended. You knew your records because you had handled every single one.

Sonic brings that ritual back to your phone. If you want any song in two seconds, a streaming app will serve you better. Sonic is built for downloading, keeping, and truly listening to FLAC albums only.

Each album in Sonic lives as a record in your crate, with its sides and resolution printed right on the sleeve. Pull it out, drop it on the platter, play Side A, and flip it for Side B. Under the hood, it delivers the exact pipeline an audiophile actually needs with nothing bloated on top: lossless decoding, hi-res playback at native sample rates, a Pure Mode that leaves samples untouched, and a transparent signal path that exposes when your OS resamples or Bluetooth (LDAC/AAC) compresses versus wired USB-C DAC playback.

To grow your crate, Sonic searches Soulseek for full releases, delivers ten curated Creative Commons albums from the Internet Archive every Friday, and lets friends hand you a record as an interactive card in chat.

The room in light: a white and teal turntable playing Paper Moons above a crate of sleeves, the track list below   The same room with the mono white turntable   The room in dark: a black turntable on a true-black screen, the same crate and sleeves

The intro in light: the cream SONIC sleeve slides in, its record flies onto the turntable and SONIC. types out    The intro in dark: the black SONIC sleeve, the dark turntable and SONIC. on true black

What it does

The room

The home screen is a listening room. The crate sits under the deck, and the deck is the player.

  • Pull and drop. Tap a sleeve and its record slides out. Drag it onto the platter; it lands with a thud you can feel.
  • Play. START/STOP lowers and lifts the needle. Skip within a side, drag the tonearm to drop the needle anywhere, hold the platter to wind it down.
  • Swap. Hold a new record over the one that's playing. The deck shakes, the old record lifts off, the new one lands and the music carries on.
  • Eject flies the record back into its own sleeve.
  • Look closer. Two fingers down lay the deck flat, two fingers up stand it back. Long-press a sleeve for its details: sides, running times, the whole record's length, and a picture you can share.

Turn the phone sideways and the room fills the screen. Sideways is just for listening; the other pages wait until you turn it back.

Sideways in light: the white and teal deck on the left, the crate and track list on the right Sideways in dark: the dark deck on the left, the crate on the right, all on black

Collect

  • Dig searches Soulseek for whole album folders, FLAC only, and ranks them by how well they match. It hears everyone who answers, and when Soulseek quietly blocks a name it searches around the block. Open a folder to see its track list before you take anything. If you already own part of an album, Dig fetches only what's missing.
  • Friday Drops brings ten Creative Commons albums from the Internet Archive every week, the same ten for everyone. Listen to thirty seconds of any track and claim three a week.
  • Friends is chat with other Soulseek listeners. Browse a friend's shelf, every FLAC folder they share, and take what you like. Send a record as a card; a tap on it opens the sender's folder in Dig.
  • Downloads mend themselves where they can. A song that failed is asked for again, or fetched from someone else who has the identical file. A record missing a track wears a red tab until it's whole.

Friday Drops: this week's Creative Commons albums on white tiles, with three claim lights   Record details for Paper Moons: sides A and B with each track's time and the total, 21:20   Dig: a search box, on this device or Soulseek, and a dotted question mark while it's empty

Make it yours

  • Light or dark. Dark is true black, kind to an OLED screen. The launcher icon follows: a cream sleeve in light, a black one in dark.
  • Four decks. The RG-1 turntable comes in white and teal, mono white, dark, and neon: OLED black drawn by glowing white edges, in an unlit room. By default it matches the theme: white and teal in light, neon in dark.
  • Vinyl only. Sideways, everything but the deck goes black; a tap brings the room back.
  • Flags for the small habits: turn the record over by itself, start playing as soon as it lands, a sleep timer that fades the music and lifts the needle, and the intro every time the app opens.

Flags in light: switches for auto-flip, auto-play, sleep mode and intro on launch, then theme and deck pickers   The same Flags page in dark, with dark picked   Settings in dark: sound, flags, library, soulseek and about, and a hint to swipe up with two fingers

Your shelf

A collection takes space, so Sonic tells you how much. On Settings, swipe up with two fingers. Storage shows the phone, your music folder and your download folder, split into hi-res FLAC, CD-quality FLAC, pictures and unfinished downloads, with your records listed largest first.

You can delete a record you no longer want, folder and files. The warning flips to the other theme's colours so it can't be missed.

Storage: the phone's space, the music folder at 10 MB in 38 files, a bar split by kind, and records largest first with delete keys   A white warning sheet over the dark page: delete record, Blue Static, your album will be deleted, keep it or delete

Sound

  • Pure turns off everything that changes the sound (EQ, ReplayGain, limiter, crackle), so the decoded samples pass through untouched. Bit-perfect to a USB DAC on phones that allow it.
  • Hi-res output plays each file at its own sample rate in 32-bit float instead of cutting it to 16-bit. The two work together.
  • The signal path: long-press the deck's LED to see the whole chain, track to Sonic to output, with the bit depth and rate at each step, and an honest word when Android resamples. Allow it, and it names your headphones' Bluetooth codec too (LDAC, aptX, AAC…).
  • A 10-band EQ with presets, AutoEq headphone profiles, ReplayGain, a limiter and, if you want it, a little vinyl crackle.

FLAC only

FLAC is the rule everywhere: scanning, downloads, sharing and playback. An MP3 renamed to .flac doesn't get in. Your music folder is only read, never changed, and downloads land in a folder you choose, where they stay if you uninstall Sonic.

Get it

Download Sonic-1.4.2.apk from the latest release and check it against its checksum:

sha256sum -c Sonic-1.4.2.apk.sha256        # Linux
shasum -a 256 -c Sonic-1.4.2.apk.sha256    # macOS
  • Android 9 or newer, on ARM64, ARMv7, x86-64 or x86.
  • Sonic installs as its own app (app.sonic). If you used Runout, it stays where it is; Sonic doesn't replace it or read its data.
  • No account needed to listen. Skip sign-in and Sonic plays the folder you give it.

Keep it up to date

Both of these install the same APK as the release above, so you can switch between them without reinstalling.

  • Obtainium. Tap its badge at the top, or add https://github.com/Abhiroop1122/Sonic in Obtainium. It installs each new release from here.

  • F-Droid, Droid-ify or Neo Store. Tap the F-Droid badge at the top (or open https://somchandra17.github.io/sonic-fdroid) on your phone, then Add to F-Droid, or add the repository by hand:

    https://somchandra17.github.io/sonic-fdroid/repo
    Fingerprint: C482BF3B0848C66DD63E0194711A3DC800487D908D6008A66A124B7E16A91E6B
    

    Sonic isn't in F-Droid's own catalogue: F-Droid builds apps from public source, and the font Sonic is set in may be shipped inside the app but not published.

Soulseek, in plain words

Soulseek has no sign-up page: the first time you sign in with a new name, that name becomes your account, typos included. It has no password reset. Signing in elsewhere with the same name signs you out here. Its protocol doesn't encrypt passwords or private messages.

Sonic has no server of its own. Your Soulseek password is encrypted with an Android Keystore key and kept out of backups. Cover lookups are off until you turn them on. Only the one folder you choose is shared, only its FLAC files, and by default only on Wi-Fi. Chats stay on your phone.

Build it

Kotlin, Jetpack Compose and Media3 for the app; Filament for the 3D deck; a pinned Rust library for Soulseek behind a small JNI bridge, built for four ABIs with 16 KiB page alignment.

You need JDK 21, Android SDK 36, Rust 1.91.0 and Android NDK r27d or newer. The build guide has the details.

git clone https://github.com/Abhiroop1122/Sonic.git
cd Sonic

./gradlew testDebugUnitTest assembleDebug
cargo +1.91.0 test --manifest-path native/Cargo.toml --workspace --lib --locked

A debug build installs as Sonic. Dev (app.sonic.dev) next to the release. Tests run on local fixtures and test servers; the integration test talks to two local Soulseek peers and never creates a public account. The screenshots above come from an emulator with a made-up library.

app/src/main/java/app/runout/   the app (the package keeps its old name)
  library/   scanning, the shelf, covers, storage
  playback/  the deck and the playback service
  soulseek/  the bridge, downloads, sign-in
  sound/     DSP, output, the signal path
  ui/        the room, the crate, the deck, every page
native/      the Rust JNI bridge and the vendored soulseek-rs library
docs/        one file per subject, plus design notes
release/     release notes, checksums, verification reports
To learn about Read
Using the app Handbook
Building and testing Building · Developer notes
How the code fits together Architecture
Soulseek, storage and privacy Soulseek
Audio Sound
The turntable Turntable
Records and Friday Drops Pressing and Drops · Record format
Releasing Release process · Changelog
Everything Documentation index

Releases

Version
1.4.2 Current A redline pass: one 4 dp rhythm, 11 sp text, calmer headings.
1.4.1 Release Settings › Connection: whether others can reach you, in its own row.
1.4.0 Release Sonic opens a port on your router, uploads through the relay, shelves that say why, Drops new every week.
1.3.0 Release Dig hears the whole network, friends' shelves, sharing that works, what's new.
1.2.0 Release The neon deck, vinyl only, the Bluetooth codec, covers that stay.
1.1.0 Release The track wheel picker, update checks with stable and development builds, a clearer signal chain.
1.0.0 Release Sonic. Themes, three decks, Storage, swaps by hand.
0.6.0 Development The RG-1 3D turntable, rendered with Filament.
0.5.1 Release Soulseek and FLAC, the redesigned room.
0.4.0 – 0.5.0 Development Each step kept as a pre-release.
0.3.0 Release The Glass Turntable, as Runout.

Contributing

Issues and pull requests are welcome. Start with the contributor guide and the architecture map. Everyone taking part follows the Code of Conduct. Security problems go through the security policy, not public issues.

Design

Sonic's look borrows from two companies we admire: the bare, playful hardware of Teenage Engineering (hard keys, engraved labels, one loud orange) and the dot-matrix type and black-and-white calm of Nothing. Sonic isn't affiliated with or endorsed by either. The RG-1 decks were modelled in Blender for Sonic, and the sleeve and onboarding art was made for it too.

Licence and credits

Sonic is MIT licensed. What it bundles, and under which licences, is listed in THIRD_PARTY_NOTICES.md; Settings › about names them too, and their full texts ship inside the APK.

Sonic was called Runout until 1.0.0.

About

Sonic. Your FLAC albums kept like records: a crate of sleeves and a 3D turntable for Android. Dig for albums on Soulseek, claim free Creative Commons albums every Friday.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages