ExPilot.Music.Score (ExPilot v0.1.1)

Copy Markdown View Source

Helpers for writing a piece's Strudel chains.

ExPilot.Music.Score.cycles(["Em!4 C!4", "G!4 D!4"])
ExPilot.Music.Score.roots("<Em C G D>")
ExPilot.Music.Score.part("priv/scores/joplin_entertainer.mid", channel: 0, bars: 76)

Summary

Functions

The phrases as one <…> cycle list, one phrase per bar group in turn.

A channel of the MIDI score at path as a <…> of four-beat cycles, one a bar, as TuningFork.Midi.mini/2 writes it and with the options it takes: :channel, :from, :bars, :voice, :on, :transpose.

A chord name's root as a Strudel note name: "C#m" is "cs".

The chord names in a cycle list as root notes in octave, for a bass line.

Functions

cycles(phrases)

@spec cycles([String.t()]) :: String.t()

The phrases as one <…> cycle list, one phrase per bar group in turn.

part(path, opts)

@spec part(Path.t(), keyword()) :: String.t()

A channel of the MIDI score at path as a <…> of four-beat cycles, one a bar, as TuningFork.Midi.mini/2 writes it and with the options it takes: :channel, :from, :bars, :voice, :on, :transpose.

root_of(chord)

@spec root_of(String.t()) :: String.t()

A chord name's root as a Strudel note name: "C#m" is "cs".

roots(chords, octave \\ "2")

@spec roots(String.t(), String.t()) :: String.t()

The chord names in a cycle list as root notes in octave, for a bass line.