One-time downloads · $2.99–$9.99 USD. No subscription.

Perunlight

Step-by-step guide

BragiWave

Check a REAPER region render against an audio delivery contract. Define the expected audio filenames, WAV format and duration in a render contract, then check the generated region files against it.

You deliver game or app sounds as one WAV per REAPER region and want a repeatable check that every expected file exists, is fresh, has the agreed format and the exact length, before you send the delivery.

Get BragiWave · $7.99

The guide and practice files are free to read and download. The complete program is in the paid bundle. This update improves the guide and keeps program version 0.1.1 unchanged; existing program permissions remain in force.

See it in use

Check a three-sound REAPER delivery

A screenshot walkthrough with fictional practice data. Select a step to explore.

The contract guidance and the earlier actual REAPER report are separate synthetic demonstrations; macOS and real-audio delivery remain unverified.

1. Start with

Check a three-sound REAPER delivery

Use the ready-named contract and three UI-sound regions.

Sample files and contents

The ready-named examples/bragiwave/bragiwave.contract.json, identical to the unchanged program’s demo contract, and regions.csv. Three UI sounds, 48 kHz, 24-bit PCM stereo, with a 0.25 s tail.

Practice files and guides are free. The complete app is included only where the product page says so.

2. In the app

Illustrated guide table of three synthetic target WAVs and their expected frame counts.
Browser capture of the guide: calculated targets, not a fresh REAPER run. Enlarge image ↗

Try it in three steps

  1. Create and name the three regions in a new REAPER project.
  2. Run Preflight and inspect the contract checks.
  3. Render and verify the planned files.
Show every click and setting
  1. Start a new REAPER project in an empty folder and create three regions exactly as in regions.csv: sfx_ui_click_01 from 0.0 to 0.5 s, sfx_ui_back_01 from 1.0 to 1.75 s and sfx_ui_confirm_01 from 2.5 to 2.9 s. The project may be silent.
  2. Save the project in its own folder, retain WAV 24-bit PCM stereo in the Render dialog, and copy the ready-named bragiwave.contract.json beside the project. Use an empty render folder; Preflight may create it if absent.
  3. Run the BragiWave panel and click Preflight.
  4. Click Render & Verify, then OK in the confirmation.

3. The result

A separate demonstration

The guide’s target is three passing 48 kHz WAV files. The shown REAPER report is an earlier separate synthetic demonstration; real-audio delivery is unverified.

The contract guidance and the earlier actual REAPER report are separate synthetic demonstrations; macOS and real-audio delivery remain unverified.

Earlier REAPER 7.80 Linux synthetic check showing three PASS rows.
Earlier actual REAPER 7.80 Linux capture. A console overlaps part of the image. macOS and real-audio acceptance remain unverified. Enlarge image ↗
What to check in the practice result

Expected synthetic target: 3 planned / 3 observed, 3 pass, 0 fail, 0 missing and 0 unexpected. At 48,000 Hz, 24-bit PCM stereo: sfx_ui_click_01.wav has 36,000 frames, sfx_ui_back_01.wav 48,000 and sfx_ui_confirm_01.wav 31,200. WAVs go into render/ and JSON/text reports into bragiwave-reports/. These targets are calculated from the unchanged contract; this guide revision is not a new native REAPER acceptance run.

See the workflow at a glance

Choose a short explanation, then follow the worked example below. Check the requirements and compatibility before using your own files.

Three regions. Three files. One delivery contract.

Before you send a small sound pack, check the files against the brief. BragiWave follows a render contract for filenames, WAV format and exact frame counts. Its synthetic three-sound example expects 48 kHz, 24-bit stereo files and a quarter-second tail. Walk through Preflight, Render & Verify and the resulting report. This is a structural check, not a listening, loudness or clipping test. REAPER is licensed separately; the verified workflow is REAPER 7.80 on Linux with synthetic audio.

55-second silent illustrated overview. Reference images and educational illustrations explain the documented workflow; this is not a new recording of it.

Read the complete video transcript · Download MP4

View the illustrated card
Three regions. Three files. One delivery contract. — the same explanation written above, with a labelled illustrative panel.
Download the full-size PNG card

Before you start

  • REAPER 7, installed and licensed separately. Checked with REAPER 7.80 on Linux using silent and synthetic test audio; macOS is not checked yet.
  • A saved REAPER project whose regions match the contract, and an empty output folder.
  • The ready-named examples/bragiwave/bragiwave.contract.json practice contract, supplied in both the free guide pack and the complete bundle.
  • The complete bragiwave-0.1.1-guide-20261031.zip download. It contains the unchanged program/bragiwave-preview-20260929.zip (program version 0.1.1).

Your first result

  1. Download and extract your bundle

    Extract bragiwave-0.1.1-guide-20261031.zip, then extract program/bragiwave-preview-20260929.zip into a separate folder. The app/ path below refers to that extracted program folder. GUIDE.html, the ready-named contract and regions.csv are in the outer bundle.

  2. Copy it into REAPER

    In REAPER choose Options › Show REAPER resource path in explorer/finder. Inside its Scripts folder create a folder named BragiWave and copy everything from the package's app folder into it. Keep the lib folder next to the scripts.

  3. Register the actions

    Open Actions › Show action list…, click New action… › Load ReaScript… and load bragiwave_panel.lua (the panel with all buttons). Optionally also load bragiwave_preflight.lua, bragiwave.lua and bragiwave_verify.lua to run the same checks directly.

  4. Prepare the project

    Create the regions the contract describes and save the project; BragiWave refuses unsaved changes. Open REAPER's Render dialog once and set the format the contract needs (for the demo: WAV, 24-bit PCM, stereo), then close it keeping the settings. BragiWave cannot choose the format for you; it checks it afterwards.

  5. Add the contract

    For the demo, copy examples/bragiwave/bragiwave.contract.json from the outer bundle or free guide pack next to the saved project. It already has the required name. Use your own matching contract for real work. If the contract is elsewhere, the first run asks for it and remembers the path.

  6. Run the checks

    Open the BragiWave panel. Preflight (P) checks the project, contract and output folder; it may create the output folder but does not render audio or write a verdict report. Render & Verify (R) first lists the render settings it will change and asks for confirmation. Verify only (V) checks existing files, Reload contract (L) reloads an edited contract, and Esc closes the panel.

  7. Read the result

    Read each file’s PASS, FAIL or MISS result, format and frame count. Render & Verify and Verify only save JSON and text reports in bragiwave-reports beside the project; bragiwave-latest.txt is the readable summary. Preflight writes no verdict report. Verify only cannot establish whether a file is fresh and reports freshness not checked.

  8. What it changes, and removal

    BragiWave changes only REAPER's render settings for the run and puts your own settings back afterwards, also when a render fails. It remembers one preference, the last contract path. To remove it, delete the BragiWave folder from Scripts and remove its actions from the action list; reports stay in each project's bragiwave-reports folder.

A worked example

Deliver three UI sounds

Input: The ready-named examples/bragiwave/bragiwave.contract.json, identical to the unchanged program’s demo contract, and regions.csv. Three UI sounds, 48 kHz, 24-bit PCM stereo, with a 0.25 s tail.

  1. Start a new REAPER project in an empty folder and create three regions exactly as in regions.csv: sfx_ui_click_01 from 0.0 to 0.5 s, sfx_ui_back_01 from 1.0 to 1.75 s and sfx_ui_confirm_01 from 2.5 to 2.9 s. The project may be silent.
  2. Save the project in its own folder, retain WAV 24-bit PCM stereo in the Render dialog, and copy the ready-named bragiwave.contract.json beside the project. Use an empty render folder; Preflight may create it if absent.
  3. Run the BragiWave panel and click Preflight.
  4. Click Render & Verify, then OK in the confirmation.

Expected result: Expected synthetic target: 3 planned / 3 observed, 3 pass, 0 fail, 0 missing and 0 unexpected. At 48,000 Hz, 24-bit PCM stereo: sfx_ui_click_01.wav has 36,000 frames, sfx_ui_back_01.wav 48,000 and sfx_ui_confirm_01.wav 31,200. WAVs go into render/ and JSON/text reports into bragiwave-reports/. These targets are calculated from the unchanged contract; this guide revision is not a new native REAPER acceptance run.

Troubleshooting

A file FAILs with a sample rate or bit depth mismatch.

BragiWave does not change the render format. Open REAPER's Render dialog, choose the format the contract requires (for example WAV 24-bit PCM), keep the settings, empty the output folder and run Render & Verify again.

The output folder is reported as not empty, or an unexpected file is listed.

The contract requires an empty output folder so that old files cannot pass as new. Move the old files away, then render again.

BragiWave refuses to render because the project has unsaved changes.

Save the project first. The contract describes the saved project, so the render must match it.

After switching project tabs a command runs nothing.

The panel reloads the contract and output folder for the newly active project first. Check the header, then choose the command again.

Compatibility & limits

  • Checks structure and length only. It does not listen to or decode audio: no loudness, LUFS, clipping, silence or quality judgement, and no mastering or conversion.
  • Checked in REAPER 7.80 on Linux with synthetic audio; macOS, real projects and audio devices are not checked yet. Work on a copy of the project.
  • No automatic updates: to update, replace the contents of the BragiWave folder with the newer package.
  • The original program keeps its included preview permissions: you may use it, including for real work, but not sell or redistribute it (see PREVIEW-PERMISSION.md). REAPER has its own licence.

Need a hand?

Tell us the product, host application and version, what you tried, and the exact error. Contact support with a fictional example; keep private customer files and passwords out of your message.