# Expressive piano and acoustic drums

These are real recordings at different playing strengths. The files keep the
upstream encoding and recorded levels; Looproom does not manufacture velocity
layers or alternate takes by pitch shifting or adding random gain.

## Piano

Meta Piano, by Meta Platforms, Inc. **CC0 1.0 Universal**.

- [Publisher and license](https://github.com/facebookincubator/Meta-open-sound/tree/251c0be57d5d1b3242b91f53e0cde62ab1cb42d9)
- [Instrument design specification](https://github.com/facebookincubator/Meta-open-sound/blob/251c0be57d5d1b3242b91f53e0cde62ab1cb42d9/systems/instruments/meta-piano/README.md)
- [Reference SFZ velocity map](https://github.com/facebookincubator/Meta-open-sound/blob/251c0be57d5d1b3242b91f53e0cde62ab1cb42d9/systems/instruments/meta-piano/meta-piano.sfz)

Looproom selects 23 root pitches across A0–C8 (no more than four semitones
between roots), with four recorded dynamics per root: 92 original OGG files.
Intermediate notes use pitch shifting, at most two semitones within A0–C8.
Velocity transitions use equal-power crossfades over 16 MIDI velocity steps,
following the source map. The library has no piano round-robin recordings.

## Drums

Virtuosity Drums by Versilian Studios and Karoryfer Samples, performed by
Austin McMahon. **CC0 1.0 Universal**.

- [Publisher and license](https://github.com/sfzinstruments/virtuosity_drums/tree/9f04cf9a734527edfbb0a4eee1f674e45bbf71bc)
- [Overhead microphone mappings](https://github.com/sfzinstruments/virtuosity_drums/tree/9f04cf9a734527edfbb0a4eee1f674e45bbf71bc/Programs/mappings/oh)

The kick and closed hi-hat each use four velocity layers and four original
round-robin takes per layer (32 FLAC files). The snare uses 12 of the source's
36 recorded velocity layers (12 FLAC files); it is not described as round robin.
The source overhead recordings are retained unchanged, with their room tails.
Live hits cycle through alternate takes. Sequenced hits use a stable event key
so realtime playback, WAV exports, and streamed exports choose identical takes.

Each instrument uses a common normalization gain across all its recordings.
This preserves both the recorded dynamic range and variation between takes.
A gentle square-root velocity gain supplies continuous control between layers
and silence at zero velocity. The shared bank decodes once at 48 kHz even when
the output is rendered at a higher sample rate; existing AudioBuffers are reused.

[`sources.json`](sources.json) lists every original download URL, exact commit,
file length, and SHA-256 hash. `scripts/prepare-dynamic-samples.mjs` in the
source repository reproduces the selection and the provenance manifest.
