Liking cljdoc? Tell your friends :D

noon.lib.harmony

Harmony related utilities

Harmony related utilities
raw docstring

->pitch-updateclj

(->pitch-update x)

abstract-dropsclj

(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:

  • a natural number indicating the number of notes.
  • a sequence of numbers representing different notes.
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.
raw docstring

align-contextsclj

(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.
raw docstring

bounds-gteclj

(bounds-gte [a b] [c d])

Check if bounds [a b] contains bounds [c d].

Check if bounds [a b] contains bounds [c d].
raw docstring

closedclj

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.
raw docstring

closed-no-unisonclj

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.
raw docstring

dropclj

(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
raw docstring

dropsclj

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.
raw docstring

gridclj

(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.
raw docstring

grid*clj

(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.
raw docstring

grid-zippedclj

(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.
raw docstring

grid-zipped*clj

(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.
raw docstring

harmonic-zipclj

(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.
raw docstring

in-boundsclj

(in-bounds bounds s)

Check if the score s is within given pitch bounds.

Check if the score `s` is within given pitch `bounds`.
raw docstring

inversionclj

(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.

  • negative x picks the nth downward inversion
  • positive x 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.
raw docstring

inversionsclj

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.
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.
raw docstring

linclj

(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`.
raw docstring

lin*clj

(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`.
raw docstring

(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`.
raw docstring

pitch-valuesclj

(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).
raw docstring

simple-chordclj

Build a structural chord on top of received event.

Build a structural chord on top of received event.
raw docstring

tupclj

(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`.
raw docstring

tup*clj

(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`.
raw docstring

updclj

(upd & xs)

voice-ledclj

Apply voice leading to the received score.

Apply voice leading to the received score.
raw docstring

VOICE_LEADING_MAX_SHIFTclj

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.
raw docstring

voicingsclj

(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:

  • :bounds, a vector of the form [lowest-pitch-value highest-pitch-value]
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]
raw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close