Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save carlthome/ccc674c4ebf1212fe99c6d6518333300 to your computer and use it in GitHub Desktop.
Save carlthome/ccc674c4ebf1212fe99c6d6518333300 to your computer and use it in GitHub Desktop.
Sound effect waveform visualization tinkering.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyPkJVIEgYn1Y/2xIZFDzBAC",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/carlthome/ccc674c4ebf1212fe99c6d6518333300/sound-effect-waveform-visualization-tinkering.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"id": "nkGqrMyrRRTT"
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import librosa as lr"
]
},
{
"cell_type": "code",
"source": [
"waveform, samplerate = lr.load(\"Guns, Mechanism, Air Rifle, Reload, Interior, Distant 01 SND36107.wav\", sr=None, mono=False)\n",
"waveform.shape"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "n32VmLWrVWOd",
"outputId": "e4ec0839-9854-444e-b6f1-81d99b2e0f89"
},
"execution_count": 2,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(2, 425472)"
]
},
"metadata": {},
"execution_count": 2
}
]
},
{
"cell_type": "code",
"source": [
"def plot_waveform(waveform):\n",
" px = 1/plt.rcParams[\"figure.dpi\"]\n",
" plt.figure(figsize=(640*px, 40*px))\n",
"\n",
" frames = lr.util.frame(x=waveform, frame_length=1024, hop_length=1024)\n",
" peaks = np.max(frames, axis=0)\n",
"\n",
" plt.plot(peaks, linewidth=1, color=\"black\")\n",
" plt.plot(-peaks, linewidth=1, color=\"black\")\n",
"\n",
" plt.ylim((-1.0, 1.0))\n",
" plt.box(False)\n",
"\n",
" plt.tick_params(axis=\"y\", which=\"both\", left=False, labelleft=False)\n",
" plt.tick_params(axis=\"x\", which=\"both\", bottom=False, labelbottom=False)\n",
" plt.show()\n",
"\n",
"\n",
"# Downmix to mono.\n",
"x = waveform.mean(axis=0)\n",
"plot_waveform(x)\n",
"\n",
"# Apply peak normalization.\n",
"x = lr.util.normalize(x)\n",
"plot_waveform(x)\n",
"\n",
"# Apply dynamic compression.\n",
"x = lr.mu_compress(x) / 255.0\n",
"plot_waveform(x)\n",
"\n",
"# Apply peak normalization.\n",
"x = lr.util.normalize(x)\n",
"plot_waveform(x)"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 217
},
"id": "Z73E-ubiRiq9",
"outputId": "de70eeb1-0eba-44be-e678-b9ea62dfba64"
},
"execution_count": 3,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x40 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x40 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x40 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAgMAAAAyCAYAAADBYth2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAX1klEQVR4nO3ce3BU5f3H8ffZ3Wz2ks2SbK4kIdmQrDGEQIjcAlhuCtRJ6VCLSB1sR61aq7YFp0oZdNrphKrTqXgZLziAWoojUIhCBQNWLoYwwZiAuZkruROSkOxmN3vJPr8/mOw0BS1i+QW7z2smf+RcvznnOed8znPOiSKEEEiSJEmSFLRUY12AJEmSJEljS4YBSZIkSQpyMgxIkiRJUpCTYUCSJEmSgpwMA5IkSZIU5GQYkCRJkqQgJ8OAJEmSJAU5GQYkSZIkKcjJMCBJkiRJQU6GAUmSJEkKcjIMSJIkSVKQk2FAkiRJkoKcDAOSJEmSFORkGJAkSZKkICfDgCRJkiQFORkGpBveb37zGz766KOxLkOSbkhFRUWsXbsWIcRYlyJ9hylCtiDpBjY0NITRaCQ2NpaqqirCw8Px+/2o1eqxLk0aY11dXURFRQV9W7jnnnv461//SmFhIfn5+WNdjvQdJXsGpGvmdruv+91IXV0dfr+fjo4OlixZQmZmJkuXLpV3QUFueHiYzMxM7rvvvqBvC5999hkAP/vZz7j33nsZHBwc44qk7yIZBqRrcvHiRaKjo5k5cyZVVVXXbT3V1dUA7N69GyEEer2eoqIiXn/9dT755JPrtl7pxlZbW0tvby/bt2/nz3/+81iXM2YGBweprq5m48aNrFq1il27dvHLX/4y6AOS9M3JMCAxPDzMiy++iMPhuOp5Tpw4gd1up729nYceeui6nXyqqqqwWCysWLGCkpISTp8+TV5eHg899BDz58/nmWeeoays7LqsW7pxjdwNP/zww6xbt47Y2Fhuu+02BgYGAGhsbOSxxx6jvLx8LMu87srLyxFC8MMf/pCXXnqJV155hW3btjFz5kwef/xxcnNzeeKJJ+jv7x/rUqUbnZCumw0bNoilS5cKv9//jef1+XyitbX1OlR1ucLCQgGIP/3pT5eN8/v9wuv1Xjb8t7/9rYiPjxf79+8XgLj77rvFtm3bxNDQ0DXXMTw8fNmw1atXi7lz544a1tjYKPbu3SueeuopAQhALF68WKxcuVIUFBSIzz77THg8nmuuQ7rxrV27VlitVuH3+8VLL70kfvWrXwmz2Szy8vLExYsXxa233ioAoVKpRFFR0RWXsXPnziu2+Rudz+cThw4dEjt27BCPPfaY0Gq1wu12B8YfOXJELF26VFitVrF8+XKh1+uFXq8Xt99+u3j++edFX1+f8Hg8YnBwcAz/CulGI8PAdeJ0OoXZbBaA2Llzp7Db7eLDDz8UPp/vP85bXV0tFi1aJABxyy23iKamplHjvV7vNQWMr3LnnXcKQKSmpl52QV6zZo2w2Wyira1N1NfXi82bN4tjx46JvLw8sXLlSuH3+8XatWvFlClTBCBiY2PF6tWrxYMPPijeeecdUVJSIrxerxgaGhLvv/++OHXqlHC5XIHl+3w+4fV6xVNPPSUURRETJkwQJSUlgfHTpk0T999//1fW3t/fL3bu3CnmzJkjbr31VmEwGAQgFEUR06dPF0899ZR47rnnREFBgXjhhRfEli1bxI4dO8SBAwdEW1ub8Hg8wuFwXDGISDeOvr4+sW3btkDIW7BggVixYsWoaUpKSoTZbBZhYWECEAcPHhSLFy8WcXFxYvPmzaK4uDjQ9tra2oTRaBSAKCwsFM3Nzf/VY+pKnE7nVZ8DhBDC5XKJ2traQMA+d+6cyMzMFCEhIYEQDIi8vLyvXU57e7vYtGmTyM/PHzWvRqMR3/ve98Q999wj3nnnHdHc3Cza2trEa6+9Jv7whz+InTt3ipaWluu+XaQbw5h+TTA0NERtbe23WoYQgsHBQex2OwaDAa1Wi91uR6vVotVq0Wg0KIqCoigAdHZ24vP50Ol0qFQqQkJCqK+v58yZM2i1WhwOBy6Xi7S0NFpbW9FqtWRlZZGeno7BYEBRFHw+H0NDQ7S1tdHZ2QlAUlISSUlJ9PX14fP5KC8vZ+PGjcycOZOamhri4uKorq4mIyOD2bNn4/V6GRgYuOLP0NAQMTExPP300zz//PP4fD6sVivt7e0YjUZqa2uxWCxMmTKF5ORkli1bRnR0NLW1tWzevJny8nKMRiPf//73sVqtTJ48maioKKqrq2lpaeGmm25i8uTJ1NTUUFhYyN69e/nBD37Arl270Gg0+Hw+4uLimDp1Kh9++CHh4eEMDw/j8Xjw+XyBRwKbN2/m0UcfDeyLmpoaXnjhBc6cOUN3dzc1NTUA6PV6NBoNdrsdALVaTXZ2Nn6/P/BOgNvtZu3atXz66acUFxejUqmwWq00NTWxadMm1q1bd1Xtwe12c/LkSWpqajh06BAlJSUMDAyg0WhwuVy4XK4rzhcSEoIQgokTJ7JmzRpuv/12NBoNfr+fkpISnn32WTo6OsjNzSU5OZmFCxeSlZVFW1sboaGh6HQ6Ojs7sVgs2O12ysvL6ezs5MKFC9jtdjIyMpg3bx6lpaVUVFSQlJTE6tWrCQ0NpaOjg/r6etLS0mhvb6epqQmv14vFYuGWW27B7XbT2NiI2WwmMzMTjUZDT08PGo2GPXv20Nvbi9fr5eabb6anp4eGhga0Wi25ubkkJCTQ3d3NwoULEUJQV1dHX18fSUlJJCcn09fXR3d3N263m6amJhobGwkPD2fq1Km43W4mTZpEeHg4ra2t9PT0EBISgt1up6KigoaGBnQ6HZmZmVgsFnJzc2lubqauro7Q0FAKCwvp7u4mISGBadOmMXPmTFJSUhgcHMRgMNDS0sKRI0fwer1ERERQV1eHz+fDZrNx8eJFBgYGmDVrFgsXLuTpp5/m4MGD3HbbbTz44IPcd999PPHEE/zud78btR8rKirYs2cP06dP54477qCjo4NVq1Zx8uRJPB4PGo2G7Oxs+vr6sNvtTJw4kZKSEgAmTJhAfHw8NTU1LF26lKqqKnp7e7lw4QI2m43c3FwsFgtJSUl8/vnnNDY2EhUVxerVq4mNjaW+vh6n04nT6eTChQsAxMfHk5yczLlz59i6dSulpaWkpaWh1WrJz89nYGCAL774goaGBgBycnKwWq2cPHmSsrIyvF4vAGazGbVajclkYt26dcyYMYObb76Z7u5uIiMjGTdu3FUdHy0tLRw7dgyXy8Xg4CDHjh2jsbGR06dPB6ZRq9VERkbS3d0NQGxsLEuWLAm8r2M0GgkPDyciIoJly5ZhMpno6uqis7MTl8tFamoq0dHRNDc3k5OTQ09PDy0tLZw9e5asrCw0Gg1FRUV4PB7y8vK444470Ov1OJ1OvvjiC6qrqwNtXKfTER4ejtlsDpyHABITEzGZTBw/fpyGhgYWLFhAVlYWKpWKpqYmLBYLRqOR/v5+Tp8+jV6vx2azcfbsWXbs2EFVVRUJCQk88MADzJs3j9raWmJiYoiNjWXr1q0cPnwYRVFITEwkMTGRlJQUpk2bhtFoRKvV4vP5aGtrQwhBfHw8DoeDlpYWoqKiMJvNtLa20tHRQUVFBV6vl5SUFBYsWIDVagUuXbd8Ph9Op5Ph4WHMZjMqlYrMzExCQ0Oval/+t41pGDh48CBLly4dq9WPYjKZ8Pv9hIaGolar6e3tJSwsDCFE4DnklajVaoQQ+P3+y8YlJiZSWlrKj370I6qqqnj66ad56623aGlpQaPRYDQaCQsLw2QyYTabiYiIwGKxkJ2dzV133YVer+fMmTOsWrWK0NBQxo8fz8DAADabjebmZs6dO0dLS8uoC1xycjLLly/n/PnzHDp0CKfTydDQUGC8Tqcb9Xt0dDShoaEcP36cV199FbfbjcFgoLq6mqKiIpKSkti1axfPPfcc48aNY+PGjWzfvp1Nmzbxj3/8g+zs7K/cNiMH4p49exgcHOSRRx5haGiIDz74gE8++YSQkBBycnIYHh4mMTGRJ598EqfTycsvv8z58+eprKzE7/fzwgsvYLPZvukuvSK/34/L5aK7u5uioiI6OjrQ6/V0dXXh9/s5fvw4p06dumy+nJwcZs6cSXFxceDE93VGTmLh4eHo9XoaGxtxOBxoNBoyMjKor68ftd/UanXgRGcymdBoNAwODuLxeC4b/6/0ej1xcXEoikJrays6nY6UlJRRQVulUo1qn//++4iQkBCio6Ox2+2B4PZVwsPDSUpKwul00tXVhcvlCoTEkeVPmjSJzMxM6uvrqauru+JxFBkZiU6nw+FwBNpiS0sLWq0Ws9lMY2NjYLkrV66ksLCQoaEhdDodhw8fJi8v72vrHOF2uyktLWXv3r0cP34cjUbDunXryM7OZv/+/eh0Ovbt20dbWxuJiYn885//JC0tjfT0dCwWC0ePHqW7u5v+/n48Hg+RkZEkJCTQ1tZGT0/PZeszGAwAOJ1OABRFwWQysX79enbv3o2iKJSWlmIwGJg4cSJpaWkIISguLsZut2Oz2Zg/fz5z5syhoqKC1tZWWlpaKCgoYNq0aVf1N38T7e3tfPTRR7hcLpYvX058fDwtLS0cOnSIffv2cfz4cVwuF3PnzsXv92O32+nq6uLcuXPApfap1+sJCQmhr68PGN3OFEUhNjY2EDAmTJhAeHg4Z8+evaxdm0wmhBAYjcbAjdfIjYiiKIhLPdrApTZrNpsD4etK/vXYURSFqVOnMmfOHMrKyjhx4sRl0yuKwqJFi1Cr1bS3t3P+/PlA4P46I7WNCAkJIT4+Hq1WS2dn51W9k3XgwAGWLVv2H6e7HsY0DHR2dvLqq69+q2UIIfB4PAwPD6NSqVCr1fh8PtRqNYqioFJdekdSURT8fj9DQ0OBVKZSqQgNDeXChQvU1tai1WoZHBzE6XSSlpZGW1sbISEhZGRkEBUVFVgWXLqoOBwOenp6UBSFqKgoDAYDHo8HRVGoqanh4MGDrFy5kh07dmA0GnE4HOh0Omw2Gz6fL9ATYLfbL3sBb8GCBRQUFPDkk09SXFwcuDiMGDm4kpOTmTFjBmFhYbS0tLBr167Axd5ms5GamorVakWn09Ha2kpfXx8pKSnExMTQ0dHB0aNHqa+vZ/369RQUFIyqIzY2lq6uLjIzM6msrAQgIyODhoYGPB4PW7du5ac//WlgepfLxY4dOwI9A6dOnaKpqQmfzwdcOshHknBISAh+vz9wkGo0Gt566y2OHDnCli1bRm2LV155hYcffviq20R/fz9ffvlloGfAbrej0WhwOp2B/dvT03PFk7hGo2HJkiVMnToVtVqN3++npqaG9957DwCj0UhCQgKzZ88mISEBh8OBoiio1Wrcbjd6vR63201tbS1dXV10d3fjcDjIyMggJyeHyspKzp49S2JiIgsXLiQ0NBSHw0FHRwcxMTH09fXR0dGBx+PBYrGQnJyMz+ejv7+fsLAwoqKiRrX5Tz/9lL6+Pjwez2U9A5MnTyY+Pp7e3l4mTZqEEIKLFy/icrlGtVev14vP56O5uZn6+nrMZjPZ2dl4PB5iY2MDvSputxuVSoXT6eTMmTPU19cHegZMJhPJyckMDg7S2NiIWq3m6NGjuFwu9Ho9U6ZMITs7G7PZjMfjITQ0lP7+fk6ePHlZz0B6ejr9/f0MDAyQm5vLpEmTeO+996irqyM1NZVly5axZcsWCgoK+PWvfz1q//X29nLixAkmT55MSkoKTqeTDRs28Mknn1BRUYHP5wu0vbS0NKZOncq7774bmH8kLKenpwd6aODSxd1mswVCwJkzZ2hoaCA6OpolS5ZgNpvp7+/H5XLR398fOFZjYmKIjo6mr6+P/fv3c/78+cDFadGiRdjtdiorKwMXivHjx5OSksJnn302KrSPmDNnDs8991ygx+ab8vl81NXVMTQ0FOgZaGhoYP/+/bS3twNgtVq56aab+PzzzwOhNysrC51OR2lpaWB7jBs3jkWLFmE2m+nt7aWzsxOn00liYiJhYWH09vaSmppKf39/oKcwKysLtVrNkSNHcLvdzJo1i9zcXEJCQnC73XR3d9PQ0HDFngGTycTw8DCKomA2m9FoNFRXV9PY2EheXh4xMTGoVCouXrxIaGgooaGhuFwuWltbEUIwYcIEmpub+eCDDwL7NT8/n4yMDHp7ewM3ZwcPHgz0lERERJCYmEhycjJWqzXQ2zw8PIzT6URRFPR6PYODgwwODjJu3Dj8fn+gd6i8vByv14vVamXq1KlERkYGQsO/n/8UReGRRx4hNjb2G+/X/wb5T4eukwsXLpCQkIDH4+HZZ59lxYoVvPvuu9x///3ExMSMmnYkWIyEg7KyMjZs2EBTUxPh4eEcOHCAvLw8HA4Her2empoaIiIiGD9+/GXrHbkQGQwGUlNTA49Hvs7ChQv5+OOPsVgsFBUVMTw8zPjx44mJiWHevHmcPXuWffv2Ybfb2bNnDzk5Obz++uvMmjWLN998kx07dnD48GEKCwvp6enhpptuwmQyMXfuXNLT05k3bx5w6fPAuLg4cnJymDJlCnDpEzG/38/69es5cOAAGo2GzZs3M3v2bKxWK7Nnz2bRokW8+OKLX1l/VVUVr776KiqViuLiYk6dOhW4s5gzZw6RkZH4fD6MRiNGoxGDwYDZbGbKlClER0fj8XgC3XSJiYlERERccX+eP3+e9PR0QkJC/uM2lQh0RUdERHzrfwxUV1fH5s2b2bhxI1FRUcyaNYv09HTefvvtwDQdHR3Mnz+f2tpadDodZWVl/OUvf2H79u2sWrWK6dOnM2PGjMAjspycHPx+P8888wzZ2dnMmzePiIgImpqaSE1NDdTf09PD+PHjr+ni+6/OnTvHO++8wwMPPIDJZEKn0wGXbmi6u7sDNxWKouD1eqmoqODLL7/EarUSFRUV+F8bTqcTg8EQeAS0dOlS/va3v33leoeHh/n44485fvw4W7duDdzNw6UenoSEBJYtW8a8efNQq9V88MEHgbY+d+7cwOMmgIGBAQwGAxqN5ltti5HLztWcn/7bXC4XDQ0NxMXFYbFYLhs/8uhZURSMRuP/e31j5jq/kxDUfvKTn4i0tLRresO+p6dH7Nu3T/T391+Hykbbtm2bAMQTTzxx2biLFy+K5ubmy4Y/8sgjIj09XZSVlQlFUURmZqZ49NFHxZdffnlNNXi9XnH69GnR3t4+aviKFSvE4sWLRw1zOByiublZvPvuuyI9PV2o1WoRFxcnJk6cKH784x+LLVu2iJKSEvm29P+whx9+WEyaNEkIIcSxY8fE22+/LWw2m0hMTBSnTp0S6enpIjo6WgDitddeu+IyNm7cGHgJ9ruiu7tblJWViYKCArFu3TqRn58vwsLCRr0A29bWJtavXy/uvPNO8fvf/16kp6cLQFgsFnH33XeLoqIiUVJSIk6ePHnVLzNK//tkGLiOnE6n6OvrG+sy/iOHwyHuvffeb/Qp486dOwNfO9hstuv2Kd/69etFQkLCqGF33XVX4IuB/Px88cYbb4z6QkH63/fGG28IlUoltmzZIlQqlQBEYmKiqKurE0IIceLECZGXlye2b9/+nbrYf1MfffSRAERNTY0Q4lIwMhgMIiIiQsyZM0doNBqxYMECUVxc/D+9HaRvTz4mkK5Je3s7SUlJhIWFsXv3bhYvXnxd1vP222+zZs0aKisrefHFF/F4PLz55ps89NBD2Gw2Hn/88VHvckjB4fTp09xyyy0ArFmzhj/+8Y9EREQEV7cu0NPTQ1RUFFu2bEGlUrFhwwYmTpzI+++/j9lsxuv1ysda0lWRYUC6ZuXl5aSmpmIyma7bOkpLS5k+fToGgwGj0YjT6WT8+PFUVlZ+6+eW0neX2+0mPDycGTNmcPjwYbRa7ViXNGZSUlLo7OzE4/EwadIkDh48eMX3iSTp68gwIN3Q7HY74eHhGAwGKisr0ev1+P1+4uLixro0aYwdPXqUrKwsIiMjx7qUMbVixQr+/ve/8/LLL/OLX/xirMuRvqPkrZV0QzOZTCxYsICVK1eSnJw81uVIN5Bbb711rEu4IeTn59Pb28vPf/7zsS5F+g6TPQOSJEmSFOTkm1eSJEmSFORkGJAkSZKkICfDgCRJkiQFORkGJEmSJCnIyTAgSZIkSUFOhgFJkiRJCnIyDEiSJElSkJNhQJIkSZKCnAwDkiRJkhTkZBiQJEmSpCAnw4AkSZIkBTkZBiRJkiQpyMkwIEmSJElBToYBSZIkSQpyMgxIkiRJUpCTYUCSJEmSgtz/ActdCG43srG4AAAAAElFTkSuQmCC\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x40 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment