Source code of my WolfSound audio programming blog. The site runs on Eleventy and can be found under https://thewolfsound.com.
Before you build the website or run in dev mode, run
npm install
git lfs install
git lfs pull # to get the actual images locally
npx gulp # to package local dependencies
to copy the CSS assets to the right folders.
To run the test server
npx @11ty/eleventy --serve
# or
npm start
To build the website to the _site folder.
npm run build
To build pngs from latex files:
latexmk filename.tex -shell-escape
To resize a png image and convert it to a webp image:
cwebp Thumbnail.png -q 65 -s 1024 0 -o Thumbnail.webp
To run Python code, create a virtual environment first.
python -m venv venv # create virtual environment
# activate it
source venv/bin/activate # or .\venv\bin\Scripts\Activate.ps1 if you're using PowerShell
pip install . # install dependencies
You can then run the scripts like usual.
python _py/posts/synthesis/2025-03-01-fm-synthesis/fm_synthesis.py
{% include 'podcast_cta' %}
{% include 'youtube-video', video_id: '5DFUH0zCn3Y' %}
[Partitioned convolution]({% post_url collections.posts, '2021-05-14-fast-convolution' %})
[About me]({% link collections.all, 'about.md' %})
{% render 'embed-audio.html', src: "/assets/wav/posts/synthesis/2022-06-26-sine-saw-square-triangle-basic-waveforms-in-synthesis/sine_example.flac" %}
{% image "assets/img/posts/synthesis/2025-03-01-fm-synthesis/partials_amplitudes_in_3d.png", "alt text for you to fill" %}
At the top of the article (but after the first line) paste:
{% capture _ %}{% increment figureId20211022 %}{% endcapture %}
Then immediately underneath each image, paste:
_Figure {% increment figureId20211022 %}. Block diagram of an FIR allpass filter._
- sound wave
- sampling (A/D conversion)
- quantization
- sample rate
- aliasing
- effects
- python
- software architecture
- design principles
- testing
- c
- cpp
- convolution
- filtering
- maths
- fourier
- laplace
- transform
- impulse
- template metaprogramming
- correlation
- matlab
- probability
- wavetable
- waveform
- sampling (sound generation)
- juce
- rust
- career
- learning
- research
- reverb
- deep learning
- virtual analog
- amplifiers
- simd
- hardware
- envelope
- android
- kotlin
- java
- virtual reality
- spatial audio
- acoustics
- accessibility
- cmake
- plugin
- web audio
- javascript
- typescript
- book review
- puredata
- iplug2
- swift
- flutter
- cmajor
- digital audio workstation
- audio generation