Karya, built on 2022-03-21T01:30:44 (patch 89d1651424c35e564138d93424a157ff87457245)

User.Elaforge.Instrument.Vsl

Description

Vienna Symphonic Library.

Synopsis

# util

For interactive use, find keyswitches with the given attributes.

Write matrices to a file for visual reference.

map_shape :: ([a] -> [b]) -> [[a]] -> [[b]] Source #

Transform elements but retain the matrix's shape.

# instrument definition

Add various note calls, depending on the attributes that the patch understands.

If +harm+nat (and optionally a string) attributes are present, try to play this pitch as a natural harmonic. That means replacing the pitch and reapplying the default note call.

# keyswitches

Order attributes by priority. This should correspond to specificity, or to perceptual importance, as documented in Patch.AttributeMap.

matrix :: VslInst.Keys -> [[Attrs.Attributes]] -> [Keyswitch] Source #

Since the VSL matrix is only 12x12, a row of articulations greater than that overflows to the next row. Given that I'm definitely going to overflow 12 rows, I wind up overflowing to the next matrix, and when counting tha AB switch, each articulation has 3 or 4 keyswitches.

I could probably cram most instruments into 144 cells and only require 2-3 keyswitches, but it would be hard to read and easy to mess up, wouldn't let me disable and enable cells by row, and with custom patches I'll probably wind up with more than 144 anyway.

# attrs

Remove attrs which can be assumed as a default. The idea is to make it easier to address an articulation while still remaining non-ambiguous.

Attrs are removed in order unless removal would create a conflict with another articulation. The result is that the attrs early in the strip list are removed first, so if you have both VslInst.med and Attrs.short, VslInst.med will become the default, while Attrs.short retains its attribute.

Strip the given attr, but only if it wouldn't cause clashes.

# natural harmonics

Constructors

 HarmonicMap Fieldshmap_strings :: [OpenString] hmap_string_nns :: [Pitch.NoteNumber] hmap_key_to_natural :: Map Midi.Key [(OpenString, Midi.Key)]Map sounding pitch to possible strings and the key to play to get that pitch on that string.hmap_key_to_gliss_destination :: Map Midi.Key [(OpenString, Midi.Key)]Same as hmap_key_to_natural except map from the gliss destination.

#### Instances

Instances details
 Source # Instance detailsDefined in User.Elaforge.Instrument.Vsl MethodsshowList :: [HarmonicMap] -> ShowS #