inversion = (* (-1)) d1 $ note ((scaleP scalePattern $ off 4 ((+ 2 ).slow 2) $ off 1 (inversion.slow 2) $ off 3 (inversion.slow 3) $ off 1.5 ((+ 2).rev.slow 2) $ generateMelodicSeed ))#s "[pe-gtr:10,midi]" #gain 1 #orbit 0 #midichan 1 d3 $ note ((scaleP scalePattern $ (rotR 4) $ (+ slow 8 "x" <~> ((0.25 ~>) generateMelodicSeed)) -- $ slow 4 \n $ generateMelodicSeed ))#s "[pe-gtr:8,midi]" #gain 1.2 #orbit 2 #midichan 3 d2 $ note ((scaleP scalePattern $ (rotR 3.5) -- $ inversion \n $ (+ slow 8 "x" <~> ((0.5 ~>) generateMelodicSeed)) -- $ slow 2 \n $ generateMelodicSeed ) - 12)#s "[pe-gtr:9,midi]" #gain 1.2 #orbit 1 #midichan 2

MinBlep (Minimum Band-Limited Step)

MinBlep is an algorithm for generating bandlimited classic analog waveforms with a computer. It allows for flexibility in modulating the shape of the waveform that is typically available on analog equipment. (eg. hard sync) This algorithm was first outlined in the paper Hard sync without aliasing by Eli Brandt. (paper available here)

Hard-sync is where one oscillator resets the phase of another. The frequency of one of the oscillators is typically swept to produce a modulation of the harmonic spectra.

Resetting the phase exactly on a computer introduces discontinuities that are not band-limited.

the algorithm

Emulating hard-sync using BLIT typically requires the generation of a band-limited synchronization signal where resets must be calculated to fall on sample boundaries. Tables are generated storing these various impulses and are referenced and integrated. In BLEP the integration is done first


Notes mentioning this note



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.