{
"cells": [
{
"cell_type": "markdown",
"id": "af11ce5f-b634-4c1e-b8b5-d886d1b04c2a",
"metadata": {},
"source": [
"# Transcription\n",
"\n",
"Transcription of audio into a musical representation is not a completely objective process. The kind of transcription and the methods used depend heavily on the purpose of the transcription, on what it will be used for. Within **maelzel** there is a `transcribe` package which implements multiple transcription strategies\n",
"\n",
"## Voice Analysis / Transcription\n",
"\n",
"When transcribing a human voice, which is a monophonic source with highly harmonic timbre for the pitched parts of speech/song, probably the most appropriate transcription method is based on the analysis of the fundamental frequency in combination with onset/offset prediction and other secondary features. \n",
"\n",
"`maelzel.transcribe.FundamentalAnalysisMonophonic` implements the skeleton of such an approach:\n",
"\n",
"1. Onset detection\n",
"2. The fundamental is sampled within each onset-offset timespan to include any pitch inflections. \n",
"3. A list of \"gestures\" is generated, where each gestures consists on a series of breakpoints. A breakpoint has information regarding pitch, amplitude, voicedness (how much pitch content the voice has) and other features at a given time\n",
"4. Unpitched sections are analyzed using secondary features, like centroid, to characterize them with more detail.\n",
"\n",
"\n",
"**TODO**: it might be desirable to extend the analysis of the unpitched sections using more detailed features like `mfb` or `mfcc`. For voice transcription it would also be relevant to perform formant analysis and vowel/phoneme prediction to enrich the transcription\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "ef32ad22-3eee-4056-aa92-cd64fcfafe2f",
"metadata": {},
"outputs": [],
"source": [
"from maelzel.snd.audiosample import Sample\n",
"from maelzel import transcribe\n",
"from maelzel.core import *\n",
"import matplotlib.pyplot as plt\n"
]
},
{
"cell_type": "markdown",
"id": "c45e5cad-f781-4fda-b58d-2f0b8b71bce8",
"metadata": {},
"source": [
"## Configuration\n",
"\n",
"When performing automatic transcription the quantization results tend to become very complicated. For this reason it is important to limit the complexity allowed by the quantization algorithm in order to keep the results readable. As it will be seen later the resulting transcription remains very close to the original, even with low complexity quantization. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "56272815-e98b-4a12-bc42-5efdb9f2660e",
"metadata": {},
"outputs": [],
"source": [
"cfg = getConfig()\n",
"cfg['quant.complexity'] = 'low'\n",
"cfg['show.centsDeviationAsTextAnnotation'] = False # Disable text annotations for cents deviation for each note\n",
"cfg['show.horizontalSpace'] = 'large' # More reabable since every note probably has its own accidental\n",
"cfg['show.lilypondGlissandoMinimumLength'] = 3 # Makes sure that glissando lines are always shown"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "5ab3902b-f710-4c2f-8033-8fb1417dcb7e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Sample(duration=20, sr=44100, numchannels=1) \n",
" \n",
" \n",
" "
],
"text/plain": [
"Sample(dur=20.0, sr=44100, ch=1)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# s = Sample('../snd/Numbers_EnglishFemale.flac')\n",
"# s = Sample('../snd/colours-german-male.flac')\n",
"# s = Sample(\"~/tmp/gliss.flac\")\n",
"# s = Sample('../snd/finneganswake-fragm01.flac')\n",
"\n",
"# s = Sample('../snd/voiceover-fragment-48k.flac')\n",
"s = Sample('snd/istambul2.flac')\n",
"\n",
"\n",
"# Only the left channel\n",
"s0 = s.getChannel(0, contiguous=True)\n",
"s0"
]
},
{
"cell_type": "markdown",
"id": "bdb7d406-1195-4896-acec-a041fc9d5084",
"metadata": {},
"source": [
"Now we perform the analysis itself. There are many parameters which can be customized but in general the defaults tend to produce viable results. The analysis is then plotted to show utterances split by onsets. Within each onset-offset range the predicted (and already simplified) fundamental is shown as a line. Zero-frequency sections represent onsets for where the confidence of the fundamental pitch prediction was too low."
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "ba3691d9-6f57-4ac5-a922-c0c805085ec6",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"mnOut size: 6891\n",
"m_pitchTrack size: 6891\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABkYAAAH5CAYAAADUcILTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/SrBM8AAAACXBIWXMAAA9hAAAPYQGoP6dpAADRb0lEQVR4nOzdd5wjd3k/8M/MqLft5bbcXvNVl/O5nhsGdxubFgJplBgIxE4g8CNACiEhCUkgkEAIAUwoAdNxL7j3O9+5nNv1ur3vqveZ3x8jaUbb1UfS5/163etGu5L2uytpyvf5Ps8jKIqigIiIiIiIiIiIiIiIqA6IlR4AERERERERERERERFRuTAwQkREREREREREREREdYOBESIiIiIiIiIiIiIiqhsMjBARERERERERERERUd1gYISIiIiIiIiIiIiIiOoGAyNERERERERERERERFQ3GBghIiIiIiIiIiIiIqK6Yar0APIhyzKGh4fhdrshCEKlh0NERERERERERERERBWkKAr8fj+6urogikvnhFRlYGR4eBi9vb2VHgYRERERERERERERERnIwMAAenp6lrxPVQZG3G43APUX9Hg8FR6NwYRCwLPPAhYLYLUW73l9PmDfPuDss4HU37+o9y/nY0r5XCt5jkr/nrmIRgG/HxAEwOVS31PRKBCLARdfDDgcyz/HYu/JSv1OK5Hr71gK+XyWy/E5LcZjS/FcpXw/LfbcK/2ZlXqvl/vnLvXzirHfW+g58t3nLve4Uv3tjLzfW8hy+8Jc9u+V+IwaXak+F+Uay2KPV5Ty7hvz2UeX4z1jhHOJYsrlvKSQv32u7/F8X0ujnccs93yFvp+L+Rkv19+rGK+9kY4PtbZPSMt3/iGX18Yor2Mlx7HU+6cY++dSnV8sp9j7pnKdFxnl/KuYP7OY503l+PuUew7BKPuhuWr12FIgn8+H3t7eTPxgKVUZGEmXz/J4PAyMzGUyAU6n+kG12Yr3vJKkPl9jo/qv2Pcv52NK+VwreY5K/565iESAZFINjDQ3q2OIRNRgicezsh3vYu/JSv1OK5Hr71gK+XyWy/E5LcZjS/FcpXw/LfbcK/2ZlXqvl/vnLvXzirHfW+g58t3nLve4Uv3tjLzfW8hy+8Jc9u+V+IwaXak+F+Uay2KPB8q7b8xnH12O94wRziWKKZfzkkL+9rm+x/N9LY12HrPc8xX6fi7mZ7xcf69ivPZGOj7U2j4hLd/5h1xeG6O8jpUcx1Lvn2Lsn0t1frGcYu+bynVeZJTzr2L+zGKeN5Xj71PuOQSj7IfmqtVjS5GspP0Gm68TEREREREREREREVHdYGCEiIiIiIiIiIiIiIjqBgMjRERERERERERERERUNxgYISIiIiIiIiIiIiKiusHACBERERERERERERER1Q0GRoiIiIiIiIiIiIiIqG4wMEJERERERERERERERHWDgREiIiIiIiIiIiIiIqobDIwQEREREREREREREVHdYGCEiIiIiIiIiIiIiIjqBgMjRERERERERERERERUNxgYISIiIiIiIiIiIiKiusHACBERERERERERERER1Q0GRoiIiIiIiIiIiIiIqG4wMEJERERERERERERERHWDgREiIiIiIiIiIiIiIqobDIwQERERERERERERUdlElEqPgOodAyNEREREREREREREVBZ/ExGw1i/i61Gh0kOhOsbACBERERERERERERGVxS9iAhQI+M+ogDAzR6hCGBghIiIiIiIiIiIiorJIpP4PQsATiSXvSlQyDIwQERERERERERERUdndHWc5LaoMBkaIiIiIiIiIiIiIqCz01bN+m2A5LaoMBkaIiIiIiIiIiIiIqOxCEPA4y2lRBTAwQkREREREREREREQVwXJaVAkMjBARERERERERERFRRTzEclpUAQyMEBEREREREREREVFFhCDgMZbTojJjYISIiIiIiIiIiIiIykrQtWFnOS0qNwZGiIiIiIiIiIiIiKisNohAs6AGRx5KCAixnBaVEQMjRERERERERERERFQW6fiHGcB1JvVWGAIeZTktKiMGRoiIiIiIiIiIiIio7G4ya2ki97CcFpURAyNEREREREREREREVHYXS1o5rYcTAoIsp0VlwsAIEREREREREREREZWVAMAkANeznBZVAAMjRERERERERERERFQWc5NCWE6LKoGBESIiIiIiIiIiIiKqiIt05bQeSQgIVng8VB8YGCEiIiIiIiIiIiKiskrnhpgE4K26clqPwFK5QVHdYGCEiIiIiIiIiIiIiMpiof7qN+rLaQkMjFDpMTBCRERERERERERERBWzUwJaUuW0HoUFQVGq8Iio1jEwQkREREREREREREQVYxKAG9LltAQBDze3V3hEVOsYGCEiIiIi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2c9+9pB984c//OGwyzo2M1395Cc/GbIf33rrrUmSP/mTPxl2Hcdlpos9e/bkzDPPzHXXXXfE9z/2sY/l2muvzac//encfffdmTt3bi644IJ0dHQMu82xnnvDRBlpf967d2/uu+++fOADH8h9992Xr371q3nwwQfzqle9atTtjuV8BSbCaMfmJLnwwguH7Jf/9E//NOI2HZupldH258H78ebNm/PZz342lUoll1xyyYjbdWxmqh3NNbn3vOc9+cY3vpGbbropd9xxRzZt2pTXvva1I253POfbpVMwbuecc05x+eWX9z/v6ekpVq5cWVxzzTVHXP51r3td8YpXvGLIa2vXri3e8Y53TOo4Yay2bdtWJCnuuOOOYZf53Oc+V7S2tk7doOAoXX311cWZZ5551Ms7NjNT/MVf/EVxyimnFL29vUd833GZ6SpJ8bWvfa3/eW9vb7F8+fLi4x//eP9r7e3tRVNTU/FP//RPw25nrOfeMBkO3Z+P5J577imSFI888siwy4z1fAUm2pH25Te+8Y3FxRdfPKbtODYzHRzNsfniiy8uzjvvvBGXcWxmOjj0mlx7e3vR0NBQ3HTTTf3L/PrXvy6SFBs2bDjiNsZ7vl02KkbGqaurK/fee2/Wr1/f/1q1Ws369euzYcOGI66zYcOGIcsnyQUXXDDs8lArO3bsSJIsXLhwxOV2796dNWvWZNWqVbn44ovzy1/+ciqGB6N66KGHsnLlypx88sm57LLL8uijjw67rGMzM0FXV1e++MUv5i1veUsqlcqwyzkuMxNs3LgxW7ZsGXLsbW1tzdq1a4c99o7n3BtqZceOHalUKmlraxtxubGcr8BUuf3227N06dI885nPzLve9a489dRTwy7r2MxMsXXr1nzrW9/KW9/61lGXdWym1g69Jnfvvfemu7t7yLH2tNNOy+rVq4c91o7nfLuMBCPj9OSTT6anpyfLli0b8vqyZcuyZcuWI66zZcuWMS0PtdDb25t3v/vd+f3f//085znPGXa5Zz7zmfnsZz+br3/96/niF7+Y3t7evOhFL8rjjz8+haOFw61duzY33nhjbrnlllx//fXZuHFjXvKSl2TXrl1HXN6xmZng5ptvTnt7e970pjcNu4zjMjPFwePrWI694zn3hlro6OjIVVddlTe84Q1ZsGDBsMuN9XwFpsKFF16YL3zhC7ntttvy0Y9+NHfccUcuuuii9PT0HHF5x2Zmis9//vOZP3/+qFMPOTZTa0e6Jrdly5Y0NjYedsPFaNegDy5ztOuUUX2tBwBML5dffnkeeOCBUefRXLduXdatW9f//EUvelFOP/30fOYzn8nf/u3fTvYwYVgXXXRR/+Mzzjgja9euzZo1a/KVr3zlqO4QgunohhtuyEUXXZSVK1cOu4zjMkBtdXd353Wve12Kosj1118/4rLOV5iOLr300v7Hz33uc3PGGWfklFNOye23357zzz+/hiODY/PZz342l112WZqbm0dczrGZWjvaa3JMDBUj47R48eLU1dVl69atQ17funVrli9ffsR1li9fPqblYapdccUV+eY3v5nvf//7OeGEE8a0bkNDQ57//Ofn4YcfnqTRwfi0tbXl1FNPHXbfdGxmunvkkUfy3e9+N//pP/2nMa3nuMx0dfD4OpZj73jOvWEqHQxFHnnkkdx6660jVoscyWjnK1ALJ598chYvXjzsfunYzEzwgx/8IA8++OCYz6UTx2am1nDX5JYvX56urq60t7cPWX60a9AHlznadcpIMDJOjY2NOeuss3Lbbbf1v9bb25vbbrttyN2ag61bt27I8kly6623Drs8TJWiKHLFFVfka1/7Wr73ve/lpJNOGvM2enp68otf/CIrVqyYhBHC+O3evTu//e1vh903HZuZ7j73uc9l6dKlecUrXjGm9RyXma5OOumkLF++fMixd+fOnbn77ruHPfaO59wbpsrBUOShhx7Kd7/73SxatGjM2xjtfAVq4fHHH89TTz017H7p2MxMcMMNN+Sss87KmWeeOeZ1HZuZCqNdkzvrrLPS0NAw5Fj74IMP5tFHHx32WDue8+1SqnHz9xnty1/+ctHU1FTceOONxa9+9avi7W9/e9HW1lZs2bKlKIqi+LM/+7Pir//6r/uX/9GPflTU19cXf//3f1/8+te/Lq6++uqioaGh+MUvflGrHwGKoiiKd73rXUVra2tx++23F5s3b+7/2rt3b/8yh+7PH/7wh4vvfOc7xW9/+9vi3nvvLS699NKiubm5+OUvf1mLHwH6/eVf/mVx++23Fxs3bix+9KMfFevXry8WL15cbNu2rSgKx2Zmlp6enmL16tXFVVddddh7jstMZ7t27Sruv//+4v777y+SFJ/4xCeK+++/v3jkkUeKoiiKv/u7vyva2tqKr3/968XPf/7z4uKLLy5OOumkYt++ff3bOO+884pPfepT/c9HO/eGyTLS/tzV1VW86lWvKk444YTiZz/72ZBz6c7Ozv5tHLo/j3a+ApNhpH15165dxXvf+95iw4YNxcaNG4vvfve7xQte8ILi937v94qOjo7+bTg2M12Mdq5RFEWxY8eOYs6cOcX1119/xG04NjMdHM01uXe+853F6tWri+9973vFT3/602LdunXFunXrhmznmc98ZvHVr361//nRnG+XnWDkGH3qU58qVq9eXTQ2NhbnnHNOcdddd/W/99KXvrR44xvfOGT5r3zlK8Wpp55aNDY2Fs9+9rOLb33rW1M8YjhckiN+fe5zn+tf5tD9+d3vfnf/vr9s2bLi5S9/eXHfffdN/eDhEK9//euLFStWFI2NjcXxxx9fvP71ry8efvjh/vcdm5lJvvOd7xRJigcffPCw9xyXmc6+//3vH/Hc4uA+29vbW3zgAx8oli1bVjQ1NRXnn3/+Yfv5mjVriquvvnrIayOde8NkGWl/3rhx47Dn0t///vf7t3Ho/jza+QpMhpH25b179xYve9nLiiVLlhQNDQ3FmjVrire97W2HBRyOzUwXo51rFEVRfOYznylaWlqK9vb2I27DsZnp4Giuye3bt6/48z//8+K4444r5syZU7zmNa8pNm/efNh2Bq9zNOfbZVcpiqKYnFoUAAAAAACA6UWPEQAAAAAAoDQEIwAAAAAAQGkIRgAAAAAAgNIQjAAAAAAAAKUhGAEAAAAAAEpDMAIAAAAAAJSGYAQAAAAAACgNwQgAAAAAAFAaghEAAAAAAKA0BCMAAAAAAEBpCEYAAAAAAIDS+P8BsXCIet37YzIAAAAASUVORK5CYII=",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"analysis = transcribe.FundamentalAnalysisMonophonic(s0.samples, \n",
" sr=s0.sr, \n",
" # Quantize the pitch to its nearest 1/8th tone\n",
" semitoneQuantization=4, \n",
" minSilence=0.001, \n",
" # Mark which are the most salient onsets\n",
" accentPercentile=0.1, \n",
" # Simplify the pitch contour\n",
" simplify=0.08, \n",
" # Default: 0.07, lower for more onset sensitivity\n",
" onsetThreshold=0.05, \n",
" # Unvoiced utterances softer than this are not taken into \n",
" # consideration since they are often oart of the\n",
" # background noise\n",
" unvoicedMinAmplitudePercentile=0.3,\n",
" overlap=16,\n",
" onsetOverlap=8, \n",
" onsetBacktrack=True)\n",
"plt.figure(figsize=(20, 6))\n",
"analysis.plot(spanAlpha=0.2)\n"
]
},
{
"cell_type": "markdown",
"id": "15412b00-16eb-45c1-a894-6f09f888da03",
"metadata": {},
"source": [
"The analysis contains a series of breakpoints.These breakpoints are grouped by onset/offset region and stored in the `.groups` attribute within the analysis. A group contains all the breakpoints between an onset and the next onset. Notice that a group can have an offset or not. A group without an offset indicates that there is no interruption between the end of one group and the start of the next. Keep in mind that onset prediction is performed based on spectral flow: an onset indicates a significant change of spectrum within a given period of time. "
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "7bbba6b8-0cc6-4197-ab52-8ea3c87339ed",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
time
freq
amp
voiced
linked
onsetStrength
freqConfidence
kind
isaccent
duration
properties
\n",
"\n",
"\n",
"
0.3947
154.0302
0.0012
False
True
0.3751
0.0000
onset
False
0.3135
\n",
"
0.7082
151.8219
0.1181
False
False
8.0438
0.0000
False
0.0000
\n",
"
0.7082
172.8930
0.1181
False
True
8.0438
0.0000
onset
True
0.1625
\n",
"
0.8707
139.2213
0.1047
False
False
2.4267
0.0000
False
0.0000
\n",
"
0.8707
167.9711
0.1047
False
True
2.4267
0.0000
onset
True
0.1258
\n",
"
0.9966
175.4078
0.0946
True
True
0.4189
0.6834
False
0.0599
\n",
"
1.0565
163.1893
0.1097
True
False
0.8343
0.7343
False
0.0000
\n",
"
1.0565
163.1893
0.1097
True
True
0.8343
0.7343
onset
False
0.1858
\n",
"
1.2423
165.5629
0.1000
True
False
1.1559
0.5815
False
0.0000
\n",
"
1.2423
165.5629
0.1000
True
True
1.1559
0.5815
onset
True
0.2612
\n",
"
1.5035
167.9711
0.0013
False
False
1.7849
0.0000
False
0.0000
\n",
"
1.5035
0.0000
0.0013
False
True
1.7849
0.0000
onset
True
0.2322
\n",
"
1.7357
0.0000
0.0239
False
False
0.3449
0.0000
False
0.0000
\n",
"
1.7357
147.4998
0.0239
False
True
0.3449
0.0000
onset
False
0.1078
\n",
"
1.8434
129.5234
0.0856
True
True
0.3591
1.0000
False
0.0200
\n",
"
1.8634
158.5436
0.0683
True
False
4.5178
0.0176
False
0.0000
\n",
"
1.8634
158.5436
0.0683
True
True
4.5178
0.0176
onset
True
0.1858
\n",
"
2.0492
156.2706
0.0302
False
False
3.3984
0.0000
False
0.0000
\n",
"
2.0492
129.5234
0.0302
False
True
3.3984
0.0000
onset
True
0.0734
\n",
"
2.1226
129.5234
0.0288
True
True
0.6460
0.0413
False
0.0734
\n",
"
2.1960
101.3289
0.0152
True
True
0.3784
0.4973
False
0.2618
\n",
"
2.4578
99.8762
0.0009
False
False
0.8554
0.0000
offset
False
0.0093
\n",
"
2.4671
0.0000
0.0009
False
True
0.5128
0.0000
onset
False
0.0619
\n",
"
2.5290
0.0000
0.0012
False
False
0.2495
0.0000
offset
False
0.1645
\n",
"
2.6935
0.0000
0.0014
False
True
1.2353
0.0000
onset
True
0.0871
\n",
"
2.7806
0.0000
0.0013
False
False
1.8610
0.0000
False
0.0000
\n",
"
2.7806
0.0000
0.0013
False
True
1.8610
0.0000
onset
True
0.5367
\n",
"
3.3173
0.0000
0.0011
False
False
0.2848
0.0000
offset
False
0.4675
\n",
"
3.7849
165.5629
0.0921
False
True
3.2361
0.0000
onset
True
0.1741
\n",
"
3.9590
131.4074
0.1086
False
False
3.1797
0.0000
False
0.0000
\n",
"
3.9590
165.5629
0.1086
False
True
3.1797
0.0000
onset
True
0.1683
\n",
"
4.1273
172.8930
0.1093
True
False
0.4700
0.5129
False
0.0000
\n",
"
4.1273
172.8930
0.1093
True
True
0.4700
0.5129
onset
False
0.2090
\n",
"
4.3363
165.5629
0.0966
True
False
1.3259
0.5701
False
0.0000
\n",
"
4.3363
165.5629
0.0966
True
True
1.3259
0.5701
onset
True
0.0578
\n",
"
4.3941
177.9592
0.0943
True
True
0.7116
0.4555
False
0.2151
\n",
"
4.6092
172.8930
0.0084
True
False
0.5496
0.7848
False
0.0000
\n",
"
4.6092
172.8930
0.0084
True
True
0.5496
0.7848
onset
False
0.0397
\n",
"
4.6489
147.4998
0.0027
True
True
0.4243
0.3823
False
0.1847
\n",
"
4.8336
147.4998
0.0476
False
True
1.1359
0.0202
False
0.0020
\n",
"
4.8356
158.5436
0.0479
True
False
1.1429
0.0639
False
0.0000
\n",
"
4.8356
158.5436
0.0479
True
True
1.1429
0.0639
onset
True
0.0773
\n",
"
4.9129
149.6452
0.1306
True
True
1.2890
0.5596
False
0.0754
\n",
"
4.9883
172.8930
0.0893
True
True
0.9242
0.6797
False
0.1666
\n",
"
5.1548
137.2253
0.0983
False
False
2.9877
0.0111
False
0.0000
\n",
"
5.1548
160.8497
0.0983
False
True
2.9877
0.0111
onset
True
0.0813
\n",
"
5.2361
163.1893
0.0440
True
False
2.0383
0.6287
False
0.0000
\n",
"
5.2361
163.1893
0.0440
True
True
2.0383
0.6287
onset
True
0.1509
\n",
"
5.3870
156.2706
0.1171
False
False
0.8719
0.0000
False
0.0000
\n",
"
5.3870
194.0659
0.1171
False
True
0.8719
0.0000
onset
False
0.0773
\n",
"
5.4643
191.2836
0.0657
True
True
0.5144
0.4880
False
0.1486
\n",
"
5.6129
156.2706
0.0161
True
True
0.5846
0.1090
False
0.1863
\n",
"
5.7992
156.2706
0.0653
False
False
2.8919
0.0000
False
0.0000
\n",
"
5.7992
163.1893
0.0653
False
True
2.8919
0.0000
onset
True
0.1270
\n",
"
5.9262
145.3851
0.0830
True
True
0.7192
0.5901
False
0.0933
\n",
"
6.0194
167.9711
0.0631
True
True
0.6940
0.5892
False
0.1687
\n",
"
6.1881
158.5436
0.0177
True
False
0.5140
0.6107
False
0.0000
\n",
"
6.1881
158.5436
0.0177
True
True
0.5140
0.6107
onset
False
0.1045
\n",
"
6.2926
131.4074
0.0800
True
False
1.9536
0.5357
False
0.0000
\n",
"
6.2926
131.4074
0.0800
True
True
1.9536
0.5357
onset
True
0.0300
\n",
"
6.3226
154.0302
0.0846
True
True
2.6586
0.0401
False
0.1500
\n",
"
6.4726
160.8497
0.0449
True
False
2.0648
0.5671
False
0.0000
\n",
"
6.4726
160.8497
0.0449
True
True
2.0648
0.5671
onset
True
0.0464
\n",
"
6.5190
154.0302
0.0336
True
False
1.4298
0.6445
False
0.0000
\n",
"
6.5190
154.0302
0.0336
True
True
1.4298
0.6445
onset
True
0.0697
\n",
"
6.5887
141.2463
0.1048
False
False
1.0312
0.0000
False
0.0000
\n",
"
6.5887
160.8497
0.1048
False
True
1.0312
0.0000
onset
True
0.1335
\n",
"
6.7222
170.4143
0.0606
True
False
0.1587
0.6729
False
0.0000
\n",
"
6.7222
170.4143
0.0606
True
True
0.1587
0.6729
onset
False
0.0639
\n",
"
6.7860
158.5436
0.0633
True
False
1.7349
0.0800
False
0.0000
\n",
"
6.7860
158.5436
0.0633
True
True
1.7349
0.0800
onset
True
0.1103
\n",
"
6.8963
135.2579
0.0863
False
False
2.6376
0.0000
False
0.0000
\n",
"
6.8963
147.4998
0.0863
False
True
2.6376
0.0000
onset
True
0.1330
\n",
"
7.0293
163.1893
0.0878
True
True
0.5457
0.7880
False
0.1548
\n",
"
7.1841
205.6056
0.0134
True
True
0.4116
0.4224
False
0.0198
\n",
"
7.2040
191.2836
0.0076
True
False
1.0103
0.5191
False
0.0000
\n",
"
7.2040
191.2836
0.0076
True
True
1.0103
0.5191
onset
False
0.6162
\n",
"
7.8202
191.2836
0.0010
False
False
0.4973
0.0000
offset
False
0.1094
\n",
"
7.9296
158.5436
0.0230
False
True
1.5386
0.0000
onset
True
0.0755
\n",
"
8.0051
156.2706
0.0193
True
False
0.4818
0.5666
False
0.0000
\n",
"
8.0051
156.2706
0.0193
True
True
0.4818
0.5666
onset
False
0.0813
\n",
"
8.0863
131.4074
0.1218
False
False
5.3221
0.0000
False
0.0000
\n",
"
8.0863
163.1893
0.1218
False
True
5.3221
0.0000
onset
True
0.1706
\n",
"
8.2570
143.3008
0.1423
False
True
1.2315
0.0079
False
0.0357
\n",
"
8.2927
172.8930
0.1197
True
True
0.7477
0.5757
False
0.1071
\n",
"
8.3998
170.4143
0.1363
True
False
0.7505
0.7437
False
0.0000
\n",
"
8.3998
170.4143
0.1363
True
True
0.7505
0.7437
onset
False
0.1804
\n",
"
8.5802
158.5436
0.0878
True
True
0.2578
0.5662
False
0.0892
\n",
"
8.6695
183.1738
0.0902
True
True
0.4079
0.4511
False
0.1150
\n",
"
8.7844
191.2836
0.0552
True
True
0.4193
0.4455
False
0.2201
\n",
"
9.0045
183.1738
0.0313
False
True
1.0990
0.0116
False
0.0397
\n",
"
9.0442
160.8497
0.0272
True
False
2.2514
0.4280
False
0.0000
\n",
"
9.0442
160.8497
0.0272
True
True
2.2514
0.4280
onset
True
0.0900
\n",
"
9.1341
139.2213
0.0744
False
True
1.1895
0.0158
False
0.0180
\n",
"
9.1521
160.8497
0.0583
True
True
0.7970
0.0981
False
0.0720
\n",
"
9.2241
141.2463
0.0113
False
False
1.6149
0.0919
False
0.0000
\n",
"
9.2241
0.0000
0.0113
False
True
1.6149
0.0919
onset
True
0.0580
\n",
"
9.2822
0.0000
0.0639
False
False
1.9128
0.0000
False
0.0000
\n",
"
9.2822
167.9711
0.0639
False
True
1.9128
0.0000
onset
True
0.1189
\n",
"
9.4011
158.5436
0.1219
True
True
0.4153
0.6361
False
0.1249
\n",
"
9.5260
165.5629
0.0869
True
False
2.7008
0.0919
False
0.0000
\n",
"
9.5260
165.5629
0.0869
True
True
2.7008
0.0919
onset
True
0.1053
\n",
"
9.6313
194.0659
0.0198
True
True
0.5172
0.5055
False
0.1153
\n",
"
9.7466
194.0659
0.0744
False
False
5.5841
0.0000
False
0.0000
\n",
"
9.7466
177.9592
0.0744
False
True
5.5841
0.0000
onset
True
0.0522
\n",
"
9.7988
175.4078
0.1098
True
False
1.5366
0.1470
False
0.0000
\n",
"
9.7988
175.4078
0.1098
True
True
1.5366
0.1470
onset
True
0.1335
\n",
"
9.9323
160.8497
0.0660
True
False
0.9682
0.6589
False
0.0000
\n",
"
9.9323
160.8497
0.0660
True
True
0.9682
0.6589
onset
False
0.0614
\n",
"
9.9938
145.3851
0.0477
True
True
0.2198
0.5126
False
0.1824
\n",
"
10.1761
139.2213
0.0071
True
False
1.6309
0.5569
False
0.0000
\n",
"
10.1761
139.2213
0.0071
True
True
1.6309
0.5569
onset
True
0.0871
\n",
"
10.2632
133.3188
0.0062
False
False
3.5289
0.0000
False
0.0000
\n",
"
10.2632
0.0000
0.0062
False
True
3.5289
0.0000
onset
True
0.0987
\n",
"
10.3619
0.0000
0.0865
False
False
4.7550
0.0000
False
0.0000
\n",
"
10.3619
175.4078
0.0865
False
True
4.7550
0.0000
onset
True
0.0417
\n",
"
10.4036
165.5629
0.0888
True
True
1.4461
0.4936
False
0.1211
\n",
"
10.5247
194.0659
0.0080
True
True
0.3207
0.5469
False
0.1926
\n",
"
10.7173
185.8381
0.0010
False
False
0.2314
0.0000
offset
False
0.7186
\n",
"
11.4358
133.3188
0.0926
True
True
3.4477
0.2550
onset
True
0.0302
\n",
"
11.4660
158.5436
0.1021
True
True
0.4259
0.4335
False
0.1207
\n",
"
11.5868
160.8497
0.0963
True
False
2.0686
0.5882
False
0.0000
\n",
"
11.5868
160.8497
0.0963
True
True
2.0686
0.5882
onset
True
0.0929
\n",
"
11.6796
158.5436
0.0520
False
False
2.1780
0.0875
False
0.0000
\n",
"
11.6796
0.0000
0.0520
False
True
2.1780
0.0875
onset
True
0.1219
\n",
"
11.8015
0.0000
0.1026
False
False
0.7592
0.0000
False
0.0000
\n",
"
11.8015
194.0659
0.1026
False
True
0.7592
0.0000
onset
False
0.0464
\n",
"
11.8480
188.5412
0.0543
True
False
1.4402
0.2057
False
0.0000
\n",
"
11.8480
188.5412
0.0543
True
True
1.4402
0.2057
onset
True
0.0481
\n",
"
11.8961
185.8381
0.0345
True
True
0.6462
0.6121
False
0.0622
\n",
"
11.9583
139.2213
0.0656
True
False
4.2064
0.0282
False
0.0000
\n",
"
11.9583
139.2213
0.0656
True
True
4.2064
0.0282
onset
True
0.0100
\n",
"
11.9682
158.5436
0.0712
True
True
3.3945
0.0100
False
0.1115
\n",
"
12.0798
165.5629
0.0401
True
True
1.2763
0.6301
False
0.0817
\n",
"
12.1615
151.8219
0.1227
False
False
2.8366
0.0000
False
0.0000
\n",
"
12.1615
167.9711
0.1227
False
True
2.8366
0.0000
onset
True
0.2612
\n",
"
12.4227
170.4143
0.0518
False
False
6.2205
0.0000
False
0.0000
\n",
"
12.4227
156.2706
0.0518
False
True
6.2205
0.0000
onset
True
0.2089
\n",
"
12.6315
143.3008
0.0479
True
True
0.7659
0.0206
False
0.0756
\n",
"
12.7071
147.4998
0.0423
True
False
1.3421
0.5800
False
0.0000
\n",
"
12.7071
147.4998
0.0423
True
True
1.3421
0.5800
onset
True
0.0639
\n",
"
12.7710
135.2579
0.0285
True
False
1.4383
0.4920
False
0.0000
\n",
"
12.7710
135.2579
0.0285
True
True
1.4383
0.4920
onset
True
0.0987
\n",
"
12.8697
129.5234
0.0680
False
False
1.3549
0.0000
False
0.0000
\n",
"
12.8697
172.8930
0.0680
False
True
1.3549
0.0000
onset
True
0.1277
\n",
"
12.9974
133.3188
0.0859
True
False
0.1963
0.2329
False
0.0000
\n",
"
12.9974
133.3188
0.0859
True
True
0.1963
0.2329
onset
False
0.0378
\n",
"
13.0351
154.0302
0.0821
True
True
2.0038
0.0100
False
0.1828
\n",
"
13.2180
137.2253
0.0111
True
False
0.8560
0.1032
False
0.0000
\n",
"
13.2180
137.2253
0.0111
True
True
0.8560
0.1032
onset
False
0.0678
\n",
"
13.2858
120.5011
0.0029
True
True
0.5886
0.0913
False
0.1934
\n",
"
13.4792
131.4074
0.0567
False
False
4.6962
0.0000
False
0.0000
\n",
"
13.4792
163.1893
0.0567
False
True
4.6962
0.0000
onset
True
0.1393
\n",
"
13.6185
156.2706
0.0226
False
False
4.8705
0.0000
False
0.0000
\n",
"
13.6185
151.8219
0.0226
False
True
4.8705
0.0000
onset
True
0.1103
\n",
"
13.7288
131.4074
0.0329
False
False
1.9961
0.0000
False
0.0000
\n",
"
13.7288
139.2213
0.0329
False
True
1.9961
0.0000
onset
True
0.1277
\n",
"
13.8565
139.2213
0.0307
True
False
1.2858
0.0101
False
0.0000
\n",
"
13.8565
139.2213
0.0307
True
True
1.2858
0.0101
onset
True
0.1071
\n",
"
13.9636
95.6418
0.0137
True
True
0.2511
0.2286
False
0.0813
\n",
"
14.0449
97.0329
0.0295
True
True
0.2771
0.1815
False
0.0436
\n",
"
14.0885
113.7379
0.0256
True
True
0.7078
0.6753
False
0.1249
\n",
"
14.2134
97.0329
0.0040
True
True
0.3597
0.7748
False
0.1269
\n",
"
14.3404
102.8028
0.0014
False
False
0.1906
0.0000
offset
False
0.7526
\n",
"
15.0930
160.8497
0.0485
False
True
0.9308
0.0000
onset
False
0.1954
\n",
"
15.2883
145.3851
0.0756
False
True
3.0332
0.0031
False
0.0020
\n",
"
15.2903
163.1893
0.0754
True
False
2.2525
0.0100
False
0.0000
\n",
"
15.2903
163.1893
0.0754
True
True
2.2525
0.0100
onset
True
0.1451
\n",
"
15.4355
141.2463
0.1522
False
False
4.3779
0.0000
False
0.0000
\n",
"
15.4355
199.7524
0.1522
False
True
4.3779
0.0000
onset
True
0.0773
\n",
"
15.5128
202.6579
0.0811
True
True
0.4225
0.4576
False
0.1229
\n",
"
15.6357
154.0302
0.0699
True
True
0.4427
0.5781
False
0.1566
\n",
"
15.7924
194.0659
0.0038
True
True
0.3769
0.6508
False
0.1249
\n",
"
15.9173
180.5477
0.0014
False
False
2.4315
0.0000
False
0.0000
\n",
"
15.9173
0.0000
0.0014
False
True
2.4315
0.0000
onset
True
0.4228
\n",
"
16.3401
0.0000
0.0010
False
False
0.1324
0.0000
offset
False
0.1055
\n",
"
16.4455
158.5436
0.1093
False
True
3.4108
0.0000
onset
True
0.0986
\n",
"
16.5441
147.4998
0.1001
True
True
0.6687
0.4285
False
0.0523
\n",
"
16.5965
163.1893
0.1416
True
False
1.9066
0.7165
False
0.0000
\n",
"
16.5965
163.1893
0.1416
True
True
1.9066
0.7165
onset
True
0.0871
\n",
"
16.6835
205.6056
0.0257
True
False
1.5198
0.5117
False
0.0000
\n",
"
16.6835
205.6056
0.0257
True
True
1.5198
0.5117
onset
True
0.0580
\n",
"
16.7416
205.6056
0.0482
True
False
0.1604
0.4567
False
0.0000
\n",
"
16.7416
205.6056
0.0482
True
True
0.1604
0.4567
onset
False
0.3541
\n",
"
17.0957
205.6056
0.1146
False
False
3.0281
0.0115
False
0.0000
\n",
"
17.0957
165.5629
0.1146
False
True
3.0281
0.0115
onset
True
0.0834
\n",
"
17.1791
154.0302
0.0881
True
True
0.1235
0.7391
False
0.1430
\n",
"
17.3221
160.8497
0.0149
True
False
2.7342
0.6961
False
0.0000
\n",
"
17.3221
160.8497
0.0149
True
True
2.7342
0.6961
onset
True
0.0580
\n",
"
17.3801
170.4143
0.0397
True
False
1.8166
0.2023
False
0.0000
\n",
"
17.3801
170.4143
0.0397
True
True
1.8166
0.2023
onset
True
0.2496
\n",
"
17.6298
170.4143
0.0433
False
False
2.7046
0.0000
False
0.0000
\n",
"
17.6298
167.9711
0.0433
False
True
2.7046
0.0000
onset
True
0.1103
\n",
"
17.7400
163.1893
0.0909
True
False
1.9407
0.0721
False
0.0000
\n",
"
17.7400
163.1893
0.0909
True
True
1.9407
0.0721
onset
True
0.1031
\n",
"
17.8431
149.6452
0.0154
True
True
0.4730
0.6143
False
0.1388
\n",
"
17.9819
149.6452
0.0974
False
True
3.2106
0.0032
False
0.0020
\n",
"
17.9839
170.4143
0.0981
True
False
2.3812
0.0100
False
0.0000
\n",
"
17.9839
170.4143
0.0981
True
True
2.3812
0.0100
onset
True
0.2557
\n",
"
18.2396
175.4078
0.0690
True
True
0.3838
0.5010
False
0.1506
\n",
"
18.3902
151.8219
0.0324
True
False
1.4884
0.8043
False
0.0000
\n",
"
18.3902
151.8219
0.0324
True
True
1.4884
0.8043
onset
True
0.0813
\n",
"
18.4715
151.8219
0.0676
True
False
0.6535
0.1022
False
0.0000
\n",
"
18.4715
151.8219
0.0676
True
True
0.6535
0.1022
onset
False
0.0987
\n",
"
18.5702
156.2706
0.0422
True
False
2.0092
0.6058
False
0.0000
\n",
"
18.5702
156.2706
0.0422
True
True
2.0092
0.6058
onset
True
0.1741
\n",
"
18.7443
158.5436
0.0527
True
False
1.2417
0.4150
False
0.0000
\n",
"
18.7443
158.5436
0.0527
True
True
1.2417
0.4150
onset
True
0.1378
\n",
"
18.8821
151.8219
0.0496
False
True
0.9473
0.0047
False
0.0020
\n",
"
18.8841
221.0000
0.0457
True
True
1.0064
0.0100
False
0.1098
\n",
"
18.9939
208.5962
0.0078
False
False
5.7084
0.0000
False
0.0000
\n",
"
18.9939
205.6056
0.0078
False
True
5.7084
0.0000
onset
True
0.0929
\n",
"
19.0868
208.5962
0.0637
False
False
4.8244
0.0000
False
0.0000
\n",
"
19.0868
160.8497
0.0637
False
True
4.8244
0.0000
onset
True
0.1191
\n",
"
19.2059
133.3188
0.0469
True
True
0.3761
0.3766
False
0.1131
\n",
"
19.3190
133.3188
0.0499
True
False
0.5350
0.5701
False
0.0000
\n",
"
19.3190
133.3188
0.0499
True
True
0.5350
0.5701
onset
False
0.1509
\n",
"
19.4699
131.4074
0.0480
True
False
1.8313
0.3762
False
0.0000
\n",
"
19.4699
131.4074
0.0480
True
True
1.8313
0.3762
onset
True
0.1404
\n",
"
19.6104
125.8361
0.0730
True
True
0.3846
0.0949
False
0.1068
\n",
"
19.7172
183.1738
0.0180
True
True
0.5501
0.4861
False
0.2828
\n",
"
20.0000
194.0659
0.0011
False
False
0.4973
0.0000
False
0.0000
\n",
"\n",
"
"
],
"text/plain": [
""
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"analysis"
]
},
{
"cell_type": "markdown",
"id": "70aa7aba-7c6d-4fda-a38d-a44b371e2e7d",
"metadata": {},
"source": [
"The transcription itself transforms each group of breakpoints into a series of notes. By default groups are enclosed within slurs and accents mark particularly salient onsets. A 'x' notehead indicates that at the given moment the sound was noisy / unpitched."
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "7b42dc35-ff3d-4203-b454-8b53d797ee02",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"[maelzel.scoring:notation.py:536:addSpanner:WARNING] A Notation cannot be assigned both start and end of a spanner. Removing the partner spannerself=«3D+ 1.625:1.75 1/8♩ noteheads=['0:cross'] attachments=[Articulation(kind=accent)] spanners=[Slur(kind=start, linetype=solid, nestingLevel=1, uuid=rdmciucp)]», spanner=Slur(kind=end, linetype=solid, nestingLevel=1, uuid=rdmciucp), partner=Slur(kind=start, linetype=solid, nestingLevel=1, uuid=rdmciucp), end=None\n",
"[maelzel.scoring:renderlily.py:583:_handleSpannerPost:ERROR] Two many nested slurs: Slur(kind=start, linetype=solid, nestingLevel=5, parent=«3E>gliss 0.9:1 1/10♩ 5/4 noteheads=['0:cross'] attachments=[Articulation(kind=accent)] spanners=[Slur(kind=start, linetype=solid, nestingLevel=5, parent=«3E>gliss 0.9:1 1/10♩ 5/4 noteheads=['0:cross'] attachments=[Articulation(kind=accent)] spanners=[...]», uuid=kda2ogjp)]», uuid=kda2ogjp), skipping\n",
"[maelzel.scoring:renderlily.py:583:_handleSpannerPost:ERROR] Two many nested slurs: Slur(kind=start, linetype=solid, nestingLevel=4, parent=«3Eb+25gliss 0.833:0.917 1/12♩ 3/2 attachments=[Articulation(kind=accent)] spanners=[Slur(kind=start, linetype=solid, nestingLevel=4, parent=«3Eb+25gliss 0.833:0.917 1/12♩ 3/2 attachments=[Articulation(kind=accent)] spanners=[...]», uuid=i3nqfv21)]», uuid=i3nqfv21), skipping\n",
"[maelzel.scoring:renderlily.py:583:_handleSpannerPost:ERROR] Two many nested slurs: Slur(kind=start, linetype=solid, nestingLevel=3, parent=«3E-gliss 1.917:2 1/12♩ 3/2 spanners=[Slur(kind=start, linetype=solid, nestingLevel=3, parent=«3E-gliss 1.917:2 1/12♩ 3/2 spanners=[...]», uuid=9oqjjj3l)]», uuid=9oqjjj3l), skipping\n"
]
},
{
"data": {
"text/html": [
"Voice([3Eb<:-58dB:0.313♩:offset=0.395:symbols=[Notehead(shape=cross)], 3F<:-19dB:0.163♩:offset=0.708:symbols=[Notehead(shape=cross), Articulation(kind=accent)], 3E>:-20dB:0.126♩:offset=0.871:gliss=True:symbols=[Notehead(shape=cross), Articulation(kind=accent), Slur(anchor=Slur, kind=start, linetype=solid, partnerSpanner=Slur, uuid=kda2ogjp)], 3F:-20dB:0.06♩:offset=0.997:symbols=[Slur(anchor=Slur, kind=end, linetype=solid, partnerSpanner=Slur, uuid=kda2ogjp)], 3E<:-19dB:0.186♩:offset=1.057, 3E:-20dB:0.179♩:offset=1.242:gliss=True:symbols=[Articulation(kind=accent), Slur(anchor=Slur, kind=start, linetype=solid, partnerSpanner=Slur, uuid=zlc78b5i)], 3F<:-41dB:0.036♩:offset=1.422:gliss=True, 3D+:-53dB:0.046♩:offset=1.458:symbols=[Slur(anchor=Slur, kind=end, linetype=solid, partnerSpanner=Slur, uuid=zlc78b5i)], 4G:-57dB:0.232♩:offset=1.503:symbols=[Notehead(shape=cross), Articulation(kind=accent)], 3D:-32dB:0.108♩:offset=1.736:gliss=True:symbols=[Notehead(shape=cross), Slur(anchor=Slur, kind=start, linetype=solid, partnerSpanner=Slur, uuid=7108uupy)], …], dur=20, offset=0) \n",
" "
],
"text/plain": [
"Voice([3Eb<:-58dB:0.313♩:offset=0.395:symbols=[Notehead(shape=cross)], 3F<:-19dB:0.163♩:offset=0.708:symbols=[Notehead(shape=cross), Articulation(kind=accent)], 3E>:-20dB:0.126♩:offset=0.871:gliss=True:symbols=[Notehead(shape=cross), Articulation(kind=accent), Slur(anchor=Slur, kind=start, linetype=solid, partnerSpanner=Slur, uuid=kda2ogjp)], 3F:-20dB:0.06♩:offset=0.997:symbols=[Slur(anchor=Slur, kind=end, linetype=solid, partnerSpanner=Slur, uuid=kda2ogjp)], 3E<:-19dB:0.186♩:offset=1.057, 3E:-20dB:0.179♩:offset=1.242:gliss=True:symbols=[Articulation(kind=accent), Slur(anchor=Slur, kind=start, linetype=solid, partnerSpanner=Slur, uuid=zlc78b5i)], 3F<:-41dB:0.036♩:offset=1.422:gliss=True, 3D+:-53dB:0.046♩:offset=1.458:symbols=[Slur(anchor=Slur, kind=end, linetype=solid, partnerSpanner=Slur, uuid=zlc78b5i)], 4G:-57dB:0.232♩:offset=1.503:symbols=[Notehead(shape=cross), Articulation(kind=accent)], 3D:-32dB:0.108♩:offset=1.736:gliss=True:symbols=[Notehead(shape=cross), Slur(anchor=Slur, kind=start, linetype=solid, partnerSpanner=Slur, uuid=7108uupy)], …], offset=0)"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"options = transcribe.TranscriptionOptions(unvoicedPitch='4G', addSlurs=True, debug=False, addGliss=True, addAccents=True)\n",
"v = analysis.transcribe(options=options)\n",
"v"
]
},
{
"cell_type": "markdown",
"id": "ad19dae6-8feb-48af-b147-5b3056cfdb89",
"metadata": {},
"source": [
"## Playback\n",
"\n",
"Below is a simple approach to sonify the transcription by defining different presets for sound which are fully voiced, partially voiced or completely unpitched. With more accurate feature detection regarding unpitched sections and formant prediction it might be possible to produce a much more accurate result"
]
},
{
"cell_type": "code",
"execution_count": 61,
"id": "38b990be-cf1c-48ce-bdfd-e670df95a752",
"metadata": {},
"outputs": [],
"source": [
"defPreset('unpitched', r\"\"\"\n",
"|icentroid, iq=20|\n",
"asig pinker\n",
"asig *= kamp\n",
"iband = icentroid / iq\n",
"aout1 resonr asig, icentroid, iband \n",
"\"\"\")\n",
"\n",
"defPreset('unvoiced', r\"\"\"\n",
"|icentroid, iq=20|\n",
"asig vco2 1, kfreq\n",
"anoise = pinker() * 0.1\n",
"iband = icentroid / iq\n",
"anoise resonr anoise, icentroid, iband \n",
"aout1 = (asig + anoise) * kamp\n",
"\"\"\");"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "bdfec2fa-5eaa-481b-bec8-964edef52d8a",
"metadata": {},
"outputs": [],
"source": [
"for n in v.items:\n",
" if n.playargs:\n",
" n.playargs._checkArgs()\n",
" if n.getProperty('voiced'):\n",
" n.setPlay(instr='saw', args={'kcutoffratio': 8})\n",
" elif n.getProperty('unvoicedGroup'):\n",
" n.setPlay(instr='unpitched', args={'icentroid': n.getProperty('centroid'), 'iq': 10}, gain=1, fade=0)\n",
" else:\n",
" n.setPlay(instr='unvoiced', args={'icentroid': n.getProperty('centroid'), 'iq': 40}, gain=1)"
]
},
{
"cell_type": "markdown",
"id": "592cc7c0-22b1-4c93-b8a7-db5871e770ea",
"metadata": {},
"source": [
"We load the original sound into a `Clip` in order to easily play it in sync with the analyisis"
]
},
{
"cell_type": "code",
"execution_count": 63,
"id": "40f3f1cf-8b1d-4c03-9e49-6e8634b612e0",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"mnOut size: 22\n",
"m_pitchTrack size: 22\n",
"mnOut size: 22\n",
"m_pitchTrack size: 22\n",
"mnOut size: 22\n",
"m_pitchTrack size: 22\n",
"mnOut size: 22\n",
"m_pitchTrack size: 22\n"
]
}
],
"source": [
"cl = Clip(s.path)"
]
},
{
"cell_type": "markdown",
"id": "1b9edcde-7387-430d-a60f-336d8772f625",
"metadata": {},
"source": [
"Normally one would call `play` as in the cell below. In order for the generated audio to be playable online we render the result to disk"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "267b10c4-ed18-419d-842c-19dc9fca7042",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "be838aafde6d45a496b7cf2ae083d64b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Button(description='Stop', style=ButtonStyle())"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f83e64d4d9a74f0fbd848cd9a11682a2",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Output()"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"SynthGroup(synths=85)\n",
"