The Library The Engine Verify it yourself The Workbench The Tuning Vault Acoustic DNA Sonic Match Atmospheres FAQ Get Meringo Privacy

Bit-perfect · Provable · Hardware-first

By default, Android resamples your music to 48 kHz.
Meringo takes your DAC off that path — and hands you the receipt.

Plug in a USB DAC or dongle and Meringo drives it directly — no Android mixer, no silent resample, every track at its native rate. Then it hashes what it shipped, so you can check the math yourself.

FLAC · ALAC 24-BIT / 192 KHZ BIT-PERFECT JELLYFIN · SUBSONIC
BIT-IDENTICAL ✓ verify it yourself →
Now Playing
24-bit · 96 kHz
Vault · Direct passthrough
Meringo Now Playing — 'Hard to See' by Men I Trust, a 24-bit / 96 kHz FLAC from the Vault. Gold ULTRA chip on the album-art card, teal → BIT-PERFECT route chip reading 24-BIT · 96 KHZ · DEVICE, ♪ LYRICS pill and star rating below it, full transport controls under the scrub bar
Platform Android DAP
Engine Bit-Perfect
Max Resolution 24 / 192
Fingerprinting On-device
Metadata MusicBrainz
Privacy Local-First

Receipt

What the device actually reports.

Open Settings → Audio Diagnostics on any Meringo build and the screen reads back exactly what the engine sees: device tier (LEAN / BALANCED / FLAGSHIP), RAM ceiling, CPU core count, USB-DAC presence, manufacturer, model, Android level, ABI. The buffer profile, the visualizer policy, the thermal-aware worker batch limits — every one of those numbers is derived from these values at cold start.

The screenshot is a real readout from a FiiO M21. Quote it in a support ticket and the values are reproducible cold start to cold start — same hardware, same readout, no telemetry round-trip required to produce them. Being honest about the bits begins with being honest about the silicon they're running on.

Meringo Audio Diagnostics — Device Capabilities: Tier LEAN, RAM 3646 MB, 8 CPU cores, Is DAP Yes, Is FiiO Yes, USB DAC No, AGSL shaders No, Live blur No. Build: Manufacturer QUALCOMM, Brand qti, Model FiiO M21, Product / Device bengal_515, Hardware qcom, Android 13 (API 33), ABI arm64-v8a

Verify it yourself

Don't trust the green light. Prove it.

Plenty of players claim bit-perfect output. Meringo is the only one that hands you a cryptographic receipt. Plug in a USB DAC, open Settings → Audio diagnostics, and arm Verified Capture — Meringo writes every byte it hands to the isochronous pipe and computes a SHA-256 over the whole stream.

Then point it back at the same file. Meringo re-decodes it, lays the PCM out in the identical iso-pipe format, and hashes that. Matching hashes mean that nothing — no resample, no requantise, no EQ, no ReplayGain — touched a single bit between the file and the pipe. Both hashes run on your own device, and you can re-hash the receipt with tools we don't control (below) — proof you can check, not a checkmark you take on faith. No other player hands you that.

Where the proof stops, precisely: it covers everything Meringo sent. Isochronous USB carries no delivery acknowledgement — the spec trades that away for constant latency — so no software on any platform can prove what the DAC received, only what was put on the wire for it. That boundary belongs to USB Audio Class, not to us. What a match settles is the part that was ever in doubt: whether the operating system, the mixer, or the app's own DSP touched your music.

Not a mockup: verified bit-identical across three DACs and six receipts — Fosi DS2 at both 16/44.1 and 24/96, Qudelix 5K (24/96, on two releases), and the Jcally JM6 Pro (16/96 and 24/96) — each with its own shareable receipt. In the latest pair, two physically different DACs returned the same SHA-256 from the same 24/96 file. Every published chain lives in the receipt registry — yours can join it.

And "anyone can check it" is literal: the exact byte layout, ffmpeg one-liners, and a public-domain checker script that shares no code with Meringo are published at meringo.app/verify — recompute a receipt's hash from your own copy of the file, with tools we don't control.

═════════════════════════
 MERINGO · BIT-PERFECT
 1.28.5 · Qudelix 5K · 24/96
═════════════════════════

[Capture]
  iso pipe → DAC endpoint
  cb459147…295adf

[Source decode]
  same file, re-decoded
  cb459147…295adf

  BIT-IDENTICAL ✓

Real capture · Qudelix 5K · 24/96 · 1.28.5 — reproduce your own in ~3 min

Ch. 01 — The Library

Two lenses. One library.

Meringo gives you a dual-lens library: a Vault of local FLAC and ALAC files, and a Cloud lens that spans Jellyfin and the Subsonic / OpenSubsonic family — Navidrome, Airsonic, and friends.

Each lens stands on its own — toggle, search, and sort within the world you're in. But when the same recording lives on more than one source, Meringo collapses the duplicate intelligently: Vault wins over Jellyfin wins over Subsonic, matched by MusicBrainz Recording ID, ISRC, a metadata tuple, or an acoustic-fingerprint twin link when the tags disagree. An ⊕ Also on the server banner on the Album page tells you when the other lens holds a copy too — and offers a one-tap switch to it. Quality chips on every album — ULTRA for 24-bit at 88.2 kHz and up, HD for the rest of hi-res, LOSSLESS for CD-spec — round out the rack at a glance.

Vault · Cloud Jellyfin Subsonic / OpenSubsonic Cross-source dedup Twin chips Quality chips
Meringo Library — Vault lens (‘On device’) selected against ‘Server’, 406 albums in a 2-column grid sorted by artist. Pearl Jam’s ‘Yield’ carries a LOSSLESS chip, Phoebe Bridgers’ ‘Punisher’ an ULTRA chip, each above a teal Acoustic DNA bar reading 100%

Bring your own server

Jellyfin. Or any server that speaks Subsonic.

Two paths into the same shared library. Jellyfin gets first-class treatment. The Subsonic family — Navidrome, Airsonic, Funkwhale, Gonic, Ampache, and every other server that implements the OpenSubsonic API — gets the same fidelity-first connection posture: bit-perfect direct play, no transcoding, password never stored beyond the hash derived from it. URL, username, password, Connect. Set it once.

Connect both at the same time if you have both. The library collapses twin recordings to a single entry across all three sources (Vault + Jellyfin + Subsonic) using the MusicBrainz → ISRC → metadata tuple → Chromaprint match chain. Same dedup rules everywhere.

Meringo Jellyfin connect screen — mascot at the top, ‘Connect to your Jellyfin server’ subtitle, Server URL / Username / Password fields, large Connect CTA

Jellyfin

Meringo Subsonic-compatible server connect screen — ‘Connect to any Subsonic-compatible server: Navidrome, Airsonic, Funkwhale, Gonic, Ampache, and any other server that implements the OpenSubsonic API.’ URL / Username / Password fields with the disclaimer ‘Your password is never stored — only a hash derived from it’ below

Subsonic family

Ch. 02 — The Engine

Bit-perfect. End to end.

By default, every sample reaches your DAC at the recording's native rate and depth. No silent format conversion. The system audio mixer operates as a single-client passthrough at unity gain — bits in, bits out — the same condition FiiO's stock player relies on. Bit-perfect on three axes: sample-rate parity, bit-depth parity, single-client passthrough.

The Now Playing route badge flips its routing chip off when the path itself can't deliver (HAL resample, DAC depth truncation); per-frame modifiers (ReplayGain scaling, EQ DSP, concurrent system mixing) decorate the badge with explicit suffixes rather than lie. No fake green light.

Meringo bundles its own FFmpeg-derived decoder for FLAC and ALAC — sidestepping the buggy platform decoders some Snapdragon DAPs ship with.

The EQ engine runs in 64-bit double precision (IEEE 754 binary64) — biquad coefficients, accumulators, output trim, all Double — so low-frequency, high-Q bands don't accumulate rounding drift across thousands of samples the way single-precision math would.

The parametric EQ ships in two phase modes: Minimum Phase (default — zero-latency 10-band biquad cascade) or Linear Phase (FIR convolution with constant group delay, preserving transient shape; 35 ms latency at 44.1 kHz, 8 ms at 192). The route badge flips its IIR-MP tag to FIR-LP when linear phase is engaged.

Prefer a single stable DAC clock across an entire session? Force Output Sample Rate opts in to Meringo's polyphase Kaiser-windowed sinc resampler — every track converted to a fixed 88.2, 96, 176.4, 192, 352.8, or 384 kHz in 64-bit double precision before AudioTrack. The badge reads INTERNAL SRC when active, not BIT-PERFECT — because that's what's actually happening.

Plugging in a USB DAC takes Meringo off the AudioTrack road entirely. The app parses the DAC's USB Audio Class descriptors, claims the audio-streaming interface, and ships PCM frames through isochronous transfers straight to the DAC's USB endpoint — no AudioFlinger between the bits and the DAC.

The bit-perfect chip stays teal when the iso pipe is live and the DAC's negotiated rate matches the source file. Verified to date on Fosi DS2 (UAC2 high-speed async — its descriptor advertises up to 384 kHz / 32-bit; Meringo engages up to 24-bit by design, and the published DS2 receipts are 16/44.1 and 24/96), Jcally JM6 Pro (UAC1 high-speed sync, 96 kHz), and Qudelix 5K (UAC1 full-speed sync, 96 kHz / 24-bit). What the hardware's spec sheet supports and what Meringo has verified are different claims, and we only print the second as proof. The Apple USB-C → 3.5mm Headphone Jack Adapter is a known awkward fit and falls back to OS routing automatically on phones — the Field Guide explains why on dedicated DAPs the path is different.

Same path. Every device.
Every sample, honestly accounted for.
64-bit double DSP FFmpeg-derived Linear-Phase FIR Optional Internal SRC AudioTrack native USB iso-pipe driver 24 / 192
SOURCE FLAC · ALAC 24-bit / 192 kHz STAGE 1 — DECODE Meringo FFmpeg LGPL 2.1+ STAGE 2 — DSP 64-bit double parametric EQ STAGE 3 — OUTPUT AudioTrack native rate DESTINATION DAC Snapdragon · USB-C · Bluetooth

Ch. 03 — The Workbench

Tune by ear, by numbers.

A 10-band parametric workbench with a calibrated dB scale, Slot A and Slot B preset slots, and built-in Pink Noise and Sine Sweep test tones. Tune to your IEMs, your headphones, or your room — and save the curve.

Undo, redo, reset, gain trim, file load, library browse. Nothing buried in a menu. Nothing assumed about what your ears want. Every adjustment runs through the same 64-bit double-precision DSP path as the rest of the engine.

Below the graph: Pink Noise and Sine Sweep test signals routed through the active EQ bands. Drag a band’s dot on the graph, step it one increment at a time, or type an exact value — and hear the test tone reshape in real time — the same headphone-calibration workflow Pro Tools and iZotope expose in studio plugins, one tap deep. Phase Mode toggles between minimum-phase (zero latency) and 1025-tap linear-phase FIR (constant group delay across frequency) without rebuilding your tuning.

10 bands Slot A / Slot B Pink Noise Sine Sweep Min / Linear Phase Calibrated dB Undo / Redo
Meringo Workbench — 10-band parametric EQ showing an active V-shaped curve (bass lift, midrange scoop, treble lift) drawn across a ±24 dB graph from 20 Hz to 20 kHz, with the ten band handles on the curve and the band buttons below. Slot A engaged, engine toggle on
Meringo Workbench scrolled to the Sound Tool selector — Off / Pink Noise / Sine Sweep / Group Delay, with Pink Noise active and routed through the EQ bands. Helper line reads ‘Pink noise through active EQ bands. Tune until perceived response is flat.’ A Meter section below carries an RMS / Peak digital-domain post-EQ readout, and the Phase Mode toggle shows Min Phase selected

Ch. 04 — The Tuning Vault

Save the curve. Recall the sound.

Every signature you build in the Workbench lands in the Tuning Vault, alongside the baseline. Recall a curve with one tap. Capture a new one with the on the graph.

Import 10-band AutoEQ parametric strings or your own CSV / JSON profile files directly. The None (Pure Meringo) baseline is always one tap away — flat response, all bands zeroed, no signature applied. The honest reference.

Your Rack is the organising layer that sits on top of the Vault. List the headphones you actually tune for (brand, model, over- or in-ear); tag each new signature with the pair it was built for; recall every signature for a single headphone in one tap. The per-headphone screen carries an A/B Compare picker — pick two signatures, drop straight into the Workbench with both already cued up into Slots A and B. If a headphone you add has a bundled correction, its page offers it in one tap — a measured preset by oratory1990, bundled offline via the OPRA project — three taps from new headphone in my collection to calibrated tuning loaded.

And when you want to know whether you can actually hear the difference — not believe it, hear it — Blind Duel puts your ears on the record. The app hides the graph, hides which slot is which, and runs a proper blind ABX: each trial secretly assigns a hidden X to slot A or B, you switch freely between all three, and you make the call. Level-matching is forced on for the whole duel (it’s modeled from each curve’s RMS — a model, not a measurement, and the receipt says so), the running score stays hidden by default because a visible tally quietly biases the next call, and the verdict is an exact one-tailed binomial with a ten-trial floor — a lucky handful is not a verdict. The receipt even discloses its own weaknesses: abandoned runs, whether the tally was revealed mid-duel. No other mobile music player runs a blind, level-matched test on your headphone corrections — and none will tell you when you fail to hear a difference. Meringo prints it. That’s the point.

Flat response. All bands zeroed.
No signature applied.
Pure Meringo baseline AutoEQ import CSV / JSON My Signatures Your Rack A/B Compare Blind Duel
Meringo Tuning Vault — a Your Rack card at the top (‘Group signatures by the headphone you tuned them for. One-tap A/B between two tunings of the same gear.’), then the Baseline section showing None (Pure Meringo): ‘Flat response · All bands zeroed · No signature applied.’ Factory Profiles below: V-Shape Boost with its Apply CTA, Mid-Forward Vocal partially visible

Ch. 05 — Acoustic DNA

The library, understood.

Meringo matches your library against MusicBrainz — album title and album-artist name, nothing else off your device — surfacing release year, genre classifications, editorial biography, and high-res artwork from the Cover Art Archive. Tag-poor files become tag-rich in the background. Cross-source recordings collapse to a single library entry by Recording MBID — JAY-Z and Jay-Z and Shawn Carter all merge to one artist card once MusicBrainz resolves the canonical identity.

The payoff lands on the home screen as Smart Playlists generated from the metadata you didn't have to type. Hi-Res Vault. Deep Cuts. Long plays. Studio Vault. Curation, without a curator — and a mood-driven library navigation primitive that reads from the separate on-device analysis pass described below.

MusicBrainz On-device fingerprint Cover Art Archive Smart Playlists
Meringo home — an Atmospheres row of daily-brewed mood playlists (Lite Roast ‘bright · crisp’, Fruity ‘warm · harmonic’, Dark & Bold ‘bass-heavy · punchy’, 30 tracks each) above a Smart Playlists row (Studio Vault 1,716 tracks, Deep Cuts 75, Long Players 145). Both are generated on-device from each track's chromagram and measured audio features

Ch. 06 — Sonic Match

The song hiding in your shelves.

Tap the icon on Now Playing and Meringo ranks the rest of your library against what's playing — not by tags, and not by fingerprint bits, but by measured acoustic distance. Every analysed track carries a feature vector, and four weighted subspaces decide how close two of them are: timbre (spectral centroid, rolloff, flatness, band balance), rhythm (octave-folded tempo, attack density, pulse clarity), harmony (chroma cosine, circle-of-fifths key relation, harmonic richness) and dynamics (crest factor, loudness range).

Every axis is z-scored against your library at the moment you ask, so bright means bright for your shelves — not against some absolute the engine carries around. The number you get back is a percentile, not a similarity score: closer than 94% of the candidates is a claim a number can actually back. And every match carries its receipts — up to three concrete, pairwise-true reasons (“same key (Am)”, “74 ↔ 76 BPM”, “both high-dynamics”), each emitted only when both tracks genuinely carry the signal. Nothing is inferred.

Hold the icon rather than tapping it and you drop straight into the stricter Deep Dive pool below, whether or not you've ever opened Settings.

Tap any match card and you've launched Sonic Radio — an auto-extending queue of texture-aligned tracks seeded from that match. Five tracks deep in standard mode, eight in Deep Dive. The B-side that lives next door to the long-form ambient piece you forgot you owned. The cover the algorithm spotted before you did.

Deep Dive Mode is the critical-listening posture: the ranked pool widens (20 → 50 candidates), the Radio tail grows (5 → 8), and every surviving match must carry at least one of those plain-English reasons — a match the engine can't explain isn't a Deep Dive match. On the audio side it switches in a defensive buffer profile, detaches the OS Visualizer's PCM tap, and pauses background analysis workers so the M21's cores aren't competing with the engine. A two-layer commitment to listening with intent.

Not a recommendation engine.
A librarian who's been listening.
Sonic Match Feature-space scoring Sonic Radio Deep Dive Mode Explained matches
Meringo Now Playing — SONIC sits in the icon row across the top of the screen, between EQ and QUEUE, and seeds a Sonic Radio queue when tapped

Ch. 07 — Atmospheres

Browse by sound, not by genre tag.

Coffee-Logic classifies every track in your library by its actual audio character, not by metadata. Five mood classes — Lite Roast (bright, acoustic clarity), Fruity (complex harmonics — jazz, soul, bossa), Medium Roast (balanced indie/electronic), Dark & Bold (heavy low-end, aggressive transients), Slow Drip (atmospheric, long-form) — derived deterministically from measured acoustic features: brightness, band energy, attack density, pulse clarity, dynamics, and a chromagram, with MusicBrainz genre tags as a gentle prior. File format plays no part, and a verdict has to win by a clear margin or the track simply stays unclassified.

Stack mood × tempo (Slow 60-100 BPM, Mid 100-140, Fast 140-200, computed by onset autocorrelation on the same PCM extraction) and the library narrows to a coherent listening session. Dark & Bold × Slow for a 2am session. Lite Roast × Mid for a morning walk. Each tile lens-scoped, each surfaced from the same on-device analysis pass that powers Sonic Match. Drones and sustained-tone tracks have no detectable BPM and stay unbucketed rather than being guessed at.

Same file always produces the same tag. No recommendation lottery, no telemetry, no third-party classifier in the loop. The library knows what it sounds like because Meringo listened to it once, on your phone.

Mood navigation that reads the audio,
not the tags.
5 mood classes Tempo cross-filter Chromagram Deterministic Local-only
Meringo Library subtitled ‘Ambient Intelligence’ — On device lens selected against Server, Atmospheres view-type active. Each mood is a card with its own colour and waveform glyph, a plain-language definition, and counts derived locally from each track’s chromagram and measured audio features: Lite Roast ‘Bright, dynamic, acoustic clarity · natural transients, unsquashed masters’ (1,110 tracks · 275 albums), Fruity ‘Rich chords, syncopation, warm voicings’ (157 tracks · 102 albums), Dark & Bold partially visible below

No investors · No committee

Built anyway.

One person, one device, and one stubborn idea: that a music player should be able to prove what it did.

Built anyway, by Adam Siemaszko — Erie County, NY

A few things worth knowing.

Does Meringo play DSD (.dsf / .dff) files?

Meringo is a PCM-first player by design — built for listeners who want total control over their signal chain. The EQ engine processes audio in 64-bit double precision (IEEE 754 binary64), so every band, every gain change, every output adjustment stays mathematically clean end-to-end. That precision is what DSD fundamentally can't offer: it's a 1-bit sigma-delta delivery format, and the moment you apply DSP to it, it must be converted to PCM anyway — at which point you've lost what made it DSD.

In practice, almost every commercial DSD release is a delivery container layered on top of a PCM master. Recording and mastering happens in PCM (often DXD at very high sample rates). A 24/96 or 24/192 FLAC of the same master sounds effectively identical and weighs roughly a quarter as much on disk.

DSD over PCM (DoP) is a real protocol — DSD bits wrapped inside PCM frames over USB Audio — and it's exactly how Meringo hands DSD to an external DAC that can decode it natively (DSD64, DSD128 and DSD256 via DoP, with a curated catalog of known DACs — Chord, iFi, AudioQuest and more). It doesn't bypass the precision constraint, though: the moment you apply any DSP to the unwrapped stream, you're back to PCM math. What Meringo won't do is force DSD onto hardware that can't take it — the M21 I tune against routes its onboard ES9219MQ DACs from PCM regardless, so on-device DSD would mean a silent conversion behind your back. So the on-device path stays PCM-and-FLAC, and the DoP carriage opens only when a capable DAC is attached.

For practical purposes: if you have .dsf or .dff files in your library, Meringo's scanner indexes them and labels them lossless on the format strip — you'll see them sitting next to your FLACs. Tap a DSD track on the M21 (or another Snapdragon 680-class device) and the route surfaces a [FormatUnsupported] error rather than play. Plug in an external USB DAC that decodes DSD natively — a Chord Mojo 2, iFi Hip-Dac, or similar — and the path opens up; Meringo hands the stream to the DAC and lets its onboard decoder do the work.

Does Meringo do ReplayGain / loudness leveling?

Yes. Meringo reads the ReplayGain tags embedded in your files (track and album) and applies the per-track adjustment so albums level out against each other — no re-encoding, nothing written back to disk. When a track's gain tag is non-zero and the adjustment is actually doing work, the route badge reads “Scaled −X dB” so you know the bits leaving Meringo aren't bit-identical to the file even though the routing is. A 0 dB tag (or no tag) lights the chip green like normal. You can switch it off in Settings — some people do, and that's also fine.

Because normalisation mostly pulls loud modern masters down, a whole library can end up quieter than you'd like. So there's a ReplayGain pre-amp (Settings → ReplayGain, 0 to +12 dB): a fixed boost on top of the per-track adjustment that keeps the album-to-album leveling without living at half volume. It rides only on tracks that carry a gain tag — untagged tracks still play at unity, untouched. Push it far enough and a hot master can clip; the badge shows the net scaling, and your ears will tell you.

My WAV files don't show album artwork. Now what?

Drop a cover.jpg, folder.jpg, front.jpg, or album.jpg next to your audio in the same folder. Case-insensitive; .jpeg and .png variants also work.

Meringo's sibling-image resolver picks them up automatically. WAV doesn't carry embedded artwork the way FLAC does, so the sidecar approach is the right answer there.

What do the gold dot and colored bar on my album covers mean?

Two separate signals from the same Identity Resolver — both shown on the Vault and Cloud album grids.

The gold dot in the bottom-left corner means Meringo has matched the album to a MusicBrainz Release ID (an MBID). That's the canonical "we know which album this is" stamp — once it lands, the album is anchored to a globally stable identifier that survives renames, re-rips, and cross-source duplicates. Cover art, release year, and editorial metadata all hang off that MBID.

The colored bar with a percentage below the album title is a different read: it's the confidence in that identification, and it shifts color with that confidence. Teal at 90% and above — every signal (album title, artist name, track count, total runtime, fingerprint) lined up cleanly with MusicBrainz. Dimmed gold below that threshold — the resolver landed a tentative match but isn't fully certain, usually for releases with messy metadata or unusual edition variants.

Acoustic DNA (the on-device Chromaprint fingerprint) is not what the dot represents, and it is not how the MBID is found — album identity comes from MusicBrainz, looked up by album title and album-artist name. The fingerprint's job is to match your own copies against each other: when the same recording sits both on your device and on your server, the chain that collapses them into one library entry runs MBID first, then ISRC, then a metadata tuple (title + album + album-artist + disc + track), and finally the Chromaprint fingerprint as the catch-all when everything else disagrees. That comparison never leaves your device. Tentative low-confidence matches re-attempt every 90 days; unresolved albums every 30.

For the deeper version, Settings → Field Guide walks through the resolver chapter by chapter, with a swatch legend that maps both bar colors.

Search returns no results — what's happening?

Search is scoped to the lens you're currently viewing — Vault (local files) or Cloud (Jellyfin / Subsonic). If you're on Cloud searching for a local album, you'll get nothing back.

When search comes up empty on the current lens, Meringo offers a one-tap hint pointing at the other one with your query preserved. New installs with local folders but no server default to Vault to avoid the confusion entirely.

Are playlists supported?

Three flavours:

Smart Playlists — rule-based, curated by Meringo. Studio Vault (Hi-Res only), Deep Cuts (long-tail plays), Coffee-Logic moods (Lite Roast through Slow Drip). You can author your own from Home → My Playlists with rule editors for mood, tempo, era, codec, and more.

Imported M3U playlists — if your Vault folders already contain .m3u or .m3u8 files exported from MusicBee, Plex, foobar2000, or any other tool, the scanner reads them on import and surfaces each under Home → Imported Playlists. No import button, no extra step. Both plain M3U and extended (#EXTM3U + #EXTINF) formats are supported. Tracks that can't be found in your Vault stay visible as greyed-out missing rows so you can see exactly which file is gone — re-save the playlist or rescan to re-resolve.

Saved queues — once you've shaped a queue you like, the ✚ in the Queue top bar saves the current order as a smart playlist you can return to.

Jellyfin / Subsonic server-side playlists are on the next-up list. Today you can queue any track from those servers individually through the album or artist views.

How do I install Meringo? Is it on the Play Store?

Currently in Closed Testing on Google Play. The app isn't publicly listed yet — testers are added by email invitation.

If you'd like to try it, send a note to support@meringo.app with the Google account email you'd use on the device, and I'll add you to the test list.

Yes — Meringo is on the Google Play Store. New users get a 7-day free trial of the full app, then a one-time $9.99 unlock for permanent lifetime access. No subscription, no ads, no premium tier locked behind a second purchase.

If you switch phones or reinstall later, your purchase restores automatically — Google tracks the entitlement against the Google account you bought with. Settings → Subscription → Restore Purchase if it doesn't trigger on its own.

If you'd rather just follow along — or chat about audio gear, bug reports, feature ideas — email Adam directly at support@meringo.app.

Why is Meringo "built for FiiO M21"? Does it run on other devices?

Meringo runs on any Android device that meets the minimum requirements (Android 13, API 33). The M21 is what every release is verified and tuned against — the audio engine, scan strategy, and UI density are all calibrated for its Snapdragon 680 / 4 GB RAM target and ~360 dp screen width.

Beta testers have reported it working well on the Jade Audio JM21 (FiiO's sister-brand entry-level DAP — similar Snapdragon audio substrate), the FiiO M33 (same Qualcomm audio silicon family), and on modern Android phones from 2022 and newer. Other DAPs should run it, but compatibility isn't a guarantee until I have hands on a unit.

Does Meringo ever resample my audio?

By default, no. Every sample is sent to AudioTrack at the file's native rate and depth, bit-for-bit — that's the bit-perfect path the engine is built around.

Settings → Force Output Sample Rate is the opt-in alternative — it pins the AudioTrack to a single rate (88.2, 96, 176.4, 192, 352.8, or 384 kHz) and has Meringo's polyphase Kaiser-windowed sinc resampler convert every track to it in 64-bit double precision before output. The trade-off is named directly on the Now Playing route badge: INTERNAL SRC replaces BIT-PERFECT because resampling is mathematical interpolation, not bit-identity.

Audiophiles who prefer a single stable DAC clock across an entire session over per-track HAL renegotiation choose it. Everyone else leaves it off and the bit-perfect path is unchanged. On the USB Direct path, if an external DAC is locked to a rate it won't switch to your file's native rate, Meringo refuses the track — a banner names the DAC and the rate it's stuck at — rather than silently resampling it behind your back; USB Direct never resamples. Over Bluetooth the stream is always re-encoded by the OS, so that path can never be bit-perfect and the route badge simply reads Bluetooth.

Are lyrics supported? Where do they come from?

Yes. Tap the ♪ LYRICS pill on the Now Playing format strip and a velvet sheet slides up over the screen. When the track's source returns synchronised lyrics, the active line highlights in Candlelight Gold and the sheet smooth-scrolls to keep it centred; plain-text lyrics render as a scrollable Cormorant block.

Today Meringo reads from Jellyfin's /Audio/{id}/Lyrics endpoint — LRC sidecars, SYLT/USLT embedded frames, plain-text .txt sidecars all decode to the same sheet. Local files and Subsonic tracks land on the calm no lyrics on file empty state today; embedded USLT extraction and Subsonic getLyrics2 are road-map work.

By default no third-party lyrics service is involved — Meringo asks only the same server your audio comes from, with the same encrypted transport. The one opt-in exception is Online lyrics (off by default): switch it on and, when a track has no embedded or server lyrics, its title, artist and album — nothing else — are sent to lrclib.net, a community lyrics database, to find matching words (it's in the network-calls list below). If you scroll the sheet manually, auto-follow pauses for four seconds before resuming so you can read ahead without the cursor yanking you back.

Does Meringo scrobble to ListenBrainz or Last.fm?

ListenBrainz is supported as an opt-in integration (Settings → ListenBrainz). Paste your user token from listenbrainz.org/profile/; the token validates against the server, stores in encrypted Keystore-backed storage, and never logs in plaintext.

A listen counts when you've heard 240 seconds OR 50% of the track, whichever first — the literal ListenBrainz spec. Tracks shorter than 30 seconds never scrobble. Failed submissions persist to a local encrypted retry queue and drain via a 30-minute background worker when the network allows. A revoked token gracefully disconnects the integration instead of looping.

Last.fm is not currently supported. The scrobble path is built around the ListenBrainz submit-listens API; the data shapes are similar enough that Last.fm could be added later, but ListenBrainz's community-run, MusicBrainz-anchored posture fits the rest of Meringo's identity layer more naturally — that's where the first slot went.

If I close the app, will I lose my place?

No. Force-stop Meringo, swipe it from recents, reboot the phone. Open the app two days later and the queue is still there — track list, current index, exact position to the second. The lens is where you set it.

Restoration never auto-plays. The app comes back to the same state but waits for your tap before sound resumes — opening the app for an unrelated reason shouldn't fire audio at the bus seat next to you. The standard Android player UX, deliberately.

Can I share or export what I'm seeing on the route badge?

Two share affordances both reach the route badge via the glyph.

Long-press the Now Playing format strip to open the Audio Path sheet, then tap the in the header. The current readout — bit depth, sample rate, route, device, runtime modifiers — goes to your system share intent as a forum-ready plain-text card. Honest by construction: if the active route is RESAMPLED / TRUNCATED / INTERNAL SRC, the share text says so verbatim. No marketing rewrite at the share boundary.

Settings → Audio Diagnostics has the same in its header for the longer support-ticket form (build info, device class, identity-resolution stats, recent-events ring buffer). Server URLs are deliberately omitted from the diagnostics export so a public-channel screenshot can't leak your home-server address.

Where can I get the FFmpeg source code Meringo bundles?

Meringo bundles a Meringo-built FFmpeg derivative (libavcodec, libavutil, libswresample) under the GNU LGPL v2.1 or later. The exact build configuration, version, license texts, and a written offer for the source are all available in the app under Settings → Open Source Licenses.

If you'd rather not go through the app, email support@meringo.app and I'll send you the source archive directly.

Built for the signal chain.
Waiting for yours.

Meringo is in Closed Testing on Google Play — invitation only. Email me with the Google account you'd use on the device and I'll add you to the test list. As a solo developer, I read and reply to every message personally.

Reach Adam directly at support@meringo.app

Your music. Exactly as recorded.

$9.99 once 7-day free trial · No subscription · Lifetime updates

Meringo runs on any Android device meeting the minimum requirements (Android 13, API 33). Tuned for the FiiO M21 target.

Support: support@meringo.app

Privacy Policy

EFFECTIVE DATE: May 26, 2026  ·  MERINGO LABS LLC

First run · disclosed before you tap

Our Commitment, on screen one.

Before any CTA loads — before you connect to Jellyfin, Subsonic, or pick a local folder — Meringo lays out exactly what it does with your data. Your Data Stays Yours (local-first storage). Acoustic Fingerprints Stay on Your Device (what the fingerprint is, and that nothing can send one). External Services (every server the app can reach, named, with what has to be true before it does). Crash Reporting (Sentry, opt-in with an explicit toggle, off by default). Software As-Is (a solo developer's honest disclaimer). The five headings of that screen — the first three are in frame to the right — correspond one-to-one with the sections of the policy below. Same content, same wording, same posture.

Meringo first-run terms screen — the ‘Our Commitment’ heading above five numbered sections, of which the first three are in frame: 1. Your Data Stays Yours (local-first; no collection of library, credentials, or listening habits), 2. Acoustic Fingerprints Stay on Your Device (what the fingerprint is, that it is computed on-device, and that no setting would send one), 3. External Services, which opens the itemised list of every host the app can reach. Sections 4. Crash Reporting and 5. Software As-Is follow below. Shown to every user before any Connect or Play CTA loads

I do not run servers that collect your personal data. I do not run analytics pipelines. Server credentials are encrypted on-device using Android Keystore; your music library and preferences live in private app storage; crash reporting through Sentry is opt-in (off by default, with the consent toggle on the first-run screen) and redacts known auth parameters before transmission.

Read the full policy

Overview

Meringo is a local-first music player published by Meringo Labs LLC. I do not operate servers that collect your personal data. I do not run analytics pipelines. I built Meringo because I wanted a more refined, high-fidelity way to experience a music library — not to harvest data.

This policy describes what minimal data interactions the application has, and exactly why they exist.

What We Collect

Meringo collects no personal data on my servers. On your device, the app stores:

  • Your music library metadata (artist, album, track, file path) in a local Room/SQLite database
  • Your Jellyfin and Subsonic / OpenSubsonic server credentials, encrypted on-device using Android Keystore
  • Your listening preferences and non-sensitive app settings in the app's private DataStore (no credentials are kept here)
  • Cached artwork and editorial metadata fetched from public APIs

None of this data is transmitted for advertising or tracking purposes. When crash reporting is enabled (off by default; opt in on the first-run screen), anonymised error reports may be sent to Sentry — see the Crash Reporting section below.

Acoustic Fingerprints Stay on Your Device

Meringo fingerprints your music: a compact acoustic signature of each track, computed from the sound itself using a fingerprinting library (libchromaprint) bundled inside the app. It is a mathematical representation of the audio signal — not an audio recording, and not something you can listen back to.

No fingerprint is sent anywhere, and there is no setting that would send one. The work happens entirely on your device, and its results stay there: finding tracks that resemble the one playing, and spotting duplicate rips of the same recording across your library and your server.

Earlier releases offered an optional lookup that submitted a fingerprint to the AcoustID web service to identify badly-tagged files. That feature has been removed, along with its setting. Album identity now comes from MusicBrainz alone, queried by album title and album-artist name — described under Third-Party Services below.

Crash Reporting

Meringo uses Sentry (sentry.io) for crash and error reporting. This helps me identify and fix stability problems without you having to file a bug report manually.

Crash reports are opt-in. New installs see a consent toggle on the first-run screen (off by default); until the user makes a choice and taps a Connect button, Sentry is held in a no-op state and zero crash data leaves the device. The same toggle is available afterwards under Settings → Privacy → Crash reporting. Disabling it at any time stops Sentry from running for the remainder of the session; it will not be started on the next launch either.

Existing installs from before this consent flow (where the user had already completed onboarding under the previous default-on behavior) are treated as having implicitly consented and keep their existing crash-reporting preference. The toggle remains available to flip off whenever they like.

A crash report contains:

  • The exception type, message, and stack trace
  • Device model and Android OS version
  • App version and build environment (debug / production)
  • Recent navigation breadcrumbs (screen names only)

Crash reports do not contain your music library, file paths, server credentials, listening history, or any content from your device. Known authentication parameters in server URLs — Jellyfin api_key, OpenSubsonic apiKey, and the Subsonic legacy auth quartet (t, s, u, p) — are redacted from any URL captured in a crash report before it is transmitted.

When crash reporting is enabled, Meringo also reports release-health signals to Sentry — anonymous session start/stop events (used to compute crash-free-session and crash-free-user rates) and ANR (app-not-responding) events. These carry no personal data and follow the same opt-in and redaction rules as the crash reports above.

Sentry's own privacy policy is available at sentry.io/privacy.

Third-Party Services

Meringo integrates with the following public, read-only APIs to provide editorial content:

  • Google Play — first, because it happens first. Meringo is a paid app, and a paid app has to ask Google whether you paid: at every launch, before any consent screen renders, the app connects to Google Play's billing service through the Play Store on your device to check the purchase. Google's billing library also brings along a Google upload component (com.google.android.datatransport) — a small database and a scheduled upload job in the app's own data directory that batch Google's delivery telemetry back to Google. It arrives transitively with the Play libraries; it is Google's plumbing, not Meringo tracking your listening — and it is named here because it exists, not because we chose it.
  • MusicBrainz — Relational metadata: artist bios, credits, release information. Query payload per album is exactly two strings — album title and album-artist name. Listening habits, play counts, file paths, and device identifiers never enter the request. Unresolved entries re-attempt every 30 days; tentative low-confidence matches every 90.
  • Cover Art Archive — High-resolution album artwork; queried by release-group MBID returned from the MusicBrainz lookup above
  • Wikipedia (Wikimedia Foundation) — Artist biographies and hero images, fetched on demand for the Now Playing artist info sheet
  • Jellyfin — Your personal Jellyfin server only; URL and credentials configured by you
  • Subsonic / OpenSubsonic — Your personal Subsonic-compatible server (e.g. Navidrome, Airsonic) only; URL and credentials configured by you
  • LRCLIB — Opt-in community lyrics database (off by default). When you switch on Online lyrics and a track has no embedded or server lyrics, its title, artist and album are sent to lrclib.net to find matching words. Nothing else — no audio, no file path, no play counts. No request is made until you switch it on.
  • ListenBrainz — Opt-in scrobble service (off by default). When you connect your token in Settings → ListenBrainz, track metadata (artist, title, album, duration, MusicBrainz Recording ID when available) and the listen's start timestamp are submitted to api.listenbrainz.org. No data is sent until you've affirmatively connected. Token is stored encrypted on-device using Android Keystore; pausing or disconnecting in Settings stops submission immediately. Failed submissions persist to a local retry queue and never leave the device until the network allows them.
  • Sentry — Anonymised crash and error reporting (opt-in; see above)
  • AutoEQ archive (raw.githubusercontent.com) — the community archive of headphone corrections. The fetch code ships in the app, but the network tier is switched off in this release: corrections come from a bundled offline pack, and a build test fails the moment anyone flips the switch. Named now so this list is already true on the day a future update turns it on.

Content retrieval requests carry no personal identifiers. Crash reports are governed by the terms described in the Crash Reporting section above. Use of all third-party services is subject to their respective privacy policies.

Local Storage & Security

Server credentials are encrypted on-device using the Android Keystore system (EncryptedSharedPreferences). Non-sensitive preferences are kept in the app's private DataStore, accessible only to Meringo. The local Room database is stored in the app's private data directory, inaccessible to other apps without root access.

Meringo declares only the permissions required for its operation:

  • INTERNET — metadata APIs (MusicBrainz, Cover Art Archive) and communication with your Jellyfin or Subsonic server
  • ACCESS_NETWORK_STATE — detect connectivity before making network requests
  • CHANGE_WIFI_MULTICAST_STATE — discover Google Cast / DLNA receivers on your local network (mDNS multicast). A multicast lock is held only while the Now Playing screen is open; no media or personal data is broadcast
  • READ_MEDIA_AUDIO — read audio files on Android 13+
  • READ_EXTERNAL_STORAGE — read audio files on Android 12 and older (superseded by READ_MEDIA_AUDIO on newer releases; declared with maxSdkVersion=32)
  • FOREGROUND_SERVICE / FOREGROUND_SERVICE_MEDIA_PLAYBACK — keep the playback service running while the screen is off
  • POST_NOTIFICATIONS — non-foreground-service notifications such as the USB DAC lockout alert (the playback notification itself is exempt under FOREGROUND_SERVICE_MEDIA_PLAYBACK). Prompted for at install on Android 13+; the app remains fully usable if declined
  • MODIFY_AUDIO_SETTINGS / BLUETOOTH_CONNECT — audio output routing and Bluetooth audio device management
  • WAKE_LOCK — prevent the CPU from sleeping mid-track during background playback
  • VIBRATE — haptic feedback on seek and UI interactions
  • com.android.vending.BILLING — the one-time in-app purchase. A normal-level permission auto-granted at install; Google Play's billing client will not initialise without it. It grants no access to your device, your library, or your payment details — the transaction itself is handled entirely by Google Play, and Meringo never sees a card number

Your Rights

Because Meringo does not collect personal data on any server I control, there is no centralized profile for me to provide, correct, or delete on my end. All data the app holds is stored on your device and remains under your direct control.

Right to access (GDPR Art. 15, CCPA § 1798.110). All data Meringo holds about you is on your device: the local library database, encrypted server credentials, app preferences, and any cached metadata. You can inspect it directly through Android's app-data tools, or open the JSON dump produced by the Export my data feature described below.

Right to erasure (GDPR Art. 17, “right to be forgotten”). Uninstalling Meringo, or using Android Settings → Apps → Meringo → Storage → Clear all data, deletes every byte the app has on your device. Because no copy lives on my servers, this completes the erasure.

Right to portability (GDPR Art. 20). Tap Settings → Privacy → Export my data to write a human-readable JSON file to a location of your choice — your EQ presets, smart playlists, granted folder URIs, rack headphones, every non-sensitive preference, and (since export schema v2) the full on-device backup: star ratings, play counts and last-played times, bit-perfect receipts, the brew log, integrity verdicts, and imported playlists. Settings → Privacy → Import my data reads the file back onto any install — strictly additively, with a preview of the file's contents before anything is applied: nothing is deleted or overwritten, ratings and play counts merge upward, and duplicates are skipped. Encrypted credentials and the library database itself stay excluded by design and are documented in the export manifest — your ratings and play history are no longer among the exclusions; they ride in the export's backup_payload section. Your music files themselves remain in the formats you provided — the app does not lock them in proprietary containers.

Right to object & opt out. Crash reporting can be disabled at any time under Settings → Privacy → Crash reporting. Acoustic fingerprinting needs no opt-out, because no fingerprint leaves your device — see Acoustic Fingerprints above. ListenBrainz scrobbling requires you to provide a token before any data is sent.

Right to lodge a complaint. EU/EEA users may lodge a complaint with their national data-protection authority. California residents may contact the California Attorney General. For questions about this policy or to exercise any right above, write to support@meringo.app.

The application is provided as-is. As a solo developer, I work hard to keep Meringo stable and respectful of your privacy, but I cannot guarantee it will be free of defects.

Trademarks & Attribution

Meringo is an independent project and is not affiliated with, endorsed by, or sponsored by any third-party service, project, or hardware manufacturer referenced on this page or in the application. All product names, logos, and brands are property of their respective owners and are used here for descriptive, interoperability, and identification purposes only (nominative fair use).

  • Jellyfin is a trademark of the Jellyfin Project. Meringo connects to user-configured Jellyfin servers via the project's public HTTP API.
  • Subsonic is a trademark of Sindre Mehus. OpenSubsonic is a community specification. Navidrome, Airsonic, and other compatible servers are independent projects of their respective maintainers.
  • FiiO and M21 are trademarks of Guangzhou FiiO Electronics Technology Co., Ltd.
  • Snapdragon is a trademark of Qualcomm Incorporated.
  • Android is a trademark of Google LLC.
  • MusicBrainz, the Cover Art Archive, and AcoustID are projects of the MetaBrainz Foundation and its contributors. Data and artwork retrieved from MusicBrainz and the Cover Art Archive are used under their respective public terms. Meringo no longer queries the AcoustID service, but it does bundle Chromaprint, the AcoustID project's open-source fingerprinting library (LGPL-2.1+), which runs entirely on your device; visit metabrainz.org and acoustid.org for details.
  • oratory1990's headphone EQ measurements are bundled as a curated subset of presets, used under the Creative Commons CC BY-SA 4.0 license and sourced via OPRA (Open Profiles for Revealing Audio), a Roon-maintained community headphone-measurement database — see github.com/opra-project/OPRA. If his work improves your listening, consider supporting him at buymeacoffee.com/oratory1990.
  • Sentry is a trademark of Functional Software, Inc.

Quoted reviews appearing elsewhere on this page are reproduced as public commentary under fair use, attributed to their original authors, and accompanied by editorial response. They are not endorsements.

Open-Source Software

Meringo bundles a Meringo-built decoder derived from FFmpeg (libavcodec, libavutil, libswresample) statically linked for ALAC and FLAC playback. It is used under the terms of the GNU LGPL v2.1 or later, with no GPL-licensed components enabled in the build.

Full attribution, license texts, build configuration, and the written offer of source availability are bundled into the application under Settings → Open Source Licenses. The remaining open-source dependencies (Media3, Coil, AndroidX, Hilt, Room, and others) are enumerated in the same screen, generated automatically from the build manifest.

Contact

Questions about this privacy policy or Meringo's data practices? Write to me directly:

support@meringo.app

Terms of Service

EFFECTIVE DATE: May 26, 2026  ·  MERINGO LABS LLC

Meringo is software I built. It is licensed to you for personal use, comes with no warranty, and you agree to a few common-sense restrictions about how you use it. The full text is below.

Read the full Terms

1. Acceptance of Terms

By downloading, installing, or using the Meringo Android application (“Meringo” or “the app”) or the website at meringo.app, you (“you” or “user”) agree to these Terms of Service (“Terms”). If you do not agree, do not use the app or the site.

These Terms form a binding contract between you and Meringo Labs LLC (“Meringo Labs,” “we,” or “I”), a limited liability company organized under the laws of New York, United States.

2. License to Use the App

Subject to your compliance with these Terms, I grant you a personal, limited, revocable, non-exclusive, non-transferable, non-sublicensable license to install and use Meringo on devices you own or control, for your personal, non-commercial enjoyment of music you have a legal right to play.

This license does not transfer ownership. The Meringo source code, brand, design, and trade dress remain the property of Meringo Labs LLC.

3. Restrictions

You agree not to:

  • Reverse-engineer, decompile, or disassemble the app except as permitted by applicable law (e.g., DMCA § 1201(f) for interoperability)
  • Modify, adapt, or create derivative works of the app
  • Redistribute, sell, sublicense, rent, lease, or otherwise transfer the app or its source code
  • Remove or alter any copyright, trademark, or attribution notices
  • Use the app to circumvent DRM or rights-management technologies on content you do not own
  • Use the app to host, distribute, scrape, or share music you do not have a legal right to possess
  • Probe, scan, or test the vulnerability of Meringo Labs systems, or attempt unauthorized access to any part of the service
  • Use automated means (bots, scripts) to interact with the app's bundled APIs at a rate that places undue load on third-party services (MusicBrainz, ListenBrainz, Cover Art Archive, Wikipedia)

4. Your Content and Your Servers

Meringo is a local-first player. You provide the music files on your device, the Jellyfin / Subsonic / compatible server you connect to (if any), and the ListenBrainz token you provide (if any). You are responsible for ensuring you have a legal right to possess and play the music in your library. I make no claim of ownership over your music, server, credentials, or any data the app reads from your device.

5. Third-Party Services

Meringo integrates with third-party services as enumerated in the Privacy Policy: Google Play (purchase verification, and Google's datatransport upload component that rides with it), MusicBrainz, Cover Art Archive, LRCLIB, ListenBrainz, Wikipedia, Sentry, the AutoEQ archive (dormant in this release), and any user-configured media server. Your use of those services is subject to the terms and privacy policies of each provider. I am not responsible for the availability, accuracy, or conduct of any third-party service.

6. Beta Software Notice

Meringo is currently in closed testing on the Google Play Store. The app may contain bugs, change behavior, or be modified at any time without notice. Beta users acknowledge that they are using pre-release software and accept the increased risk of defects.

6. Purchase, Trial, and License Grant

Meringo is distributed via the Google Play Store. New users receive a seven (7) day trial of the full application beginning at first launch. After the trial expires, continued use requires a one-time in-app purchase ("Meringo Lifetime") for $9.99 USD, or local-equivalent pricing set by Google Play. The Lifetime purchase grants you a perpetual, non-exclusive, non-transferable, revocable license to use Meringo on devices signed into the Google account that completed the purchase, subject to these Terms.

Refunds, chargebacks, and revocation of purchase are handled by Google Play in accordance with Google's policies. If Google revokes your purchase for any reason — including refund, chargeback, or fraud determination — your license terminates automatically and the app returns to a locked state on next launch.

Restoration of a prior purchase is supported via Settings → Subscription → Restore Purchase, or automatically on first launch of a fresh install signed into the original Google account.

7. Intellectual Property

“Meringo,” the wordmark, the waveform logo, the Field Guide, the Full Manual, and the visual design of the app and website are the intellectual property of Meringo Labs LLC, protected by copyright and trademark law. Third-party trademarks are used nominatively, as detailed in the Privacy Policy's Trademarks & Attribution section.

8. Disclaimer of Warranties

THE APP AND THE WEBSITE ARE PROVIDED “AS IS” AND “AS AVAILABLE,” WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY. TO THE FULLEST EXTENT PERMITTED BY LAW, MERINGO LABS LLC DISCLAIMS ALL WARRANTIES, INCLUDING MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.

I do not warrant that the app will be uninterrupted, error-free, or compatible with every device, every Android version, or every audio file. I do not warrant that bit-perfect playback claims hold true under all device, OS, and routing combinations; the Field Guide and route-badge UI describe known caveats.

Some jurisdictions do not allow disclaimer of implied warranties; in those jurisdictions the foregoing applies to the maximum extent permitted by law.

9. Limitation of Liability

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL MERINGO LABS LLC OR ITS OWNERS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR ANY LOSS OF DATA, REVENUE, PROFITS, OR GOODWILL, ARISING OUT OF OR IN CONNECTION WITH YOUR USE OF THE APP OR THE WEBSITE, WHETHER BASED ON WARRANTY, CONTRACT, TORT (INCLUDING NEGLIGENCE), OR ANY OTHER LEGAL THEORY.

IF THE FOREGOING LIMITATION IS HELD UNENFORCEABLE, MERINGO LABS LLC'S TOTAL CUMULATIVE LIABILITY ARISING OUT OF OR RELATED TO THESE TERMS WILL NOT EXCEED THE GREATER OF (A) THE AMOUNTS YOU HAVE PAID TO MERINGO LABS LLC IN THE TWELVE (12) MONTHS PRECEDING THE CLAIM, OR (B) ONE HUNDRED U.S. DOLLARS ($100).

You acknowledge that Meringo is offered at a one-time low purchase price relative to comparable professional audio software, and that these limitations are essential to my willingness to make the app available as a solo-developer product.

10. Indemnification

You agree to defend, indemnify, and hold harmless Meringo Labs LLC, its members, and contributors from and against any claims, damages, losses, and expenses (including reasonable attorneys' fees) arising out of (a) your use of the app, (b) your violation of these Terms, (c) your violation of any third-party right — including any copyright, property, or privacy right — in connection with the music you play through the app, or (d) any content or instruction you transmit through the app to a third-party service.

11. DMCA & Copyright

Meringo Labs LLC respects the intellectual property rights of others and complies with the Digital Millennium Copyright Act. If you believe content available through or in connection with Meringo infringes your copyright, send a notice satisfying 17 U.S.C. § 512(c)(3) to:

DMCA Agent — Meringo Labs LLC
69 Stillwell Ave
Kenmore, NY 14217
United States of America
Email: support@meringo.app

12. Termination

I may suspend or terminate your license to use the app at any time, with or without notice, for any reason, including a violation of these Terms. You may terminate at any time by uninstalling the app. Sections 7 (Intellectual Property), 8 (Warranty Disclaimer), 9 (Liability), 10 (Indemnification), 13 (Governing Law), and 14 (Dispute Resolution) survive termination.

13. Governing Law

These Terms are governed by the laws of the State of New York, United States, without regard to its conflict-of-laws principles. The United Nations Convention on Contracts for the International Sale of Goods does not apply.

14. Dispute Resolution

Before filing a claim, you agree to attempt informal resolution by emailing support@meringo.app with a description of the dispute. We will attempt to resolve the matter within thirty (30) days.

If informal resolution fails, any dispute arising out of or related to these Terms or your use of Meringo shall be resolved exclusively in the state or federal courts located in Erie County, New York, and you consent to personal jurisdiction in those courts. You and Meringo Labs LLC each waive any right to a jury trial.

15. Changes to These Terms

I may update these Terms from time to time. Material changes will be noted by updating the Effective Date at the top of this page and, where practicable, by an in-app notice or release-notes mention. Continued use after a change takes effect constitutes your acceptance of the revised Terms.

16. Severability

If any provision of these Terms is held invalid or unenforceable, the remaining provisions will continue in full force and effect, and the invalid provision will be modified to the minimum extent necessary to make it valid and enforceable while preserving the parties' intent.

17. Entire Agreement

These Terms, together with the Privacy Policy, constitute the entire agreement between you and Meringo Labs LLC regarding the app and supersede any prior agreements.

18. Contact

Questions about these Terms? Write to me directly:

support@meringo.app

Impressum & Legal Notice

In accordance with §5 of the German Telemediengesetz (TMG) and equivalent EU disclosure requirements.

Publisher

Meringo Labs LLC
69 Stillwell Ave
Kenmore, NY 14217
United States of America

Authorized Representative

Adam Siemaszko, Member

Contact

Email: support@meringo.app

Responsible for Editorial Content

Adam Siemaszko (address as above), in accordance with §18(2) of the Medienstaatsvertrag (MStV).

EU Online Dispute Resolution

The European Commission provides a platform for online dispute resolution (ODR) at ec.europa.eu/consumers/odr. Meringo Labs LLC is not obligated and not willing to participate in dispute resolution proceedings before a consumer arbitration board.