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.