Safe Haskell | Safe-Inferred |
---|
Calls that are similar to staff-notation articulations, or could be. This means calls that modify notes in relatively straightforward ways, either by adding an attribute or modifying their environment.
There is already general purpose syntax to add attributes to notes, e.g.
attr = +x
or n +x
or just +x
, and instruments may supply special
calls for their attributes, but there are several attributes which look
nice with their own calls and are used by many instruments.
TODO There are too many ways to apply attributes to notes, and they work in inconsistent ways.
Synopsis
- library :: Library.Library
- pattern_attr_generator :: PatternCall (Generator Note)
- pattern_attr_transformer :: PatternCall (Transformer Note)
- make_pattern_attr :: (Attrs.Attributes -> call) -> PatternCall call
- c_harmonic :: Library.Calls Note
- data HarmonicType
- lily_harmonic_sig :: Sig.Parser ([DeriveT.Pitch], Maybe DeriveT.Pitch, Bool)
- lily_harmonic :: ([DeriveT.Pitch], Maybe DeriveT.Pitch, Bool) -> HarmonicType -> NoteDeriver -> NoteDeriver
- lily_harmonic_event :: Bool -> HarmonicType -> [StringUtil.String] -> Maybe StringUtil.String -> Score.Event -> Deriver [Score.Event]
- harmonic_code :: Pitch.NoteNumber -> Pitch.NoteNumber -> Score.Event -> [Score.Event]
- touch_interval :: StringUtil.Harmonic -> Maybe Pitch.NoteNumber
- highest_harmonic :: StringUtil.Harmonic
- natural_harmonic :: [StringUtil.String] -> Maybe StringUtil.String -> Pitch.NoteNumber -> Either Text (Pitch.NoteNumber, StringUtil.Harmonic)
- artificial_harmonic :: Pitch.NoteNumber -> Pitch.NoteNumber -> Either Text (Pitch.NoteNumber, StringUtil.Harmonic)
- c_slur :: Maybe Call.UpDown -> Generator Note
- note_slur :: RealTime.RealTime -> Maybe RealTime.RealTime -> Signal.Y -> [[SubT.Event]] -> NoteDeriver
- lily_slur :: Maybe Call.UpDown -> PassedArgs d -> NoteDeriver
- c_attr_slur :: Attrs.Attributes -> Attrs.Attributes -> Generator Note
- apply_detach :: RealTime.RealTime -> [SubT.Event] -> [SubT.Event]
- apply_dyn :: Signal.Y -> [SubT.Event] -> [SubT.Event]
- set_sustain :: RealTime.RealTime -> Deriver a -> Deriver a
- c_sustain_abs :: Transformer Note
- c_sustain :: Transformer Note
- c_shorten_lengthen :: Bool -> Library.Calls Note
- c_accent :: Library.Calls Note
- c_weak :: Library.Calls Note
Documentation
attr pattern
make_pattern_attr :: (Attrs.Attributes -> call) -> PatternCall call Source #
harmonic
data HarmonicType Source #
Instances
lily_harmonic_sig :: Sig.Parser ([DeriveT.Pitch], Maybe DeriveT.Pitch, Bool) Source #
Args for lily_harmonic
.
lily_harmonic :: ([DeriveT.Pitch], Maybe DeriveT.Pitch, Bool) -> HarmonicType -> NoteDeriver -> NoteDeriver Source #
lily_harmonic_event :: Bool -> HarmonicType -> [StringUtil.String] -> Maybe StringUtil.String -> Score.Event -> Deriver [Score.Event] Source #
harmonic_code :: Pitch.NoteNumber -> Pitch.NoteNumber -> Score.Event -> [Score.Event] Source #
touch_interval :: StringUtil.Harmonic -> Maybe Pitch.NoteNumber Source #
Where should I touch the string to play the nth harmonic of a base frequency?
:: [StringUtil.String] | |
-> Maybe StringUtil.String | |
-> Pitch.NoteNumber | |
-> Either Text (Pitch.NoteNumber, StringUtil.Harmonic) | (selected string, harmonic) |
If string is given, try to find this pitch in the harmonics of that string. Otherwise, find the string from open_strings which has this as its lowest harmonic.
:: Pitch.NoteNumber | |
-> Pitch.NoteNumber | |
-> Either Text (Pitch.NoteNumber, StringUtil.Harmonic) | (stopped pitch, harmonic) |
Pick the lowest harmonic which is above the given lowest string.
slur
c_slur :: Maybe Call.UpDown -> Generator Note Source #
I'm not really sure how fancy calls should be. On one hand, high level calls should get a nice result automatically. On the other hand, they're not very composable if they override things like %sus-abs.
note_slur :: RealTime.RealTime -> Maybe RealTime.RealTime -> Signal.Y -> [[SubT.Event]] -> NoteDeriver Source #
lily_slur :: Maybe Call.UpDown -> PassedArgs d -> NoteDeriver Source #
c_attr_slur :: Attrs.Attributes -> Attrs.Attributes -> Generator Note Source #
This is not in note_calls
, instruments that support this are expected to
override (
with it.
apply_detach :: RealTime.RealTime -> [SubT.Event] -> [SubT.Event] Source #
apply_dyn :: Signal.Y -> [SubT.Event] -> [SubT.Event] Source #
set_sustain :: RealTime.RealTime -> Deriver a -> Deriver a Source #
misc
c_sustain_abs :: Transformer Note Source #
This is the same as c_lengthen
, but it's here for symmetry with
c_sustain
. Also, conceptually this is lower level, while c_lengthen
is meant to be modified to whatever is locally appropriate.