Skip to content

ahme-dev/flacoff

Repository files navigation

FLACOFF

CUE-based FLAC processor to split multi-track files or merge individual tracks

Why

Audio albums are sometimes distributed as single FLAC files with CUE sheets for track information or as separate FLAC files with no CUE sheet. And you might want the opposite of one or the other.

To do that you need to install applications, which don't support both usecases, or require fiddling with the shell or even manual CUE editing. There are, of course, also websites that do this, but they require you to not only expose your files, but also having to download them again.

FLACOFF is in essence a way to process FLAC files in both directions, entirely on your device, without uploading anything to a server, without installing anything (unless you specifically want the desktop app provided), and without manual editing.

Usage

Web Interface

Visit the website linked in the repo to process files directly in your browser. All processing happens client-side using WASM, offline through PWA.

Build from source (requires bun, meson, ninja, emscripten):

make web-build

The output in web/dist can be deployed to any static file host (GitHub Pages, Netlify, Vercel, etc.).

Docker (requires docker):

docker build -t flacoff .
docker run -p 8080:80 flacoff

Then visit http://localhost:8080

Desktop Application

Download from the releases page for your platform.

Build from source (requires meson, ninja, wxWidgets 3.0+):

make wx-build

Features

  • Take a single file flac and split it according to the embedded or separate file cue info.
  • Merge a list of flac files into a single file, and create a cue file (or embed) if it doesn't already exist.

Architecture

web -> wasm -+               +-> cue
             +-> operations -+
 wx ---------+               +-> codec_flac -> libFLAC

Contributing

Prerequisites

Core: meson, ninja

Desktop app: wxWidgets 3.0+

Web app: bun, emscripten

Development: inotifywait (for watch modes)

Development Workflow

All common tasks use the Makefile. Run make to see available commands.

First time setup requires installing web dependencies: cd web && bun install

About

WASM CUE-based FLAC processor to split multi-track files or merge individual tracks

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Generated from ahme-dev/template-cpp