<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RingBuffer (Posts about cpp:intro)</title><link>http://ringbuffer.org/</link><description></description><atom:link href="http://ringbuffer.org/categories/cat_cppintro.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Mon, 02 Mar 2026 17:58:39 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Resources</title><link>http://ringbuffer.org/cpp/intro/cpp-resources/</link><dc:creator>Henrik von Coler</dc:creator><description>&lt;p&gt;All examples and the sources for these websites are part of a public software repository: &lt;a class="reference external" href="https://github.com/anwaldt/sound_synthesis_cpp"&gt;https://github.com/anwaldt/sound_synthesis_cpp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For TU students, relevant information can be found on the related &lt;a class="reference external" href="https://www.ak.tu-berlin.de/menue/lehre/vergangene_semester/sommersemester_2019/sound_synthesis/"&gt;TU Website&lt;/a&gt;.&lt;/p&gt;</description><guid>http://ringbuffer.org/cpp/intro/cpp-resources/</guid><pubDate>Sun, 29 Nov 2020 00:00:00 GMT</pubDate></item><item><title>Past Projects - Sound Synthesis in C++</title><link>http://ringbuffer.org/cpp/intro/cpp-past-projects/</link><dc:creator>Henrik von Coler</dc:creator><description>&lt;p&gt;The following projects have been realized within the Sound Synthesis seminar in the past.&lt;/p&gt;
&lt;section id="vector-synthesis"&gt;
&lt;h2&gt;Vector Synthesis&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://gitlab.tubit.tu-berlin.de/c.jaedicke/Klangsynthese_PI"&gt;https://gitlab.tubit.tu-berlin.de/c.jaedicke/Klangsynthese_PI&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="additive-subtractive"&gt;
&lt;h2&gt;Additive-Subtractive&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://gitlab.tubit.tu-berlin.de/markus.wende/RoMa_Synthesizer_One"&gt;https://gitlab.tubit.tu-berlin.de/markus.wende/RoMa_Synthesizer_One&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/WRodewald/Klangsynthese"&gt;https://github.com/WRodewald/Klangsynthese&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="wave-digital-filter-wdf-tonestack"&gt;
&lt;h2&gt;Wave Digital Filter (WDF) Tonestack&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/chohner/RasPiWDF"&gt;https://github.com/chohner/RasPiWDF&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="polyphonic-karplus-strong"&gt;
&lt;h2&gt;Polyphonic Karplus-Strong&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/MoritzGue/Klangsynthese_JaMo"&gt;https://github.com/MoritzGue/Klangsynthese_JaMo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;</description><guid>http://ringbuffer.org/cpp/intro/cpp-past-projects/</guid><pubDate>Sun, 29 Nov 2020 00:00:00 GMT</pubDate></item><item><title>Concept</title><link>http://ringbuffer.org/cpp/intro/cpp-concept/</link><dc:creator>Henrik von Coler</dc:creator><description>&lt;p&gt;This module focuses on fundamental principles of sound synthesis algorithms in C++, covering paradigms like subtractive synthesis, additive synthesis, physical modeling, distortion methods and processed recording.
Theory and background of these approaches are covered in the contents of the &lt;a class="reference external" href="https://hvc.berlin/teaching/sound-synthesis-introduction/"&gt;Sound Synthesis Introduction&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The concept is based on Linux audio systems as development and runtime systems (von Coler &amp;amp; Runge, 2017).
Using Raspberry PIs, classes can be supplied with an ultra low cost computer pool, resolving any compatibility issues of individual systems.
Besides, the single board computers can be integrated into embedded projects for actual hardware instruments.
Participants can also install Linux systems on their own hardware for increased performance.&lt;/p&gt;
&lt;p&gt;Only few software libraries are part of the system used in this class, taking care of audio input and output, communication (OSC, MIDI), configuration and audio file processing.
This minimal required framework allows the focus on the actual implementation of the algorithms on a sample-by-sample level, not relying on extensive higher level abstractions.&lt;/p&gt;
&lt;hr class="docutils"&gt;
&lt;p&gt;Although the concept of this class has advantages, there are different alternatives with their own benefits.
There is a variety of frameworks to consider for implementing sound synthesis paradigms and building digital musical instruments with C/C++.
The &lt;a class="reference external" href="https://github.com/juce-framework/JUCE"&gt;JUCE&lt;/a&gt; framework allows the compilation of
&lt;em&gt;'desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins'&lt;/em&gt;.
It comes with many helpful features and can be used to create DAW-ready software components.
Environments like Puredata or SuperCollider come with APIs for programming user extensions.
The resulting software components can be integrated into existing projects, easily.&lt;/p&gt;
&lt;hr class="docutils"&gt;
&lt;section id="references"&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;div class="publication-list"&gt;
&lt;h4&gt;2017&lt;/h4&gt;
&lt;ul&gt;&lt;li class="publication" style="padding-bottom: 1em;"&gt;Henrik von Coler and David Runge.
&lt;a href="http://ringbuffer.org/papers/voncoler2017teaching.html"&gt;&lt;strong&gt;&lt;span class="bibtex-protected"&gt;Teaching Sound Synthesis in C/C++ on the Raspberry Pi&lt;/span&gt;.&lt;/strong&gt;&lt;/a&gt;
In &lt;em&gt;&lt;span class="bibtex-protected"&gt;Proceedings of the Linux Audio Conference&lt;/span&gt;&lt;/em&gt;. 2017.&lt;br&gt;[&lt;a href="http://ringbuffer.org/papers/voncoler2017teaching.html"&gt;details&lt;/a&gt;] 
            [&lt;a href="javascript:void(0)" onclick="
            (function(target, id) {
              if ($('#' + $.escapeSelector(id)).css('display') == 'block')
              {
                $('#' + $.escapeSelector(id)).hide('fast');
                $(target).text('BibTeX▼')
              }
              else
              {
                $('#' + $.escapeSelector(id)).show('fast');
                $(target).text('BibTeX▲')
              }
            })(this, 'bibtex-voncoler2017teaching');"&gt;BibTeX▼&lt;/a&gt;]
            &lt;div id="bibtex-voncoler2017teaching" style="display:none"&gt;&lt;pre&gt;@inproceedings{voncoler2017teaching,
    author = "von Coler, Henrik and Runge, David",
    booktitle = "{Proceedings of the Linux Audio Conference}",
    location = "Saint-Etienne",
    title = "{Teaching Sound Synthesis in C/C++ on the Raspberry Pi}",
    year = "2017"
}
&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/section&gt;</description><guid>http://ringbuffer.org/cpp/intro/cpp-concept/</guid><pubDate>Sun, 29 Nov 2020 00:00:00 GMT</pubDate></item></channel></rss>