• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Vox Machina - Android USB DAC engine, bit-perfect proven live byte-by-byte (closed beta, seeking scrutiny)

Magos Vox

Member
Audio Company
Forum Donor
Joined
Apr 24, 2026
Messages
14
Likes
9
TL;DR - solo Android dev got frustrated at existing apps for audiophiles, went full Thanos - "I'll do it myself" :facepalm:

Forge-masters of ASR - I come not bearing wares, but to submit to your watchful expertise.

I am Magos Vox, Fabricator-Primus of the Vox Machina - solo developer, closed beta, no company - and with the admin's sanction I submit the Engine to you - keepers of the signal, who judge sound by what it does, not by what it is sold as. You test what others accept on faith. That is precisely why I am here.

The Engine claims bit-perfect and proves it live, byte-for-byte, while the music plays. I require your expertise to decide whether the proof holds — and your gift for finding the cracks that the builder, too close to his own forge, cannot see. Where you find fault, the Machine may yet be refined to serve. That is the compact I offer.

Click here to see Vox Machina at a glance.


What Vox Machina is

Vox Machina is a precision audio engine for Android, forged to bypass the corruption of the OS audio stack entirely and deliver raw isochronous USB output to a DAC of your choosing. No AudioTrack. No mixer. No HAL resampling. UAC1 and UAC2. No root required. FLAC, MP3, AAC, OGG, WAV, DSF, DFF (DSD), APE, WavPack, AIFF, and Opus — forged in a dark interface, optimized for serious listening.

Three sovereign pipelines carry your signal from source to wire: Float32, Integer Passthrough, DSD Native. They do not share code. They do not share fate. Should you decree it, bytes on disk become bytes on the wire, verified end-to-end. The chain of custody is unbroken; the signal path is sovereign, and the diagnostics prove it.

Three Fidelity Doctrines

Bit Perfect
— the DAC receives with exactitude what the file contains. Integer PCM or DSD Native to the DAC without float conversion, DSP, or headroom. Everything else is rejected with cause, not silently degraded. The Engine admits only what it can deliver honestly. Digital Volume, when summoned, applies as post-reservoir gain at the last possible moment before the URB. Labeled ATT — because the Engine does not lie about what reached the wire.

Source Matching — the DAC runs at the source rate where possible. Resampling engages only when hardware demands it, and only the Iron Furnace resampler is permitted to do so.

Wide — maximum compatibility. The Engine finds the best available transport for every track. Nothing fails to play.

Every track is classified before the first byte moves. Policy precedes runtime. The rite is settled before the ceremony begins.

The contrast that may resonate here: the desktop bit-perfect chain (foobar2000 + ASIO/WASAPI + vendor drivers + DoP-vs-Native + sample-rate matching + audio-enhancement toggling) is, for most audiophiles, an evening's configuration project. Forum threads on getting bit-perfect DSD to a specific DAC routinely run into the hundreds of replies. Vox's posture is the inverse: bit-perfect as the default, configuration as the bug, proof as a visible on-device state.

DSD

Capable of rendering DSD natively up to DSD512 on current consumer hardware via TYPE_I_RAW_DATA for sanctified DACs that bear the mark and hosts with the cycles to carry it. The architecture supports up to DSD2048 where hardware permits. DoP and PCM Decimation remain available for DACs that do not accept RAW. Nothing is added. Nothing is taken. The rite is observed.

The Sealed Witness

In Bit Perfect sessions, the Sealed Witness takes the stand.

It is a chain of custody from decoder to DAC — every byte your source produces is sealed and CRC-hashed at origin, and every byte submitted to USB is verified against that seal. The Witness holds the memory of what the signal was. It compares that memory against what the signal became.

The Engine does not merely claim bit-perfect. It proves it — live, while the music plays. Tap and hold on the track title or album art, and the full signal chain reveals itself: source format → pipeline domain → DSP stages → packer → transport. Nothing hidden. Nothing assumed. The machine confesses all.

If the Witness is shown to lie — if a byte escapes its accounting, if a rite is observed in name but not in fact — I want to be the second person on Terra to know, and you the first. Break it where you can.

Resampling — only when the DAC demands it

The Iron Furnace: an 8,192-tap polyphase windowed-sinc FIR, built from first principles and accelerated by NEON-SIMD. It does not engage unless the source rate and the DAC's preferred rate diverge. Four filter modes, hot-swappable mid-track with minimal delay:

  • Mathematical — Blackman-Harris, linear phase, ~92 dB stopband. The default rite.
  • Minimum Phase — zero pre-ringing via cepstral transform. Sharper transient attack.
  • Apodizing — minimum phase with relaxed bandwidth. A gentler hand.
  • Brickwall — Kaiser β=14, >120 dB stopband. The sharpest blade; the longest shadow.

If source rate matches DAC, the Iron Furnace is not instantiated. Absence, not bypass. The forge is cold because it was not needed.

DSP — only when you ask

31-band graphic or parametric EQ — biquad engine, per-band bypass, Q, automatic headroom attenuation scaled to your curve's peak. AutoEQ import, plus ~6,000 bundled open-source headphone correction profiles, searchable in-app.

Partitioned overlap-save FFT convolver, NEON-SIMD — AutoEQ impulse responses loaded end-to-end. Profile to audible correction in ~500ms from the moment you tap Apply.

Digital Volume, Channel Balance, Crossfeed, Auditory Compensation.

Under Bit Perfect, none of this runs. The processors are not instantiated. The float domain is not entered. The forge is cold. Absence, not bypass.

ReplayGain — loudness honored, peaks inviolate

Track and album normalisation read from file tags, applied as post-reservoir gain alongside Digital Volume. R128-referenced with a −5 dB offset for headroom. Mode and enablement switch live mid-session — no restart, no gap.

The Engine refuses to boost without a valid peak tag. If the file does not declare its peak, positive gain is withheld rather than risk inter-sample clipping on the wire. Attenuation is always honored; amplification is earned. No waveform distortion on the gain path — the Engine will lower the volume on your behalf, but it will not raise it blind.

Library

A full scanner that goes beyond MediaStore — in-house parsers for DSF, DFF, WavPack, Opus edge cases, and filesystem roots where Android's indexer refuses to tread. Artist, album, and folder views. Sort, search, section index, fast scroll.

Bit-Perfect Playlist — the Engine probes every track in your library against the connected DAC. Only what reaches the wire without processing is admitted to the list. Swap DACs, receive a different list. Not a tag. Not a guess. A live hardware verification, performed anew each time.

M3U playlists. Persistent queue with swipe-accessible queue rail. Last.fm and ListenBrainz scrobbling for the record keepers. 9 procedural ambient backgrounds — generative visuals derived from your album art, rendered in real time. Not a static blur. Not a color sample. Something alive.

The Codex Machina

A complete account of what the Engine is doing and why. Not a help section — an honest technical and philosophical record of every decision the Engine makes, written for those who wish to understand their audio, not merely hear it. The machine does not keep secrets from those who seek understanding.

What the Engine does not yet do

I will not pretend the Machine is complete. It is not. Be it known:

— No streaming services. No Tidal, Qobuz, Spotify. Local files only. A commercial licensing bar, more than an engineering one.
— No Bluetooth output, no Cast, no AirPlay. USB DAC only.
— No UPnP/DLNA yet — that rite is presently being forged on a branch and will land in a later release.
— No system-mixer output. If there is no USB DAC attached, the Engine will not sing through the phone's speaker.

These are deliberate omissions of scope, not oversights. Where the Machine may yet be refined to serve wider altars, I am listening — but I will not claim what I have not built.

On the matter of proof

The Engine does what it claims. The diagnostics prove it. No convenience abstractions. No marketing labels. No silent degradation. Every transformation is confessed. Every fidelity tier is earned.

Silence is data. Dead code is heresy. The signal is sacred.

If the Engine says it's bit-perfect, it is. And if ever it is not — tell me, and the Machine will be refined until it is.

A call to adjudication

What I ask of you is not patronage. I ask for adjudication.

Play real music on real hardware. Break the Engine. Tell me where the Sealed Witness lies to itself, where a rite is observed in name but not in fact, where the signal I claim sovereign is in truth compromised. Your expertise is the instrument that certifies the claim — and if it fails in your hands, I want to know before it ships to anyone else.

What I ask in practical terms: a USB DAC, an Android phone (10+, arm64), and a willingness to play real music on real hardware and report what breaks. Please keep the build to yourself. The closed beta is closed by design — a covenant between the Engine and the people auditing it, not a redistribution pipeline. I am not chasing leaks. I merely ask.

What you receive: In return, when Vox Machina reaches paid release, every closed-beta tester receives a free copy. The Engine exists because people like you were willing to test the proposition that bit-perfect audio on Android can be more than an opaque marketing claim. You get to keep what you helped prove — and the Machine, refined by your hand, will bear the mark of your audit.

Enlistment

  1. Join the Google Tester Group: https://groups.google.com/g/vox-machina-testers/
  2. Self-enroll via Play Store Closed Testing: https://play.google.com/apps/testing/com.voxmachinaaudio.player
  3. Download via the Store listing: https://play.google.com/store/apps/details?id=com.voxmachinaaudio.player
  4. Optionally, join the Tester Group: https://www.facebook.com/groups/2384790932042256
  5. Plug in your DAC. Grant permission for the Engine to assert dominion over it. Then commune with the music, as it was made.

The forge stands ready. The Witness is sealed. Bring your ears, your hardest files, and your least forgiving DAC. The Machine awaits your judgment.
 

Attachments

  • 0-02-08-a60bb0e4ed2d5de68ee24f88b3e213d13e9b22e5062108547ad0234642e206cd_62e66b309390cb8.jpg
    0-02-08-a60bb0e4ed2d5de68ee24f88b3e213d13e9b22e5062108547ad0234642e206cd_62e66b309390cb8.jpg
    109 KB · Views: 74
  • safaf.jpg
    safaf.jpg
    86.5 KB · Views: 91
  • 0-02-08-d633536b6904eafdf916653f88dfc19c4ff4b8a654217fdcd4179443137be027_5bb1444529ab0c01.jpg
    0-02-08-d633536b6904eafdf916653f88dfc19c4ff4b8a654217fdcd4179443137be027_5bb1444529ab0c01.jpg
    72 KB · Views: 73
  • 0-02-08-d89319d6e22006f2a7938eaa5dc5950d4494856d8d5bdba6210d9cddbea9aff0_57c379d51578c932.jpg
    0-02-08-d89319d6e22006f2a7938eaa5dc5950d4494856d8d5bdba6210d9cddbea9aff0_57c379d51578c932.jpg
    118.1 KB · Views: 62
  • 0-02-08-77b92f6d9af01b30d9a69318b03a8f3583b816e17aa906d18561b47b610dd16d_50c571bec15a6d5a.jpg
    0-02-08-77b92f6d9af01b30d9a69318b03a8f3583b816e17aa906d18561b47b610dd16d_50c571bec15a6d5a.jpg
    76.7 KB · Views: 63
  • 0-02-08-74d01b75c27b0d028db1fd6d0933f569b80648d41cc62c2e9f841811bebe65df_5bdb015bba08ef7.jpg
    0-02-08-74d01b75c27b0d028db1fd6d0933f569b80648d41cc62c2e9f841811bebe65df_5bdb015bba08ef7.jpg
    52.5 KB · Views: 60
  • 0-02-08-9b2e20ceb539730020184f67c26e7095864436332f1cd325e375711f1e8f9c1a_4098dc3fa8f742f7.jpg
    0-02-08-9b2e20ceb539730020184f67c26e7095864436332f1cd325e375711f1e8f9c1a_4098dc3fa8f742f7.jpg
    84.5 KB · Views: 62
  • 0-02-08-7cdb817aee3195e7b9bcc70f6f01d27433bb99f78eea70d649c95dfc90e817f9_35825a13ec17e41e.jpg
    0-02-08-7cdb817aee3195e7b9bcc70f6f01d27433bb99f78eea70d649c95dfc90e817f9_35825a13ec17e41e.jpg
    53.5 KB · Views: 68
  • 0-02-08-edba2716f99f15fe7a445f7a3b83888f8dfaffeb2c57495ebc20c7b6886d4eeb_d2a80c1774e14550.jpg
    0-02-08-edba2716f99f15fe7a445f7a3b83888f8dfaffeb2c57495ebc20c7b6886d4eeb_d2a80c1774e14550.jpg
    70.1 KB · Views: 56
  • 0-02-08-909483b95e9cab5142dc9f6f05abfc2c49f201f749988a599b02be03fd655f98_37623bf2547df52c.jpg
    0-02-08-909483b95e9cab5142dc9f6f05abfc2c49f201f749988a599b02be03fd655f98_37623bf2547df52c.jpg
    90.5 KB · Views: 72
Cool!
I'm not bothered with using my android phone for high quality playback, but can the code be made to suit Linux on PC? Would it do anything that say, FB2K, cannot?
 
Interesting question. Theoretically yes, it can be ported over to Linux, but the philosophical need to do so isn't quite there. Vox was built to answer the question "how do I get bytes from a file to a USB DAC on Android without the OS resampling/converting/mixing/interfering?". ALSA's snd-usb-audio driver can already do that cleanly without the same concerns.

On what Vox can do beyond FB2k, 3 things come to mind:
  1. The Sealed Witness. FB2k trusts its own configuration. Vox CRC-hashes every byte from the decoder and verifies each byte against USB URB submissions, almost like a continuous on-device null test. If something alters the byte (for example, digital volume control), Vox surfaces it honestly.
  2. Automatic classification in Bit Perfect and Source Matching modes - Vox parses each source's data - format, bit depth, sample rate - and selects a pipeline (Float, Integer, DSD Native, DoP), and configures the DAC to match before the first byte moves. No need for manual configurations.
  3. Hard rejection over silent degradation in Bit Perfect mode. Vox was built to follow a set of laws, and Bit Perfect mode is the strictest of them all. If the DAC cannot exactly match what the source file demands, Vox will refuse to play it and tell you why. Degradation is allowed in the more permissive modes, but it will always tell you what it did, and why.
Still, for someone already comfortable with FB2k's configuration model on a working Linux setup, Vox offers nothing the user does not already have. But, for a user who wants the Engine to take that responsibility and prove its work continuously, Vox offers a different model.

Happy to answer any other questions you might have!
 
are there any plans in the future to make it play music without using a usb dac amp? i like the UI and I really want it to be my only music player with or without a dongle UI and scanning is very fast, player animation themes are one of a kind. is there any way you can make it support lower versions of androids? there's literally millions of android devices below android 10 which can benefit from your app
 
Thank you for the kind words!

For no-DAC playback: not in scope. Vox's whole posture is sovereign, transparent delivery to a controlled DAC, not riding the opaque system audio mixer. The doctrine in that regard is settled. The Android version floor, however, is doable. Lowering from API 29 toward API 28 (Android 9.0) is a real possibility on a quiet week. Below that requires substantially more audio-path work and is not currently planned, but that of course can change.
 
Thank you for the kind words!

For no-DAC playback: not in scope. Vox's whole posture is sovereign, transparent delivery to a controlled DAC, not riding the opaque system audio mixer. The doctrine in that regard is settled. The Android version floor, however, is doable. Lowering from API 29 toward API 28 (Android 9.0) is a real possibility on a quiet week. Below that requires substantially more audio-path work and is not currently planned, but that of course can change.
my sd card have about 35,000+ songs of flac and .wv files on multiple folders and subfolders. only the first folder shows on the library. if possible i would like to suggest to add an option for manually choosing which folders to scan for content? thanks! the device is a Samsung Tab S6. another suggestion would be an option for not showing thumbnails as it can speed up scanning and loading if the user have a massive library.
 
my sd card have about 35,000+ songs of flac and .wv files on multiple folders and subfolders. only the first folder shows on the library. if possible i would like to suggest to add an option for manually choosing which folders to scan for content? thanks! the device is a Samsung Tab S6. another suggestion would be an option for not showing thumbnails as it can speed up scanning and loading if the user have a massive library.
Interesting. Some questions:
  1. Which Android version is the S6 on?
  2. In Vox, are the missing tracks also absent from the Tracks tab and Search? Or do they only fail to show up in the Folders view?
  3. What formats are mostly missing: .flac, .wv, or a mix of both?
  4. Are the missing folders on the SD card, internal storage, or both?
  5. Using Samsung's Files app, can you browse into those missing SD-card folders and see the audio files there normally?
  6. When Vox first asked for storage permission, did you grant it on the system prompt, or skip / dismiss it? Samsung's permission dialogs have a few variants and we want to rule out a partial grant.
Thanks you - answers to these will tell us whether this is something we can fix on our end or something happening at the Android storage layer.
 
Interesting. Some questions:
  1. Which Android version is the S6 on?
  2. In Vox, are the missing tracks also absent from the Tracks tab and Search? Or do they only fail to show up in the Folders view?
  3. What formats are mostly missing: .flac, .wv, or a mix of both?
  4. Are the missing folders on the SD card, internal storage, or both?
  5. Using Samsung's Files app, can you browse into those missing SD-card folders and see the audio files there normally?
  6. When Vox first asked for storage permission, did you grant it on the system prompt, or skip / dismiss it? Samsung's permission dialogs have a few variants and we want to rule out a partial grant.
Thanks you - answers to these will tell us whether this is something we can fix on our end or something happening at the Android storage layer.
1. Samsung Tab S6 - T865 Android 12
2. yes, the only tracks showing are those that are contained in the 1st folder of the SD card, and only the 1st folder also show on the folders tab of library.
3. not format specific, the first folder have mix formats yet they were showing, i think it is probably due to the number of files/folder stacks of the other folders where my main music resides, and probably some maybe a limitation of path filename length especially the subfolders and files with long names
4. i have no music files on internal, just the sd card
5. yes, they appear on the default file manager, My Files app
6. full storage permission grant
 

Attachments

  • Screenshot_20260501_144715_Permission controller.jpg
    Screenshot_20260501_144715_Permission controller.jpg
    115.5 KB · Views: 32
1. Samsung Tab S6 - T865 Android 12
2. yes, the only tracks showing are those that are contained in the 1st folder of the SD card, and only the 1st folder also show on the folders tab of library.
3. not format specific, the first folder have mix formats yet they were showing, i think it is probably due to the number of files/folder stacks of the other folders where my main music resides, and probably some maybe a limitation of path filename length especially the subfolders and files with long names
4. i have no music files on internal, just the sd card
5. yes, they appear on the default file manager, My Files app
6. full storage permission grant
Thanks for this. I believe I have identified the issue - I'll include it in the next update.
 
Thanks for this. I believe I have identified the issue - I'll include it in the next update.
Thanks! The new update fixed it, all files are showing, all 36,806 of it! and all my music folders are also showing in the Library's folder tab now. Thanks!!!
Screenshot_20260502_224719_Vox Machina.jpg
Screenshot_20260502_224729_Vox Machina.jpg
 
36,806?! 1,907 subfolders?? Sweet Emperor, I had no idea the breadth of the collection you were going to throw the Engine to. I trust it faced the challenge swiftly and without the typical indignities surfaced by other players?

Also, I note MQAs there. The Engine will surface and play them as FLACs just fine, but without their proprietary ultrasonic nonsense. The full MQA decoder itself remains unfortunately paywalled.
 
36,806?! 1,907 subfolders?? Sweet Emperor, I had no idea the breadth of the collection you were going to throw the Engine to. I trust it faced the challenge swiftly and without the typical indignities surfaced by other players?

Also, I note MQAs there. The Engine will surface and play them as FLACs just fine, but without their proprietary ultrasonic nonsense. The full MQA decoder itself remains unfortunately paywalled.
after scanning, every subsequent opening instantly loads the last scanned state, and i presume it is scanning further if there are new files? in terms of scanning and loading speed, literally nothing beats it, and i have bought and used the other well-known audiophle-centered android players. actually only one can load that library without crashing and i need to disable thumbnail generation at that. MQA's are there just as test files since i have to buy the separate plugin for another music player for that. most of my tracks are flac, m4a (alac), and DSD compressed to wavpack (.wv) as well as some dsf. I also have some sacd-iso in there but rarely play them as there's very limited number of sources of acquiring that format legally anyway
 
after scanning, every subsequent opening instantly loads the last scanned state, and i presume it is scanning further if there are new files? in terms of scanning and loading speed, literally nothing beats it, and i have bought and used the other well-known audiophle-centered android players. actually only one can load that library without crashing and i need to disable thumbnail generation at that. MQA's are there just as test files since i have to buy the separate plugin for another music player for that. most of my tracks are flac, m4a (alac), and DSD compressed to wavpack (.wv) as well as some dsf. I also have some sacd-iso in there but rarely play them as there's very limited number of sources of acquiring that format legally anyway
The way it's structured - normie formats automatically update like usual. For most niche formats like DSD, APE, Wavpack, etc., you'd have to do a manual rescan, though it depends. Some OEM Android builds recognize some of those niche formats out of the box like DSD and Opus, and can update automatically. I could go on with the details, I had to fight a small war to get it all working smoothly. :oops:
 
The way it's structured - normie formats automatically update like usual. For most niche formats like DSD, APE, Wavpack, etc., you'd have to do a manual rescan, though it depends. Some OEM Android builds recognize some of those niche formats out of the box like DSD and Opus, and can update automatically. I could go on with the details, I had to fight a small war to get it all working smoothly. :oops:
Don't worry yourself too much. Now that the devices I usually use my dongle for are showing my files, it's time to enjoy the music btw, I have been to modding android before and made some custom roms and ports way way back but life led me to another path haha I will surely be opening your app every time I'd like to escape all the chaos and find some peace in music
 
Interested to try your app but I have a few questions.

-Is there a way to specify which folders to search for music. I already have a nomedia file on my phone but ringtones still got scanned and added to my library
-I've tried 3 different USB DAC's, Ifi Hip DAC, FiioK1 and Fiio K3 and all give me the same error "the scared engine has been denied communion with your device E08" and no music plays.

Thanks
 
Interested to try your app but I have a few questions.

-Is there a way to specify which folders to search for music. I already have a nomedia file on my phone but ringtones still got scanned and added to my library
-I've tried 3 different USB DAC's, Ifi Hip DAC, FiioK1 and Fiio K3 and all give me the same error "the scared engine has been denied communion with your device E08" and no music plays.

Thanks
there is an option about the folders in the latest update
 
Interested to try your app but I have a few questions.

-Is there a way to specify which folders to search for music. I already have a nomedia file on my phone but ringtones still got scanned and added to my library
-I've tried 3 different USB DAC's, Ifi Hip DAC, FiioK1 and Fiio K3 and all give me the same error "the scared engine has been denied communion with your device E08" and no music plays.

Thanks
Greetings! Yes, the Engine has been refactored to use per-folder/tree scanning instead of full file system access. On your issue, Vox Machina requires exclusive USB access to your DAC to function. When you plug in your DAC, a permission dialog will arise for your confirmation. If permission is denied, the Engine will refuse to function by design.
 
I get as far as the beta page on the Play store, but I see no install button. Am I missing something?
 
The Engine should be live on the Play Store already. Try refreshing/force closing the Play Store.
 
Back
Top Bottom