Skip to content

A framework for creating indeterminate music (in development) 🎵

License

Notifications You must be signed in to change notification settings

schollz/indeterminate-music

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Indeterminate Music

Musical compositions

Indeterminate music is music in which the composer gives up some sort of control over the material she/he uses to create the composition. It can take three rough shapes:

  • Stochastic Music: which bases the material on mathematical concepts (think Iannis Xenakis)
  • Chance Music: which bases the material on decisions made…well…by chance, like rolling dice or, in John Cage’s working with the I Ching.
  • Aleatory Music: which bases the material on the decisions made in performance (or before the performance) by the performers.

- Sound American

This project is basically a framework for developing indeterminate music. This project is inspired by Ólafur Arnalds, Dan Tepfer, the minimal music style from Philip Glass, and the experimental compositioning by Christian Wolff.

Examples (generated based on current commit):

How it works

Music is arranged from many pre-recorded snippets. A snippet is one 4/4 bar of music played with one hand in either the C major scale or the C minor scale. Snippets are later analyzed for their characteristics:

  • Intensity (number of notes)
  • Handiness (RH or LH)
  • Minor / Major

These characteristics are then used to arrange them into a song according to the composition which eschews normal composition forms. The form of composition is TBD. A given chord structure will locate snippets and transpose them to the corresponding chord to be used. Midi files are generated for the RH and LH which can then be combined in the browser or in your favorite program.

To Do

  • Add getting started section
  • Determine/filter on number of notes
  • Determine/filter whether its LH or RH
  • Build midi tracks in half-time (for holding notes)
  • Interpolate loudness between pp, mf, and ff from velocity
  • Optional sparsity, to randomly leave out notes of snippet
  • Add sustain: use triggerAttack instead of triggerAttackRelease when enabled
  • Add two midi channels to frontend (merge them in JSON)

Credits

Piano sounds for the front-end from University of Iowa. The first part of the silence is removed with ffmpeg.

for i in *aiff; do ffmpeg -i "$i" -af silenceremove=1:0:-50dB "${i%.*}.mp3"; done

License

MIT

About

A framework for creating indeterminate music (in development) 🎵

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages