import { ReproducingSystem } from "../ReproducingSystem.js"; import { type WelteT100Options } from "../welteT100/system.js"; /** * The Licensee takes the options of the T-100, whose mechanism it * shares; see `WelteOptions`. * @category Systems and emulation */ export type WelteLicenseeOptions = WelteT100Options; /** * The one instrument on offer, and it is not a Licensee instrument. * * These are the T-100 consensus constants, fitted across the hand-drawn * nuance lines of six rolls played on Freiburg instruments. Nothing here was * measured on a Licensee: no Licensee roll is known to carry a drawn line, no * Licensee instrument has been fitted, and the published prior art does not * agree with itself — the same 186 ms is a part stroke in midi2exp and a whole * stroke in pianolatron, a factor of 2.2. * * So a Licensee playback is a Freiburg reading of American paper, and the * union has one arm to keep that visible. Nothing should be published from it. * @category Systems and emulation */ export declare const instruments: { unfitted: { 'welte-t100-consensus': import("welte-mignon-emulator/t100").Instrument; }; }; /** * The one instrument on offer for the Licensee by name: the T-100 * consensus, named as unfitted. * @category Systems and emulation */ export type WelteLicenseeInstrumentName = { unfitted: 'welte-t100-consensus'; }; /** * The names of the instruments on offer for the Licensee, of which * there is one. * @category Systems and emulation */ export declare const instrumentNames: readonly WelteLicenseeInstrumentName[]; /** * Welte's own spool is carried over with the constants. Phillips (p. 181) says * Licensee rolls "play at a range of paper speeds", so there is no one figure * to put here and the red geometry is a placeholder rather than a reading. * It is therefore never played as it stands where anything better is known: * a speed stated for the version's copies, as a Licensee label states its * tempo, sets where it starts, and failing that a re-cut runs at the speed of * the roll it was re-cut from times the length ratio, so that it sounds at * that roll's tempo (`spoolFor`). Either way only its geometry is used, and * that is better varied than trusted: it scales every conductance by k and * every time constant by 1/k, and touches nothing dimensionless. * @category Systems and emulation */ export declare const defaultWelteLicenseeOptions: WelteLicenseeOptions; /** * Welte-Mignon (Licensee), the American re-cut. It keeps the T-100's * lock-and-cancel coding on 98 tracks — which is what separates it from the * green, the coding rule rather than the track count (Phillips, Table 4.3) — * so it reads the same commands and is played by the same mechanism. * * What it does not have is an instrument of its own. The constants are the * T-100's, the spool is the T-100's, and neither has ever been checked against * a Licensee. `instruments` therefore offers a single `unfitted` arm, and every * curve produced here names itself as such. The spool sets no tempo of its * own: a version runs at the speed stated for its copies, or at that of the * roll it was re-cut from times the length ratio. * @category Systems and emulation */ export declare const welteLicenseeSystem: ReproducingSystem;