bitKlavier Grand Piano Sample Library Piano Bar Mic Image Daniel Trueman dtrueman@princeton.edu Samples collected between January 13 and January 20, 2021 Taplin Auditorium, Princeton University, Princeton, NJ USA File Listing All .wav audio files, recorded at 96k sampling rate, 24bit A0v1.wav C1v14.wav D#1v4.wav F#2v9.wav harmD#2v2.wav A0v10.wav C1v15.wav D#1v5.wav F#3v1.wav harmD#2v3.wav A0v11.wav C1v16.wav D#1v6.wav F#3v10.wav harmD#3v1.wav A0v12.wav C1v2.wav D#1v7.wav F#3v11.wav harmD#3v2.wav A0v13.wav C1v3.wav D#1v8.wav F#3v12.wav harmD#3v3.wav A0v14.wav C1v4.wav D#1v9.wav F#3v13.wav harmD#4v1.wav A0v15.wav C1v5.wav D#2v1.wav F#3v14.wav harmD#4v2.wav A0v16.wav C1v6.wav D#2v10.wav F#3v15.wav harmD#4v3.wav A0v2.wav C1v7.wav D#2v11.wav F#3v16.wav harmD#5v1.wav A0v3.wav C1v8.wav D#2v12.wav F#3v2.wav harmD#5v2.wav A0v4.wav C1v9.wav D#2v13.wav F#3v3.wav harmD#5v3.wav A0v5.wav C2v1.wav D#2v14.wav F#3v4.wav harmD#6v1.wav A0v6.wav C2v10.wav D#2v15.wav F#3v5.wav harmD#6v2.wav A0v7.wav C2v11.wav D#2v16.wav F#3v6.wav harmD#6v3.wav A0v8.wav C2v12.wav D#2v2.wav F#3v7.wav harmD#7v1.wav A0v9.wav C2v13.wav D#2v3.wav F#3v8.wav harmD#7v2.wav A1v1.wav C2v14.wav D#2v4.wav F#3v9.wav harmD#7v3.wav A1v10.wav C2v15.wav D#2v5.wav F#4v1.wav harmF#1v1.wav A1v11.wav C2v16.wav D#2v6.wav F#4v10.wav harmF#1v2.wav A1v12.wav C2v2.wav D#2v7.wav F#4v11.wav harmF#1v3.wav A1v13.wav C2v3.wav D#2v8.wav F#4v12.wav harmF#2v1.wav A1v14.wav C2v4.wav D#2v9.wav F#4v13.wav harmF#2v2.wav A1v15.wav C2v5.wav D#3v1.wav F#4v14.wav harmF#2v3.wav A1v16.wav C2v6.wav D#3v10.wav F#4v15.wav harmF#3v1.wav A1v2.wav C2v7.wav D#3v11.wav F#4v16.wav harmF#3v2.wav A1v3.wav C2v8.wav D#3v12.wav F#4v2.wav harmF#3v3.wav A1v4.wav C2v9.wav D#3v13.wav F#4v3.wav harmF#4v1.wav A1v5.wav C3v1.wav D#3v14.wav F#4v4.wav harmF#4v2.wav A1v6.wav C3v10.wav D#3v15.wav F#4v5.wav harmF#4v3.wav A1v7.wav C3v11.wav D#3v16.wav F#4v6.wav harmF#5v1.wav A1v8.wav C3v12.wav D#3v2.wav F#4v7.wav harmF#5v2.wav A1v9.wav C3v13.wav D#3v3.wav F#4v8.wav harmF#5v3.wav A2v1.wav C3v14.wav D#3v4.wav F#4v9.wav harmF#6v1.wav A2v10.wav C3v15.wav D#3v5.wav F#5v1.wav harmF#6v2.wav A2v11.wav C3v16.wav D#3v6.wav F#5v10.wav harmF#6v3.wav A2v12.wav C3v2.wav D#3v7.wav F#5v11.wav harmF#7v1.wav A2v13.wav C3v3.wav D#3v8.wav F#5v12.wav harmF#7v2.wav A2v14.wav C3v4.wav D#3v9.wav F#5v13.wav harmF#7v3.wav A2v15.wav C3v5.wav D#4v1.wav F#5v14.wav pedalD1.wav A2v16.wav C3v6.wav D#4v10.wav F#5v15.wav pedalD2.wav A2v2.wav C3v7.wav D#4v11.wav F#5v16.wav pedalU1.wav A2v3.wav C3v8.wav D#4v12.wav F#5v2.wav pedalU2.wav A2v4.wav C3v9.wav D#4v13.wav F#5v3.wav rel1.wav A2v5.wav C4v1.wav D#4v14.wav F#5v4.wav rel10.wav A2v6.wav C4v10.wav D#4v15.wav F#5v5.wav rel11.wav A2v7.wav C4v11.wav D#4v16.wav F#5v6.wav rel12.wav A2v8.wav C4v12.wav D#4v2.wav F#5v7.wav rel13.wav A2v9.wav C4v13.wav D#4v3.wav F#5v8.wav rel14.wav A3v1.wav C4v14.wav D#4v4.wav F#5v9.wav rel15.wav A3v10.wav C4v15.wav D#4v5.wav F#6v1.wav rel16.wav A3v11.wav C4v16.wav D#4v6.wav F#6v10.wav rel17.wav A3v12.wav C4v2.wav D#4v7.wav F#6v11.wav rel18.wav A3v13.wav C4v3.wav D#4v8.wav F#6v12.wav rel19.wav A3v14.wav C4v4.wav D#4v9.wav F#6v13.wav rel2.wav A3v15.wav C4v5.wav D#5v1.wav F#6v14.wav rel20.wav A3v16.wav C4v6.wav D#5v10.wav F#6v15.wav rel21.wav A3v2.wav C4v7.wav D#5v11.wav F#6v16.wav rel22.wav A3v3.wav C4v8.wav D#5v12.wav F#6v2.wav rel23.wav A3v4.wav C4v9.wav D#5v13.wav F#6v3.wav rel24.wav A3v5.wav C5v1.wav D#5v14.wav F#6v4.wav rel25.wav A3v6.wav C5v10.wav D#5v15.wav F#6v5.wav rel26.wav A3v7.wav C5v11.wav D#5v16.wav F#6v6.wav rel27.wav A3v8.wav C5v12.wav D#5v2.wav F#6v7.wav rel28.wav A3v9.wav C5v13.wav D#5v3.wav F#6v8.wav rel29.wav A4v1.wav C5v14.wav D#5v4.wav F#6v9.wav rel3.wav A4v10.wav C5v15.wav D#5v5.wav F#7v1.wav rel30.wav A4v11.wav C5v16.wav D#5v6.wav F#7v10.wav rel31.wav A4v12.wav C5v2.wav D#5v7.wav F#7v11.wav rel32.wav A4v13.wav C5v3.wav D#5v8.wav F#7v12.wav rel33.wav A4v14.wav C5v4.wav D#5v9.wav F#7v13.wav rel34.wav A4v15.wav C5v5.wav D#6v1.wav F#7v14.wav rel35.wav A4v16.wav C5v6.wav D#6v10.wav F#7v15.wav rel36.wav A4v2.wav C5v7.wav D#6v11.wav F#7v16.wav rel37.wav A4v3.wav C5v8.wav D#6v12.wav F#7v2.wav rel38.wav A4v4.wav C5v9.wav D#6v13.wav F#7v3.wav rel39.wav A4v5.wav C6v1.wav D#6v14.wav F#7v4.wav rel4.wav A4v6.wav C6v10.wav D#6v15.wav F#7v5.wav rel40.wav A4v7.wav C6v11.wav D#6v16.wav F#7v6.wav rel41.wav A4v8.wav C6v12.wav D#6v2.wav F#7v7.wav rel42.wav A4v9.wav C6v13.wav D#6v3.wav F#7v8.wav rel43.wav A5v1.wav C6v14.wav D#6v4.wav F#7v9.wav rel44.wav A5v10.wav C6v15.wav D#6v5.wav harmA0v1.wav rel45.wav A5v11.wav C6v16.wav D#6v6.wav harmA0v2.wav rel46.wav A5v12.wav C6v2.wav D#6v7.wav harmA0v3.wav rel47.wav A5v13.wav C6v3.wav D#6v8.wav harmA1v1.wav rel48.wav A5v14.wav C6v4.wav D#6v9.wav harmA1v2.wav rel49.wav A5v15.wav C6v5.wav D#7v1.wav harmA1v3.wav rel5.wav A5v16.wav C6v6.wav D#7v10.wav harmA2v1.wav rel50.wav A5v2.wav C6v7.wav D#7v11.wav harmA2v2.wav rel51.wav A5v3.wav C6v8.wav D#7v12.wav harmA2v3.wav rel52.wav A5v4.wav C6v9.wav D#7v13.wav harmA3v1.wav rel53.wav A5v5.wav C7v1.wav D#7v14.wav harmA3v2.wav rel54.wav A5v6.wav C7v10.wav D#7v15.wav harmA3v3.wav rel55.wav A5v7.wav C7v11.wav D#7v16.wav harmA4v1.wav rel56.wav A5v8.wav C7v12.wav D#7v2.wav harmA4v2.wav rel57.wav A5v9.wav C7v13.wav D#7v3.wav harmA4v3.wav rel58.wav A6v1.wav C7v14.wav D#7v4.wav harmA5v1.wav rel59.wav A6v10.wav C7v15.wav D#7v5.wav harmA5v2.wav rel6.wav A6v11.wav C7v16.wav D#7v6.wav harmA5v3.wav rel60.wav A6v12.wav C7v2.wav D#7v7.wav harmA6v1.wav rel61.wav A6v13.wav C7v3.wav D#7v8.wav harmA6v2.wav rel62.wav A6v14.wav C7v4.wav D#7v9.wav harmA6v3.wav rel63.wav A6v15.wav C7v5.wav F#1v1.wav harmA7v1.wav rel64.wav A6v16.wav C7v6.wav F#1v10.wav harmA7v2.wav rel65.wav A6v2.wav C7v7.wav F#1v11.wav harmA7v3.wav rel66.wav A6v3.wav C7v8.wav F#1v12.wav harmC1v1.wav rel67.wav A6v4.wav C7v9.wav F#1v13.wav harmC1v2.wav rel68.wav A6v5.wav C8v1.wav F#1v14.wav harmC1v3.wav rel69.wav A6v6.wav C8v10.wav F#1v15.wav harmC2v1.wav rel7.wav A6v7.wav C8v11.wav F#1v16.wav harmC2v2.wav rel70.wav A6v8.wav C8v12.wav F#1v2.wav harmC2v3.wav rel71.wav A6v9.wav C8v13.wav F#1v3.wav harmC3v1.wav rel72.wav A7v1.wav C8v14.wav F#1v4.wav harmC3v2.wav rel73.wav A7v10.wav C8v15.wav F#1v5.wav harmC3v3.wav rel74.wav A7v11.wav C8v16.wav F#1v6.wav harmC4v1.wav rel75.wav A7v12.wav C8v2.wav F#1v7.wav harmC4v2.wav rel76.wav A7v13.wav C8v3.wav F#1v8.wav harmC4v3.wav rel77.wav A7v14.wav C8v4.wav F#1v9.wav harmC5v1.wav rel78.wav A7v15.wav C8v5.wav F#2v1.wav harmC5v2.wav rel79.wav A7v16.wav C8v6.wav F#2v10.wav harmC5v3.wav rel8.wav A7v2.wav C8v7.wav F#2v11.wav harmC6v1.wav rel80.wav A7v3.wav C8v8.wav F#2v12.wav harmC6v2.wav rel81.wav A7v4.wav C8v9.wav F#2v13.wav harmC6v3.wav rel82.wav A7v5.wav D#1v1.wav F#2v14.wav harmC7v1.wav rel83.wav A7v6.wav D#1v10.wav F#2v15.wav harmC7v2.wav rel84.wav A7v7.wav D#1v11.wav F#2v16.wav harmC7v3.wav rel85.wav A7v8.wav D#1v12.wav F#2v2.wav harmC8v1.wav rel86.wav A7v9.wav D#1v13.wav F#2v3.wav harmC8v2.wav rel87.wav C1v1.wav D#1v14.wav F#2v4.wav harmC8v3.wav rel88.wav C1v10.wav D#1v15.wav F#2v5.wav harmD#1v1.wav rel9.wav C1v11.wav D#1v16.wav F#2v6.wav harmD#1v2.wav C1v12.wav D#1v2.wav F#2v7.wav harmD#1v3.wav C1v13.wav D#1v3.wav F#2v8.wav harmD#2v1.wav License: CC BY 4.0 International Methodology: Piano Bar: Earthworks—omni-directionals This microphone system suspends omnidirectional microphones within the piano. The bar is placed across the harp near the hammers and provides a low string / high string player’s perspective. It also produces a close sound without room or lid interactions. It can be panned across an artificial stereophonic perspective effectively in post-production. The session was recorded using ProTools at 96k/24bit. Between 20–30 samples were recorded for each note (every minor third, starting at A0), with the aim of creating 16 velocity layers, relatively evenly distributed across the dynamic range of the instrument. Individual samples for hammers, pedals, and resonance on key release were also recorded at multiple loudnesses. The piano was tuned (equal temperament, A440) before and between the sessions. The main samples were coarsely edited and exported in Logic Pro, choices made based on relative loudnesses (measured as RMS in Logic Pro’s Multimeter) in an effort to evenly divide the dynamic range for each note but also to balance that division across the range of the keyboard (so, for instance, velocity of 64 sounds similarly loud across adjacent notes). This was a fairly laborious process involving multiple spreadsheets and comparisons before the final 16 velocity layers were chosen for each note. Some analysis took place at this stage to measure offsets from an even distribution, to be used later to further rebalance the velocity layering. Hammer samples were individually edited, as were samples for the resonance releases (where the attacks were cut off and only the ring after key release retained, with 100ms fade in and out enveloping) and pedal sounds. All the samples were batch denoised with iZotope RX8’s spectral denoise tool, to remove room and mic noise. They were further individually denoised to remove stray clicks and thumps as needed, using RX8’s spectral repair tool. The main pitched samples (not the hammers, pedals, or release resonance samples) were batch edited in Python, using the Essentia library to detect onsets and consistently trim leading silence before the attacks, and also to add short attack (5ms) and release (100ms) fades. The velocity layers in the main pitched samples were further rebalanced using the data created in the first exporting stage; another script in Python made small adjustments (usually <2dB) to the gains of all the samples so that they were evenly distributed, soft to loud, and so they matched as well as possible across the keyboard (softest notes balanced along the full compass of the instrument, loudest, and so on). These were all tested by ear using an automated playback system so bitKlavier could be played at the exact same velocity from note to note, or with the exact same velocity difference on a single note. At every stage of this processing, the samples were saved at 96k/32b, to minimize artifacts. File Naming Convention C4 = middle C Main note names: [note name][octave]v[velocity].wav e.g., “D#5v13.wav” Release resonance notes: harm[note name][octave]v[velocity].wav e.g., “harmC2v2.wav” Hammer samples: rel[1-88].wav (one per key) e.g., “rel23.wav” Pedal samples: pedal[D/U][velocity].wav e.g., “pedalU2.wav” => pedal release (U = up), velocity = 2