External audio inputs, the same way on every instrument #17

Open
opened 2026-10-12 02:46:03 +00:00 by bcox · 1 comment
Owner

Several of the instruments have an input for outside sound, and none is built. The owner wants one way of doing it that all of them share, so that they work much the same.

What the hardware has, as far as is known here:

  • SH-5: an external input that is one of the mixer's five sources, with a level and a route to either filter or the amplifier; it can be what the ring modulator multiplies; and it can trigger the envelopes. instruments/sh5/voice.h lists it as not done, and its trigger switch already has an "external" position with nothing to listen to.
  • SEM, Two Voice, Four Voice, Eight Voice: each SEM has external inputs, to the filter and as a modulation source. Not read from a manual; see #14.
  • Xpander and Matrix-12 (#15): inputs for control voltages, which are not sound but could arrive the same way.

No instrument's Render takes any input today, and the daemon opens its sound device for playing only.

What one shared way would need:

  • The platform: platform/alsa/ opening a capture device beside the playback one, chosen by a flag, and giving the audio thread a period of input with each period of output. With no device given there is silence, and nothing else changes. The owner's Scarlett Solo has inputs.
  • The engine: a place for an instrument to be handed the input for the block it is about to render, with no platform header in sight, as engine/ requires. An instrument that has no use for it ignores it.
  • Each instrument: where the input goes is its own, by parameters with the same names wherever two instruments have the same thing (ext.level, and so on).
  • The renderer: mini*render playing a WAV file as the input, so that it can be tested offline.

Things to settle:

  • One input or two (the device is stereo).
  • What an envelope triggered from the input listens for: a level and a threshold, as the SH-5's is understood to.
  • Latency. Input and output a period apart is under three milliseconds at the default settings.
  • With several voices, whether every voice gets the input or one does.
  • Whether the instruments that never had an input (the Korgs, the Junos, the SH-101) get one anyway, as every instrument got the arpeggiator. The owner's wish that they all work the same suggests so.
Several of the instruments have an input for outside sound, and none is built. The owner wants one way of doing it that all of them share, so that they work much the same. What the hardware has, as far as is known here: - **SH-5**: an external input that is one of the mixer's five sources, with a level and a route to either filter or the amplifier; it can be what the ring modulator multiplies; and it can trigger the envelopes. `instruments/sh5/voice.h` lists it as not done, and its trigger switch already has an "external" position with nothing to listen to. - **SEM, Two Voice, Four Voice, Eight Voice**: each SEM has external inputs, to the filter and as a modulation source. Not read from a manual; see #14. - **Xpander and Matrix-12** (#15): inputs for control voltages, which are not sound but could arrive the same way. No instrument's `Render` takes any input today, and the daemon opens its sound device for playing only. What one shared way would need: - **The platform**: `platform/alsa/` opening a capture device beside the playback one, chosen by a flag, and giving the audio thread a period of input with each period of output. With no device given there is silence, and nothing else changes. The owner's Scarlett Solo has inputs. - **The engine**: a place for an instrument to be handed the input for the block it is about to render, with no platform header in sight, as `engine/` requires. An instrument that has no use for it ignores it. - **Each instrument**: where the input goes is its own, by parameters with the same names wherever two instruments have the same thing (`ext.level`, and so on). - **The renderer**: `mini*render` playing a WAV file as the input, so that it can be tested offline. Things to settle: - One input or two (the device is stereo). - What an envelope triggered from the input listens for: a level and a threshold, as the SH-5's is understood to. - Latency. Input and output a period apart is under three milliseconds at the default settings. - With several voices, whether every voice gets the input or one does. - Whether the instruments that never had an input (the Korgs, the Junos, the SH-101) get one anyway, as every instrument got the arpeggiator. The owner's wish that they all work the same suggests so.
Author
Owner

The MS-20's external signal processor waits on this issue, by Ben's word on 2026-10-12. It is left out of mini-MS until sound can come in from outside, and is not to be built ahead of that on placeholders.

What it is, from Korg's owner's manual: a preamplifier, a band-pass filter (low cut 50 Hz to 2.5 kHz, high cut 100 Hz to 5 kHz), an envelope follower, a frequency-to-voltage converter and a trigger with a threshold, so that an outside sound can play the instrument. Its six jacks would go on the end of mini-MS's outputs in instruments/ms20/jacks.h, after EG 2, so that no stored patch's cords move. No manual gives its follower's times or its filters' slopes.

EXT SIGNAL IN is already there, since PHONES and SIGNAL OUT can be patched to it from inside.

**The MS-20's external signal processor waits on this issue**, by Ben's word on 2026-10-12. It is left out of mini-MS until sound can come in from outside, and is not to be built ahead of that on placeholders. What it is, from Korg's owner's manual: a preamplifier, a band-pass filter (low cut 50 Hz to 2.5 kHz, high cut 100 Hz to 5 kHz), an envelope follower, a frequency-to-voltage converter and a trigger with a threshold, so that an outside sound can play the instrument. Its six jacks would go on the end of mini-MS's outputs in `instruments/ms20/jacks.h`, after EG 2, so that no stored patch's cords move. No manual gives its follower's times or its filters' slopes. EXT SIGNAL IN is already there, since PHONES and SIGNAL OUT can be patched to it from inside.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/mini-800#17
No description provided.