BragiWave · guide bundle 0.1.1
A delivery check for REAPER regions

Know what your render contains.

Check the filenames, PCM WAV format and exact frame lengths of one region delivery against a written contract.

For sound designers handing off game or app sounds. BragiWave uses REAPER’s own render, then inspects the files it wrote and saves a report you can review.

The demo at a glance
PASS · 3 of 3 files
48 kHz · 24-bit PCM · stereo
Exact frame counts below

Free guide and practice pack. The program is supplied separately in the complete BragiWave bundle. The inner-ZIP instructions below refer to that bundle. Previously obtained copies retain their original rights.

01 / Get ready

From ZIP to a saved project

This is a silent synthetic exercise. Your own project needs its own contract and a listening pass.

1

Extract twice

Extract this guide bundle, then extract program/bragiwave-preview-20260929.zip. In the inner folder, keep app/lib beside the four app/*.lua scripts.

2

Register one action

In REAPER 7, open Actions → Show action list → New action → Load ReaScript. Select app/bragiwave_panel.lua. The other three scripts are optional direct actions.

3

Set the WAV format

Open REAPER’s Render dialog and select WAV, 24-bit PCM, stereo for this demo. Close it with those settings retained. BragiWave sets render bounds and sample rate for the run, but does not select bit depth or the WAV format.

Keep the project in its own folder. The example contract uses a render output folder beside the saved project. Start with that folder empty; Preflight may create it if it does not exist.

02 / Make the example

Three regions, one contract

The file here is already named exactly as BragiWave expects. It is byte-for-byte equivalent to the demo contract inside the program.

  1. Create and save the regions

    In a new REAPER project, create three regions with the names and time bounds below. Save the project as bragiwave-demo.RPP in a new folder. The project may contain silence for this structural check.

  2. Place the contract beside the project

    Copy bragiwave.contract.json into that project folder. The resulting layout should be:

    bragiwave-demo/
    ├── bragiwave-demo.RPP
    └── bragiwave.contract.json
        (BragiWave creates render/ and bragiwave-reports/ as needed)
  3. Run, confirm, inspect

    Open the BragiWave panel action. Select Preflight; resolve any listed errors. Then select Render & Verify and confirm the render. Read the panel verdict and the report in bragiwave-reports/.

The source region list is also in regions.csv.

03 / Read the outcome

What a pass looks like

The table gives the exact synthetic target, so the result stays readable on a phone. It is an expectation, not a live check of your files.

PASS3 planned / 3 observed · 3 pass, 0 fail, 0 missing, 0 unexpected
Region and WAVStart → endExpected frames, including 0.25 s tail
sfx_ui_click_01.wav0.00 → 0.50 s36,000
sfx_ui_back_01.wav1.00 → 1.75 s48,000
sfx_ui_confirm_01.wav2.50 → 2.90 s31,200
Every WAV: 48,000 Hz · 24-bit PCM · 2 channels. The frame totals are region duration plus 0.25 s, multiplied by 48,000.
Actual Linux REAPER capture of BragiWave listing three PASS rows with frame counts 36000, 48000 and 31200; a separate REAPER console overlaps the top right
Actual REAPER 7.80 Linux synthetic check. The console overlaps part of the capture. Open the full image to inspect it.

Swipe the image horizontally on a narrow screen. The accessible table above holds the same file targets.

Find the report: bragiwave-reports/bragiwave-latest.txt is the readable summary; the matching .json is for diffing or attaching. Preflight writes no report. Render & Verify records a pre-render snapshot for freshness; Verify only checks existing files without proving freshness.

04 / Recover

If you do not get PASS

Read the issue code and affected file in the report, fix the cause, then use a clean output folder for the next render.

Preflight says the project is unsaved or dirty

Save the project after making or moving regions, then run Preflight again. The demo contract expects the three names and bounds shown above.

The contract is missing or invalid

Check that bragiwave.contract.json is beside bragiwave-demo.RPP and is valid JSON. Use Reload contract after editing it. Keep the original demo contract available for comparison.

The output folder is occupied, or a WAV is unexpected

Move the previous files out of render/, leaving it empty, then run Render & Verify again. BragiWave refuses an occupied output for this contract so an older render cannot masquerade as fresh.

A file has the wrong format or frame count

For format failures, select WAV and 24-bit PCM stereo in REAPER’s Render dialog and rerun from an empty output folder. For frame failures, compare the region start and end with the table above and check the issue in the text report.

You switched REAPER project tabs

The panel reloads the newly active project first. Check its contract and output rows, then select your command again.

Scope

What this check establishes

BragiWave checks expected filenames, file count, WAV structure, PCM geometry and frame counts against the contract. It does not inspect samples or listen. Loudness, clipping, silence, phase, tails and creative quality still need your own listening and acceptance pass.

REAPER is licensed separately. The program was checked with REAPER 7.80 on Linux using synthetic material; macOS, real projects and audio devices remain unverified. Work on a copy of a project. The inner program retains its original preview permissions and license notices; the guide bundle does not add activation or change those rights.

For installation details and report definitions, read app/README.md and app/docs/CONTRACT.md in the inner ZIP. To remove the program, delete its Scripts folder and remove its actions from REAPER’s action list; reports in project folders remain.