• 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!

Sorana Flow — free macOS music player with DSP (feedback welcome)

ruki7423

Member
Forum Donor
Joined
Feb 16, 2026
Messages
76
Likes
51
I built a music player for Mac focused on giving you full control over the audio signal path. It's free and I'm looking for feedback, particularly from people who care about what happens between the file and the DAC.

The audio path: FFmpeg decodes → DSP pipeline processes → CoreAudio outputs in exclusive mode with automatic sample rate switching. When all DSP is bypassed, output is bit-perfect to the DAC. The signal path display shows exactly what's happening at each stage — sample rate, bit depth, and which processors are active. Nothing is hidden.


DSP capabilities:

- 20-band fully parametric EQ (adjustable frequency, gain, Q, filter type per band). Save and load named presets per headphone. Supports REW and AutoEQ profile import so you can use your own measurements.
- Convolution engine — load your own impulse responses for speaker correction, crossover filters, or other FIR processing. Stereo and multi-channel IR support.
- VST3 and Audio Unit plugin hosting — use third-party processing in the signal chain. Full plugin editor UI.
- Crossfeed — analog speaker staging simulation for headphone listeners.
- HRTF binaural rendering via libmysofa with SOFA file loading. Applies direct-path HRTFs from SOFA data — no synthetic room reflections. Works for basic binaural spatialization with headphones.
- EBU R128 / ReplayGain volume leveling (track and album modes).
- Upsampling via SoX resampler.
- Limiter with true-peak ceiling control.
- Headroom management to prevent clipping when DSP adds gain.

Signal chain order: Source → Decode → Headroom → Crossfeed → Convolution → HRTF → EQ → VST3/AU → Volume Leveling → Limiter → Upsample → DAC


Playback:

- Native DSD via DoP (DSF/DSDIFF). DSD stays native when DSP is off. Automatic PCM conversion when any DSP stage is active.
- Gapless with optional crossfade
- Exclusive mode prevents OS mixer interference
- Auto sample rate switching — matches the file, no manual Audio MIDI Setup needed


Sources:

- Local files (FLAC, ALAC, WAV, AIFF, DSD, MP3, AAC, OGG, Opus, and more via FFmpeg)
- NAS streaming: DLNA/UPnP discovery, SMB file shares, Synology integration
- Apple Music integration (playback only — DSP cannot process DRM-protected streaming audio due to platform restrictions, same limitation as every other player)


Library:

- SQLite with WAL mode + FTS5 full-text search across all metadata fields
- Smart album artist grouping with compilation detection
- MusicBrainz + AcoustID fingerprint-based tagging
- Lyrics (embedded tags, LRC files, LRCLIB online sync)
- m3u/m3u8 playlist import, folder browser


Technical:

- Qt6/C++17, Apple Silicon native (M1+), macOS 14+
- Signed and notarized by Apple
- 190+ automated tests across 7 test suites
- 38 releases, actively maintained
- 300+ downloads in the first two weeks


Pricing:

Free today — no subscription, no paywall, no ads, no account required. Every feature is unlocked.

A Pro tier is planned for the future covering streaming service integrations (Tidal/Qobuz) that require commercial API partnerships. Leaning toward a one-time purchase rather than subscription. Current features will remain accessible, and any changes will be communicated well in advance.

Ko-fi donations appreciated but never required: https://ko-fi.com/ruki7423


I know this community values verifiable claims, so I want to be upfront: I haven't done formal THD+N or jitter measurements of the output. If anyone wants to run measurements through their setup, I'd welcome the data and will address any issues found.

---
Sorana Flow — Free Audiophile Music Player for macOS

Feedback welcome — especially from people with measurement rigs.
 
Last edited:
Looks very interesting. I'd love to have all the binaural processing in one app, no constant fight with virtual drivers and BT devices switching defaults.
At first glance I really miss album art and composer tags.
It played multichannel Flac files properly, but as soon as I tried to add a multichannel VST plugin, the interface froze. Music was still playing but nothing worked on the screen, I had to force quit it.
Also, with multichannel, it would be nice to have more than 2 angles for the sofa file extraction, and maybe if it could handle upmixing kind of VST plugins (2 in, 6-8 out) before sofa processing. I will run a couple of measurements, especially about applying the sofa files.
 
Looks very interesting. I'd love to have all the binaural processing in one app, no constant fight with virtual drivers and BT devices switching defaults.
At first glance I really miss album art and composer tags.
It played multichannel Flac files properly, but as soon as I tried to add a multichannel VST plugin, the interface froze. Music was still playing but nothing worked on the screen, I had to force quit it.
Also, with multichannel, it would be nice to have more than 2 angles for the sofa file extraction, and maybe if it could handle upmixing kind of VST plugins (2 in, 6-8 out) before sofa processing. I will run a couple of measurements, especially about applying the sofa files.
Thanks for trying it out — really appreciate the detailed feedback, especially from someone who does measurements.

The VST freeze you hit is a known bug that was fixed in v1.7.7 (and current is v1.7.9). It was a mutex deadlock in the DSP pipeline — when activating a plugin, the signal emission happened inside a lock scope, causing a same-thread re-entry deadlock. If you update to v1.7.9 (should auto-update via Sparkle, or grab it from https://soranaflow.com), that specific freeze should be gone. If yours is over v1.7.7, then could you tell me which vst plugins you're using?

On album art and composer tags — could you tell me a bit more about where you expected to see them? For example, was it in the library track list, the Now Playing view, or somewhere else? And for composer, are the tags present in the files themselves (e.g. as a COMPOSER field in FLAC/Vorbis comments)? That'll help me narrow it down.

Multichannel SOFA angle expansion and upmixing VST routing (2-in, 6-8 out) are both interesting ideas — noted for future development. Current HRTF/SOFA implementation is stereo-focused, but multichannel is on my radar. Would love to see your measurement results when you get to it — that kind of data is exactly what helps me improve the DSP pipeline.
 
This looks very cool. On the PEQ, is it possible to split that on a channel by channel basis? i.e. separate EQ for left and right channels, etc.?

Also, is this only stereo, or can you handle Atmos tracks, for example?
 
And are you really only 19?
 
This looks very cool. On the PEQ, is it possible to split that on a channel by channel basis? i.e. separate EQ for left and right channels, etc.?

Also, is this only stereo, or can you handle Atmos tracks, for example?
Right now the PEQ applies the same curve to both channels — no per-channel split yet. It's a good idea though, especially for asymmetric hearing correction or room correction where left/right differ. Noted for a future update.

On Atmos — currently stereo only. Multichannel playback and spatial audio formats like Atmos aren't supported yet, but it's something I'm aware of and looking into.

Nice setup by the way — that Atmos rig downstairs looks serious.
 
It is 1.7.9, and it freezes with any plugin for me. MacOS 26.3 on an m1pro.
 
It is 1.7.9, and it freezes with any plugin for me. MacOS 26.3 on an m1pro.
If it freezes with any plugin on v1.7.9, there's likely a second deadlock path I didn't catch with the v1.7.7 fix.

edit: I found where it happens! you don't have to do anything!
 
Right now the PEQ applies the same curve to both channels — no per-channel split yet. It's a good idea though, especially for asymmetric hearing correction or room correction where left/right differ. Noted for a future update.

On Atmos — currently stereo only. Multichannel playback and spatial audio formats like Atmos aren't supported yet, but it's something I'm aware of and looking into.

Nice setup by the way — that Atmos rig downstairs looks serious.
Thank you. I have to say, my hat is off to you, sir! You've done a fine piece of work, especially at such a young age! More power to you, and much success in the future. I get such a thrill when I see young people doing great things. At my age, 71, it gives me great hope for the future.

Keep up the good work! I will be following your progress closely.
 
Thank you. I have to say, my hat is off to you, sir! You've done a fine piece of work, especially at such a young age! More power to you, and much success in the future. I get such a thrill when I see young people doing great things. At my age, 71, it gives me great hope for the future.

Keep up the good work! I will be following your progress closely.
That really means a lot to me— thank you. Comments like yours are what keep me motivated to keep pushing this forward. I'll do my best to make it worth following.
 
I've just played around with it a little bit. Seems like a great start! Last time I had problems with Roon I fired up Apple Music and it was a nightmare with local files.

However, it's crashed on me 3x now with version 1.7.9 on a M2 Mini running 26.3. Problems with plugins still it seems. Splitting DSP between LR channels should be a simple fix and would add a lot more functionality to your EQ section.
 
I've just played around with it a little bit. Seems like a great start! Last time I had problems with Roon I fired up Apple Music and it was a nightmare with local files.

However, it's crashed on me 3x now with version 1.7.9 on a M2 Mini running 26.3. Problems with plugins still it seems. Splitting DSP between LR channels should be a simple fix and would add a lot more functionality to your EQ section.
Thanks for the feedback!

The plugin crashes should be fixed in v1.8.1 (released today). Three VST fixes went in: instrument plugin bypass, VST3 state restore spec compliance, and audio output device fallback. Updating from v1.7.9 should resolve the crashes — if not, a crash log from Console.app would be very helpful.

Per-channel L/R DSP is noted and on the roadmap. With your Okto DAC8 Pro and active crossover setup, that would definitely be useful. Multiple users have requested it.

Let me know how v1.8.1 goes!
 
Wow! First off, great start to what seems to be a great app.

A question: how do you go about equalizing the apparent levels of the music for volume parity? I use iVolume.It’s very handy and allows me to fine tune the volume levels.

I don’t see these two features mentioned and hope you’d seriously consider them:

EQ presets assignable to individual songs
If you have a big music collection that spans decades on your Mac, the frequency response going from song to song varies wildly. As a musician and audio engineer, I want to hear the songs as I’d remaster them.

Linear phase parametric EQ with a possible +24dB boost would perfectly suit my needs.

This is the big reason I never stopped using Apple iTunes/Music.

• Random Play mode
Better than 90% of my listening time is spent in random mode. It’s like having a radio station playing my favorite 3,000 songs. Personally, I prefer it to be totally random and never repeat until every song in my library has already been played.

One more question: Would you like some help on this project?

I’m a professional designer who amongst many things creates the visual design, user experience and front-end code for enterprise web applications. I make complex apps pretty and easy to use.

Figure it couldn’t hurt to ask.

So you know, this has been rolling around in my head:
 
Wow! First off, great start to what seems to be a great app.

A question: how do you go about equalizing the apparent levels of the music for volume parity? I use iVolume.It’s very handy and allows me to fine tune the volume levels.

I don’t see these two features mentioned and hope you’d seriously consider them:

EQ presets assignable to individual songs
If you have a big music collection that spans decades on your Mac, the frequency response going from song to song varies wildly. As a musician and audio engineer, I want to hear the songs as I’d remaster them.

Linear phase parametric EQ with a possible +24dB boost would perfectly suit my needs.

This is the big reason I never stopped using Apple iTunes/Music.

• Random Play mode
Better than 90% of my listening time is spent in random mode. It’s like having a radio station playing my favorite 3,000 songs. Personally, I prefer it to be totally random and never repeat until every song in my library has already been played.

One more question: Would you like some help on this project?

I’m a professional designer who amongst many things creates the visual design, user experience and front-end code for enterprise web applications. I make complex apps pretty and easy to use.

Figure it couldn’t hurt to ask.

So you know, this has been rolling around in my head:
Thanks for the kind words and the detailed feedback!

Quick answers:

- **Volume normalization**: ReplayGain tags are read if present in your files. Auto-scanning/calculating gain (like iVolume) is planned but not yet implemented.
- **Per-song EQ presets**: Not currently available — EQ is global. It's an interesting idea though, especially for libraries spanning different decades of mastering. Needs some UX thought.
- **Linear phase PEQ**: Current EQ is minimum phase. Linear phase with higher boost range is on my radar.
- **Random play (no repeat)**: Shuffle exists, but the "don't repeat until all songs played" mode isn't in yet. Noted.

And yes — I'd love design help. I'm a one-person team and the UI is where I could use the most outside perspective. Feel free to email me at [email protected].

Really appreciate the thoughtful feedback.



And regarding the software pre/pro thread you linked — that's essentially the direction Sorana Flow is heading. DSP, EQ, crossfeed, convolution, and VST hosting all in software, so you can skip the hardware processor and go straight from Mac to DAC.
 
Last edited:
Back
Top Bottom