Nyquist (language)

Nyquist is a programming language for sound synthesis and analysis, based on the Lisp language . This is an extension of the XLISP family of Lisp.

Presentation

With Nyquist, the programmer starts by defining musical instruments, which he then uses to generate sounds, using simple expressions. It can then combine them into more complex expressions to create an entire composition, manipulate or generate a wide variety of other sounds.

The language interpreted Nyquist can play and record sound files, MIDI files and text files partitions based on Adagio 1 . On many systems, it also allows to generate sounds in real time.

This programming language is also used in the Audacity software to create effect plug-ins .

An important difference between Nyquist and traditional MUSIC-N languages is that Nyquist does not isolate sound synthesis functions and composition functions. For example, the Csound language includes two sub-languages, one to define the orchestra and the other to define the score. Nyquist combines these two parts.

The Nyquist programming language and the interpreter were written by Roger Dannenberg of Carnegie-Mellon University , with the support of Yamaha and IBM .

Examples

Synthesis

  • Generating a sinusoidal signal :
( Sine frequency [length] )
  • Generation of a white noise :
( Noise )
  • Applying a time envelope to a sound:
( Mult sound ( approx 0.1 0.1 0.2 1.0 0.5 0.3 1.0 ))

Treatment

  • High-pass filter , the cut – off frequency of which may be a constant value or a variable signal over time:
( Hp its frequency_cut )
  • Changing the sound level of a sound, of a given number of decibels :
( Loud dB ( cue sound ))
  • Changing the duration of a sound by a given factor:
( Stretch factor ( cue sound ))
  • Two sounds:
( Seq ( cue son1 ) ( cue son2 ))
  • Simultaneous combination of two sounds:
( Sim ( cue son1 ) ( cue son2 ))

Appendices

Related articles

  • Audacity

Notes and references

  1. ↑ MIDI, Adagio, and Sequences  [ archive ] in Nyquist Reference Manual  [ archive ]