Skip to content

AMYboard WebUI: Add general-purpose knobs #889

Description

@dpwe

The AMYboard Web editor UI presents many knobs that control predefined aspects of the AMY engine. Each knob can be associated with a MIDI ControlCode, with the CC range 0..127 mapping to the full rotation range of the knob. There's then a 4-parameter mapping (min, max, is_log, log_offset) from the rotation "angle" to a real parameter. Then, internally, each knob has a "wire string template" with placeholders for the instrument number and parameter value; on a knob move (or an incoming MIDI CC), the template has the placeholders substituted, then the wire command is sent to AMY. For instance, from tulip/amyboardweb/static/amy_parameters.js:

      section: "Osc A",
      display_name: "freq",
      cc: "",
      change_code: "i%iv" + OSCA_OSC + "f%v",
      min_value: 50,
      max_value: 2000,
      knob_type: "log",
      offset: 0,

.. which makes the knob send freq_coef[COEF_CONST] updates to the OSCA_OSC osc of the current synth, mapping the knob position from 50 to 2000 Hz logarithmically by sending wire commands like i1v2f440. This MIDI CC mapping is then installed in the AMY engine (e.g., on AMYboard) via the AMY I<SYNTH>ic<CC>,<LOG>,<MIN>,<MAX>,<OFFS>,<CMDTPLT> wire command.

Currently, you can only do this for parameters that have been baked-in to the AMYboard Web UI. However, if we exposed the change_code string (e.g., in the edit box that exposes cc, min_value, etc.), we could give power-users the ability to map MIDI CCs to parameters that are not currently supported in the UI, but which might be desirable e.g. parameters for nonstandard patch layouts, sequencer tempo, anything you can do with a single value in a wire command.

We could have a block of, say, 4 unassigned knobs in the interface that could be redeployed this way.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions