{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"FMP\"\n", "\"AudioLabs\"\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\"C6\"\n", "

Fourier Tempogram

\n", "
\n", "\n", "
\n", "\n", "

\n", "Following Section 6.2.2 of [Müller, FMP, Springer 2015], we show in this notebook how to compute a tempogram using a variant of a short-time Fourier transform. A MATLAB implementation of this approach can be found in the Tempogram Toolbox.\n", " \n", "

\n", "

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Definition\n", "\n", "We assume that we are given a discrete-time [novelty function](../C6/C6S1_OnsetDetection.html) $\\Delta:\\mathbb{Z}\\to\\mathbb{R}$ in which peaks indicate note onset candidates. The idea of Fourier analysis is to detect local periodicities in novelty curve by comparing it with windowed sinusoids. A high correlation of a local section of $\\Delta$ with a windowed sinusoid indicates a periodicity of the sinusoid's frequency (given a suitable phase). This correlation (along with the phase) can be computed using a short-time Fourier transform. To this end, we fix a window function $w:\\mathbb{Z}\\to\\mathbb{R}$ of finite length centered at $n=0$ (e.g., a sampled Hann window). Then, for a frequency parameter $\\omega\\in\\mathbb{R}_{\\geq 0}$ and time parameter $n\\in\\mathbb{Z}$, the complex Fourier coefficient $\\mathcal{F}(n,\\omega)$ is defined by\n", "\n", "\\begin{equation}\n", " \\mathcal{F}(n,\\omega) := \\sum_{m\\in\\mathbb{Z}} \n", "\t\\Delta(m)\\overline{w}(m-n)\\mathrm{exp}(-2\\pi i\\omega m).\n", "\\end{equation}\n", "\n", "This definition is similar to a [discrete short time Fourier transform](../C2/C2_STFT-Basic.html) when using a hop size $H=1$. Converting frequency to tempo values, we define the (discrete) **Fourier tempogram** $\\mathcal{T}^\\mathrm{F}: \\mathbb{Z} \\times \\Theta \\to \\mathbb{R}_{\\geq 0}$ by\n", "\n", "\\begin{equation}\n", "\\label{eq:BeatTempo:TempoAna:RepFourier:tempogramF}\n", "\t\\mathcal{T}^\\mathrm{F}(n,\\tau) := |\\mathcal{F}(n,\\tau/60)|.\n", "\\end{equation}\n", "\n", "For practical applications, $\\mathcal{T}^\\mathrm{F}$ is computed only for a small number of tempo parameters. For example, one may choose the set $\\Theta=[30:600]$ covering the (integer) musical tempi between $30$ and $600~\\mathrm{BPM}$. The bounds are motivated by the assumption that only musical events showing a temporal separation between roughly $100~\\mathrm{msec}$ ($600~\\mathrm{BPM}$) and $2~\\mathrm{sec}$ ($30~\\mathrm{BPM}$) contribute to the perception of tempo. Depending on the respective application and the nature of the music recording, a window size corresponding to $4$ to $12~\\mathrm{sec}$ of audio is a reasonable range. Furthermore the feature rate of the resulting tempogram may be adjusted by introducing a hop size parameter $H$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tempo Resolution\n", "\n", "\n", "Using a tempo set like $\\Theta=[30:600]$ requires a spectral analysis of high resolution—in particular in the lower frequency range. As an example, assume that the input novelty function $\\Delta$ has a feature sampling rate $F_\\mathrm{s}^\\Delta = 100~\\mathrm{Hz}$ and that the length of the window $w$ is $N=1000$ (covering $10$ seconds of the novelty function $\\Delta$). Then, simply applying a DFT of size $N$, would yield Fourier coefficients corresponding to the [physical frequencies](../C2/C2_STFT-Basic.html)\n", "\n", "\\begin{equation}\n", " \\omega = F_\\mathrm{coef}(k) := \\frac{k\\cdot F_\\mathrm{s}^\\Delta}{N} = k\\cdot 0.1 ~\\mathrm{Hz}\n", "\\end{equation}\n", "\n", "for $k\\in[0:500]$, which corresponds to the tempi $\\tau= k\\cdot 6~\\mathrm{BPM}$. In other words, the DFT would yield a tempo resolution of $6~\\mathrm{BPM}$ with tempo estimates ranging from $\\tau=0$ up to $\\tau=3000~\\mathrm{BPM}$. If one is interested in a particular tempo set like $\\Theta=[30:600]$, only a small fraction of the Fourier coefficients ($k\\in[5:100]$) are needed. Furthermore, the tempo resolution of $6~\\mathrm{BPM}$ is not sufficient. Therefore, a [straightforward STFT based on the DFT](../C2/C2_STFT-Basic.html) (see Section 2.1.4 of [Müller, FMP, Springer 2015]) may not be suitable. One alternative is to compute the required Fourier coefficients individually (without using the DFT). Even though this cannot be done via the [FFT algorithm](../C2/C2_DFT-FFT.html), the computational complexity may still be reasonable since only a relatively small number of Fourier coefficients (corresponding to the tempo set $\\Theta$) need to be computed. This is the strategy we follow in the remainder of this notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Implementation\n", "\n", "In the following, we provide an implementation that is close to the formula\n", "\n", "\\begin{equation}\n", " \\mathcal{F}(n,\\omega) = \\sum_{m\\in\\mathbb{Z}} \\Delta(m)\\overline{w}(m-n)\\mathrm{exp}(-2\\pi i \\omega m).\n", "\\end{equation}\n", "\n", "The novelty function $\\Delta$ is assumed to have length $L\\in\\mathbb{N}$. As window function $w$, we choose a [Hann window](../C2/C2_STFT-Window.html) of length $N\\in\\mathbb{N}$, which is shifted by the hopsize $H\\in\\mathbb{N}$. Following the conventions of the FMP notebooks, we use a [**centered view**](../C2/C2_STFT-Conventions.html), where the novelty function is zero-padded by half the window length. As a result, the first frame of $\\mathcal{F}$ indexed by $n=0$ corresponds to the physical time position $t=0~\\mathrm{sec}$. Note that the hopsize parameter $H$ reduces the frame rate of the tempogram to $F_\\mathrm{s}^\\Delta/H$. As input of our procedure, one may specify any finite set $\\Theta$ containing tempo values. Our algorithm has an outer loop iterating over $\\tau\\in\\Theta$. For each frequency $\\omega=\\tau/60$, the values $\\mathcal{F}(n,\\omega)$ are then computed in an inner loop iterating over the frame indices $n$. \n", "\n", "As an illustrating example, we use in the following a synthetic novelty function of $10$ seconds of duration. The curve consists of a click track, which has a tempo of $150~\\mathrm{BPM}$ in its first half and a tempo of $120~\\mathrm{BPM}$ in its second half." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T08:48:25.143137Z", "iopub.status.busy": "2024-02-15T08:48:25.142849Z", "iopub.status.idle": "2024-02-15T08:48:29.680193Z", "shell.execute_reply": "2024-02-15T08:48:29.679518Z" } }, "outputs": [ { "data": { "image/png": "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s58dKM4tt9wSQLz61a8eKE5E5zV7zGMeU0ucOup6n332WTDOwQcfXMu5coDYbrvtao970UUXBRD/8A//UHvsl7/85QHEunXrao9d1+uauvHGGwOI173udbXHfvvb3x5A/OpXv6o9tqSh1MfGjRsDiEMPPbT22J/4xCcCiP/93/+tPXZEBHBONPR3fZT/xiVhV5l92a/DEXF0RBwQEQfsuuvgP2U/99xzAbjkkksGinPdddcBcMYZZwxcJoDTTz+9ljgbNmwYOMa6detqKAmccsoptcT50Y9+BDDwt/1LL70U+PU10K/bb78dgFNPPXWgODMuu+yyWuLUoeQb4mmnnTbUMszUb52uvrrza9Izzzyz9tgnnXQS0OmRaou1a9cC8L3vfa/22DOfZTfccEPtsWNIM8TP9Mh961vfqj32WWedBVBb7/G0GpfGy0pgr67tPYH5+6qttYb1gWNmVgd/Ro2/cWm8nAi8vPrV0VOB2yJi1agLZcPhDwYzG2fDyIWyejUyw66kLwIHArtIWgm8C9gcICKOAk4Cfg9YAdwJvLKJctlouPEymSICKTcCbNYu/owaf400XiLixQvcH8DrmijLuJuGN82mTZtYunRp34+vu47qijcNr9183Hjp1abroYmytqk+muh5aVN9jKNxGTayyjR0V07Dc5xGfl1tUvhaHn9uvIyZaWiND/oc6/52X1e8ae91mIZrd1I1ce226f3RxLXcpvoYR268jJlpaPEP+hw9bDSepuHaXYw21YeHjXp52Gj8ufEyZtr0gdevaXiO08ivay/XR3v5tRt/bryMmWlojU/asNHM85n2buBpuHYXo0314WGjXh42Gn9uvIyZaWjxT9pznLTn0y/XQy/XR3v5tRt/bryMmTZ9W+vXpD3HSXs+/XI99GpTfbSprE1wfYw/N17GzDS0+CftOU7a8+mX66FXm+rDf6x7tem1m1ZuvIyZaXjTTNpznLTn0y/XQ6821UebytoE18f4c+NlzEzDN6BJe47+qXVH28tftzbVR5vK2gTXx/hz42XMTEOLf9LmeZl5PnXFGUclz22cyz8KbaoPz2vSy/Ux/tx4GTNt+sDr16Q9x7qezzjXixsvi9em+mhTWZvg+hh/bryMmWlojXuel/njjKOSso1z+UehTfXRprI2wfO8jD83XmpS18U+DS1+DxvNH2cclZRtnMs/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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import os, sys\n", "import numpy as np\n", "import librosa\n", "from scipy import signal\n", "from scipy.interpolate import interp1d\n", "from matplotlib import pyplot as plt\n", "import matplotlib.gridspec as gridspec\n", "import IPython.display as ipd\n", "from numba import jit\n", "\n", "sys.path.append('..')\n", "import libfmp.b\n", "import libfmp.c2\n", "import libfmp.c3\n", "import libfmp.c6\n", "\n", "%matplotlib inline\n", "\n", "\n", "@jit(nopython=True)\n", "def compute_tempogram_fourier(x, Fs, N, H, Theta=np.arange(30, 601, 1)):\n", " \"\"\"Compute Fourier-based tempogram [FMP, Section 6.2.2]\n", "\n", " Notebook: C6/C6S2_TempogramFourier.ipynb\n", "\n", " Args:\n", " x (np.ndarray): Input signal\n", " Fs (scalar): Sampling rate\n", " N (int): Window length\n", " H (int): Hop size\n", " Theta (np.ndarray): Set of tempi (given in BPM) (Default value = np.arange(30, 601, 1))\n", "\n", " Returns:\n", " X (np.ndarray): Tempogram\n", " T_coef (np.ndarray): Time axis (seconds)\n", " F_coef_BPM (np.ndarray): Tempo axis (BPM)\n", " \"\"\"\n", " win = np.hanning(N)\n", " N_left = N // 2\n", " L = x.shape[0]\n", " L_left = N_left\n", " L_right = N_left\n", " L_pad = L + L_left + L_right\n", " # x_pad = np.pad(x, (L_left, L_right), 'constant') # doesn't work with jit\n", " x_pad = np.concatenate((np.zeros(L_left), x, np.zeros(L_right)))\n", " t_pad = np.arange(L_pad)\n", " M = int(np.floor(L_pad - N) / H) + 1\n", " K = len(Theta)\n", " X = np.zeros((K, M), dtype=np.complex_)\n", "\n", " for k in range(K):\n", " omega = (Theta[k] / 60) / Fs\n", " exponential = np.exp(-2 * np.pi * 1j * omega * t_pad)\n", " x_exp = x_pad * exponential\n", " for n in range(M):\n", " t_0 = n * H\n", " t_1 = t_0 + N\n", " X[k, n] = np.sum(win * x_exp[t_0:t_1])\n", " T_coef = np.arange(M) * H / Fs\n", " F_coef_BPM = Theta\n", " return X, T_coef, F_coef_BPM\n", "\n", "Fs = 100\n", "L = 10*Fs\n", "x = np.zeros(L)\n", "peaks = np.concatenate((np.arange(40,L//2,40),np.arange(500,L,50)))\n", "x[peaks]=1\n", "\n", "N = 300 #corresponding to 3 seconds (Fs = 100)\n", "H = 10\n", "Theta = np.arange(50,410,10)\n", "\n", "X, T_coef, F_coef_BPM = compute_tempogram_fourier(x, Fs, N=N, H=H, Theta=Theta)\n", "tempogram = np.abs(X)\n", "#tempogram = libfmp.c3.normalize_feature_sequence(tempogram, norm='max')\n", "\n", "fig, ax = plt.subplots(2, 2, gridspec_kw={'width_ratios': [1, 0.05], \n", " 'height_ratios': [1, 2]}, figsize=(8, 5)) \n", "libfmp.b.plot_signal(x, Fs, ax=ax[0,0], color='k', title='Novelty function')\n", "ax[0,1].set_axis_off()\n", "libfmp.b.plot_matrix(tempogram, T_coef=T_coef, F_coef=F_coef_BPM, ax=[ax[1,0], ax[1,1]], \n", " title='Fourier tempogram', ylabel='Tempo (BPM)', colorbar=True);\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpretation \n", "\n", "The visualization of the Fourier tempogram $\\mathcal{T}^\\mathrm{F}$ reveals the dominant tempo over time. Indeed, there are high values for $\\tau=150~\\mathrm{BPM}$ in the first five seconds and high values for the tempo $\\tau=120~\\mathrm{BPM}$ the last five seconds. Being based on a Fourier analysis, an entry $\\mathcal{T}^\\mathrm{F}(n,\\tau)$ is obtained by locally comparing the novelty function $\\Delta$ in a neighborhood of $n$ with a windowed sinusoid that represents the tempo $\\tau$ (or the frequency $\\omega=\\tau/60$). In the following code cell, this kind of analysis is illustrated for various time-tempo pairs indicated as red points in the tempogram visualization. We will discuss in the [FMP notebook on predominant local pulse estimation](../C6/C6S3_PredominantLocalPulse.html) on how to compute the windowed sinusoids using the [angle of the complex Fourier coefficient](../C2/C2_DFT-Phase.html)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T08:48:29.709947Z", "iopub.status.busy": "2024-02-15T08:48:29.709667Z", "iopub.status.idle": "2024-02-15T08:48:30.301284Z", "shell.execute_reply": "2024-02-15T08:48:30.300701Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAADQCAYAAADs1NB0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAtIElEQVR4nO3de5hkVXnv8e+vh8swMDAzIAjDyIiiCRoRQlBjYlRIxGjEJCoaNehDRI1H4+VEUePxkmAwx+MxaqKSeBmPiI5EIzGiIkGNiUIQueNlErlMGBhgZrgNDDLznj9qt3Svert7TXVdu36f5+mnq1bvvfaqXXtXrd7r3e9SRGBmZma20E0MugFmZmZm/eBOj5mZmY0Fd3rMzMxsLLjTY2ZmZmPBnR4zMzMbC+70mJmZ2Vhwp8dsTEj6iKS3DbodZmaDIufpMRssSdcCBwDbpxQ/IiJuHEyL6kgK4LCIWDfotpiZ1fCVHrPh8DsRsdeUn652eCQtmse6u3SzLcNmPvvGzEaLOz1mQ0rS7pLeL+nG5uf9knZv/vYSSd8plg9JD28ef1LShyV9RdLdwFOasr+YsvwzJV0qaYukf5f0mCl/u1bSmyRdDtxddnwkfbt5eJmkuySdWFnnn0q6XNLdkj4m6QBJ50q6U9I3JC1vll3dvJ5Tmte+QdIbavZN8/c3NuvcKOmPKvbNMyT9QNIdkm6Q9I4pdU225aXN3zZLeoWkX2leyxZJH+rwbTazPnKnx2x4vRV4PPBY4AjgGODPdmL9PwBOA5YCZQfpKODjwMuBfYGPAudM7TgALwCeASyLiPunrh8RT2oeHtFcmfpcZZ2/D/wm8Ajgd4BzgbcA+9H6PHpN8RqeAhwG/BZwqqTjmvIZ942k44HXA8cBDwd+o2Lf3A38IbCsec2vlPTsYp3HNW05EXh/04bjgEcBz5OUbcfMhog7PWbD4R+bKwZbJP1jU/ZC4F0RsTEibgHeCbx4J+r8UkT8W0TsiIh7i7+9DPhoRFwYEdsjYg2wjVZHYtIHIuKGiLincns1dX4wIm6OiP8G/hW4MCJ+EBHbgC8CRxZ1vjMi7o6IK4BP0OqIwez75nnAJyLiqojY2vxt1n0TEd+MiCua55cDZ9HeWfrzZtmv0+okndVsf/K1lG03syHjTo/ZcHh2RCxrfp7dlB0EXDdlmeuaslo3zPK3Q4A3TOlobQFWFfXPtn6ndd485fE9yfO9ijqntmHq659t3xxUrJe9jmllkh4n6QJJt0i6HXgFratPU+1s281syLjTYza8bqTVkZj0kKYMWlcalkz+QdKDk/VnuzXzBuC0KR2tZRGxJCLOqly/0zp31qopj6e+/tn2zQbg4BnqmFS+ts8A5wCrImIf4COAOmyzmQ0pd3rMhtdZwJ9JepCk/YD/BXy6+dtlwKMkPVbSYuAdO1n33wGvaK5wSNKeTTDv0p2o42bg0C7XWXqbpCWSHgW8FPhcUz7bvlkLvFTSL0pa0vxtLkuBTRFxr6RjaMX8mNkC406P2fD6C+Bi4HLgCuCSpoyI+DHwLuAbwE8oApXnEhEX04rB+RCwGVgHvGQn2/cOYE0zlPW8LtVZ+lZTz/nAe5t4Gph935wLfAC4oFn3u80622bZzh8D75J0J61O0tp5ttvMhpCTE5rZ0JG0GvgpsGt551gHdf0icCWw+3zrMrPR5is9ZrbgSPpdSbs1eX/eA/yTOzxm5k6PmS1ELwduAf6T1vQerxxsc8xsGHh4y8zMzMZCz6/0SFrUpHf/cvN8haTzJP2k+b18yrJvlrRO0o8kPa3XbTMzM7Px0fMrPZJeDxwN7B0Rz5T0V7RuDT1d0qnA8oh4k6TDad2Gegyt5GLfoDXT9PaZ6l6+fHmsXLmyW+3s2TLdWq+mHhst5fmXnY87duzoaL2ac7v2/C+Xqz0Wy+UmJtr/z+rmOdNJm2qX8fk3fmrPq07Px/Lc7vV5PNcxfOONN7J58+a+H+iSZnsBX4uI47u1rZ7OnizpYFrz2JxGay4cgBOAJzeP1wDfBN7UlH+2SUf/U0nraHWAvssMVq5cyec///lpZeWbX/shWy63aFH7xMs1Zd1cb5dddpn1OdS9vuyE6PQDvJd1DWObullX1nm5//7psbU/+9nP2pbZtq39Tuv77rtv1ucA27e3/79QlmXL1HSysn2SHcO77bbbtOe77777nMtA+7Ge1Z0d+6Wacz2rPzvXas9tG13lsZ+dH9k5WpZl52NNWVZ3tl7ZzuyczZTnQ3n8nnjiiVX19MJMn7MRUWZGn5deD2+9H3gjMPUdOSAiNgA0v/dvylcyPTX8+qZsGrVmXb5Y0sWbNm3qSaPNzMysfySlP93Ws06PpGcCGyPi+7WrJGVt/3ZHxBkRcXREHL1ixYp5tdHMzMwGb2JiIv3ptl4Obz0ReJak3wYWA3tL+jRws6QDI2KDpAOBjc3y65k+R87BPDCXTkpS2+XybsUe1KoZS83euF133XXa8+xyeqeX+D28NRx11dRdMzySXbouL7tnx0HNZfhsmXLIDereq6wN5dDcvfeWk73nw1vleb148eK2ZbJzptxXta+vJrYi08vYo5o2jGrdva6/07rL4yA7Vjod3qpZLxtO6/Q7Jjs/yu+dub4/+0VSTzo4mZ5tJSLeHBEHR8Rq4PnAv0TEi2hN6ndSs9hJwJeax+cAz5e0u6SHAocBF/WqfWZmZjYc+jW81dNA5hmcDqyVdDJwPfBcgIi4StJa4GrgfuBVs925ZWZmZgtDv6709KXTExHfpHWXFhFxG3DsDMudRutOLzMzMxsD/RzeGsSVnq6R1BYT0a1b+Wpua4Xu3Vpbk8Mhq6ebORxqDGNdw9imrK7sWCzLOr3FuvYDo4wZyGJsslvky9iDLNYhK6u5Rb7TmIVOc+nUpA6oeS0z1WWjq+aW9ZoYu07VxOFAXSqIPfbYY86yTr8ve8GdHjMzMxsL/Ur+6U6PmZmZDYyHt8zMzGxsuNNjNuLKy7XZeH2pNjagJl6oJk4sWy/LMXLXXXfN+hzg7rvvbisrY4ayGKKa9PzZMjVxRbXxFzWxR47pGT/ZF3FNjF1NHE5WtmTJkrZlsrI999xz1ueQH5tzfSaNQ54ed3rMzMxsoBzTY2ZmZmPBV3rMzMxswfPwVqWIaBtn79Z8TrVj9eX2Op27qSY/S21ekl7OB9TLuoaxTfOpqzwWamJCsm1luZ/KmIFsXp9M2YYsViaLu9m6deu051lMz5133jlnWRb3k5Xdc889sz6fqax8PbVzb5Vq8yXVrGejo3yPa869rCyL36mJ16n9/ihjcbLtdXOOuX5wp8fMzMzGgmN6zMzMbMHz8JaZmZmNDXd6zMzMbCy401MhItomRywDs2onKqwJYMt0OsFhGWBZMxllltyu5vV1Glyd6WVdw9im+dRVyt6rMgAxCyzOgnFrJkasCZyuOe6gLuCxpq4suDJ7feV5XRuoXRNQmr0P5XrZuVZz/jmQeWEZhuSE2cSh5QSj2fZG6XiV5JgeMzMzGw++0mNmZmZjwZ0eMzMzW/A8vFVp+/btbUnS5kpWCHUxPTUJqKB9bLV8ntUN7WPA2XhvOSZbG9Njw6FmUtCa2K6aGJRs3L9mwtEsxqaMp8naUBsLVJPkc/HixXOWZTF22blWxkTUTNaYbS87132uLXw1sXK1k9h2IvuMr4kPys6F7DOhPM7L7Q0yxsdXeszMzGwsuNNjZmZmC56TE5qZmdnYcExPhR07drRNaFjGI2R5T7I4hpo8JFlPtGbit2y8tSzL1ivHcrO4BscZjI6a2K7auK3yeM0m37zjjjvayjZt2jTt+W233da2zObNm9vKbr/99mnPs0lCs1igMv4hi9/J4m6WLl067fmyZcvallmxYkVb2b777jvnenvvvXdbWXk+Zh/ANbEcvc4ZtVDq7nX93ZpoujavVFlWm2+rLMtig7r13QTt3ynlcT/I7xNf6TEzM7MFz8NbZmZmNjY67fRIWgx8G9idVp/m7Ih4+0zLu9NjZmZmAzWPmJ5twFMj4i5JuwLfkXRuRHwvW3ikOz07duxoiy0o8/ZksQdbt25tK7v33nunPc/iE7Ix2WzMtxPZ+GsZ71E7j1iptgddk1Olpq6aerpZ16i8vpr3L3s/szH98ljMjtfsOC9jf7JYoKyuUhZflsWllbE55XOA5cuXt5WV8TpZ/E4Wr1OWZfE7nebpcZ6sha8mT0+nMT01ZVnd2Xo1c+hlys+X8jweVJ6e+QxvResDcvKLf9fmZ8ZAKJ+xZmZmNlATExPpTw1JiyRdCmwEzouIC2fcTneaa2ZmZrbzJq/0zNDp2U/SxVN+TinXj4jtEfFY4GDgGEmPnmlbIz28ZWZmZqNvlqG1WyPi6Jo6ImKLpG8CxwNXZsuMdKdnx44dbTEJZUxPlqukzDmSLZetVxMflMVR1ORsyMaOO40Xqs2TYYNXMz9XTV6pbL3sOKiZYy6LzSnjYLLYnH322aetrMwDUjuXUU1sRbZfynMti0+qmVcvWyZTnsc1+7w2bqssq6k7q7+m7qysNoawpp3DuF9q8i7VHndlXdlryWLCyuWyZbLzsSY/VCf5fUYxT4+kBwE/azo8ewDHAe+ZafmR7vSYmZnZaJtnnp4DgTWSFtEK2VkbEV+eaWF3eszMzGyg5nH31uXAkdXb6WgrFSQtlnSRpMskXSXpnU35CknnSfpJ83v5lHXeLGmdpB9Jelqv2mZmZmbDQ1L60229vNKTJgwCfg84PyJOl3QqcCrwJkmHA88HHgUcBHxD0iMion1QtRERbWOb5XhrFk9T5uSB9licLH6nJhao07xANTkcaudlqYn36LRX3cu6hrFN3awre69q5vqpzcFRqpkHLstZk8XrlB8+Wd01sWu1+UtqYt5q4iaydmZlWd6hGrWxPzZ8sve8LKs97spjODvXs7rKstpzvdPjdS6jmKdnZ/VsK9GSJQw6AVjTlK8Bnt08PgH4bERsi4ifAuuAY3rVPjMzMxsO88nTs1Pb6XqNU8yQMOiAiNgA0Pzev1l8JXDDlNXXN2VlnadM3q9fzrBuZmZmo2cohrckHUxryOnXaQ053UPr3vd/Bs6NiFmvxTVDU4+VtAz44mwJg4Ds1bVdI4yIM4AzAA499FDfm21mZjbChmKWdUmfoHWl5cu07nnfCCwGHkEr8c9bJZ0aEd+eayNFwqCbJR0YERskHdjUC60rO6umrHYwcONs9UpqG9usGdMv59kBWLJkybTntTlyyjH9PfbYo20Z5+mxmYxKnp7y/Chjg2Zar6y/NsamXC+LYcheX01MX1bmPD3O0wOd5+kp25C9lk7jcGpigbqVp2eQ3x0D7/QA/ycisoyGVwJfkLQb8JCZVp4lYdA5wEnA6c3vLzWrnAN8RtL7aF1VOgy4aCdfj5mZmY2YgXd6ZujwTP37fbSCjWeSJgyS9F1graSTgeuB5zb1XSVpLXA1cD/wqtnu3DIzM7PR16v4ncxsw1uXz/QnWjdnPWa2imdKGBQRtwHHzrDOacBps9VrZmZmC8vAr/QAO2gFEn8G+CdaQcxDZWJioi2GphzrzHqP2Xj9XnvtNe35vvvu27ZMOX4PncfdlLI5V8ox4Nox9lLtwVSTI6KmrtpcE92qa1ReX837VxvXUB6L2RxTWX6ocq668vlMdZWy+ISaeJ1svWy/lGXZejXzFNXGHjlPz/jpZp6e8nzMvhdq5orLvmOyGLTyM6j2M6lse/l6O80JNl9DEcgcEY+V9AvAC2h1fK5ufn89IrrzTW9mZmZjbyiSE0bEDyPi7RFxFK2rPZ8CXteXlpmZmdlYGJY8PStp5en5XWAzrQ7PF7veCjMzMxtLQzG8JelbwFJgLfASYFPzp90krYiITTOt2y8TExNtcweV4/xlfhGoy7Mw0/ZKNXmBsriCsqzTXCX9OlBs/rL3aq48UzOtVx6vWWxOOS8cwKZN00/b2267rW2ZzZs3t5WV885lc8xlsUBljECWRT2Lmyjryl5fVlbGP9Tm6SnPx+w/zJq8LtnnSKf/rdZ8Jo1q3b2uv9O6a+bCy+JuauaYq1mvdn7FUs13E7R/p5TH/bjn6TmEViDzy5ufyb2h5vGhvW2amZmZjYOBd3oiYnVfWmBmZmZja1jy9OwPvAV4OHA5cHpEtF8vNzMzM5uHYbh761PA3cAHacX2fKAvLTIzM7OxMjExkf5022wxPQ+OiLc2j78m6ZKub32eJiYmWLp06bSyMnC5NrCwZiLGrKwMBKsJWs7KskDmMhCtNsjVhkPNpKBlWe0Eh2UAZDaJbnbclcuVSTkB9tlnn7ayMri5JtgZ2gOXswDou+66q61s48aN055nQfzZ6yvP/+xGhvLmB2jfL9m57nNt4as5H2sC2jtVE3wMdUk4s8mvy7JOkxx221DcvdVqh5bTClwGWDT1+TDcvWVmZmajb+AxPcA+wPd5oNMDMHm1x3dvmZmZWVcM/EqP794yMzOzXhuW4S0k7QJsj4iQtAp4HLAuIi7tR+PmsmjRoraYhDKOonaSzpoJDmvKsmWy7ZVjwJ1OKlfz+nqdMK1bdQ1jm+ZTVyl7r8rx+mz72ftexvRkifqy+JlyEtKaBH9ZG2omCZ2prHTvvfe2lZVtzxIf1iQZrTnXof19yGIramLq+nWJ3vqj9pguP/dr4nCysiwGrSYuLYtTyz43yuOzPKYHmZywX+fOjJ9Ikl4GbASuax6fDzwH+JykN/WldWZmZrbgDcPdW68FHkbrdvVrgEMi4lZJS4D/AN7T9daYmZnZWBmW4a37ImIzsFnSuoi4FSAitkpqv/5tZmYD96vXXsuJl13Gvlu3ctuSJXzuiCP499WrB90ss1kNQ6dnD0lH0hoC2615rOanPSnIAEiac8K02nHCXk5+160YgtoJRx3TM5x1ZWPsZfxMbb6PTmPQyvVqYxZq9kFNXbV5SMrzOtt3NfmLskkes/VKtbFANev103EbN3LyunXs0eyvB23dyskXXshtt93GN/bff6BtGwU151VNDrcsfqcmXqf286dmouvsOC/Po0HG8JSG4Zb1m4D3JY8nn5uZ2RB5+XXX/bzDM2mPHTt4+XXXudNjQ2sohrci4sl9aYGZmXXF/sldbrOVmw2Lgc+9JenXZltR0t6SHt39JpmZWSc2JtMRzFZuNgwmr/R0cveWpFWSLpB0jaSrJP3JbMvPNrz1+5L+CvgqrczMt9CK5Xk48BTgEOANtS+qFyS1jbl2OpdIOZ5Yk4sBOo+7KdXkZ8nqqRmT7ea47TDWNYxtymTHRrm9bBw+i/MpY1Vq4lSyNmSxANk8XmX9NTlAsvqzfCJZXqCyLFsme8017cz2Z1lWs8xM9Q/S2du387KLLmL3KW3dtmgRZx91FKtWrRpgy0bTMOTpyebQKmPesu2NWl6pebTlfuANEXGJpKXA9yWdFxFXZwvPNrz1umaurecAzwUOBO6hdfv6RyPiO5220MzMum/yLi3fvWWjptPhrYjYAGxoHt8p6RpgJbBznZ6mgs3A3zU/ZmY25P599Wp3cmykzBHIvJ+ki6c8PyMizpihntXAkcCFM1U2a6fHzMzMrNdm6fTcGhFHz7W+pL2AfwBeGxF3zLScOz1mPVLG69TEidTGFNXEoNXkmsnWy2IPli5dOu15FmewfPnytrKaWJlOc11lr68mLqAm509tbNWwxfTY/JTvZ+17Xptfay61eazKc7SM8YH8HC3j9crtDTLGZz7blrQrrQ7PmRHxhdmWdafHzMzMBmY+eXrU6i19DLgmIt431/JzdnqaHtQrgSc1Rd8CPhIR7alOzczMzHbSPPL0PBF4MXCFpEubsrdExFeyhWuu9HwY2BX42+b5i5uyP+q0hWZmZmaT5nH31ndoTY9VpabT8ysRccSU5/8i6bKdblkPRMScMRGdjhPWjtWX2+t07qaa+IvaGIZOt9epbtU1jG2aT13lelk9NcdPTQxB7fFa5hPJcvJkcQU151U385eUMQq17Sz3Q+3cW53OSdTLc62mDaNad6/r79bnfs38bllZlleqZr1uxrzVxAeV51m/siKXJPUtnqjmFW6X9LDJJ5IOBboTtWVmZmZjr9OMzDur5krPnwIXSPovWpeQDgFe2vWWmJmZ2Vga+ISjkyLifEmHAY+k1en5YUTMOXudpFXAp4AHAztoJRT6a0krgM8Bq4Frgec1SRCR9GbgZFpXkl4TEV/r5EWZmZnZaOjn8FbN3VuLgT8Gfg0I4F8lfSQi7p1j1XQ+DOAlwPkRcbqkU4FTgTdJOhx4PvAo4CDgG5IeEREzDqVFBNuK2YPL8c9O85dk8yRlOs0LUo7lZsuUZTVzqWRt6jTOKNPLuoaxTd2sqyY/TM24P9TF9GTHRjmmX7MM1L1X2TlTk08ki+np1px2WSxQTexRdq5lbaj9nLDRUJOnp9OYnpqyrO5svW7NMVkev4PM0zPwWdan+BStjsgHgQ8BhwP/b66VImJDRFzSPL6T1pxdK4ETgDXNYmuAZzePTwA+GxHbIuKnwDrgmOpXYmZmZiNpmGJ6HlncvXXBzt69VcyHcUAzQRgRsUHS/s1iK4HvTVltfVNW1nUKcArAgQceuDPNMDMzsyEzn+SEO6tmKz+Q9PjJJ5IeB/xb7QZq58Mgv8++bawhIs6IiKMj4ugVK1bUNsPMzMyG1GRcT/nTbTVXeh4H/KGk65vnDwGukXQFEBHxmJlWnGE+jJslHdhc5TkQ2NiUrwdWTVn9YODG2Rq2fft27rrrrrayqWpjNMpeZhbXkJWVMQpZzEJNDEFNXENtTI8Np9q4m1JNXEF2nJfxbtAeH1CTs2amslL2Wmpi5TqdWyiL1ynnG8rW6/Q8qpk7LVOTbyt7/2pyOHUa01dTVhsPWdPOmrb3e7/U5L/K3t+acyZ7LdlxVy6XLZN9N9R8z3WS32eQ3ydDc/cWcHwnFc8yH8Y5wEnA6c3vL00p/4yk99EKZD4MuKiTbZuZmdlo6OfwVs0t69dJWk7rKswuU8ovmWPVdD4MWp2dtZJOBq4HntvUd5WktcDVtO78etVsd26ZmZnZwjA0nR5Jf07rNvP/5IEYmwCeOtt6c8yHcewM65wGnDZXm8zMzGzhGJo8PcDzgIdFRHuygAHbsWMHd95557SyMo4hy3GQjcl2a36TmnmEsrJsvTLWodNcJTYcamIIsuP1nnvuaSvbunXrtOf33tueNiuL6amJBaqJkeg0NqeMuZmpbMmSJdOe1871VZZlryVrZ038nGPqFpaavEtZTE92LJbnbXbc1cSEdTqHXrcMKk/PUA1vAVcCy3gg4NjMzMysa4ap0/OXtG5bvxL4+b+OEfGsnrXKzMzMxsKwXelZA7wHuILWHFpmZmZmXTNMMT23RsQHet4SMzMzG0vDdKXn+5L+klYenanDW3Pdst5zO3bs4O67755WViYrLP8O7UGg0B4IWhMECnlQdCdqJjisTRZWqj2YOk1A10k93axrWF9fqSa4MTuesrKaJGo1aifRLAPvs+DjPffcs61s6dKl057vvffeHbWrNrC43Fe1r69mctjs/O/k/HNywrz+UU5O2OmEvDVqAqC7lZywZp1eGLbhrSOb34+fUjbnLetmZmZmNYam0xMRT+lHQ8zMzGw8DU1Mj6QDgHcDB0XE0yUdDjwhIj7W89bZUDr80kt5ynnnsfeWLdyxbBkX/OZvcvVjHzvoZpmZ2QgatuGtTwKfAN7aPP8x8Dla82oN1I4dO9oSt5UxPXfc0T6x++23395WVi6XrVcTH5TFC2UJ58r4gNqx4xq9HJd9+qZNPG39evZotrHPli087eyzufB73+Ncz3o/TSf/udTGrpRJ/7LkltmEnGVZtkyZGDArq40hqtkHNROc1h7TZdxElogwU7azJhHpTMvZaOhmcsLy87w2Nq/8bsjixrLvj/L8qI0zLNtevt5O4xW7oV/n0oxbkTR5hu8XEWtpblePiPsBz4k1pl59000/7/BM2iOCV99004BaZGZmo05S+tNts3WtJmc4v1vSvjTzbkl6PNB+qcTGwoOT/0RmKzczM5vN5PBW9tNtsw1vTXaxXk/rdvWHSfo34EHAc7reEhsJN+26KwclHZybKocRzMzMSsMQ0/MgSa9vHn8R+AqtjtA24Djg8h63bU4RMWeek2w8NJucsYzFyeJ3amKBOs0LlLWzLMvGl2vyM2TjtJ0eYG8B/gaYmpHlbuCtEuvWrdupusp2ddqmbr6+btZVU08ZJ5JNTpvF3ZQ5ccp8OJDHLNSst2zZsjnLsvWyWKDy9dRM9gntsQ1ZjF12Xm3evHnW7UMe/1SWZe3sdMLfTi/R18QxjWrdva6/07rL8z+Lw8nibsqymjjOrKz2M75UG4NWHtfl+THueXoWAXvxwBWfSe2fbDY21jYn0rvuv5+DI1gv8fZdd+XzvtJjZmYdGoZb1jdExLv60gobKWt32eXnnR/wHSxmZjY/w3Clpz/dLjMzMxtbwzK8dWxfWjAPkuaco6c2f0kZj1CbI6ccI83mJFpIeXqsXi/z9JRj8Vk8TTbP1fLly6c933fffduW2X///dvKDjjggGnPH/zgB8+5TLa97JjesmXLnGVZPF22Xpm3K4uj6DQXSfZ+9uuSvPVHeWxkn8s1c3Z1qiYOB9q/17LYtey7qCzrNN9PL3Ta6ZH0ceCZwMaIePSc25npDxGxqaMWmJmZme2EeeTp+SRwfO12ajIym5mZmfXEfIa3IuLbklbXLu9Oj5mZmQ3ULJ2e/SRdPOX5GRFxRqfbGelOz8TERNsYZTm2ml0ey8ZI99prr2nPs1iHLD6g07ibUjaWW8YrZQdFzeW/2h50zXhuTV2148LdqmtYX18pi7WaK8/UTGXlerVzBJXHfvZ6s/w3t95667TnWZxaFmNTxhpl28vqKufQy2J6avJm3XnnnW3LlHE/0J43K9uftfEdtnBkx2tWVjPnW01+qJp576A931b5HPJjs/xMKL93BhkPOstn760RcXS3tjPSnR4zMzMbbb2aZyvjTo+ZmZkN1MBnWTczMzPrh04nHJV0FvBd4JGS1ks6ebblR/pKz8TERNtYZjlGmY2HZjES3ZrfJBu3zXIolGXZeuW4cKdz/9hwqMnvkcW3ZDEo5RxvZQzMTGXletk8dFnZLbfcMu35TTfd1LZM9vrKspq4Jmg/R7M2bdu2bc6ybN9l65X7vSaOChzTs9CUn6fZZ24Wr1OWZZ/nNfE62fmRDfvUfO9kx3DN+TgI87x76wU7s/xId3rMzMxs9Dmmx8zMzMbCMExDYWZmZtZTwzL31tCbmJhg6dKl08o6HSMtd3jNuC20x+bUxO9kZdmYbDlum+XycUzP6MjiP8px9yymJ4tnKXPplPlpIM9RUzOnVVZXuVxWd5bfp2x7Fk+TxR6UObGy87gmnqZ2LrMyNrB2ni3PvbWwDUOenmwOrfL7I9tezffFMB2/Ht4yMzOzseArPWZmZrbg9XN4q2dbkfRxSRslXTmlbIWk8yT9pPm9fMrf3ixpnaQfSXpar9plY+zMM2H1apiYaP0+88xBt8jMzOg8T8/O6uWVnk8CHwI+NaXsVOD8iDhd0qnN8zdJOhx4PvAo4CDgG5IeERHtiTGmWLRoUducWeXYf+18VTX5GWrKsmWy7dXkZyljFrIYhprXVxvXVKOXdfWyTTrrLBa98pVoMu7kuuuIU05h+/btxAseSPPQy9dXE9NTO79bWXc2fp/FkpUxcDU5QKA9ZmDx4sVty2Tz/5R5cmpjesp9lZ1XNe3M9kFNLq0sRqImT9YwxUjYziuPu9rcTNlynag5pqH9GM6O8ywWqDxvy+0N8vjt17Z7dqUnIr4NbCqKTwDWNI/XAM+eUv7ZiNgWET8F1gHH9KptNn4Wve1tD3R4Gtq6lUVve9uAWmRmZvDA8FY/rvT0+9afAyJiA0Dze/+mfCVww5Tl1jdlbSSdIuliSRdv2lT2qcxmcMMNO1duZmZ9s1A7PTPJrmul+bEj4oyIODoijl6xYkWPm2ULxqpVO1duZmZ90c8rPf2+e+tmSQdGxAZJBwIbm/L1wNRvn4OBG+eqTFLbWGancSLdjCcpZW9cOU5bk0+kdu4tx/Qkdb373XDKKTB1iGvJEvTud097L7r5+mramb2npZoYgtp8NDX5RLL4gFIW01MzX1X2WmriimpjFsqyrJ01uVCyuJ+aD+Ben2sLpe5e199p3eXxWZNDKivLYjRr1stig7o1LyTMHfM2yLxvIx/TM4NzgJOaxycBX5pS/nxJu0t6KHAYcFGf22YL2QtfCGecAYccAlLr9xlntMrNzGygRv5KTzPd+5OB/SStB94OnA6sbaZ+vx54LkBEXCVpLXA1cD/wqrnu3DLbaS98oTs5ZmZDZkFMQzHLdO/HzrD8acBpvWqPmZmZDaeR7/SYmZmZ1fDcWxUktQVm1iT0m6muqWomlYPOg41LNRMqZvXUBLnVBhbWGMa6hrFNWV3ZsViW1STOhM4nOKxJopYdw2VAcG3AZdn22uRrnU7kW7YzC2SuqavTCRxttNUkJ+w0kLmmLKu708S1mfLzpTzXB5WccEEMb5mZmZnVcKfHzMzMxoI7PWZmZrbgSXJMj9moK0/iLCakVDtxYU3sUba9MsYli9/JYoHKJG217Sz/e8tiZWriZ2onAC5lyeWy/yjLstqJisv9UBPXlNWTrVeW1dSd1V9Td1ZWuw9q2jmM+6Um6Wd2nNdMkFs7kW/NZ0RNbF7tPi/VHPf94is9ZmZmNhbc6TEzM7MFz8NbZmZmNjZ8padCRMw5ttmtiedma8Nsz2vbUJOfJVumtqyTZWp1q65hbNN86iqPhSw+oCYWoCbuptO4jUzNBLm1+YxqzsdOj9dsv5TtzOIhsrJyvdoYIufpGV0173F2zmbHYplLJzs/srpqJuTN1MSzdcJ5eszMzMx6zJ0eMzMzGwuO6TEzM7MFz8NblSKCbdu2tZVNVZtrolyudsy0pneajdOWc6zUzMtUO/dPTZ6ObsWpdLOuYWzTfOoqZe9VGV+SzbOTzcdTM/dOzWvpNP9Npmb+uNr8PuV6ncYn1ao5/7Ptle/NMOajcZ6evP5u5ump+Szr9LyqiQXqVvxeN8+pneVOj5mZmY0Fd3rMzMxswXOeHjMzMxsb/brSo0GO4c2XpFuA65qn+wG3DrA548j7vL+8v/vP+7z/vM/7b3KfHxIRD+r3xiV9tWlD5taIOL5r2xrlTs9Uki6OiKMH3Y5x4n3eX97f/ed93n/e5/03Tvvc6UTNzMxsLLjTY2ZmZmNhIXV6zhh0A8aQ93l/eX/3n/d5/3mf99/Y7PMFE9NjZmZmNpuFdKXHzMzMbEbu9JiZmdlYGPlOj6TjJf1I0jpJpw66PQudpFWSLpB0jaSrJP3JoNs0LiQtkvQDSV8edFvGgaRlks6W9MPmeH/CoNu00El6XfO5cqWksyQtHnSbFhpJH5e0UdKVU8pWSDpP0k+a38sH2cZeGulOj6RFwN8ATwcOB14g6fDBtmrBux94Q0T8IvB44FXe533zJ8A1g27EGPlr4KsR8QvAEXjf95SklcBrgKMj4tHAIuD5g23VgvRJoEz2dypwfkQcBpzfPF+QRrrTAxwDrIuI/4qI+4DPAicMuE0LWkRsiIhLmsd30voiWDnYVi18kg4GngH8/aDbMg4k7Q08CfgYQETcFxFbBtqo8bALsIekXYAlwI0Dbs+CExHfBjYVxScAa5rHa4Bn97NN/TTqnZ6VwA1Tnq/HX8B9I2k1cCRw4YCbMg7eD7wR2DHgdoyLQ4FbgE80Q4p/L2nPQTdqIYuI/wbeC1wPbABuj4ivD7ZVY+OAiNgArX9sgf0H3J6eGfVOTzYtq+/B7wNJewH/ALw2Iu4YdHsWMknPBDZGxPcH3ZYxsgtwFPDhiDgSuJsFfMl/GDRxJCcADwUOAvaU9KLBtsoWmlHv9KwHVk15fjC+HNpzknal1eE5MyK+MOj2jIEnAs+SdC2tIdynSvr0YJu04K0H1kfE5FXMs2l1gqx3jgN+GhG3RMTPgC8AvzrgNo2LmyUdCND83jjg9vTMqHd6/gM4TNJDJe1GK+jtnAG3aUGTJFpxDtdExPsG3Z5xEBFvjoiDI2I1rWP8XyLC/wH3UETcBNwg6ZFN0bHA1QNs0ji4Hni8pCXN58yxOHi8X84BTmoenwR8aYBt6aldBt2A+YiI+yX9D+BrtCL9Px4RVw24WQvdE4EXA1dIurQpe0tEfGVwTTLriVcDZzb/UP0X8NIBt2dBi4gLJZ0NXELrLtEfMEbTI/SLpLOAJwP7SVoPvB04HVgr6WRanc/nDq6FveVpKMzMzGwsjPrwlpmZmVkVd3rMzMxsLLjTY2ZmZmPBnR4zMzMbC+70mJmZ2Vhwp8dsAZG0r6RLm5+bJP138/guSX/bo22+VtIf9qLuTki6VtJ+s/z9s5IO62ebzGw4+JZ1swVK0juAuyLivT3cxi608qocFRH392o7O6PJXH10RNw6w99/A3hRRLysrw0zs4HzlR6zMSDpyZK+3Dx+h6Q1kr7eXBX5PUl/JekKSV9tphlB0i9L+pak70v62mSa+sJTgUsmOzySXiPpakmXS/psU7anpI9L+o9m8s4TmvJFkt7bbPdySa9uyo9tlruiWW/3pvxaSe+UdEnzt19oyvdtXssPJH2UZk6+Zrv/LOkySVdKOrFp878CxzUdNjMbI+70mI2nhwHPoDXB46eBCyLil4B7gGc0HZ8PAs+JiF8GPg6cltTzRGDqRKinAkdGxGOAVzRlb6U1dcavAE8B/nczY/kptCaXnFz+TEmLgU8CJzbt2QV45ZT6b42Io4APA/+zKXs78J1mYtBzgIc05ccDN0bEERHxaOCrABGxA1gHHLEzO8zMRp87PWbj6dxmUscraE3h8tWm/ApgNfBI4NHAec10I39Ga0Lf0oHALVOeX06r8/IiWlMJAPwWcGpTzzeBxbQ6JscBH5m8ShQRm5rt/jQiftysuwZ40pT6Jye4/X7TTpq/f7qp45+BzVNey3GS3iPp1yPi9in1bKQ1k7eZjRFf3jUbT9ugddVD0s/igeC+HbQ+FwRcFRFPmKOee2h1YiY9g1Yn5FnA2yQ9qqnr9yPiR1NXbCaVLIMKVdNuYDvTP7/aghMj4seSfhn4beAvJX09It7V/Hlx03YzGyO+0mNmmR8BD5L0BABJuzYdmNI1wMObZSaAVRFxAfBGYBmwF60JgV/ddHKQdGSz7teBV0zG1khaAfwQWC3p4c0yLwa+NUdbvw28sKnj6cDy5vFBwNaI+DTwXuCoKes8AvDkxGZjxp0eM2sTEfcBzwHeI+ky4FLgV5NFz+WB4adFwKclXUFrhuz/GxFbgD8HdgUul3Rl8xzg72nN6Hx5s40/iIh7ac1m/vmmnh3AR+Zo7juBJ0m6hNZQ2vVN+S8BFzXDam8F/gJA0gHAPRGxoW5vmNlC4VvWzWxeJH0ReGNE/GTQbakh6XXAHRHxsUG3xcz6y1d6zGy+TqUV0DwqttAKkDazMeMrPWZmZjYWfKXHzMzMxoI7PWZmZjYW3OkxMzOzseBOj5mZmY0Fd3rMzMxsLPx/D14czFIbH0wAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def compute_sinusoid_optimal(c, tempo, n, Fs, N, H):\n", " \"\"\"Compute windowed sinusoid with optimal phase\n", "\n", " Notebook: C6/C6S2_TempogramFourier.ipynb\n", "\n", " Args:\n", " c (complex): Coefficient of tempogram (c=X(k,n))\n", " tempo (float): Tempo parameter corresponding to c (tempo=F_coef_BPM[k])\n", " n (int): Frame parameter of c\n", " Fs (scalar): Sampling rate\n", " N (int): Window length\n", " H (int): Hop size\n", "\n", " Returns:\n", " kernel (np.ndarray): Windowed sinusoid\n", " t_kernel (np.ndarray): Time axis (samples) of kernel\n", " t_kernel_sec (np.ndarray): Time axis (seconds) of kernel\n", " \"\"\"\n", " win = np.hanning(N)\n", " N_left = N // 2\n", " omega = (tempo / 60) / Fs\n", " t_0 = n * H\n", " t_1 = t_0 + N\n", " phase = - np.angle(c) / (2 * np.pi)\n", " t_kernel = np.arange(t_0, t_1)\n", " kernel = win * np.cos(2 * np.pi * (t_kernel*omega - phase))\n", " t_kernel_sec = (t_kernel - N_left) / Fs\n", " return kernel, t_kernel, t_kernel_sec\n", "\n", "def plot_signal_kernel(x, t_x, kernel, t_kernel, xlim=None, figsize=(8, 2), title=None):\n", " \"\"\"Visualize signal and local kernel\n", "\n", " Notebook: C6/C6S2_TempogramFourier.ipynb\n", "\n", " Args:\n", " x: Signal\n", " t_x: Time axis of x (given in seconds)\n", " kernel: Local kernel\n", " t_kernel: Time axis of kernel (given in seconds)\n", " xlim: Limits for x-axis (Default value = None)\n", " figsize: Figure size (Default value = (8, 2))\n", " title: Title of figure (Default value = None)\n", "\n", " Returns:\n", " fig: Matplotlib figure handle\n", " \"\"\"\n", " if xlim is None:\n", " xlim = [t_x[0], t_x[-1]]\n", " fig = plt.figure(figsize=figsize)\n", " plt.plot(t_x, x, 'k')\n", " plt.plot(t_kernel, kernel, 'r')\n", " plt.title(title)\n", " plt.xlim(xlim)\n", " plt.tight_layout()\n", " return fig\n", "\n", "t_x = np.arange(x.shape[0])/Fs\n", "coef_n = [20, 30, 70]\n", "coef_k = [11, 5, 19]\n", "\n", "fig, ax, im = libfmp.b.plot_matrix(tempogram, \n", " T_coef=T_coef, F_coef=F_coef_BPM, figsize=(9,3),\n", " title='Fourier tempogram', ylabel='Tempo (BPM)', colorbar=True);\n", "ax[0].plot(T_coef[coef_n],F_coef_BPM[coef_k],'ro')\n", "\n", "for i in range(len(coef_k)):\n", " k = coef_k[i]\n", " n = coef_n[i]\n", " tempo = F_coef_BPM[k]\n", " time = T_coef[n]\n", " corr = np.abs(X[k,n])\n", " kernel, t_kernel, t_kernel_sec = compute_sinusoid_optimal(X[k,n], \n", " F_coef_BPM[k], n, Fs, N, H)\n", " title=r'Windowed sinusoid (t = %0.1f sec, $\\tau$ = %0.0f BPM, corr = %0.2f)'%(time, tempo, corr)\n", " fig = plot_signal_kernel(x, t_x, kernel, t_kernel_sec, title=title)\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the first time-tempo pair ($t=2~\\mathrm{sec}$, $\\tau=160~\\mathrm{BPM}$), the positive parts of the windowed sinusoid nicely align with the impulse-like peaks of the novelty function $\\Delta$, whereas the negative parts of the sinusoid fall into the zero-regions of $\\Delta$. As a result, there is a high correlation between the windowed sinusoid \n", "and $\\Delta$, which leads to a large coefficient $\\mathcal{T}^\\mathrm{F}(n,\\tau)$. \n", "\n", "For the second pair ($t=3$, $\\tau=100$), the sinusoid leads to a small coefficient. In this case, some peaks of $\\Delta$ fall into positive parts of the sinusoid, whereas other peaks fall into the negative parts of the sinusoid. Because of the resulting cancellations, the overall correlation between $\\Delta$ and the sinusoid is small. \n", "\n", "Finally, the third pair ($t=7$, $\\tau=240$) illustrates that one obtains a high correlation when using a sinusoid that represents twice the main tempo. In this case, the peaks of $\\Delta$ are aligned with every second positive part of the sinusoid, whereas all other parts of the sinusoid fall into the zero-regions of $\\Delta$. This discussion shows that a Fourier tempogram generally indicates **tempo harmonics**, but suppresses **tempo subharmonics**, see also the [FMP notebook on tempo and beat](../C6/C6S2_TempoBeat.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example: Shostakovich\n", "\n", "In the following example, we consider an excerpt of a recording of the Waltz No. 2 by Dimitri Shostakovich's Suite for Variety Orchestra No. 1. The score shows a piano-reduced version of the excerpt. \n", "\n", "\"FMP_C6_F07_Shostakovich_Waltz-02-Section_Score.png\"\n", "\n", "
\n", "\n", "\n", "\n", "We start with a [spectral-based novelty function](../C6/C6S1_NoveltySpectral.html) resampled to $F_\\mathrm{s}^\\Delta = 100~\\mathrm{Hz}$. Furthermore, we use a window size corresponding to $5$ seconds ($N=500$) and a tempo set $\\Theta=[30:600]$ having a resolution of $1~\\mathrm{BPM}$. Using a hopsize parameter $H=10$, the feature rate of the resulting tempogram will be $10~\\mathrm{Hz}$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2024-02-15T08:48:30.303943Z", "iopub.status.busy": "2024-02-15T08:48:30.303763Z", "iopub.status.idle": "2024-02-15T08:48:30.713187Z", "shell.execute_reply": "2024-02-15T08:48:30.712597Z" } }, "outputs": [ { "data": { "image/png": "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vFU7CCgncKDQr4QSOOUG5aVMmjTJlmpoFYYPH86uu+5as8CppIRdBE7cuRQ/7Fn97PVg3rx5tLW1sddee223z0XgvP7660yaNGmbkfbYsWMZPXp05o7NhUoCJ77GWbJ6btiwgf7+/rIvfggrcMpZcN761rcC8MQTT9RU56JFixg9evQ2VlHIHmv0wgsv8La3vY0777yzpnJQPlAc3NYASxI4qtqQ2TlJLiqoLtnffffdx8yZMznvvPMGrnW5umoZud98882ICLNmzcq8SOOTTz4JwJ577jmwzWVF63KiYuzYsXWz4Jx22mnsvffebNy4MfW78XUpXpAZ3ARO6aCp2hiceFAeLxmRRPzs7mi0pMCBgpuqFoHz/PPPexE4S5YsYdy4cdu4g1ymgroyb948dtttt+1eXuAucOIONUZEnEZuLtRT4Kgqc+bM4cEHHwS2FxODBw9m3LhxQV1U5Sw4sau2VoGzYMGCsqPCrAJn9uzZ3H///bz//e+v6iVSzLp16xpqwYHGLNcQP2NZBY6q8vDDD3PAAQdU/M64ceMQkar7mr6+Pi6//HKOPPJIJkyYMCBKqrFu9Pb2csstt9DX18dDDz1EZ2fnwMxWKAicl19+eSAmsRZ8WnCWL1/Ov//7v/P0009zwQUXpH4/jrPZaaedttk+depUXn311Uyzzkrj+uLPaUL7ueee22bWXBImcFqMvffem+eee24gBiaJV155hUWLFnHggQeW3T9hwgTa29szzaQq9+KfOHEiq1evrqpt9eapp54aePGV4pKEMLbglLL77rvnSuBMnDiRzs7Omkam3/nOd/jABz7ARz7yEaC8tSRUEF9swSln5Rg1ahTTp0/PJHDKBdtnETjz5s3j+uuvZ//992ft2rXcd999NbWlkosqHs1nsYTGz3HsWoxp5HINq1atYsiQIduNvqu1urzwwgusWrWqYp8FhSSl48aNq1rg3HLLLbzyyit8/vOfB2DGjBmsWrWqquv95S9/maOOOopLL72Uhx9+mP32228gRxkUBE5/f3+mRYtjIePDgvPzn/8cKDwr119/fer3Fy5cyKhRo7brA6ZNm8aWLVsy9QGlLqr29na6uroSBc6KFSu4//77Ofzww6s6hgmcFmPvvfemr6+PZ599NvW7cVLAOAtyKW1tbUyePDmzi6r05ordVY12U23YsIH//d//LeuegkKH2NnZmUngLFmypKLAWbBgQaaRWy2oKr/+9a8HXqCVBI6IMH369KotOJs3b+aiiy4Cts4GK2ctcclm7JI/Z+HChUycOHFg4dlS9tlnn5oEjqry0ksv1U3gnHvuuXR1dXHDDTcgItx1111Vl4XKLqqpU6cyZMgQnnvuuZrqg4LAGTNmzHbiIo6Tq8YyMHfuXE4++eTMeWJKl2mIqVbgPPzwwwCJFpy4vmoFzn/9138xYcIEjj32WGCrizN2OVVi2bJlXHzxxQDMmTOHRx55ZDvh5TKTqnhdq5haLTgvv/wyp5xyCo888sjAts2bN/PTn/6UI444gq985Ss8+uijqX3fq6++up31BrbOvs0ymCu3llzagpu33norfX19HH300VUdwwSOZ0TkKBH5m4g8LyKzy+wXEfnPaP8TIjLT5Xj77LMPUAiaW758eeIL9o477mD48OHsu+++Fb+TNdlfuRe/y6J6qso555zD0UcfXfO0xMcee4y+vr7ETjFLjp7+/v5t8l4Us++++9Lf38/jjz9edX3PPPMM3/zmNznuuOOqHvHPmTOHj370oxxyyCE88MADFQUOFIKfq+1of/vb37J8+XLOPffcgW2VLDhZBM6PfvQjxowZkyk+BQrup/heL8c+++zDc889V7VraPny5axdu7aswIlTvlcrcObPn8+1117Lv/zLv7DLLruw33771fw7K1lw2tvb2X333fnb3/5WU31QPgcOVJ9yf/369Rx33HFccMEFXHjhhTUfHyoLnDiOLS0p3sMPP8zQoUMrDlZiqhU4Dz74IHPnzuWzn/3swEysamO4brrpJvr7+znkkEO4+eabWb9+/XZ9TJrAWbx4cUWr6vLlyxk+fPg2E0DGjh3L2rVrq07d8fWvf53zzz+fAw88kB/96EdAwXqzaNEivvGNb3D44YfT39+fmiB24cKFTJkyZbvt8bujln4uppzASVpwU1X52c9+Rk9PDwcffHBVxxg7duw2FrUdhYYIHBFpB34GvBfYE/i4iOxZ8rX3AntE/04CsvUcEW95y1uYMmUKP/nJT5g+fToHHXRQWYHy4osvcvnll3P88ccPrEtTjp6enkz5U8q5qKpdmXnZsmV873vf46yzzhp4QV122WV85zvf4eabb+YLX/hCTVOA4xiSv/u7v6v4nSwCZ8WKFfT29pYdJcSZkqsVKo899hiHHnooF1xwAXfffTfvec97Ukfpsejr6Oigo6ODs88+O1HgHHTQQTz11FOpLscNGzZwzjnnMGPGDE455ZSBTrrSlOz58+fXJDr/+te/Mnv2bDZv3swXv/jFmq1cvb29zJs3L1Xg9PX1bTNyTSK+R8rF4NSa8v3HP/4x7e3tfP3rXwfgH/7hH7jnnntqci1UsuAAvOlNb8pswSkncKZMmcLQoUN54IEHEsvHbo0hQ4ZwxhlnZEo2WEngdHZ2MnPmzIGlVCrx0EMPsc8++2wzLbwc1QiczZs389nPfpbu7m5OP/30ge3jx4+nu7ubu+66KzGA9te//jU9PT2ceeaZA/1RqcDp7u5m+PDhPProo9uV/+Mf/8i0adPYbbfduO6667bb/9prr21jvYGtYjS+X5N44IEHuOGGGzj55JP56Ec/yuzZsznzzDM566yzeOc738mRRx7JoYceSmdnJ3Pnzk2sq5LA6enpYcKECWV/XxLxzMxyubWeeeaZsv379ddfz9133823vvWtqkVLW1tb2QFoq1P5jV5fDgKeV9UXAUTkWuA4oDiL1HHAlVq4oveJyGgR6VbVTCmERYT3v//9XHjhhey+++688MILzJw5k2OPPZbJkycPdAxz585lyJAhnHXWWck/4KCDmDNnDqeeeuo2C0om0d/fz+rVqytacC699NKKD+iWLVu49NJLB0TVjTfeyLHHHst5553H3//933Pcccdx6qmn8q//+q9MmjSJ/v7+iv9effVVXnrpJZYuXUp3d3dZE2vMyJEjefTRRzn77LOr+o2wdcRbTuBMmTKFnp4errzyytSguY0bN3LRRRcxYsQIHn30Udra2pg5cybve9/7+PSnP71dLpSYhQsX8tBDD3HppZeyePFivv3tbycKnA996EN873vf4+STT64Yj6SqXH311fztb3/jV7/6FYMGDeJDH/oQP/7xj8sKnOOPP57vfOc7fO1rX0u0BBbX/4tf/IKpU6dy/vnnc/zxx/PhD3+46hEZFF6SGzduTBQ4RxxxBKNGjeLUU0/lfe97X2J9mzZt4ic/+Qm77LILs2bNKvudSZMmcd9996XeHxs2bODnP/85n/vc5waC9D/wgQ9w7rnn8tWvfpUZM2Yk/7iI119/vawFBwoC53e/+11N92pvby9PPPHENhl/Y7q6ujj66KO55pprtpslE9PX18dPf/pT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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#fn_wav = os.path.join('..', 'data', 'C6', 'FMP_C6_F11_ClickTrack-BPM170-200.wav')\n", "fn_wav = os.path.join('..', 'data', 'C6', 'FMP_C6_F07_Shostakovich_Waltz-02-Section_IncreasingTempo.wav')\n", "Fs = 22050\n", "x, Fs = librosa.load(fn_wav, Fs) \n", "\n", "nov, Fs_nov = libfmp.c6.compute_novelty_spectrum(x, Fs=Fs, N=2048, H=512, gamma=100, M=10, norm=True)\n", "nov, Fs_nov = libfmp.c6.resample_signal(nov, Fs_in=Fs_nov, Fs_out=100)\n", "\n", "N = 500 #corresponding to 5 seconds (Fs_nov = 100)\n", "H = 10\n", "Theta = np.arange(30, 601)\n", "X, T_coef, F_coef_BPM = compute_tempogram_fourier(nov, Fs_nov, N=N, H=H, Theta=Theta)\n", "tempogram = np.abs(X)\n", "\n", "fig, ax = plt.subplots(2, 2, gridspec_kw={'width_ratios': [1, 0.05], \n", " 'height_ratios': [1, 2]}, figsize=(8,5)) \n", "libfmp.b.plot_signal(nov, Fs_nov, ax=ax[0,0], color='k', title='Novelty function')\n", "ax[0,1].set_axis_off()\n", "libfmp.b.plot_matrix(tempogram, T_coef=T_coef, F_coef=F_coef_BPM, ax=[ax[1,0], ax[1,1]], \n", " title='Fourier tempogram', ylabel='Tempo (BPM)', colorbar=True);\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As the Fourier tempogram $\\mathcal{T}^\\mathrm{F}$ reveals, the dominant tempo of this excerpt is between $200$ and $300~\\mathrm{BPM}$. Starting with roughly $\\tau=225~\\mathrm{BPM}$, the tempo slightly increases over time. Interestingly, because of the weak downbeats every third beat within the 3/4 meter, the tempogram $\\mathcal{T}^\\mathrm{F}$ also shows some larger coefficients that correspond to $1/3$ and $2/3$ of the main tempo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "Acknowledgment: This notebook was created by Meinard Müller.\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", "
\"C0\"\"C1\"\"C2\"\"C3\"\"C4\"\"C5\"\"C6\"\"C7\"\"C8\"
" ] } ], "metadata": { "anaconda-cloud": {}, "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", "version": "3.8.16" } }, "nbformat": 4, "nbformat_minor": 1 }