/** * The Welte-Mignon T-100, the red Welte, as a reproducing system: the * system that plays a version (`welteT100System`), the options it takes, * and the instruments its emulator was fitted as. It needs the optional * peer dependency welte-mignon-emulator. * * @module linked-rolls/welte-t100 */ import { Half, Parameters } from "welte-mignon-emulator"; import { Instrument, RollNumber } from "welte-mignon-emulator/t100"; import { NegotiatedEvent, Performance, ReproducingSystem, RollProperties } from "../ReproducingSystem.js"; import { type WelteOptions } from "../welte.js"; export type { VelocityMap } from "../velocity.js"; export { pedalPresetOf, pedalPresets, secondsAt, type PedalPreset, type WelteOptions } from "../welte.js"; /** * An instrument the T-100 emulator was fitted as: its nuancing constants * for each half of the keyboard, and what they were fitted to and how * well. * @category Systems and emulation */ export type { Instrument } from "welte-mignon-emulator/t100"; /** * An instrument the T-100 emulator was fitted as, by name: the * consensus, or the setting that drew one roll's nuance lines, by the * roll's Welte number. * @category Systems and emulation */ export type InstrumentName = 'consensus' | RollNumber; /** * The instruments the emulator was fitted as: the consensus over the six * rolls with drawn nuance lines, and the setting that drew each of them, * named by the roll's Welte number. The provenance beside each says what * it was fitted to and how well. * @category Systems and emulation */ export declare const instruments: Readonly>; /** * The instruments by name, the consensus first. * @category Systems and emulation */ export declare const instrumentNames: readonly InstrumentName[]; /** * The nuancing constants of an instrument, one set for each half of the keyboard. * @category Systems and emulation */ export declare const nuanceOf: (instrument: Instrument) => Record; /** * The instrument a pair of nuancing constants belongs to, if it is one. * @category Systems and emulation */ export declare const instrumentNameOf: (nuance: Record) => InstrumentName | undefined; /** * The T-100 takes the options every Welte system does; see `WelteOptions`. * @category Systems and emulation */ export type WelteT100Options = WelteOptions; /** * The options the T-100 plays a version with unless others are given: * Welte's spool, the consensus instrument, the damping pedals as a * continuous controller, and the keyboard divided at track 54. * @category Systems and emulation */ export declare const defaultWelteT100Options: WelteT100Options; /** * The mechanism, given a way of naming the instrument on the curves it * produces and whether the spool it is given is that instrument's own. The * Licensee reads the same commands and is played by the same valves, so it * shares this; what it may not share is the name, since a Licensee playback * runs on constants fitted to Freiburg instruments and the curve has to say * so, nor the spool, which is the red one it carries over. * @internal */ export declare const performAs: (instrumentOf: (nuance: Record) => string, ownSpool?: boolean) => (events: readonly NegotiatedEvent[], options: WelteT100Options, roll: RollProperties) => Performance; /** * The red Welte, as welte-mignon-emulator models it: the take-up spool sets * the time axis, the Nuancierbälge fill through their conduits and are * arrested by the Mezzoforte pin, and the two pedals travel rather than * switch. The constants are the consensus fitted across the hand-drawn * nuance lines of six rolls, with the terms that describe the drawing * apparatus switched off; `instruments` offers each roll's own setting. * @category Systems and emulation */ export declare const welteT100System: ReproducingSystem;