What is it like to design a Python library for three different audiences? This week on the show, we have Nir Aides, creator of Jupylet. His new library is designed for deep reinforcement learning researchers, musicians interested in live music coding, and kids interested in learning to program. Everything is designed to run inside of a Jupyter notebook.
Nir’s initial goal was to create a framework to study deep reinforcement learning, and this led to building a framework for 2D and 3D games and graphics. As he continued the development, he realized that this interactive environment could be a useful tool for learning Python.
We also talk about how he got interested in live music coding and the advanced mathematics of sound synthesis. Nir also shares some resources for finding graphic assets and tools for creating 3D models.
Course Spotlight: Using Jupyter Notebooks
In this step-by-step course, you learn how to get started with the Jupyter Notebook, an open source web application that you can use to create and share documents that contain live code, equations, visualizations, and text.
00:00:00 – Introduction00:02:25 – When did you start the project?00:02:50 – What is deep reinforcement learning?00:06:11 – How is deep reinforcement learning implemented in Jupylet?00:06:56 – What graphic libraries are being used?00:09:56 – What are the audiences for Jupylet?00:14:15 – Why create features for musicians?00:15:52 – Interactive code00:19:13 – Were you using Jupyter Notebooks previously?00:24:01 – Sponsor Digital Ocean00:24:40 – Scaling features and making it kid friendly00:28:59 – Outside help and learning about audio synthesis00:33:31 – Using NumPy for synthesis, effects, and algorithmic reverb00:39:08 – Video Course Spotlight00:40:13 – Relying on other packages for your own package00:42:26 – Assets for game design and working with 3D00:47:51 – What has feedback been like?00:48:31 – Looking for contributors00:49:45 – More on live music looping00:53:24 – What are you excited about in the world of Python?00:55:41 – What do you want to learn next?01:01:13 – Thanks and goodbyeJupylet: GitHub Project PageJupylet: Read the DocsDeep Reinforcement Learning: Wikipedia articleDQN Breakout: YouTube Learn OpenGLModernGL: ModernGL is a high performance rendering module for PythonSID (Sound Interface Device) - C64 Wiki Chiptune: Wikipedia articleThe Best Chiptune Groups/Artists: Ranker.comElektron SidStation: Wikipedia articleSonic Pi: Welcome to the future of musicFoxDot: Live Coding with Python and Super ColliderNyquist frequency: Wikipedia articleAliasing: Wikipedia articleCoding a basic reverb algorithm - Part 2: An introduction to audio programmingOpenair: Demo, download and share acoustic impulse responsesJupylet Docs: Impulse Response FilesVersilian Community Sample Library: Virtual InstrumentsVersilian Community Sample Library: GithubFree Sound Samples: One Laptop per ChildOne Laptop per Child: Wikipedia articleKenney.nl: Free game assets, no strings attachedTexture HavenFree PBR Texture Websites: The Graphic AssemblyBlender: Open Source 3D CreationEpisode 7: AsyncIO + Music, Origins of Black, and Managing Python Releasesimport asyncio: Learn Python’s AsyncIO #1 - The Async EcosystemPyTorch: Optimized Tensor Library for Deep Learning Using GPUs and CPUsLevel up your Python skills with our expert-led courses:
Using Jupyter NotebooksHistogram Plotting in Python: NumPy, Matplotlib, Pandas & SeabornPlaying and Recording Sound in Python Support the podcast & join our community of Pythonistas