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

        134 ratings


        More shows like The Real Python Podcast

        View all
        Hanselminutes with Scott Hanselman by Scott Hanselman

        Hanselminutes with Scott Hanselman

        378 Listeners

        Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

        Software Engineering Radio - the podcast for professional software developers

        262 Listeners

        The Changelog: Software Development, Open Source by Changelog Media

        The Changelog: Software Development, Open Source

        285 Listeners

        LINUX Unplugged by Jupiter Broadcasting

        LINUX Unplugged

        263 Listeners

        Thoughtworks Technology Podcast by Thoughtworks

        Thoughtworks Technology Podcast

        43 Listeners

        Talk Python To Me by Michael Kennedy

        Talk Python To Me

        585 Listeners

        Software Engineering Daily by Software Engineering Daily

        Software Engineering Daily

        630 Listeners

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

        Super Data Science: ML & AI Podcast with Jon Krohn

        295 Listeners

        Python Bytes by Michael Kennedy and Brian Okken

        Python Bytes

        212 Listeners

        Data Engineering Podcast by Tobias Macey

        Data Engineering Podcast

        142 Listeners

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

        Syntax - Tasty Web Development Treats

        984 Listeners

        CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

        CoRecursive: Coding Stories

        185 Listeners

        DataFramed by DataCamp

        DataFramed

        267 Listeners

        Practical AI by Practical AI LLC

        Practical AI

        196 Listeners

        The Stack Overflow Podcast by The Stack Overflow Podcast

        The Stack Overflow Podcast

        63 Listeners