{ "cells": [ { "cell_type": "markdown", "id": "fbfa1c4c-cec5-4f5c-85c4-36a18ecae88a", "metadata": {}, "source": [ "# Generating sounds via Python\n", "\n", "Python is maybe not the programming language of choice when creating sounds because it is a language which executes one thing at a time (and therefore makes it hard to playback sound while calculating a pattern in the meantime) but for this chapter we want to explore the possibilities of audio synthesis with Python using numpy.\n", "\n", "To generate an digital audio signal from the ground gives us also the possibility to recap the understanding of digital signal processing step by step.\n", "\n", "A recommenden read and watch on this topic are [A Digital Media Primer For Geeks](https://wiki.xiph.org/Videos/A_Digital_Media_Primer_For_Geeks) and [Digital Show & Tell](https://wiki.xiph.org/Videos/Digital_Show_and_Tell), both by the excellent [xiph.org](https://xiph.org/) foundation." ] }, { "cell_type": "code", "execution_count": null, "id": "15be6597-f380-451b-bf1d-7266fe8d83d0", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib as mpl\n", "import matplotlib.pyplot as plt\n", "import soundfile\n", "from IPython.display import display, Audio\n", "\n", "mpl.rcParams['figure.figsize'] = (10, 3)" ] }, { "cell_type": "markdown", "id": "e20c1ae1-ef55-471a-a587-1b8c414cd120", "metadata": {}, "source": [ "## The canvas of an audio file\n", "\n", "The most common way to store audio signals in a digital way is [PCM](https://en.wikipedia.org/wiki/Pulse-code_modulation) which stores at each point of time the amplitude of the signal.\n", "But we need to refine the term *point of time* here.\n", "In the real world signals are continuous - but representing a continious signal in a memory limited and *binary thinking* computer is impossible why we need to introduce quantisation of our signal.\n", "\n", "![PCM encoded signal - [Source](https://commons.wikimedia.org/wiki/File:Pcm.svg)](https://upload.wikimedia.org/wikipedia/commons/b/bf/Pcm.svg)" ] }, { "cell_type": "markdown", "id": "a4e0d1e1-4717-41d7-bcaa-1f0c4c1a402d", "metadata": {}, "source": [ "### Amplitude quantisation\n", "\n", "PCM quantizes the time and the amplitude domain where each fraction of time is stored as a position in a list.\n", "The amplitude $a_i$ at a timestep $i$ is encoded as an integer or a float.\n", "For both we can use different bit sizes to control the precission of our amplitude quantisation.\n", "CDs use 16 bit integer which result in $2^{16}=65'536$ distinct values of amplitude.\n", "But as an amplitude can be positive and negative this should be accounted and so instead of an unsigned 16 bit integer which covers the numbers from $0$ to $65'535$ we use a signed 16 bit integer which maps the same $65'536$ possible bit combinations from $−32'768$ to $+32'767$.\n", "\n", "The difference of the original continous signal and the same signal represented in $65'536$ discrete steps of amplitude gives us the quantization error (also called quantisation noise).\n", "Using an analog to digital converter (*ADC*) we can represent an audio range of $96.33~\\text{dB}$ until the quantisation noise is louder than our signal (called noise floor or signal to noise ration (*SNR*)) while using 16 bit, see [audio bit depth](https://en.wikipedia.org/wiki/Audio_bit_depth#Quantization).\n", "\n", "As we now have a restricted range of our amplitude values, it is not possible to exceed this boundary as every value that does not fit into this restriction gets [clipped](https://en.wikipedia.org/wiki/Clipping_(audio)) which results in distortion of our signal.\n", "One countermeasure is to work with [floating point precision](https://en.wikipedia.org/wiki/Double-precision_floating-point_format) numbers instead, but this forces us to use a higher resolution - 32 and 64 bit are common - resulting in 2 or 4 times the amount of data compared to a 16 bit integer signal.\n", "Have in mind that this does not just consume more memory but it also takes more time to compute." ] }, { "cell_type": "markdown", "id": "5548f6a3-d29a-4947-87ce-a807f46e949d", "metadata": {}, "source": [ "### Time quantisation\n", "\n", "As we also have to quantise the time domain we need to think about what kind of resolution is necessary to find a good compromise between digital resources and human perception.\n", "Thankfully there is the [Nyquist theorem](https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem) which tells us the necessary resolution of our time domain, also called *bandwith*, to accurately represent a frequency.\n", "The theorem tells us that we can represent any frequency $f$ in our signal accurately if the length of the block of time (also called bandwith) has at least the length of $2f$ where the unit of a frequncy is $1 \\text{Hz} = \\frac{1}{\\text{sec}}$.\n", "In this case $f$ is als known as the [Nyquist rate](https://en.wikipedia.org/wiki/Nyquist_rate) and we refer to $2f$ as the *sampling rate*.\n", "\n", "Doing a hearing test tells us that our perception of sine waves already declines at around $8'000~\\text{Hz}$ sine and fades away completely between $14'000$ and $20'000~\\text{Hz}$ which is different for each person due to anatomy.\n", "Additionally the *Fletcher Munson curve* tells us an approximation of our sensitivity on frequencies as this is not linear.\n", "\n", "![Fletcher-Munson curve - [Source](https://commons.wikimedia.org/wiki/File:Lindos4.svg)](https://upload.wikimedia.org/wikipedia/commons/4/49/Lindos4.svg)\n", "\n", "To represent a signal of up to $f=20'000~\\text{Hz}$ the Nyquist rate tells us that we need a samplerate of at least $2f=40'000~\\text{Hz}=0.000025~\\text{sec}$.\n", "One thing we omitted from the Nyquist theorem is that this only works if we work on a bandwith limited signal meaning that no frequency above our Nyquist rate is present in our signal.\n", "We can use a [filter](https://en.wikipedia.org/wiki/Electronic_filter) in front of our ADC to filter out too high frequencies but this filter can not cut hard at a specific frequency without introducing unwanted aliasing which is why we add an additional buffer of frequencies so the frequency rolloff can be applied more gentle.\n", "\n", "Of course there are applications where a higher resolution of time (samplerate) is relevant.\n", "If we want to capture ultrasonics we are dependent on a higher sampling rate which can be also transferred down to human perceivable frequencies by changing the playback sample rate $f_p$ to a lower frequency.\n", "If the original material had a sampling rate of $f_o$ the playback speed relative to the originally recorded material is simply $\\frac{f_p}{f_o}=s$ where all frequencies are divided by the factor $s$.\n", "\n", "At the end we can understand why the CD has 16 bits for the quantisation of amplitude and a sampling rate of $44'1000~\\text{Hz}$ to represent a PCM encoded signal as this reflects the limits of our hearing pretty accurate while still stick to the constraints of early 1980s electronics." ] }, { "cell_type": "markdown", "id": "9f33ebd6-f449-4d53-a951-a78832cb5934", "metadata": {}, "source": [ "## Audio signal synthesis via numpy\n", "\n", "After we have briefly discussed the theory behind representing audio signals in the digital domain we can implement this in Python now.\n", "Although most modern software work intenally with a 32 or 64 bit depth we will settle for PCM with a bit depth of 16 bit and a sample rate of $48'000~\\text{Hz}$ because it is easier to understand the amplitude precision via integers." ] }, { "cell_type": "code", "execution_count": null, "id": "b45aa1ca-974f-4c6d-a2f8-11e0911e9f7c", "metadata": {}, "outputs": [], "source": [ "BIT_RATE = 16\n", "SAMPLING_RATE = 48000\n", "MAX_AMP = (2**BIT_RATE/2)-1" ] }, { "cell_type": "markdown", "id": "c355e35e-f7a3-49b5-a3de-20542464edd3", "metadata": {}, "source": [ "As an audio signal depends on an orientation in time we will now create a enumerated timeline where each quantised step represents $\\frac{1}{48'000~\\text{Hz}} \\approx 0.00002~\\text{sec}$.\n", "We will create a timeline of 2 seconds, so $2*48'000=96'000$ steps which could be seen as the ticks of our clock which ticks $48'000$ times per second." ] }, { "cell_type": "code", "execution_count": null, "id": "afb7cec8-c8df-4ee0-9c80-4ff70996b02b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 1, 2, ..., 95997, 95998, 95999])" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "clock_ticks = np.arange(start=0, stop=SAMPLING_RATE*2, step=1, dtype=np.int)\n", "clock_ticks" ] }, { "cell_type": "markdown", "id": "3ef48874-b458-41a4-b47f-249f0aeeec47", "metadata": {}, "source": [ "We can now use this progressing time to calculate the position of a sine wave at each of our steps.\n", "But first we need to check on an important property of sine, its periodity." ] }, { "cell_type": "code", "execution_count": null, "id": "327b2511-81ed-4f75-81bb-e4518d7fbebf", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.arange(0, 4*np.pi, 1/1000)\n", "plt.plot(x, np.sin(x))\n", "plt.grid()\n", "plt.show();" ] }, { "cell_type": "markdown", "id": "bf5ba0f6-a115-4f8a-914e-c575f718a073", "metadata": {}, "source": [ "Sine has a period of $2 \\pi$, meaning that it repeats its output after multitudes of $2 \\pi$.\n", "As we want to create a sine wave which repeats 440 times a second $\\left( 440~\\text{Hz} = 440 \\frac{1}{\\text{sec}} \\right)$ we need to take account the periodicity of sine as we need to scale it to our ticking clock, the samplerate.\n", "\n", "As a second is represented through $48'000$ steps due to our sampling rate we need to scale 440 times per second by our representation of our time\n", "\n", "$$\n", "\\sin_{440}(x) = \\sin \\left( \\frac{440~\\text{Hz}}{48'000~\\text{Hz}} 2 \\pi x \\right) \\approx \\sin \\left( 0.00917 * 2 \\pi x \\right)\n", "$$\n", "\n", "where $x$ are the incrementing ticks of our clock which runs at $48'000~\\text{Hz}$.\n", "\n", "We scale the amplitude of our signal by the bit depth we have choosen and can transfer the formula above to the following code." ] }, { "cell_type": "code", "execution_count": null, "id": "224a768a-7bf9-4dbf-a368-40a5a1b4e3a0", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 1886, 3766, ..., -5633, -3766, -1886], dtype=int16)" ] }, "execution_count": null, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sine_signal = (np.sin((2*np.pi*440/SAMPLING_RATE)*clock_ticks)*MAX_AMP).astype(np.int16)\n", "sine_signal" ] }, { "cell_type": "markdown", "id": "9cd2ec57-8d5d-415d-a18a-81a3e64dce6a", "metadata": {}, "source": [ "We will write a small convenience function for plotting signals." ] }, { "cell_type": "code", "execution_count": null, "id": "59ed0e77-5de0-46ee-910c-0a74c4d4ac09", "metadata": {}, "outputs": [], "source": [ "def plot_signal(signal: np.ndarray, steps: int = SAMPLING_RATE/20):\n", " plt.plot(np.arange(0, len(signal), 1), signal)\n", " if steps:\n", " plt.xlim(0, steps)\n", " plt.hlines(0, 0, len(signal), color='red')\n", " plt.show();" ] }, { "cell_type": "markdown", "id": "3c18f49a-5ec9-4e03-bae5-e3c5df675960", "metadata": {}, "source": [ "Now we can take a look at our just generated signal." ] }, { "cell_type": "code", "execution_count": null, "id": "31ac89e5-625e-4dc5-a8cc-6c14764715d6", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_signal(sine_signal)" ] }, { "cell_type": "markdown", "id": "063e1c5c-c848-47cd-8ebf-946903cefff6", "metadata": {}, "source": [ "### Storing audio data in a file\n", "\n", "How a PCM signal is stored in a file is determined by a [container](https://en.wikipedia.org/wiki/Container_format_(computing)) and is different from container to container.\n", "A container can also store metadata (such as title of the file) and store multi-channel audio which is simply encoded as multiple PCM channels.\n", "\n", "How to write such a file precisely is out of our scope and can use the library [soundfile](https://github.com/bastibe/python-soundfile) (which itself uses the library [libsndfile](http://www.mega-nerd.com/libsndfile/) to write the files) to hand off this task.\n", "\n", "We can use directly listen to the rendered file from within Jupyter and embedd it into our document.\n", "\n", "**Pay attention** The file stores a sine wave at maximum level! Lower the levels of your listening device before hitting play!" ] }, { "cell_type": "code", "execution_count": null, "id": "7f41b704-cd36-4e6d-8c85-b8ac8c7b19dc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "soundfile.write(file='sine.wav', data=sine_signal*0.4, samplerate=SAMPLING_RATE, subtype='PCM_16')\n", "display(Audio('sine.wav'))" ] }, { "cell_type": "markdown", "id": "fbb69bb9-4a79-4bf4-ab9f-c89d863bb449", "metadata": {}, "source": [ "### Combining multiple sine waves\n", "\n", "Most of the time we do not want to limit us to a single sine tone - but already a combination of 2 sine tones can sound more interesting and is also easily written as code using numpy.\n", "For this we will write an function which acts as a sine oscilator." ] }, { "cell_type": "code", "execution_count": null, "id": "f9566e7c-87ed-4303-82aa-3aa713bc7227", "metadata": {}, "outputs": [], "source": [ "def sine_osc(hz: int, amp: float = 1.0, dtype=np.int16) -> np.ndarray:\n", " return (np.sin((2*np.pi*hz/SAMPLING_RATE)*clock_ticks)*MAX_AMP*amp).astype(dtype)" ] }, { "cell_type": "markdown", "id": "9bfb129c-6607-413a-8568-8c54a25636af", "metadata": {}, "source": [ "#### 200 Hz + 440 Hz\n", "\n", "Combining a 200 Hz sine wave with a 440 Hz sine wave can be simply written in the following way which reminds a bit of SuperCollider." ] }, { "cell_type": "code", "execution_count": null, "id": "65f86855-7165-4298-a4be-e0cfc35f054c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sine_200 = sine_osc(200, amp=0.5)\n", "sine_440 = sine_osc(440, amp=0.3)\n", "\n", "sine_200_440 = sine_440 + sine_200\n", "\n", "plot_signal(sine_200_440)" ] }, { "cell_type": "code", "execution_count": null, "id": "4141d1ca-1838-47aa-a800-489d903b0356", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "soundfile.write(file='sine_200_400.wav', data=sine_200_440, samplerate=SAMPLING_RATE, subtype='PCM_16')\n", "display(Audio('sine_200_400.wav'))" ] }, { "cell_type": "markdown", "id": "e275c7ca-2d21-4ab9-a6a7-2e72a7b47cda", "metadata": {}, "source": [ "### Overtone series\n", "\n", "We can also create more complex sounds by layering $n$ sine waves given a base frequency $f_b$ using\n", "\n", "$$\n", "\\text{signal}(x) = \\sum_{i \\in \\{ 0, \\dots n\\}} \\sin_{\\text{f}_i}(x) = \\sum_{i \\in \\{ 0, \\dots n\\}} \\sin_{f_b^{\\frac{16+i}{16}}}(x)\n", "$$\n", "\n", "where we can use matplotlib to plot the stacked frequencies." ] }, { "cell_type": "code", "execution_count": null, "id": "db0fb753-a84c-4139-a637-434733a8e171", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.arange(0, 16, 1)\n", "plt.bar(x, 160**((16+x)/16));\n", "plt.grid()" ] }, { "cell_type": "code", "execution_count": null, "id": "86144e64-48bb-4a9f-be88-3015f2306c96", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "base_freq = 160\n", "num_steps = 15\n", "sine_comb = np.sum([sine_osc(base_freq**((16+i)/16), amp=1/(num_steps+1)) for i in range(num_steps)], axis=0).astype(np.int16)\n", "\n", "plot_signal(sine_comb)" ] }, { "cell_type": "code", "execution_count": null, "id": "7fab693a-7f5e-4072-8793-afabfd817213", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "soundfile.write(file=f'sine_{base_freq}_comb.wav', data=sine_comb, samplerate=SAMPLING_RATE, subtype='PCM_16')\n", "display(Audio(f'sine_{base_freq}_comb.wav'))" ] }, { "cell_type": "markdown", "id": "7c7e37f4-bd0b-4f53-b88d-9531ca6a1d05", "metadata": {}, "source": [ "#### Frequency swipe\n", "\n", "Instead of using a constant scalar for the frequency for our sine oscillator we can also pass it a numpy array with values." ] }, { "cell_type": "code", "execution_count": null, "id": "65c5e935-9d8c-4ad7-84b4-654949694f2d", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "freq_swipe = np.linspace(100, 1000, num=SAMPLING_RATE*2) # go from 100 to 1000 in 96000 steps\n", "sine_swipe = sine_osc(freq_swipe, amp=0.5)\n", "\n", "plot_signal(sine_swipe, steps=9600)" ] }, { "cell_type": "code", "execution_count": null, "id": "268efe34-c7c0-4652-8651-dd8325ebfbd7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "soundfile.write(file='sine_swipe.wav', data=sine_swipe, samplerate=SAMPLING_RATE, subtype='PCM_16')\n", "display(Audio('sine_swipe.wav'))" ] }, { "cell_type": "markdown", "id": "b8a3f005-aa88-4d5d-823a-5c400a4de34d", "metadata": {}, "source": [ "Using Python to generate audio signals is possible but also tedious as some basic design choices at the core of Python show why a domain specific language like sclang with its sound engine SuperCollider has advantages such as immediately playback of the signal and change the parameters of the code can be modified while the signal is playing.\n", "\n", "Both of these would be really hard if not impossible to implement in Python.\n", "Althogh numpy arrays and [UGens](https://doc.sccode.org/Guides/UGens-and-Synths.html) share some basic principles numpy arrays are not build to work with streaming data - which is a basic idea of SuperCollider and allows us to work in realtime.\n", "Python is nonetheless a good addition to SuperCollider as due its popularity and variety of use cases it fills gaps in SuperCollider and is also a language which focus on readability." ] }, { "cell_type": "code", "execution_count": null, "id": "fb4df706-a459-41f2-ac22-bcd26dcb7889", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 5 }