{"id":74,"date":"2019-09-24T19:44:20","date_gmt":"2019-09-24T19:44:20","guid":{"rendered":"https:\/\/synthnotes.ucsd.edu\/wp4\/?page_id=74"},"modified":"2026-04-12T20:44:04","modified_gmt":"2026-04-12T20:44:04","slug":"synthnotes-intro-index","status":"publish","type":"page","link":"https:\/\/synthnotes.ucsd.edu\/wp4\/","title":{"rendered":"SYNTHNOTES: Intro &#038; Index"},"content":{"rendered":"<p>Synthnotes is a repository of information on computer music programming, designed to support the UCSD music course MUS177\/MUS267. This course covers basic synthesis algorithms, and typically an applied development environment. Currently, this environment is either the STM32F4\/7 Discovery boards using the STM32CubeIDE or the JUCE plugin SDK. Material on this site will be updated every year, as the course is taught.<\/p>\n<p>This online material has been\u00a0developed by Tom Erbe and Jacob Sundstrom with the generous funding of the UC Innovative\u00a0Teaching and Learning Initiative.<\/p>\n<h1>INDEX<\/h1>\n<h2>STM32F4 (ARM Cortex M4) embedded audio<\/h2>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/09\/24\/stm32cubeide-setting-up-an-ide-for-stm32f-embedded-processors\/\" target=\"_blank\" rel=\"noopener noreferrer\">STM32CubeIDE: Setup and first program (blink LED)<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/09\/24\/setting-up-the-stmf4-to-connect-to-the-codec-and-make-sound\/\" target=\"_blank\" rel=\"noopener noreferrer\">Making sound with STM32F4 and 16-bit CODEC<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/09\/24\/adding-the-usb-otg-midi-driver-polyphonic-framework\/\" target=\"_blank\" rel=\"noopener noreferrer\">Adding the USB MIDI host and polyphony<\/a><\/li>\n<\/ul>\n<h2>PD Externals<\/h2>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2022\/01\/28\/pd-externals-in-xcode-v11\/\">PD externals in Xcode (v11)<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2022\/01\/29\/pd-externals-in-visual-studio-2017\/\">PD externals in Visual Studio 2017<\/a><\/li>\n<\/ul>\n<h2>JUCE Framework<\/h2>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2020\/09\/27\/juce-plugin-programming\/\">Basic Plugin Programming<\/a><\/li>\n<\/ul>\n<h2>Synthesis<\/h2>\n<h3>Oscillators<\/h3>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/09\/30\/oscillators-introduction\/\">Introduction<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/the-phasor\/\">Calculating Phase: The Phasor<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/simple-ramp-and-sawtooth-oscillators\/\">Simple Ramp and Sawtooth Oscillators<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/simple-square-and-triangle-oscillators\/\">Simple Square and Triangle Oscillators<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/table-lookup-oscillator\/\">Table Lookup Oscillator<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/interpolation\/\">Interpolation<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/complex-sine-calculation\/\">Complex Sine Calculation<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/01\/harmonic-oscillators-through-additive-synthesis\/\">Harmonic Oscillators\u00a0through Additive Synthesis<\/a><\/li>\n<\/ul>\n<h3>Amplitude and Envelopes<\/h3>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/22\/amplitude-introduction\/\">Amplitude: Introduction<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/22\/clipping-methods\/\">Clipping<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/22\/amplitude-detection\/\">Envelope Following (Amplitude Detection)<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/22\/compression\/\">Compression<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/22\/tremolo-and-autopan\/\">Tremolo and Autopan<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/28\/adsr-envelopes\/\">ADSR Envelopes<\/a><\/li>\n<\/ul>\n<h3>Filters<\/h3>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/12\/simple-one-pole-and-band-pass-filters\/\">Simple One Pole and Band Pass Filters<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/14\/first-order-allpass-filter\/\">First Order Allpass Filter<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/14\/first-order-low-pass-and-high-pass-filters\/\">Lowpass and Highpass Derived from Allpass Filter<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/07\/phase-shifter-derived-from-cascaded-allpass-filters\/\">Phase Shifter Derived from Cascaded Allpass Filters<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/08\/four-pole-resonant-filter\/\">Four Pole Resonant Filter<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/09\/second-order-allpass-filter\/\">Second Order Allpass Filter<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/10\/bandpass-and-bandreject-derived-from-allpass-filter\/\">Bandpass and Bandreject Derived from Allpass Filter<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/10\/more-filters\/\">More Filters&#8230;.<\/a><\/li>\n<\/ul>\n<h3>Distortion<\/h3>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/30\/saturation-and-waveshaping\/\">Saturation and Waveshaping<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/31\/wavefolding\/\">Wavefolding<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/10\/31\/chebyshev-polynomials\/\">Chebyshev Polynomial Waveshapers<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/05\/decimation\/\">Decimation<\/a><\/li>\n<\/ul>\n<h3>Modulation<\/h3>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/24\/amplitude-modulation\/\">Amplitude (Ring) Modulation<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/24\/single-sideband-am\/\">Single Sideband AM<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/25\/two-operator-frequency-modulation\/\">2 Operator Frequency Modulation<\/a><\/li>\n<\/ul>\n<h3>Delay<\/h3>\n<ul>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/13\/introduction-single-echo-delay\/\">Introduction: Single Echo Delay<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/14\/fractional-delay-and-smoothed-time-control\/\">Fractional Delay With Smoothed Time Control<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/16\/delay-with-feedback\/\">Delay With Feedback<\/a><\/li>\n<li><a href=\"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/2019\/11\/16\/delay-applications\/\">Delay Applications<\/a><\/li>\n<\/ul>\n<h3>Reverb<\/h3>\n<h3>FFT Processing<\/h3>\n<h3><strong>Using LEAF (Lightweight Embedded Audio Framework)<\/strong><\/h3>\n<p>&nbsp;<\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Synthnotes is a repository of information on computer music programming, designed to support the UCSD music course MUS177\/MUS267. This course covers basic synthesis algorithms, and typically an applied development environment. Currently, this environment is either the STM32F4\/7 Discovery boards using the STM32CubeIDE or the JUCE plugin SDK. Material on this site will be updated every [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-74","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/pages\/74","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/comments?post=74"}],"version-history":[{"count":48,"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/pages\/74\/revisions"}],"predecessor-version":[{"id":647,"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/pages\/74\/revisions\/647"}],"wp:attachment":[{"href":"https:\/\/synthnotes.ucsd.edu\/wp4\/index.php\/wp-json\/wp\/v2\/media?parent=74"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}