index.html

# Nyquist Demos and Examples

Roger B. Dannenberg & many contributors

Arpeggiator (and arp.sal)
  describes functions to create arpeggio effects.
Cellular Automata by Ann Lewis
  uses cellular automata to generate scores in Nyquist.
Distortion Tutorial
  describes how to use the Nyquist `shape` function to achieve distortion.
Drum Kit
  Please see the Nyquist Reference Manual, section ``Drum Machine'' (in the index) for information about the drum samples and software in demos/plight/drum.lsp.
FM Voices
  This code example re-implements FM-synthesis-based voices created by computer music pioneer John Chowning.
General Examples from the Manual
  The introductory chapter of the Nyquist Reference Manual presents a number of small examples. These are consolidated into both SAL and Lisp code that you can load and run in Nyquist.
Midi Tutorial
  describes how to read and write Standard MIDI Files, how to generate MIDI data for sequencers, MIDI players, and music notation programs, and how to use Nyquist to synthesize a MIDI file.
Instruments by Daniel Mateos
  All of these are currently in Lisp syntax, but they can be loaded and called from Sal programs. (For an example, the Phase Vocoder Tutorial described below uses `demos/mateos/organ.lsp`.) The directory `demos/mateos/` contains `bell.lsp`, `gong.lsp`, `organ.lsp`, and `tuba.lsp`.
Instruments by Pedro Morales
  The directory `demos/pmorales/` contains the following programs:
  Some Helper Functions: randi1, randi2, randh1, rndh2
  Simple Synthesis
  Waveform + Envelope, Modulating the envelope with noise
  Waveform + Envelope, Modulating the frequency
  Waveform + Envelope, Modulating the frequency, 2
  Additive Synthesis
  Gong like sounds
  Risset's Spectral Analysis of a Chord
  Risset Bell
  Continuous pitch control by LFO
  Risset Tibetan
  Risset Drum
  Risset Endless
  Random Signals
  Bell
  Subtractive Synthesis
  Buzz with Formant Filters
  Karplus Strong Synthesis
  Simple KARPLUS-STRONG<
  Karplus-Strong Algorithm
  FM Synthesis
  Chowning Dynamic Spectral Evolution
  Physical Modeling
  Flute Physical Modelling
Melody Generation
  Jorge Sastre contributed this code to generate atonal melodies. It uses simple methods, but is quite effective and has been used in a number of compositions for both acoustic instruments and electronics.
Multiple Band Effects Tutorial
  describes how to use the bandf library in Nyquist. Multiple band effects split the input into frequency bands and apply different effects (e.g. different delays) to each band.
Nyquist FFT and Inverse FFT Tutorial
  describes how to use FFT functions in Nyquist to perform spectral processing.
Nyquist LPC Analysis and Synthesis
  is a tutorial on how to use LPC functions, especially useful for voice modelling and cross-synthesis
Phase Vocoder Tutorial
  shows how to use the phase vocoder in Nyquist.
Piano Synthesizer Tutorial
  gives examples of how to use the Nyquist piano synthesizer library ("pianosyn.lsp").
Probability Distribution Generators
  gives examples that use the `lib/distributions.lsp` library and an explanation of how to use probability distributions to compute parameters in granular synthesis.
Rhythmic Pattern Tutorial
  provides examples that use noise pulses and the Vinyl Scratch Tutorial, along with transposition and repetition to explore various rhythmic effects.
SDL Score Documentation (PDF) and Examples
  offer a compact score language, SDL, which can be used as a shorthand to generate Nyquist scores.
Sequence Example
  is a basic example showing how to use `sim` and `@` to build sequences of notes and sounds.
Shepard tones
  is a Lisp source file that produces Shepard tones. See comments in the code for explanations and documentation. There is also a Shepard tone plug-in for Audacity.
Slider Demos
  illustrate the use of sliders to create interactive controls for sounds and compositions in Nyquist. Read the comments in the source code and find full documentation in the Nyquist Reference Manual.
STK Instruments Demo
  plays the various STK instruments that have been ported to Nyquist. This file is just Lisp code, but it should be fairly simple to read enough of the code to understand the function names and parameters. (Reminder `(bowed g4 (bow-env d))` in Lisp means `bowed(g4, bow-env(d))` in SAL, i.e. the first element of each list is the function and the remaining elements are parameters.)
Vinyl Scratch Tutorial
  creates a sound inspired by dragging a needle across a vinyl record.
Voice Synthesis Source Code
  gives source code and examples for a source-filter model of the singing voice. Please read the comments in either the SAL version or the Lisp version.
VOSIM Example
  gives source code and examples of the VOSIM synthesis technique. Please read comments in the code.
Warble Tutorial
  explains how to create some "analog" electronic synthesizer sounds using FM and AM.
Wind Tutorial
  presents some code to create wind sounds.