Loading [MathJax]/extensions/tex2jax.js
Yet Another Synthesizer Engine
 
All Classes Namespaces Files Functions Variables Macros Pages
Loading...
Searching...
No Matches
yase Namespace Reference

Classes

class  AdditiveSaw
 A sawtooth wave oscillator. More...
 
class  AdditiveSquare
 A raw square wave oscillator. More...
 
class  AdditiveTriangle
 A triangle wave oscillator. More...
 
class  AntiAlias
 An anti-aliasing filter. More...
 
class  Audio
 A module wrapper for a stereo PortAudio interface (http://www.portaudio.com/). More...
 
class  AutoLoad
 A parameter auto-loader that continually reloads a *.json file. More...
 
class  Biquad
 Standard Biquad filters adapated from https://www.w3.org/TR/audio-eq-cookbook/. More...
 
class  Buffer
 
struct  BUTTON_STATE
 Possible states for a button managed by a Buttons object. More...
 
class  Buttons
 A class for managing MIDI buttons. More...
 
class  Clock
 A raw (aliasing) square wave alternating between -1 and 1. More...
 
class  Compressor
 
class  Container
 A module and event manager that can contain other modules. More...
 
class  Controls
 Use a Controls object to connect MIDI knobs and faders to Module inputs. More...
 
class  Delay
 A pure digital delay using a doubled ended queue. More...
 
class  Echo
 An echo module incorporating a fadable delay in a feedback configuration. More...
 
class  Envelope
 An ADSR envelope. More...
 
class  Event
 Contains MIDI event information. More...
 
class  EventManager
 A class that keeps track of event listeners. More...
 
class  Exception
 An exception class for Yase. More...
 
class  ExpDecay
 An exponentially decaying envelope. More...
 
class  FadableDelay
 A time modulatable delay. More...
 
class  Fader
 A Fader Module maps an input target to an output value. More...
 
class  FFT
 Compute an Fast Fourier Transform. More...
 
class  Gain
 Amplifies (or attenuates) its input signal to get the output signal. More...
 
class  IIRFilter
 This module implements an Infinite Impulse Response (IIR) filter. More...
 
class  Impulse
 An impulse. More...
 
class  Jenny
 A Jenny oscillator. More...
 
class  LinearTransform
 
class  MidiInput
 A Midi Input manager. More...
 
class  MidiOutput
 
class  MidiToAnalog
 
class  Mix
 A stereo mixer and Container. More...
 
class  Mixer
 A mixer. More...
 
class  Module
 An abstract base class for modules. More...
 
class  Monitor
 Monitor some condition and run a function whenever it is true. More...
 
class  MultiClock
 
class  Noise
 A noise source. More...
 
class  Noop
 A module that does almost nothing. More...
 
class  OscGroup
 
class  Oscillator
 An abstract base class from which oscillators like Sine, Saw, and Triangle are derived. More...
 
class  Player
 Cycle through a list of pitches, running a callback for each one with the specified duration. More...
 
class  Resonator
 
class  RingBuffer
 A Ring Buffer for multi-threaded communications. More...
 
class  Sample
 A module that can be used to play a sample stored as a .wav file. More...
 
class  SampleAndHold
 
class  Sampler
 Record a sample. More...
 
class  Saw
 A sawtooth wave oscillator. More...
 
class  Sequencer
 A general purpose sequencers. More...
 
class  SimpleSequencer
 
class  Sine
 A sine wave oscillator. More...
 
class  Square
 A raw square wave oscillator. More...
 
class  Sum
 Summing Module. More...
 
class  TappedDelay
 A linearly interpolated, tappable digital delay using a circular buffer. More...
 
class  Timer
 A timer that can be used to do something one or more times in the future. More...
 
class  Transform
 Transform an input signal with a stateless, user-defined function. More...
 
class  Triangle
 A triangle wave oscillator. More...
 
class  Triggerable
 
class  Wavetable
 A wavetable oscillator. More...
 

Typedefs

typedef tuple< Module &, int, Module &, int > Wire
 
typedef tuple< int, Module &, int > Equate
 
typedef void(Envelope::* UpdateFunction) ()
 

Functions

json get_config (string file_name)
 

Variables

int c = 0
 
int q = 0
 
int num_ports = 0
 
int r = 0
 
const double REST = -1.0
 
const double C0 = 16.35
 
const double CS0 = 17.32
 
const double D0 = 18.35
 
const double DS0 = 19.45
 
const double E0 = 20.60
 
const double F0 = 21.83
 
const double FS0 = 23.12
 
const double G0 = 24.50
 
const double GS0 = 25.96
 
const double A0 = 27.50
 
const double AS0 = 29.14
 
const double B0 = 30.87
 
const double C1 = 32.70
 
const double CS1 = 34.65
 
const double D1 = 36.71
 
const double DS1 = 38.89
 
const double E1 = 41.20
 
const double F1 = 43.65
 
const double FS1 = 46.25
 
const double G1 = 49.00
 
const double GS1 = 51.91
 
const double A1 = 55.00
 
const double AS1 = 58.27
 
const double B1 = 61.74
 
const double C2 = 65.41
 
const double CS2 = 69.30
 
const double D2 = 73.42
 
const double DS2 = 77.78
 
const double E2 = 82.41
 
const double F2 = 87.31
 
const double FS2 = 92.50
 
const double G2 = 98.00
 
const double GS2 = 103.83
 
const double A2 = 110.00
 
const double AS2 = 116.54
 
const double B2 = 123.47
 
const double C3 = 130.81
 
const double CS3 = 138.59
 
const double D3 = 146.83
 
const double DS3 = 155.56
 
const double E3 = 164.81
 
const double F3 = 174.61
 
const double FS3 = 185.00
 
const double G3 = 196.00
 
const double GS3 = 207.65
 
const double A3 = 220.00
 
const double AS3 = 233.08
 
const double B3 = 246.94
 
const double C4 = 261.63
 
const double CS4 = 277.18
 
const double D4 = 293.66
 
const double DS4 = 311.13
 
const double E4 = 329.63
 
const double F4 = 349.23
 
const double FS4 = 369.99
 
const double G4 = 392.00
 
const double GS4 = 415.30
 
const double A4 = 440.00
 
const double AS4 = 466.16
 
const double B4 = 493.88
 
const double C5 = 523.25
 
const double CS5 = 554.37
 
const double D5 = 587.33
 
const double DS5 = 622.25
 
const double E5 = 659.26
 
const double F5 = 698.46
 
const double FS5 = 739.99
 
const double G5 = 783.99
 
const double GS5 = 830.61
 
const double A5 = 880.00
 
const double AS5 = 932.33
 
const double B5 = 987.77
 
const double C6 = 1046.50
 
const double CS6 = 1108.73
 
const double D6 = 1174.66
 
const double DS6 = 1244.51
 
const double E6 = 1318.51
 
const double F6 = 1396.91
 
const double FS6 = 1479.98
 
const double G6 = 1567.98
 
const double GS6 = 1661.22
 
const double A6 = 1760.00
 
const double AS6 = 1864.66
 
const double B6 = 1975.53
 
const double C7 = 2093.00
 
const double CS7 = 2217.46
 
const double D7 = 2349.32
 
const double DS7 = 2489.02
 
const double E7 = 2637.02
 
const double F7 = 2793.83
 
const double FS7 = 2959.96
 
const double G7 = 3135.96
 
const double GS7 = 3322.44
 
const double A7 = 3520.00
 
const double AS7 = 3729.31
 
const double B7 = 3951.07
 
const double C8 = 4186.01
 
const double CS8 = 4434.92
 
const double D8 = 4698.64
 
const double DS8 = 4978.03
 
const double E8 = 5274.04
 
const double F8 = 5587.65
 
const double FS8 = 5919.91
 
const double G8 = 6271.93
 
const double GS8 = 6644.88
 
const double A8 = 7040.00
 
const double AS8 = 7458.62
 
const double B8 = 7902.13
 

Detailed Description

A simple ring buffer class. This is thread-safe so long as only a single producer and a single consumer are clients. This code was initially written by Shane Kirk and posted at http://shanekirk.com/category/programming/cc/. Minor modifications and a bug fix were made by Eric Klavins, August 2023.