Harmony related utilities
Harmony related utilities
(->pitch-update x)
(abstract-drops x & [include-inversions])
Get a list of abstract drops for x
.
An abstract-drop is a vec of the form [[first-octave-degree...][second-octave-degree...]...]
e.g a drop 2 for a tetrad can be represented as [[0 2 3][1]]
x
can be either:
Get a list of abstract drops for `x`. An abstract-drop is a vec of the form [[first-octave-degree...][second-octave-degree...]...] e.g a drop 2 for a tetrad can be represented as `[[0 2 3][1]]` `x` can be either: - a natural number indicating the number of notes. - a sequence of numbers representing different notes.
(align-contexts)
(align-contexts layer)
(align-contexts layer mode)
align successive harmonic contexts based on the given 'layer: :tonic (:t) | :structural (:s) | :diatonic (:d) | :chromatic (:c)
can also take a second argument 'mode: :incremental | :static that stays if the alignement is done on the first chord only or incrementally.
align successive harmonic contexts based on the given 'layer: :tonic (:t) | :structural (:s) | :diatonic (:d) | :chromatic (:c) can also take a second argument 'mode: :incremental | :static that stays if the alignement is done on the first chord only or incrementally.
(bounds-gte [a b] [c d])
Check if bounds [a b] contains bounds [c d].
Check if bounds [a b] contains bounds [c d].
Put a chord into closed position. Bring every notes within the octave following the bass note. If some notes have the same pitch class, it can produce unisons.
Put a chord into closed position. Bring every notes within the octave following the bass note. If some notes have the same pitch class, it can produce unisons.
Put a chord into closed position. Starting at bass note, bring every other notes as close as possible above it.
Put a chord into closed position. Starting at bass note, bring every other notes as close as possible above it.
(drop x)
Build an update that produce a drop of the received score (that is expected to represent a chord).
x
is a member-pick argument that is used to pick a drop from the complete list of possible drops.
refer to noon.utils.sequences/member
for complete documentation
Build an update that produce a drop of the received score (that is expected to represent a chord). `x` is a member-pick argument that is used to pick a drop from the complete list of possible drops. refer to `noon.utils.sequences/member` for complete documentation
Computes all possible drops of the given score (that is supposed to represent a chord). The :inversions option can be given to include inversions and their drops.
Computes all possible drops of the given score (that is supposed to represent a chord). The :inversions option can be given to include inversions and their drops.
(grid & xs)
Build an update that applies an harmonic grid to the received score.
The harmonic grid is created by threading a fresh score through the sequence of update xs
.
e.g (noon.score/mk* xs)
.
The resulting score (which represent an harmonic grid) is zipped over the received score,
All harmonies are applied accordingly to their position and duration.
Build an update that applies an harmonic grid to the received score. The harmonic grid is created by threading a fresh score through the sequence of update `xs`. e.g `(noon.score/mk* xs)`. The resulting score (which represent an harmonic grid) is zipped over the received score, All harmonies are applied accordingly to their position and duration.
(grid* xs)
Build an update that applies an harmonic grid to the received score.
The harmonic grid is created by threading a fresh score through the sequence of update xs
.
e.g (noon.score/mk* xs)
.
The resulting score (which represent an harmonic grid) is zipped over the received score,
All harmonies are applied accordingly to their position and duration.
Build an update that applies an harmonic grid to the received score. The harmonic grid is created by threading a fresh score through the sequence of update `xs`. e.g `(noon.score/mk* xs)`. The resulting score (which represent an harmonic grid) is zipped over the received score, All harmonies are applied accordingly to their position and duration.
(grid-zipped & xs)
zip the current score (which should represent an harmonic grid) to the resulting of applying 'xs updates to a fresh score.
zip the current score (which should represent an harmonic grid) to the resulting of applying 'xs updates to a fresh score.
(grid-zipped* xs)
zip the current score (which should represent an harmonic grid) to the resulting of applying 'xs updates to a fresh score.
zip the current score (which should represent an harmonic grid) to the resulting of applying 'xs updates to a fresh score.
(harmonic-zip grid content)
Build an update that zip a grid score over a content score. grid score and content score are just regular scores, but they are representing different things. grid score is representing an harmonic grid, and content score represents what is happening over those harmonies.
Two arguments are expected:
grid
is an update that will be applied to the received score in order to produce the grid score.content
is an update that will be applied to received score in order to produce the content score.Once those two scores are built, the harmonies of the grid score will be applied to the content score accordingly to their position and duration.
Build an update that zip a grid score over a content score. grid score and content score are just regular scores, but they are representing different things. grid score is representing an harmonic grid, and content score represents what is happening over those harmonies. Two arguments are expected: - `grid` is an update that will be applied to the received score in order to produce the grid score. - `content` is an update that will be applied to received score in order to produce the content score. Once those two scores are built, the harmonies of the grid score will be applied to the content score accordingly to their position and duration.
(in-bounds bounds s)
Check if the score s
is within given pitch bounds
.
Check if the score `s` is within given pitch `bounds`.
(inversion n)
Build an update that produce an inversion of the received chord (score).
x
is an integer that correspond to the index of the desired inversion.
x
picks the nth downward inversionx
picks the nth upward inversion.Build an update that produce an inversion of the received chord (score). `x` is an integer that correspond to the index of the desired inversion. - negative `x` picks the nth downward inversion - positive `x` picks the nth upward inversion.
compute downward and upward inversion of the given chord (score). return a map containing
compute downward and upward inversion of the given chord (score). return a map containing - :self, the received chord (score) - :upward, the list of upward inversions - :downward, the list of downward inversions.
(lin & xs)
Build an update similarly to noon.score/lin
but interpret keywords using noon.parse.harmony
.
Build an update similarly to `noon.score/lin` but interpret keywords using `noon.parse.harmony`.
(lin* xs)
Build an update similarly to noon.score/lin
but interpret keywords using noon.parse.harmony
.
Build an update similarly to `noon.score/lin` but interpret keywords using `noon.parse.harmony`.
(modal-structure size)
Build an event update that change the harmonic structure of the received event to its N (size
) most characteristic degrees.
The table of degree priority for known modes is available as noon.constants/degree-priority
.
Build an event update that change the harmonic structure of the received event to its N (`size`) most characteristic degrees. The table of degree priority for known modes is available as `noon.constants/degree-priority`.
(pitch-values chord)
Returns a sorted vector of all pitch-values in chord (score).
Returns a sorted vector of all pitch-values in chord (score).
Build a structural chord on top of received event.
Build a structural chord on top of received event.
(tup & xs)
Build an update similarly to noon.score/tup
but interpret keywords using noon.parse.harmony
.
Build an update similarly to `noon.score/tup` but interpret keywords using `noon.parse.harmony`.
(tup* xs)
Build an update similarly to noon.score/tup
but interpret keywords using noon.parse.harmony
.
Build an update similarly to `noon.score/tup` but interpret keywords using `noon.parse.harmony`.
(upd & xs)
Apply voice leading to the received score.
Apply voice leading to the received score.
The maximal step that can occur betwwen extreme voices of a voice leading.
The maximal step that can occur betwwen extreme voices of a voice leading.
(voicings s {:as _opts :keys [bounds]})
Computes a list of possible voicings for the given chord (score s
).
The second argument is an option map that contain:
Computes a list of possible voicings for the given chord (score `s`). The second argument is an option map that contain: - :bounds, a vector of the form [lowest-pitch-value highest-pitch-value]
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close