Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone

Perform.Midi.Control

Contents

Description

Support for MIDI controls.

Synopsis

Documentation

type PbRange = (Int, Int) Source #

Pitchbend range in tempered semitones below and above unity. The first integer should probably be negative.

control_constructor :: ControlMap -> Control -> Midi.Key -> Maybe (Signal.Y -> Midi.ChannelMessage) Source #

Convert from a control to a function that creates its MIDI message.

is_midi_control :: ControlMap -> Control -> Bool Source #

True if the given control will be used by the MIDI performer. Takes a Score.Control because being a MIDI control is a precondition for conversion into Control.

is_channel_control :: Control -> Bool Source #

True for controls that must have a channel to themselves. Midi controls are a subset of what I consider controls, since I include all variable note parameters.

pitch_to_midi :: PbRange -> Pitch.NoteNumber -> Maybe (Midi.Key, Midi.PitchBendValue) Source #

Given a NoteNumber, return the midi note number and pitch bend amount to sound at the pitch.

cc controls

universal_control_map :: ControlMap Source #

This map is used by both input and outpt. On input, InputNote maps a midi cc to a symbolic control name, and on output, maps it back again. Of course it may very well be mapped to and from a higher level control name but the defaults are always available.

On output, the "standard" set of symbolic names are understood, but the low level cc## names work uniformly.

This will also be checked by control_constructor, so these are controls that every instrument will respond to. Of course it may override some of these names if it wishes.

util