The Real Python Podcast

Creating a Guitar Synthesizer & Generating WAV Files With Python


Listen Later

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:

    • Build a Guitar Synthesizer: Play Musical Tablature in Python – Real Python
    • Reading and Writing WAV Files in Python – Real Python
    • Episode #200: Avoiding Error Culture and Getting Help Inside Python – The Real Python Podcast
    • ActionScript - Wikipedia
    • Apache Flex® - Home Page
    • Too Many Zooz - Official Website
    • Watch Reverb - Watch the Sound With Mark Ronson (Season 1, Episode 3) - Apple TV+
    • Longest Reverb In the World - Inchindown - YouTube
    • Karplus–Strong string synthesis - Wikipedia
    • Physical modeling synthesis - Wikipedia
    • pedalboard: 🎛 🔊 A Python library for audio - Spotify
    • Poetry - Python dependency management and packaging made easy
    • Dependency Management With Python Poetry – Real Python
    • YAML: The Missing Battery in Python – Real Python
    • Guitar Tabs with Rhythm - Songsterr
    • It Starts with Food - The Whole30® Program
    • Bartosz Zaczyński - LinkedIn
    • Level up your Python skills with our expert-led courses:

      • Simulating Real-World Processes in Python With SimPy
      • Histogram Plotting in Python: NumPy, Matplotlib, Pandas & Seaborn
      • Playing and Recording Sound in Python
      • Support the podcast & join our community of Pythonistas

        ...more
        View all episodesView all episodes
        Download on the App Store

        The Real Python PodcastBy Real Python

        • 4.7
        • 4.7
        • 4.7
        • 4.7
        • 4.7

        4.7

        139 ratings


        More shows like The Real Python Podcast

        View all
        The Changelog: Software Development, Open Source by Changelog Media

        The Changelog: Software Development, Open Source

        288 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        625 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        579 Listeners

        Soft Skills Engineering by Jamison Dance and Dave Smith

        Soft Skills Engineering

        289 Listeners

        Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

        Super Data Science: ML & AI Podcast with Jon Krohn

        303 Listeners

        Python Bytes by Michael Kennedy and Brian Okken

        Python Bytes

        213 Listeners

        Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

        Syntax - Tasty Web Development Treats

        988 Listeners

        Darknet Diaries by Jack Rhysider

        Darknet Diaries

        8,087 Listeners

        Tech Brew Ride Home by Morning Brew

        Tech Brew Ride Home

        967 Listeners

        Practical AI by Practical AI LLC

        Practical AI

        197 Listeners

        AWS Podcast by Amazon Web Services

        AWS Podcast

        207 Listeners

        Django Chat by William Vincent and Carlton Gibson

        Django Chat

        75 Listeners

        Last Week in AI by Skynet Today

        Last Week in AI

        311 Listeners

        Machine Learning Street Talk (MLST) by Machine Learning Street Talk (MLST)

        Machine Learning Street Talk (MLST)

        100 Listeners

        The Pragmatic Engineer by Gergely Orosz

        The Pragmatic Engineer

        70 Listeners