Skip to content

Experiment 002: Receipt Rave — the sub has a receipt - #2

Merged
EmergentMonk merged 3 commits into
mainfrom
experiment-002-receipt-rave
Oct 1, 2026
Merged

EmergentMonk merged 3 commits into
mainfrom
experiment-002-receipt-rave

Conversation

@EmergentMonk

@EmergentMonk EmergentMonk commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

RANDO's second context-guided experiment is Receipt Rave: a playable industrial micro-tracker with five synthetic voices, deterministic PCM16 audio, 432 Hz A-minor tuning, exact lead-delay variants, an eight-trial ABX listening game, and SHA-256 receipts that replay in the browser or Node.

The model inferred the build from recurring music, tracker timing, CPU, and evidence themes. Experiment 001's code and record remain available. The experiment record distinguishes this software intervention from uncollected human preference and listening results.

Validation: local and GitHub Actions node --test pass 14/14 tests. Coverage includes the original three tests, frozen score/PCM/WAV hashes, identical controls, nonzero delay changes, four seeds at every tempo, receipt mutations, and damaged external WAV rejection. FFprobe recognizes the default export as mono PCM16 at 24 kHz.

After merge, the test-gated Pages deployment succeeded. The hosted browser produced the same default PCM hashes as Node. Playback started, the one-character tamper was rejected, ABX settings and answers were gated, and a scripted eight-trial session completed and unlocked export. These scripted answers are UI checks, not human listening evidence. Browser download capture and receipt file-import automation were inconclusive due to browser-tool timeouts; the CLI render/verify flow and shared byte encoders are tested.

The previously configured Pages URL returned 404. The existing Experiments workflow now deploys the static repository after successful main-branch replay checks. Live artifact: https://qsolkcb.github.io/RANDO/experiment-002/

No package install, build step, external samples, or model calls are required by the artifact. Method, replay commands, limits, and comedic release notes are in experiment-002/.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @EmergentMonk, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 2 days and 1 hour by commenting @sourcery-ai review. Upgrade to get a review now.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-01T18:17:57.690124Z 9d3a75e PR opened
🔒 Security Review ✅ Completed 2026-10-01T18:17:04.712744Z 9d3a75e PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@sourcery-ai

sourcery-ai Bot commented Oct 1, 2026

Copy link
Copy Markdown

Reviewer's Guide

Introduces Receipt Rave, a dependency-free deterministic five-voice tracker with browser ABX listening trials, SHA-256 replay receipts, Node verification, comprehensive golden-vector tests, CI coverage, and documentation linking it alongside Experiment 001.

Sequence diagram for deterministic render and receipt verification

sequenceDiagram
  participant User
  participant App as Browser or CLI
  participant Core as core.mjs
  participant Hash as WebCrypto SHA256

  User->>App: forge or render config
  App->>Core: config(input)
  Core-->>App: normalized settings
  App->>Core: render(config)
  Core-->>App: reference PCM and score
  App->>Core: render(config, true)
  Core-->>App: shifted PCM and score
  App->>Core: makeReceipt(config)
  Core->>Hash: sha256(score, PCM, WAV bytes)
  Hash-->>Core: hashes
  Core-->>App: receipt
  User->>App: verify receipt
  App->>Core: verifyReceipt(receipt)
  Core->>Core: regenerate expected receipt
  Core-->>App: verified or mismatches
Loading

Sequence diagram for the eight-trial ABX listening game

sequenceDiagram
  actor Listener
  participant UI as Browser UI
  participant Audio as Web Audio
  participant Session as ABX session

  Listener->>UI: Start blind session
  UI->>Session: nextTrial()
  loop 8 trials
    Listener->>UI: Play A, B, and X
    UI->>Audio: play(which, label)
    Audio-->>UI: Playback started
    UI->>Session: Record audition
    Listener->>UI: Guess X is A or B
    UI->>Session: trial(bit, choice)
    Session-->>UI: Record answer
    UI->>Session: nextTrial()
  end
  UI->>Session: finish()
  Session-->>Listener: Reveal score and export listening record
Loading

File-Level Changes

Change Details Files
Added a deterministic industrial micro-tracker with browser playback, score visualization, configurable synthesis, exact lead-delay variants, and downloadable audio artifacts.
  • Implemented five procedural voices over a 64-step, four-bar score.
  • Added A-minor tuning at 432 Hz, supported tempos and delays, cumulative frame timing, and mono PCM16 WAV generation.
  • Added browser controls for forging, playback, URL-based replay settings, waveform/tracker display, and artifact downloads.
experiment-002/core.mjs
experiment-002/app.mjs
experiment-002/index.html
experiment-002/style.css
Added receipt-based reproducibility and verification for generated scores and audio.
  • Defined the v1 receipt schema with canonical score, PCM, WAV, render-statistics, engine, and configuration hashes.
  • Implemented dependency-free Node rendering and verification, including optional exact external WAV byte checks.
  • Added browser receipt validation and a tamper demonstration, with documented trust and provenance limitations.
experiment-002/core.mjs
experiment-002/cli.mjs
experiment-002/EXPERIMENT.md
experiment-002/RELEASE_NOTES.md
Added an informal eight-trial ABX listening experiment with exported session evidence.
  • Randomized X-to-A/B assignments per trial while requiring A, B, and X auditions before answers.
  • Recorded answers, mappings, playback starts, gain, and device sample rate in a listening-record export.
  • Handled the zero-delay identical-reference control separately and documented experimental limitations.
experiment-002/app.mjs
experiment-002/core.mjs
experiment-002/index.html
experiment-002/EXPERIMENT.md
Expanded automated validation and continuous integration for both experiments.
  • Added deterministic golden-vector, timing, corpus, WAV-format, schema-validation, ABX, tamper, and CLI file-integrity tests.
  • Added Node 22 CI execution for pushes and pull requests affecting experiment or test files.
test/receipt-rave.test.mjs
.github/workflows/experiments.yml
Integrated Experiment 002 into the repository documentation and Experiment 001 landing page.
  • Added links, local serving instructions, replay commands, and dependency/build disclosures.
  • Preserved Experiment 001 while linking to the new playable experiment and its record.
README.md
index.html

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@EmergentMonk
EmergentMonk merged commit fa7ef87 into main Oct 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant