Csound, Music DSLs, and some history
With general purpose (programming) languages we use libraries and frameworks to delve into some specific domain. But when the language itself takes on the vocabulary of a domain, offering special treatment of the common goals, challenges, and tasks of a particular domain, the we might call that language a DSL (domain specific language).
Music DSLs
Max Mathews MUSIC-N family launguages were the first Music DSLs.
Any Music DSL must offer some treatment of topics, structures, and tools relating to the composition (or generation) of music. A few of these might be….
- Unit Generator (or Opcode)
- Algorithmic composition
- Envelopes to control the amplitude, frequency, or other parameters of notes
- Tuning/Pitch systems such as Equal temperament and Just intonation
- MIDI, OSC
- Musical scales and transposition..
- Rhythm and time signatures: 7/8, 7/8, 7/8, 4/4… 5/8, 5/8, 5/8, 6/8
- Key signatures
Pitch
pitch is different than frequency.
Loudness
loudness is different than amplitude or SPL.
Timbre
“that attribute of auditory sensation which enables a listener to judge that two nonidentical sounds, similarly presented and having the same loudness and pitch, are dissimilar” These words are sometimes used for timbre..
- character, texture, tone color, tone quality
timbre is different than spectrum.
Envelope
An envelope may control any parameter, not just amplitude.