What techniques go into synthesizing a guitar sound in Python? What higher-level programming and Python concepts can you practice while building advanced projects? This week on the show, we talk with Real Python author and core team member Bartosz Zaczyński about his recent step-by-step project, Build a Guitar Synthesizer: Play Musical Tablature in Python.

Bartosz shares how he had built an early prototype of the guitar synth using a different language. He describes recreating the Karplus-Strong algorithm in Python to create the plucked guitar sounds. We discuss teaching advanced Python concepts while guiding readers through constructing a complete project.

We also dig into reading and writing WAV files in Python, using Spotify’s pedalboard library, implementing Poetry in a project, and designing a file format for guitar tablature.

This episode is sponsored by Mailtrap.

Course Spotlight: Playing and Recording Sound in Python

In this course, you’ll learn about libraries that can be used for playing and recording sound in Python, such as PyAudio and python-sounddevice. You’ll also see code snippets for playing and recording sound files and arrays, as well as for converting between different sound file formats.

Topics:

  • 00:00:00 – Introduction
  • 00:02:04 – Reading and writing WAV files in Python
  • 00:04:48 – What did you want to learn about the topic?
  • 00:08:02 – Finding new ways to explain Python concepts
  • 00:09:52 – Turning audio into plots and visualizations
  • 00:12:11 – Using Python for synthesis and the guitar synth project
  • 00:13:19 – What is your music background?
  • 00:18:36 – Sponsor: Mailtrap
  • 00:19:11 – First prototype of the project
  • 00:22:23 – What does the project cover?
  • 00:25:08 – Audio examples of the output
  • 00:26:31 – Digging into the algorithm
  • 00:31:40 – Convolution reverb
  • 00:34:15 – Physical modeling and pedalboard
  • 00:38:08 – Video Course Spotlight
  • 00:39:31 – What Python concepts are you practicing?
  • 00:41:11 – Using Python poetry
  • 00:43:00 – Why use YAML for the TAB files?
  • 00:46:13 – What does it mean to be a polyglot programmer?
  • 00:48:37 – Potential upcoming Real Python resources
  • 00:52:10 – How can people follow your work online?
  • 00:52:30 – What do you want to learn next?
  • 00:54:56 – Thanks and goodbye

Show Links:

Level up your Python skills with our expert-led courses:

Support the podcast & join our community of Pythonistas