Nyquist Demos and Examples in Extensions

Roger B. Dannenberg & many contributors

The Nyquist IDE supports Extensions, which can be managed with the Window : Manage Extension menu item. Here is a list of some of the extensions.

arpeggiator
describes and implements functions to create arpeggio effects.
atonal
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.
bandfx
describes how to use the bandfx library in Nyquist. Multiple band effects split the input into frequency bands and apply different effects (e.g. different delays) to each band.
cellautomata by Ann Lewis
uses cellular automata to generate scores in Nyquist.
clipsoften
contains code to reduce the harshness where clipping occurs.
compress
implements a dynamics compressor for noisy speech audio.
convolve
illustrates how to use convolution in Nyquist.
distortion
describes how to use the Nyquist shape function to achieve distortion.
dtmf
implements a DTMF tone generator (DTMF are the "touch tones" sent by phones to dial numbers).
ext-template1
is an example of a Nyquist extension using documentation in HTML.
ext-template2
is an example of a Nyquist extension where documentation is in source code.
fft
describes how to use FFT functions in Nyquist to perform spectral processing (uses Lisp syntax, see also fftsal.)
fftsal
describes how to use FFT functions in Nyquist to perform spectral processing (uses SAL syntax, see also fft.)
fm-voices-chowning
re-implements FM-synthesis-based voices created by computer music pioneer John Chowning.
gran
implements granular synthesis functions.
intro
The introductory chapter of the Nyquist Reference Manual presents a number of small examples. These are consolidated into both examples.sal and examples.lsp files that you can load and run in Nyquist.
labels
implements code to read and write Audacity label files.
lpc
is a tutorial on how to use LPC functions, especially useful for voice modelling and cross-synthesis.
mateos by Daniel Mateos
has a number of examples currently in Lisp syntax, but they can be loaded and called from SAL programs. (For an example, the Phase Vocoder Tutorial described below uses mateos/organ.lsp.) The directory mateos/ contains bell.lsp, gong.lsp, organ.lsp and tuba.lsp.
pmorales by Pedro Morales
contains the following programs:
     pjmg.lsp - Some helper functions: randi1, randi2, randh1, rndh2
Simple Synthesis
     A4.lsp - Waveform + Envelope, Modulating the envelope with noise
     A5.lsp - Waveform + Envelope, Modulating the frequency
     A6.lsp - Waveform + Envelope, Modulating the frequency, 2
Additive Synthesis
     b1.lsp - Gong-like sounds
     b2.lsp - Risset's Spectral Analysis of a Chord
     b3.lsp - Risset Bell
     b4.lsp - Continuous pitch control by LFO
     b7.lsp - Risset Tibetan
     b8.lsp - Risset Drum
     b9.lsp - Risset Endless Glissando

     c1.lsp - Random Signals
     partial.lsp - Bell
Subtractive Synthesis
     buzz.lsp - Buzz with Formant Filters
Karplus Strong Synthesis
     d1.lsp - Simple KARPLUS-STRONG
     ks.lsp - Karplus-Strong Algorithm
FM Synthesis
     e2.lsp - Chowning Dynamic Spectral Evolution
Physical Modeling
     phm.lsp - Flute Physical Modelling
midi
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.
moog
implements a mini-moog (analog synthesizer) emulator.
plight by Phil Light
contains drum samples and drum machine software.
pvoc
shows how to use the phase vocoder in Nyquist.
regression
implements linear regression functions.
reverse
implements functions to reverse sounds and sound files.
rhythm
provides examples that use noise pulses and FM, along with transposition and repetition to explore various rhythmic effects.
sdl
offers a compact score language, SDL, which can be used as a shorthand to generate Nyquist scores.
shepard
is a Lisp source file that produces Shepard tones. See comments in the code for explanations and documentation. There is also a shepard/shepard.ny Shepard tone plug-in for Audacity.
sliders
illustrate the use of sliders to create interactive controls for sounds and compositions in Nyquist. Read the comments in the sliders/slider-demos.sal source code and find full documentation in the Nyquist Reference Manual.
spatial
implements Dolby surround encoding functions.
stk
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, and some SAL expressions are added in comments as guide. (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.)
voice
gives source code and examples for a source-filter model of the singing voice. Please read the comments in either the voice/voice-synthesis.sal version or the voice/voice-synthesis.lsp version.
vosim
gives source code and examples of the VOSIM synthesis technique. Please read comments in the code.
warble
explains how to create some "analog" electronic synthesizer sounds using FM and AM.
wind
presents some code to create wind sounds.