Skip to content

Add noon introduction article — composing music with Clojure#320

Merged
timothypratley merged 3 commits intoClojureCivitas:mainfrom
pbaille:noon-intro-article
Feb 10, 2026
Merged

Add noon introduction article — composing music with Clojure#320
timothypratley merged 3 commits intoClojureCivitas:mainfrom
pbaille:noon-intro-article

Conversation

@pbaille
Copy link
Copy Markdown
Collaborator

@pbaille pbaille commented Feb 10, 2026

Noon — Composing Music with Clojure

Introduces noon, a Clojure library for composing MIDI music.

Content

The article covers:

  • Core model — scores as sets of event maps, transformations as functions
  • Building blocks — lin, par, tup, rep, each, chans
  • Harmonic layer system — chromatic, diatonic, structural, tonic
  • Steps — navigating pitch at each layer
  • Context changes — scales, structures, degrees
  • Mixing layers — combining structural and diatonic navigation

Visuals

6 piano roll diagrams generated from evaluated noon expressions, color-coded by harmonic layer (tonic → structural → diatonic → chromatic).

steps

- Introduces noon's core model, building blocks, and harmonic layer system
- 6 piano roll diagrams illustrating chromatic/diatonic/structural/tonic steps,
  scale comparisons, structure comparisons, chord progressions, and layer mixing
- Images generated from evaluated noon expressions with color-coded harmonic layers
@pbaille pbaille marked this pull request as draft February 10, 2026 09:58
Use noon.viz.piano-roll to render piano rolls inline from evaluated
noon expressions. Removes the 6 static PNG assets and the fragile
screenshot pipeline dependency.

- Add noon as a git dep
- Replace ![...](*.png) refs with ^:kindly/hide-code (pr/piano-roll ...) calls
- Delete src/music/noon_introduction/*.png
@timothypratley timothypratley marked this pull request as ready for review February 10, 2026 16:56
@timothypratley timothypratley merged commit 83b83d9 into ClojureCivitas:main Feb 10, 2026
@timothypratley
Copy link
Copy Markdown
Collaborator

Hi @pbaille,

Thank you so much for adding to ClojureCivitas!

Because the namespace has the :draft true metadata, you article currently appears as a draft here:
https://clojurecivitas.org/music/noon_introduction.html

When you are ready to publish it, please remove the :draft true metadata.
Let me know if you have any questions about it.
Thanks again 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants