Subsample configuration: player
The 16 settings under player, each with the type, default and limits its schema declares.
MIDI-triggered playback. Subsample opens a MIDI input and an audio output, picks a sample for each incoming note by the rules in the MIDI map, and mixes the voices as they play.
enabled in player
- Type
boolean- Default
false
Turns the MIDI player on. Requires midi_map or midi_maps.
max_polyphony in player
- Type
integer- Default
8- Limits
- at least 1, at most 64
Number of voices at full velocity that together reach full scale. Each voice's level is divided by it, and voices beyond it still play rather than being cut off. Raise it when dense passages clip, and lower it for louder individual notes.
limiter_threshold_db in player
- Type
number- Default
-1.5- Limits
- at least -12, at most 0
Level, in dBFS, above which the output limiter starts to soft-clip. Signals below it pass unchanged, and lower values compress more. 0 turns the limiter off.
limiter_ceiling_db in player
- Type
number- Default
-0.1- Limits
- at least -12, at most 0
Highest output level, in dBFS, that the limiter allows. Must be above limiter_threshold_db, and is ignored when the limiter is off.
midi_map in player
- Type
stringornull- Default
null- Example
midi-map-gm-drums.yaml
Path to the MIDI map that decides which samples each note plays. The player does not start without it or midi_maps. The map may be an ensemble, declaring a maps: block that binds several sample sets to MIDI channels. Cannot be set together with midi_maps.
midi_maps in player
- Type
- map of names to
stringornull - Default
null
Sample sets to play at once, each a MIDI channel from 1 to 16 followed by the path to a sample set's MIDI map, as in 10: kits/home/midi-map.yaml. Gives the same result as an ensemble map declaring the same maps: block. Use an ensemble map instead to name channels from a definitions: file, or to reload the bindings while running, since Subsample does not watch config.yaml. Cannot be set together with midi_map. Pair it with library.directory: null to load only the samples the sets name.
watch_midi_map in player
- Type
boolean- Default
false
Reloads the MIDI map when its file changes, so an edit takes effect on the next note without a restart. Several saves in quick succession count as one change. Requires midi_map.
strict_midi_map in player
- Type
boolean- Default
true
Refuses a MIDI map with an unknown where: key, processor, processor parameter, CC binding key, or order entry key, or a pitched: value that is not true or false, and names the valid options. Set false to log a warning for each and carry on, when loading an older map.
midi_device in player
- Type
stringornull- Default
null- Examples
Launchpad,"*Subsample Virtual MIDI *:0"
MIDI input to play from, matched the same way as recorder.audio.device: a pattern, without regard to case, where * matches any run of characters and ? matches one. On Linux a MIDI device's name carries a client number that changes between runs, so use * for it and keep the port number after the colon. null selects the only MIDI input when there is one, and otherwise asks. Ignored when virtual_midi_port is set.
virtual_midi_port in player
- Type
stringornull- Default
null- Example
"Subsample Virtual MIDI"
Name of a virtual MIDI input port that Subsample creates at start-up, for other software on the same machine to send notes to. When set, Subsample opens no hardware MIDI input and ignores midi_device.
audio in player
- Type
- section
The output device, and the format Subsample plays in.
device in player.audio
- Type
stringornull- Default
null
Output device to play through, matched the same way as recorder.audio.device. null uses the system's default output.
sample_rate in player.audio
- Type
integerornull- Default
null- Limits
- above 0
Output sample rate, in Hz. null uses recorder.audio.sample_rate. Set it when the output device cannot run at the recorder's rate; a rate above the recorder's adds no quality.
bit_depth in player.audio
- Type
integerornull- Default
null- Limits
- one of
16,24,32
Output bit depth. null uses recorder.audio.bit_depth. Set 16 for a device that only plays 16-bit audio.
channels in player.audio
- Type
integerornull- Default
null- Limits
- above 0
Number of output channels, in SMPTE order. null plays in stereo. Set it to the interface's output count when the MIDI map routes instruments to separate outputs. Subsample refuses to start when the device has fewer outputs.
buffer_frames in player.audio
- Type
integerornull- Default
null- Limits
- at least 32, at most 4096
Output buffer size in frames, as a power of two. Smaller buffers lower latency, and larger ones are safer under load. null lets the operating system choose. When the device refuses the size, Subsample logs an error and uses the device's own.