Code a Wavetable Synth with Python in 6 Minutes Tutorial [Synth #002]

preview_player
Показать описание
✅ Please subscribe to WolfSound to let the little Wolf 🐺 grow:

Hi, my name is Jan Wilczek and I am an audio programmer and a researcher. Welcome to WolfSound!

WolfSound enables everybody to learn about audio programming!

In this video, we are implementing the wavetable synthesis algorithm (a wavetable synthesizer) in Python. We deal with wave table generation, wave table looping, linear interpolation of samples, gain application, fade-in, and fade-out. Ultimately, we obtain a sine generator and a sawtooth generator. To implement the code in this video, you need just Python, a text editor (IDE), and SciPy and NumPy Python packages.

In case of any doubt in understanding, please, refer to the article above or ask a question in the comments 🙂

Note: The gains of the generated sines are not 0 dB and -20 dB respectively. I have adjusted them during editing so that the video is more pleasant to listen to. However, if you generate them with the presented code, you will get the described effect.

ABOUT ME

My name is Jan Wilczek. I am an audio programmer, a researcher, a musician and currently a student of the Elite Master's Study Programme Advanced Signal Processing and Communications Engineering at University of Erlangen-Nürnberg. Additionally, I am a visitng student at Aalto University in Finland, where I put finishing touches on my master thesis under the supervision of prof. Emanuël Habets, prof. Vesa Välimäki, and Alec Wright.

TIME CODES

00:00 Introduction
00:33 Packages import
01:06 Processing parameters
01:34 Wave table generation
02:53 Looping over the wave table
05:38 Storing the output in a .wav file with SciPy's wavfile
06:26 Sine generated with 0th-order interpolation
06:54 Adjusting the gain of the generated signal
07:59 How to reduce noise in wavetable synthesis?
08:34 Linear interpolation implementation
12:43 Sine generated using linear interpolation
13:10 Fade-in and fade-out implementation
15:52 Sawtooth generation
17:48 Summary

#python #synthesis #sound
Рекомендации по теме
Комментарии
Автор

I was able to make a sawtooth and even a square wave sing Daisy Bell. Thanks so much for the tutorial!

iesusdesus
Автор

Just came across your videos and your blog. Thank you, thank you, thank you! I am a hobbyist and was looking for some sort of organized method of exploring audio coding, and here it is! Wonderful!

FleshChopper
Автор

Finally following along with these in cmajor and it's been great! These videos are so helpful

sanjaux
Автор

Just found your nice channel. Thanks for the tutorials👍 Pls do more Python audio coding tutorials ☺️

spectralknights
Автор

amazing . please please make more videos like this

DavidMood
Автор

Thank you! This tutorial really completes the previous video.

It would be a great idea to create an audio course in this format, where you explain the topic and then the code implementation. (C++ or Python)

BrianMendoza
Автор

Really well explained, thank you so much!

PeVoNZ
Автор

Thank you so much, I used the code in this video to understand the basics, I'm looking to create a simple synthesizer GUI with amplitude sliders for harmonics to mess around with different waveforms, would be nice to visualize the waveform and an EQ as well in real time so I've got myself a challenge!

Teddy
Автор

Hello sir, thank you for this video. Could you explain the benefit of the wavetable beside computing the sin function each time ? We still have the problem of being limited in memory in the duration of the waves generated. Or is it not the purpose of a wavetable in the first place ?

TanguyLissenko
Автор

This is amazing, it’s the same complexity, just a fraction of the time. numpy speeds up runtime by converting to machine code right?? Thanks!

flywittzbeats
Автор

Thank you soooo much! This tutorial save my ass!

haoheliu
Автор

I’m struggling to make a Matrix with the pyo library. What i would like as a result is a wavetable with a “continuous” interpolation among these tables: triangle, saw, square, square with variable duty cicle. Do you have any advice?

michele
Автор

I failed in the language PureBasic to receive SYSEX DUMP from my hardware synth. Have you had any luck doing that in Python?

SiggeSvahn
Автор

Could not find the code on your website nor on github. In minute 18:05 you mention there is code on your website. Maybe you could link it. Thank's a lot!

dirkschiller
Автор

Just getting into coding pardon this noob question but what program are you using to write this code?

illusrecords
Автор

Could you please tell, why wavetable is 64?

nhhkhug
Автор

please do more video python synthesizer please like envelopes and filters and any other thing plsplspls

taehak
Автор

how to make a dll vds module
for my mulab sequencer station
?

sergiomax
Автор

Hi, Do you know how to make modular synthesizer?

agentasdfgh
Автор

Well if that isn't a nice workstation.
Great video!

leonardofuegofierro
join shbcf.ru