<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: blal1</title>
    <description>The latest articles on DEV Community by blal1 (@blal1).</description>
    <link>https://dev.to/blal1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4220978%2F5cf9bb6c-607f-4396-9a03-a268a246404a.png</url>
      <title>DEV Community: blal1</title>
      <link>https://dev.to/blal1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/blal1"/>
    <language>en</language>
    <item>
      <title>Genny: Building Procedural Sounds and Music with Python</title>
      <dc:creator>blal1</dc:creator>
      <pubDate>Sun, 01 Nov 2026 17:45:36 +0000</pubDate>
      <link>https://dev.to/blal1/genny-building-procedural-sounds-and-music-with-python-jli</link>
      <guid>https://dev.to/blal1/genny-building-procedural-sounds-and-music-with-python-jli</guid>
      <description>&lt;h1&gt;
  
  
  Genny: Building Procedural Sounds and Music with Python
&lt;/h1&gt;

&lt;p&gt;What if a game could generate its own sound effects instead of relying entirely on prerecorded audio files?&lt;/p&gt;

&lt;p&gt;What if you could describe a material, an instrument, a physical interaction or a musical sequence in Python and turn it into an actual WAV file?&lt;/p&gt;

&lt;p&gt;That is the idea behind &lt;strong&gt;Genny&lt;/strong&gt;, an open-source Python library I have been developing to explore procedural audio synthesis and physically informed sound generation.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/blal1/genny" rel="noopener noreferrer"&gt;https://github.com/blal1/genny&lt;/a&gt;&lt;br&gt;&lt;br&gt;
PyPI: &lt;a href="https://pypi.org/project/genny/" rel="noopener noreferrer"&gt;https://pypi.org/project/genny/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What is Genny?
&lt;/h2&gt;

&lt;p&gt;Genny is an offline sound and music synthesis library written in Python.&lt;/p&gt;

&lt;p&gt;It provides a collection of generators and physical models that can produce audio from parameters, code or structured JSON specifications.&lt;/p&gt;

&lt;p&gt;Rather than simply playing prerecorded samples, Genny can generate sounds based on properties such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instrument type and playing parameters.&lt;/li&gt;
&lt;li&gt;Material and object size.&lt;/li&gt;
&lt;li&gt;Physical interactions such as impacts, friction and bouncing.&lt;/li&gt;
&lt;li&gt;Environmental conditions and room acoustics.&lt;/li&gt;
&lt;li&gt;Musical notes, sequences and effects.&lt;/li&gt;
&lt;li&gt;Random seeds for controlled variations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project currently includes a large catalogue of instruments, drums, sound effects, audio effects and generative layers.&lt;/p&gt;

&lt;p&gt;Its main goal is to make procedural audio accessible from ordinary Python programs while also providing lower-level tools for people interested in sound synthesis and physical modelling.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;Install Genny with pip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;genny
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can then import it directly into Python.&lt;/p&gt;

&lt;p&gt;For example, let's generate a glass impact:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;genny&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;genny.sfx&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;render_sfx&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;genny.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;write_wav&lt;/span&gt;

&lt;span class="n"&gt;sample_rate&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;44100&lt;/span&gt;

&lt;span class="n"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;render_sfx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;impact&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;sample_rate&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;material&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glass&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;write_wav&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glass_tap.wav&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;audio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sample_rate&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The generator returns a NumPy audio array, which can be processed, mixed or saved as a WAV file.&lt;/p&gt;

&lt;p&gt;You are not limited to glass impacts. You can generate many kinds of sounds by changing the generator and its parameters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating instruments and musical sequences
&lt;/h2&gt;

&lt;p&gt;Genny also provides instruments and musical synthesis tools.&lt;/p&gt;

&lt;p&gt;For example, you can generate a short guitar sequence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;genny &lt;span class="nb"&gt;seq &lt;/span&gt;guitar &lt;span class="s2"&gt;"E3:1 G3:1 B3:1 E4:2"&lt;/span&gt; &lt;span class="nt"&gt;--bpm&lt;/span&gt; 100 &lt;span class="nt"&gt;-o&lt;/span&gt; tune.wav
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also generate a sequence using another instrument:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;genny &lt;span class="nb"&gt;seq &lt;/span&gt;cristal &lt;span class="s2"&gt;"A4:2 C5:2 E5:4"&lt;/span&gt; &lt;span class="nt"&gt;--bpm&lt;/span&gt; 60 &lt;span class="nt"&gt;-o&lt;/span&gt; cristal.wav
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The command-line interface makes it possible to experiment with sounds without writing a complete Python program.&lt;/p&gt;

&lt;p&gt;Genny also includes generated music in multiple styles, alongside instruments ranging from keyboards and strings to winds, percussion and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Physical sound modelling
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of Genny is its physically informed synthesis engine.&lt;/p&gt;

&lt;p&gt;The idea is to model aspects of how sounds are produced rather than relying exclusively on generic oscillators or static recordings.&lt;/p&gt;

&lt;p&gt;For example, the library provides models for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Plucked and bowed strings.&lt;/li&gt;
&lt;li&gt;Piano strings and hammer interactions.&lt;/li&gt;
&lt;li&gt;Acoustic tubes, reeds and wind instruments.&lt;/li&gt;
&lt;li&gt;Membranes, bars and vibrating plates.&lt;/li&gt;
&lt;li&gt;Impacts and friction between physical materials.&lt;/li&gt;
&lt;li&gt;Bubbles, pouring liquids, fire and environmental sounds.&lt;/li&gt;
&lt;li&gt;Room acoustics and sound propagation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is a small example using a physical string model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;genny&lt;/span&gt;

&lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genny&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;StringInstrument&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;guitar&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;position&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;brightness&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.6&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;audio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pluck&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="mf"&gt;220.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mf"&gt;2.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;velocity&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.8&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The library also exposes lower-level research-oriented modules under &lt;code&gt;genny.physical&lt;/code&gt;, including waveguides, modal synthesis, particles, voice and room acoustics.&lt;/p&gt;

&lt;p&gt;These models are reduced-order approximations designed for practical audio generation. They are not intended to replace full finite-element or boundary-element simulations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Procedural audio for video games
&lt;/h2&gt;

&lt;p&gt;Game development is one of the areas where I think procedural audio can be particularly useful.&lt;/p&gt;

&lt;p&gt;Instead of shipping a separate audio file for every possible event, a game can generate sounds from its current state.&lt;/p&gt;

&lt;p&gt;Imagine a game with a vehicle whose engine changes according to its RPM and load.&lt;/p&gt;

&lt;p&gt;With Genny, you can generate an engine sound using parameters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;genny&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;genny.sfx&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;render_sfx&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;genny.core&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;write_wav&lt;/span&gt;

&lt;span class="n"&gt;engine&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;render_sfx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pipe_engine&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="mi"&gt;44100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;rpm&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;3200.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;cylinders&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;dur&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;2.0&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;write_wav&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;engine.wav&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;44100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same principle can be used for interface sounds, footsteps, environmental ambience, machinery, impacts and other dynamic events.&lt;/p&gt;

&lt;p&gt;Another useful feature is deterministic generation: identical arguments produce identical audio samples. This makes it possible to cache generated sounds instead of recalculating them every time.&lt;/p&gt;

&lt;p&gt;For example, a game could maintain a cache of sound effects generated from their parameters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building audio directly into Python applications
&lt;/h2&gt;

&lt;p&gt;Genny is not limited to command-line usage.&lt;/p&gt;

&lt;p&gt;Its Python API allows you to integrate sound generation into an application.&lt;/p&gt;

&lt;p&gt;A generated sound can be stored in a variable, transformed with effects, mixed with other signals or converted into WAV bytes in memory.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;functools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;lru_cache&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;numpy&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;

&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;genny.sfx&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;render_sfx&lt;/span&gt;

&lt;span class="n"&gt;SAMPLE_RATE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;44100&lt;/span&gt;

&lt;span class="nd"&gt;@lru_cache&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;maxsize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;sound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;render_sfx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;SAMPLE_RATE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;glass&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;impact&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;material&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;glass&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;wood&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sound&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;impact&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;material&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;wood&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is particularly useful when an application needs reusable sound generators or multiple variations of the same event.&lt;/p&gt;

&lt;p&gt;The repository also contains a more complete integration example in &lt;code&gt;examples/in_your_code.py&lt;/code&gt;, covering caching, parameter banks, interface events, effects, generated scenes and in-memory WAV conversion.&lt;/p&gt;

&lt;h2&gt;
  
  
  A large collection of sound generators
&lt;/h2&gt;

&lt;p&gt;Genny includes a broad catalogue of sound generators and processing tools.&lt;/p&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Musical instruments and percussion.&lt;/li&gt;
&lt;li&gt;Mechanical and vehicle sounds.&lt;/li&gt;
&lt;li&gt;Environmental ambience.&lt;/li&gt;
&lt;li&gt;Animals, insects and footsteps.&lt;/li&gt;
&lt;li&gt;Impacts, scraping, rolling and breaking objects.&lt;/li&gt;
&lt;li&gt;Speech and vocal synthesis.&lt;/li&gt;
&lt;li&gt;Reverbs, filters and spectral processing.&lt;/li&gt;
&lt;li&gt;Retro sound-generation engines.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can inspect the available generators directly from the command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;genny list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also inspect an existing audio file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;genny info tune.wav
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The analysis tools provide information such as loudness, sharpness, brightness and spectral characteristics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source and documentation
&lt;/h2&gt;

&lt;p&gt;Genny is an ongoing project, and I am continuing to expand its catalogue, improve its physical models and refine its Python API.&lt;/p&gt;

&lt;p&gt;If you want to explore the implementation, the repository contains several useful documentation resources:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Documentation&lt;/th&gt;
&lt;th&gt;What it covers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs/README.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Documentation index and Python quick start&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs/catalog.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Instruments, effects, sound generators and parameters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs/physics.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Physical models, references and known limitations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs/api.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Public Python API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;JSON specifications, musical notation and generation recipes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;examples/in_your_code.py&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Integration into Python applications&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; some physical synthesis components are adapted from the Klang procedural library. If you intend to distribute Genny-generated audio in an interactive product, read &lt;code&gt;THIRD_PARTY_NOTICES.md&lt;/code&gt; and &lt;code&gt;THIRD_PARTY_KLANG_LICENSE.txt&lt;/code&gt; in the repository to understand the applicable attribution requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it and share your feedback
&lt;/h2&gt;

&lt;p&gt;I would love to see what other developers, audio programmers, musicians and game creators could build with Genny.&lt;/p&gt;

&lt;p&gt;Some interesting directions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Procedural sound effects for indie games.&lt;/li&gt;
&lt;li&gt;Dynamic audio systems driven by game state.&lt;/li&gt;
&lt;li&gt;Generative music experiments.&lt;/li&gt;
&lt;li&gt;Physical modelling and audio research.&lt;/li&gt;
&lt;li&gt;Automated sound generation pipelines.&lt;/li&gt;
&lt;li&gt;Creative coding projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are interested, you can find the project here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/blal1/genny" rel="noopener noreferrer"&gt;https://github.com/blal1/genny&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PyPI:&lt;/strong&gt; &lt;a href="https://pypi.org/project/genny/" rel="noopener noreferrer"&gt;https://pypi.org/project/genny/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contributions, bug reports, suggestions and discussions are welcome.&lt;/p&gt;

&lt;p&gt;I'm particularly interested in feedback about the API, documentation, sound quality, physical modelling and potential applications.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and happy sound generation!&lt;/p&gt;

</description>
      <category>python</category>
      <category>opensource</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
