# Waveward > Local-first tools for Audacity project files (.aup4 from Audacity 4, .aup3 from Audacity 3): open and play a project, convert it to WAV or MP3, recover a corrupted one, and downgrade an .aup4 so Audacity 3.7 can open it again. Projects are parsed on the user's own device with the File API, a Web Worker and SQLite compiled to WebAssembly — nothing is uploaded. Opening, playing and exporting the stereo mix are free; recovery, downgrading, per-track stems and large projects are a one-time paid license. ## Key facts - No upload: the project never leaves the user's device; the tool keeps working offline after the page loads. - No Audacity required: the project format is read directly, on any OS including macOS and ChromeOS. - Memory, not upload, is the size limit: there is no streaming reader. The whole project is read into the browser tab's memory (the file bytes plus SQLite's in-memory copy, roughly twice the file size) before the mix is rendered, so a multi-gigabyte project needs a 64-bit browser with that much memory free. A project the browser cannot hold fails at the open step with a message saying so; nothing opens partially. - An Audacity project is not an audio file. It is an SQLite database holding audio as immutable blocks plus a binary-encoded XML document describing tracks and clips, so no media player can open one. - Audacity 4.0 (released 3 September 2026) introduced .aup4. It opens .aup3 projects and converts them to .aup4 one way; a converted project cannot be saved back to .aup3, and Audacity 3.7 refuses to open .aup4 at all. - Audacity 3.7 refuses a newer project at two gates: the SQLite user_version field (the Audacity version that wrote the file) and the project document's root `version` attribute (the XML schema version — 1.3.0 in Audacity 3.7, 2.0.0 in Audacity 4). Rewriting both, and dropping the fields Audacity 3 has no reader for, is what makes a downgrade possible. - Audacity 4.0 does not yet include Time Tracks, Note/MIDI tracks, the Mixer, the Macro Manager and scripting pipe, VAMP and LADSPA plugin hosting, or Play-at-speed; its release notes say they are coming back in later releases. That is the usual reason to downgrade a project. - Realtime and master-track effects are NOT rendered here: exports are a dry mix with clip gain and amplitude envelopes applied. A project whose sound depends on plugin effects should be exported from Audacity itself. The number of effects in a project is reported as soon as it opens. - Per-clip time stretching (Audacity 3.4+) is approximated rather than resampled, and the number of stretched clips is reported after each mix. - 16-bit output — PCM WAV, and the 16-bit input the MP3 encoder takes — is rounded with Audacity's own constant: blocks are read as n / 32768 and written as round(f × 32768) clipped to −32768…32767, so a block stored as 16-bit comes back bit for bit. No dither is applied. Audacity's export applies shaped dither by default once a mix changes the samples (an envelope, a volume change, a mixdown, resampling, effects, or a 32-bit float block), so its 16-bit file and this one differ in the last bit on such material; Audacity's MP3 export also feeds LAME 32-bit float rather than 16-bit integers. - Old .aup files from Audacity 1.x and 2.x are a different format: a small XML file plus a separate _data folder holding the audio, so the .aup file alone contains no audio. Audacity 4 cannot import them; converting them needs Audacity 3.7 first. ## Project file internals - Container: SQLite 3, with Audacity's application id (the ASCII bytes AUDY) in the database header at offset 68, and the writing Audacity version packed into user_version at offset 60. - Tables: `project` (the saved document), `autosave` (unsaved changes, what Audacity offers to restore after a crash), `sampleblocks` (the audio), and `project_history` (a few earlier saved documents, added in Audacity 4). - The document is XML stored in a compact binary token stream: a dictionary blob assigns a two-byte id to every element and attribute name, and the document blob references those ids. Structure: a `project` root, `wavetrack` children, then `waveclip`, `sequence`, `waveblock` and `envelope`. - Audio: `sampleblocks` rows hold raw PCM of up to about a megabyte each (roughly five seconds of mono at default settings) in one of three formats — 16-bit, 24-bit stored in four-byte integers, or 32-bit float — plus per-block min/max/RMS statistics and two pre-computed waveform summaries. Blocks are immutable: an edit writes new blocks rather than changing one, which is why project files grow quickly and why the audio usually survives corruption. - Clips record their timeline offset, left and right trims, an amplitude envelope as control points, and (from Audacity 3.4) a stretch ratio and pitch shift. Audacity 4 adds clip groups, a per-clip tempo, a stretch-to-project-tempo flag, a per-clip selection flag, and a per-clip colour index (pre-release 4.0 builds wrote colour as a hex string; the release writes a palette index, as Audacity 3 does). ## .aup3 vs .aup4 - Written by: .aup3 — Audacity 3.0 to 3.7. .aup4 — Audacity 4.0 and newer. - Opens in: .aup3 — Audacity 3 and Audacity 4 (4 converts it to .aup4 on open, one way). .aup4 — Audacity 4 only — Audacity 3.7 refuses it. - Container: .aup3 — SQLite 3 database. .aup4 — SQLite 3 database (same design). - Database version stamp (user_version): .aup3 — The Audacity 3 build that saved it, e.g. 3.7.9. .aup4 — The Audacity 4 build that saved it, e.g. 4.0.0. - Document version attribute: .aup3 — 1.3.0 — unchanged since the .aup era. .aup4 — 2.0.0. - Tables: .aup3 — project, autosave, sampleblocks. .aup4 — project, autosave, sampleblocks, plus project_history (earlier saves). - Audio storage: .aup3 — Immutable sample blocks: 16-bit, 24-bit in four bytes, or 32-bit float. .aup4 — Identical — the blocks are the same bytes. - Clip fields: .aup3 — Offset, trims, envelope; stretch ratio and pitch shift from 3.4. .aup4 — Adds group id, clip tempo, a stretch-to-project-tempo flag and selection state. - Colour: .aup3 — A palette index (colorindex) on the track. .aup4 — A palette index on every clip as well; pre-release 4.0 builds wrote a hex color string, which the release does not. - Unsaved working copy: .aup3 — .aup3unsaved. .aup4 — .aup4unsaved. - Going back: .aup3 — Not needed. .aup4 — Rewrite the two version stamps and drop the Audacity 4 fields; the audio is untouched. - Source: https://aup4.aivismonitor.com/what-is-aup4-file ## Recovering a damaged project - Audacity reports two SQLite failures by number: error code 11 means the database structure is damaged (a page failed to read), and error code 101 means a sample block the project references is missing. - Recovery order: run the SQLite integrity check, then try the saved document, then the autosave copy, then each generation in `project_history` newest first; then census which referenced blocks can actually be read. - Blocks that cannot be read become silent runs in a rebuilt project (Audacity itself encodes silence as a non-positive block id meaning that many samples of nothing), and the report says how many seconds are affected. - Audacity's own recovery utility, audacity-project-tools, is a terminal program (Windows, Linux, and macOS since v1.0.5 in January 2026) written for .aup3: it treats a 4.x version stamp as broken and does not read the project_history saves. Its support article asks for about four times the project's size in free disk space. This tool runs the same checks in a browser on any operating system and reads .aup4 as an Audacity 4 project. - Not every refusal is corruption: Audacity 4.0.0 on Windows cannot open a project whose file name or folder path contains characters outside the system ANSI code page (Cyrillic, Japanese, Hebrew, accented Latin letters — an accented parent folder such as Téléchargements is enough). Its command-line parser decodes the path with that code page instead of UTF-8, so double-clicking the file, or opening it while another project is already open, fails with "Unable to read file" / file not found. macOS and Linux are unaffected, and an existing .aup3 opened for conversion fails the same way (issue 12124: 録音テスト.aup3 refused, the same file renamed test.aup3 converted). Fixes: the parser change in Audacity pull request 11985 (https://github.com/audacity/audacity/pull/11985), approved 10 September 2026, and the maintainers' wider code-page fix in pull request 12115 (https://github.com/audacity/audacity/pull/12115), approved 11 September, which covers recent-files entries, metadata, export errors and preset names but not the parser. As of 14 September 2026 neither is merged and 4.0.0 is still the newest release — check the pull requests before expecting an update to fix it. Workarounds that follow from the cause: move the project to an ASCII-only path, or (per the fix's analysis of issue 11973) open it from File → Open with no other project open. The integrity check here passes on such a file because the database was never touched. ## Sources - ExportMP3.cpp, Audacity 3.7.9: Audacity's MP3 export mixes to floatSample and calls lame_encode_buffer_interleaved_ieee_float (or lame_encode_buffer_ieee_float for mono), so LAME receives 32-bit float samples rather than 16-bit integers. https://github.com/audacity/audacity/blob/Audacity-3.7.9/modules/import-export/mod-mp3/ExportMP3.cpp - Dither.cpp, Audacity 3.7.9: 16-bit conversion uses one constant both ways, CONVERT_DIV16 = 1 << 15: an integer is read as n / 32768, and a float is stored as lrintf(f × 32768) clipped to −32768…32767. The two dither settings default to none (real-time) and shaped (high-quality). https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-math/Dither.cpp - SampleFormat.cpp, Audacity 3.7.9: gHighQualityDither starts as shaped and gLowQualityDither as none; InitDitherers() reloads both from the preferences. https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-math/SampleFormat.cpp - Mix.cpp, Audacity 3.7.9: NeedsDither() decides once per mix: dither is skipped only when no resampling, mixdown to fewer channels, fractional volume, envelope or effect touches the samples and no source's effective format is wider than the output; otherwise a high-quality mixer applies the high-quality dither choice. https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-mixer/Mix.cpp - ExportPluginHelpers.cpp, Audacity 3.7.9: Every export creates its mixer with highQuality set to true, so an export that needs dither uses the high-quality choice — shaped unless the preference was changed. https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-import-export/ExportPluginHelpers.cpp - ProjectFileIO.cpp, Audacity 3.7.9: Gate 1: a user_version newer than the running build is refused with "This project was created with a newer version of Audacity". Gate 2: a document version above AUDACITY_FILE_FORMAT_VERSION 1.3.0 stops the load with "You may need to upgrade to a newer version to open this file". https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-project-file-io/ProjectFileIO.cpp - ProjectFileIO.cpp, Audacity 4.0.0: Audacity 4 writes 2.0.0 as the document version. https://github.com/audacity/audacity/blob/Audacity-4.0.0/au3/libraries/au3-project-file-io/ProjectFileIO.cpp - WaveClip.cpp, Audacity 4.0.0: The clip attributes Audacity 4 writes and a downgrade drops: groupId, clipTempo, clipStretchToMatchTempo and isSelected. Colour is written as a colorindex palette entry, as in Audacity 3. https://github.com/audacity/audacity/blob/Audacity-4.0.0/au3/libraries/au3-wave-track/WaveClip.cpp - Audacity 4.0.0 release notes: "Converted projects cannot be saved back to .aup3", and the list of what is not in 4.0: Time Tracks, Note/MIDI tracks, the Mixer, the Macro Manager and scripting pipe, VAMP and LADSPA plugin hosting, Play-at-speed. https://github.com/audacity/audacity/releases/tag/Audacity-4.0.0 - audacity/audacity issue #8841: An Audacity contributor's tracker issue from May 2025 stating that backwards compatibility from Audacity 4 to Audacity 3 is not planned. https://github.com/audacity/audacity/issues/8841 - audacity-project-tools README (Audacity): Error codes 11 and 101 as Audacity reports them, the recovery command order (-drop_autosave, -check_integrity, -recover_db, -recover_project, -compact), and that Audacity never updates a block. The tool reads the project and autosave tables only; there is no project_history handling. https://github.com/audacity/audacity-project-tools - audacity-project-tools v1.0.5 release notes: macOS support arrived in this release on 27 January 2026, with the supported project version raised to 3.7. https://github.com/audacity/audacity-project-tools/releases/tag/v1.0.5 - AudacityDatabase.cpp in audacity-project-tools: MaxSupportedVersion is 3.7.0.0; a project whose major version is not 3 is reported as a broken user_version and clamped to that ceiling, and the recovered copy is written with it. https://github.com/audacity/audacity-project-tools/blob/main/src/AudacityDatabase.cpp - Audacity support: Recovering corrupted projects: The four-times-the-project-size free disk space guidance and the 15–30 minutes per GB estimate. The article still says macOS is not supported, which the v1.0.5 release superseded. https://support.audacityteam.org/au3/troubleshooting/recovering-corrupted-projects - SQLite result codes: 11 is SQLITE_CORRUPT, the database disk image is malformed. 101 is SQLITE_DONE, what a query returns when no row matches — which is why Audacity reports it for a missing block. https://www.sqlite.org/rescode.html - SqliteSampleBlock.cpp, Audacity 3.7.9: Silent blocks are encoded with a non-positive block id, the representation a rebuilt project uses for audio that could not be read. https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-project-file-io/SqliteSampleBlock.cpp - Audacity pull request 11985: decode command-line arguments as UTF-8: Why Audacity 4.0.0 on Windows cannot open a project whose name or folder path has characters outside the ANSI code page: the command-line parser decoded the path with fromLocal8Bit instead of UTF-8, which on Windows in Qt 6 is the system code page. Double-clicking a project, the single-instance handoff, and opening a project while another is open all go through that parser; macOS and Linux are unaffected. Approved by a maintainer on 10 September 2026. https://github.com/audacity/audacity/pull/11985 - Audacity issue 12004: accented characters in the project path: An accented letter in a parent folder alone (D:\Téléchargements) makes Audacity 4.0.0 report the project as not found or not readable, on an already-converted .aup4 as well as on one converted from .aup3. https://github.com/audacity/audacity/issues/12004 - Audacity issue 11973: Cyrillic project name fails on the first try: The dialogs users see — "Unable to read file" and "Failed to open database file" — and the report that the same project opened on a second attempt, which the fix attributes to File → Open with no project open bypassing the command-line parser. https://github.com/audacity/audacity/issues/11973 - Audacity issue 12124: an .aup3 with a Japanese name fails in Audacity 4 on Windows 11: The refusal is not specific to .aup4: an existing .aup3 named 録音テスト.aup3 could not be opened, its path shown garbled in the error dialog, while the same file renamed to test.aup3 opened and converted. A maintainer asked the reporter to try a build of pull request 12115. https://github.com/audacity/audacity/issues/12124 - Audacity pull request 12115: fix codepage conversion issues: The maintainers' own Windows code-page fix, opened 10 September 2026 and approved 11 September: input device names, metadata fields, translated undo entries, the recent-files records written after opening a project from a non-ASCII path, export error messages, effect preset names and the ffmpeg path. It does not touch the command-line parser, which pull request 11985 changes. Read 14 September 2026: open, not merged; the newest release is 4.0.0. https://github.com/audacity/audacity/pull/12115 - ProjectSerializer.cpp, Audacity 4.0.0: The binary XML stream: a dictionary of two-byte name ids and the 17 field types (16 in Audacity 3, plus the blob type Audacity 4 added). Strings are stored in the writing platform's native width, two or four bytes per character. https://github.com/audacity/audacity/blob/Audacity-4.0.0/au3/libraries/au3-project-file-io/ProjectSerializer.cpp - SampleFormat.h, Audacity 3.7.9: The three sample formats and their codes: int16 0x00020001, int24 0x00040001, float 0x0004000F, with the byte width packed into the upper sixteen bits. https://github.com/audacity/audacity/blob/Audacity-3.7.9/libraries/lib-math/SampleFormat.h - SQLite database file format: The database header layout: user_version at byte offset 60 and application_id at byte offset 68. https://www.sqlite.org/fileformat2.html ## Tools - [Open AUP4 File Online](https://aup4.aivismonitor.com/): Open an Audacity 4 .aup4 or Audacity 3 .aup3 project in your browser: see every track and clip, play the mix, and export WAV or MP3. Nothing is uploaded; the file is read on your own machine. - [AUP4 to MP3](https://aup4.aivismonitor.com/aup4-to-mp3): Convert an Audacity 4 .aup4 project to MP3 in your browser. The project is decoded and encoded on your own machine; nothing is uploaded and Audacity does not need to be installed. - [AUP4 to WAV](https://aup4.aivismonitor.com/aup4-to-wav): Convert an Audacity 4 .aup4 project to a WAV file in your browser, as 16-bit PCM or 32-bit float. Nothing is uploaded and Audacity is not needed. - [AUP3 to MP3](https://aup4.aivismonitor.com/aup3-to-mp3): Convert an Audacity 3 .aup3 project to MP3 in your browser. No Audacity install, no upload — the project database is read and encoded on your own machine. - [AUP3 to WAV](https://aup4.aivismonitor.com/aup3-to-wav): Convert an Audacity 3 .aup3 project to WAV in your browser, as 16-bit PCM or 32-bit float. Nothing is uploaded and Audacity is not required. - [Downgrade AUP4 to AUP3](https://aup4.aivismonitor.com/aup4-to-aup3): Audacity 4 converts projects one way and cannot save back to .aup3. Rewrite an .aup4 project so Audacity 3.7 opens it again, with the audio copied byte for byte. - [Recover a Corrupted Project](https://aup4.aivismonitor.com/recover-audacity-project): "Database disk image is malformed", a missing sample block, a crash before saving — check and recover a damaged Audacity project in your browser, on any operating system. - [What Is an AUP4 File](https://aup4.aivismonitor.com/what-is-aup4-file): An .aup4 file is an Audacity 4 project: one SQLite database holding your audio in blocks plus a binary-encoded document. What is inside it, how it differs from .aup3, and how to open one. ## Pricing - Free: open any .aup4 or .aup3 project the browser tab can hold, see its tracks and clips, play the mix, run the full integrity and recovery report, and export the stereo mix to WAV (16-bit or 32-bit float) or MP3 for projects up to 256 MB. - Pro (one-time $19): rebuild a corrupted project into a clean file Audacity opens, roll back to an earlier save kept inside the project, downgrade .aup4 to .aup3, export every track or every clip as separate files in one ZIP, and export projects larger than 256 MB (still read fully into memory). - Details: https://aup4.aivismonitor.com/#pricing Audacity is a registered trademark of Muse Group. Waveward is an independent tool, not affiliated with or endorsed by Muse Group. About: https://aup4.aivismonitor.com/about Contact: https://aup4.aivismonitor.com/contact Sitemap: https://aup4.aivismonitor.com/sitemap.xml Robots: https://aup4.aivismonitor.com/robots.txt