First-Party Artwork Provenance
First-Party Artwork Provenance
Status
The current embedded 45-image startup collection and About artwork are preserved as claimed Sample Squad first-party assets, but public distribution remains blocked pending an explicit creator/rightsholder attestation. This document identifies the shipping collection and gives the human release owner one place to close that evidence gap without changing code.
Embedded files
| Asset collection | Shipping identity | Current claim |
|---|---|---|
| Startup rotation | Resources/startup_splash_01.png through Resources/startup_splash_45.png |
Shane Sanders / Sample Squad; confirmation pending |
| About artwork | Resources/about.png, SHA-256 19F5BB9176DC4A760E65D6BE5E62A7E60A927634F4D2C61E45E6DD88EE30EF44 |
Shane Sanders / Sample Squad; confirmation pending |
Resources/ReleaseAssetClearance.json is the authoritative per-file inventory. It records the exact SHA-256 of every embedded startup image, and tools/test-release-asset-clearance.ps1 requires a one-to-one match with the SampleSquadAssets CMake block. Adding, removing, renaming, or changing one image therefore blocks packaging until this evidence is reviewed.
Legacy files such as Resources/splash.png, unpadded Resources/startup_splash_2.png, and Resources/SAMPLE-SQUAD_Splash-Screen-1.0_1600x900.png are repository-only. They are not part of the embedded startup rotation and are intentionally absent from the release-clearance manifest.
Required attestation
Before changing these manifest entries to cleared, record the following:
- creator/rightsholder legal name;
- confirmation that the creator/rightsholder owns or has commercial redistribution rights to every visible element;
- confirmation that SpaceAge by Sample Squad may embed and commercially distribute the files;
- source-file location or creation record where available;
- attestation date and signer.
A verbal assumption or this template alone is not clearance. Once signed evidence exists, update this file and Resources/ReleaseAssetClearance.json together, then rerun release hygiene.
Procedural convolution responses
SpaceAge's shared Convolution Reverb does not embed or redistribute recorded impulse-response files. Source/SpaceAgeConvolution.cpp deterministically constructs the spaceage.room.compact.v2 and spaceage.room.deep.v2 stereo responses from fixed reflection timings, fixed numeric seeds, linear-congruential noise generators, filtering, a controlled shared stereo component, and exponential envelopes during prepareToPlay(). External reference IRs may be measured locally for calibration, but are never copied into the repository or release.
These responses are first-party software output with no sampled room, hardware capture, third-party recording, model, or downloaded IR in their construction path. Their stable identifiers and generation constants are part of the source revision; changing those constants changes the factory response identity and requires audible regression review.
tools/test-convolution.ps1 is the focused automated contract for this implementation. It verifies exact direct-FIR output, mono-kernel stereo expansion without cross-talk, direct and JUCE-backed stereo canonicalization that prevents unsupported IR channels from changing normalization or output, JUCE-equivalent and overflow-safe short-kernel normalization, short-kernel sample-rate conversion, allocation-free same-channel, cross-channel, and partially overlapping aliased processing through direct and JUCE-backed paths (including oversized remainder and extra-output-channel cleanup), fixed-versus-variable host-block segmentation invariance, deterministic reset and sample-rate/block-size re-prepare equivalence to a fresh instance, fail-silent engine and wet-return wrapper states (including unprepared, underspecified-channel, extra-channel, and oversized-block calls), non-finite kernel, audio, and host-control containment with subsequent valid-input recovery, finite procedural-room output and stable audible first-reflection timing from the supported 8 kHz minimum through 384 kHz maximum, control behavior, continuous intermediate Size morphing, transition continuity, non-starving output during block-rate Size reversals, nonzero tail energy, stereo decorrelation, and post-reset silence. Its active-performance watchdog renders approximately two seconds at 96 kHz with 1,024-sample blocks, continuous excitation, and block-rate Size reversals while both immutable room histories remain active. It reports the median real-time load from three runs and rejects a catastrophic 2x-over-realtime regression; stricter <1.0 real-time interpretation belongs to an otherwise-idle release machine. tools/run_tests.ps1 -Gate SHARED_EFFECTS_SIGNAL remains the product-level routing and control integration gate.