{ "cells": [ { "cell_type": "markdown", "id": "4251b47a-0072-4f33-9e5e-e4b0007732b7", "metadata": {}, "source": [ "# First Steps\n", "\n", "\n", "### Table of Contents\n", "\n", "* [1. Notes](#Notes)\n", " * [Playback](#Playback)\n", " * [Pitch](#Pitch)\n", " * [Duration](#Duration)\n", " * [Shorthand](#Entering-durations-in-shorthand)\n", " * [Explicit Offset](#Explicit-Offset)\n", " * [Notation](#Notation)\n", "* [2. Chords](#Chords)\n", "* [3. Sidenote: Enharmonic Spelling](#Enharmonic-Spelling)\n", "* [4. Glissando](#Glissandi)\n", "* [5. Chain: a sequence of notes/chords](#Chain)\n", " * [Operations on Chains (inverse, reverse, ...)](#Operations-on-Chains)\n", " * [Offset](#Offset)\n", "* [6. Multiple Voices](#Multiple-Voices)\n", "\n", "-------------------" ] }, { "cell_type": "code", "execution_count": 1, "id": "301a7187-488d-4732-8e7e-fb80fda747d2", "metadata": {}, "outputs": [], "source": [ "# Import everyting in the maelzel.core namespace\n", "from maelzel.core import *\n", "\n", "# pitchtools defines many useful conversion functions from/to notenames, frequencies, midinotes, etc\n", "from pitchtools import f2m\n", "\n", "# the display function allows to display the html representation of objects\n", "from IPython.display import display" ] }, { "cell_type": "markdown", "id": "7e92dc34-ef48-4dc3-a010-0434bd8c607e", "metadata": {}, "source": [ "## Notes" ] }, { "cell_type": "markdown", "id": "40874a45-fe4f-4b5d-b89c-cb7a4a85b1f0", "metadata": {}, "source": [ "The simplest note possible is just a pitch.\n", "\n", "For notation/playback a default duration will be assumed if no duration is given" ] }, { "cell_type": "code", "execution_count": 2, "id": "7b5b3b72-890e-423f-b9b9-bfc1e976818c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "4C:1♩
\n", " " ], "text/plain": [ "4C:1♩" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Note(\"C4\")" ] }, { "cell_type": "markdown", "id": "b5767481-b0bc-4b5f-ab96-5ff304919dd6", "metadata": {}, "source": [ "### Playback\n", "\n", "A Note can be played via its `.play` method. By default, a piano soundfont (distributed with *maelzel*) will be used as the default instrument.\n", "\n", "> **NB**: when this notebook is displayed as part of the documentation it is made static so any \n", "> interactive elements are removed. For that purpose we render the results in order for the \n", "> generated audio to be embedded in the html" ] }, { "cell_type": "code", "execution_count": 4, "id": "ebbed35b-034f-4f4f-9269-8c2f7c9c663e", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "28bfa881c4c24476bb07429b88ef5563", "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": "024c6f16fb0741628a5ba79dd77dfff5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "SynthGroup - start: 0.038, dur: 1.000, synths: 1\n", "

instr: preset:piano - 1 synths

\n", "
p1startdur45:idataidx_6:inumbps7:ibplen8:igain9:ichan10:ipos11:ifadein12:ifadeout13:ipchintrp_14:ifadekind1516...
501.0003 𝍪0.0381.0000152311-10.020.02010...
" ], "text/plain": [ "SynthGroup(n=1)\n", " Synth(𝍪 preset:piano:501.0003, p4=0 idataidx_:5=15 inumbps:6=2 ibplen:7=3 igain:8=1 ichan:9=1 ipos:10=-1 ifadein:11=0.02 ifadeout:12=0.02 ipchintrp_:13=0 ifadekind:14=1 p15=0 p16=60 ...)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "note = Note(\"C4\")\n", "note.play()" ] }, { "cell_type": "markdown", "id": "f9a567c6-9862-426c-ba70-22fd363ca01c", "metadata": {}, "source": [ "By just replacing `.play` with `.rec` it can also be recorded to a soundfile" ] }, { "cell_type": "code", "execution_count": 4, "id": "6c03be81-9393-48a8-aecf-60161bfa825c", "metadata": {}, "outputs": [ { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:17:29.603.wav\", 2 channels, 1.02 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "note.rec()" ] }, { "cell_type": "markdown", "id": "0010dae5-b177-44f5-bff0-87b707e4d796", "metadata": {}, "source": [ "### Pitch\n", "\n", "The pitch of a note can be given as a **fractional midinote** or as a **string**. If the pitch deviates from a round 1/8 tone, the cents deviation from the nearest semitone will be shown as a text label (see the 4th note, which is a *E4* 20 cents higher). Pitches can also be given as an absolute frequency and as a frequency deviation from a semitone. **The actual enharmonic representation is not fixed by how the pitch was entered: it depends on the context (surrounding pitches, chords, etc)** (see [Enharmonic Spelling](#Enharmonic-Spelling)). \n", "\n", "**NB**: a `Chain` creates a sequence of notes/chords" ] }, { "cell_type": "code", "execution_count": 5, "id": "528f1183-d2c5-4efb-a5e8-9dd70db7f1c3", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 302 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:17:32.545.wav\", 1 channels, 6.60 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# All these are valid ways to indicate a pitch\n", "\n", "seq = Chain([\n", " Note(60), \n", " Note(\"c#4+\"), \n", " Note(\"4Eb\"), \n", " Note(\"4E+20\"), \n", " Note(\"4G-10hz\"),\n", " Note(\"442hz\"), \n", "])\n", "seq.show()\n", "\n", "# Record output as mono, add some sustain to simulate legato and some extra time \n", "# at the end of the recording (this avoids a sudden stop in playback in the browser) \n", "seq.rec(nchnls=1, sustain=0.1, extratime=0.5)" ] }, { "cell_type": "markdown", "id": "77308865-8b49-430f-a958-44b532434ecd", "metadata": {}, "source": [ "#### Transposition\n", "\n", "An interval can be added to a note. This will result in a transposed note" ] }, { "cell_type": "code", "execution_count": 6, "id": "29a4beb4-3427-45a9-bf68-651ec8a5fa56", "metadata": {}, "outputs": [ { "data": { "text/html": [ "4D:1♩
\n", " " ], "text/plain": [ "4D:1♩" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c4 = Note(\"c4\")\n", "c4 + 2" ] }, { "cell_type": "code", "execution_count": 7, "id": "cbb2d85c-16ec-4a74-98e7-8bad59c5e511", "metadata": {}, "outputs": [ { "data": { "text/html": [ "3B+:1♩
\n", " " ], "text/plain": [ "3B+:1♩" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c4 - 0.5" ] }, { "cell_type": "markdown", "id": "056c45c9-e12f-4252-b910-bb98d1416c2f", "metadata": {}, "source": [ "A note can be compared against another note, pitch or string (as long as the string can be interpreted as a notename)" ] }, { "cell_type": "code", "execution_count": 8, "id": "67e33a03-cb67-4bf6-ad8a-9ee276bd6f3d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c4 > \"b3\"" ] }, { "cell_type": "code", "execution_count": 9, "id": "bd797246-eea1-4f2c-a56d-27e4c6669002", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c4 < 72" ] }, { "cell_type": "markdown", "id": "300f06c4-4dc4-4ee7-ba50-601eb5facdac", "metadata": {}, "source": [ "### Duration \n", "\n", "**The duration of a Note is given in quarternotes**. This duration is **symbolic**: its real time duration in seconds **depends on tempo**." ] }, { "cell_type": "code", "execution_count": 10, "id": "3d7387bd-b939-4804-8145-d03629d360de", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 160 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:17:35.930.wav\", 1 channels, 2.52 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "setTempo(60)\n", "\n", "note = Note(67.5, dur=2.5)\n", "note.show()\n", "note.rec(nchnls=1)\n" ] }, { "cell_type": "markdown", "id": "faef9451-70cf-41b7-9fc9-9d2b740272d9", "metadata": {}, "source": [ "The same note with a faster tempo results in the same notation (minus the metronome mark) but playback is shortened)" ] }, { "cell_type": "code", "execution_count": 11, "id": "16f7c698-0d37-4f12-be6a-771ce3172e4b", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 160 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:17:37.246.wav\", 1 channels, 1.69 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "setTempo(90)\n", "\n", "note.show()\n", "note.rec(nchnls=1).show()\n", "\n", "# Reset the tempo to 60\n", "setTempo(60)" ] }, { "cell_type": "code", "execution_count": 12, "id": "e3d7aa9d-91e8-427f-a458-a21a5f2a1456", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Chain([4C:0.5♩, 4C>:0.5♩, 4C#:0.5♩, 4D+:0.5♩, 4D#:0.5♩, 4G+27:0.5♩], dur=3)
\n", " " ], "text/plain": [ "Chain([4C:0.5♩, 4C>:0.5♩, 4C#:0.5♩, 4D+:0.5♩, 4D#:0.5♩, 4G+27:0.5♩])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pitches = (\"C4\", 60.25, \"4c#\", 62.5, \"4Eb\", f2m(400))\n", "sequence = Chain([Note(p, 0.5) for p in pitches])\n", "\n", "# Outside of jupyter you need to call `.show()` in order to display the object. \n", "# Inside jupyter you can simply set the object as the last line of a cell\n", "sequence" ] }, { "cell_type": "code", "execution_count": 13, "id": "9f9a7fb0-0761-4863-b4dc-48d874267286", "metadata": {}, "outputs": [ { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:17:38.521.wav\", 1 channels, 7.02 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sequence.rec(nchnls=1, sustain=4)" ] }, { "cell_type": "markdown", "id": "2d7ea6ba-f4f5-4252-8131-aa3357303960", "metadata": {}, "source": [ "Any duration can be given. For example, **triplets**:" ] }, { "cell_type": "code", "execution_count": 14, "id": "098eed20-0913-432a-bbd6-659bd20d74f8", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Chain([4C:0.333♩, 4C>:0.333♩, 4C#:0.333♩, 4D+:0.333♩, 4D#:0.333♩, 4G+27:0.333♩], dur=2)
\n", " " ], "text/plain": [ "Chain([4C:0.333♩, 4C>:0.333♩, 4C#:0.333♩, 4D+:0.333♩, 4D#:0.333♩, 4G+27:0.333♩])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Chain([Note(p, 1/3) for p in pitches])" ] }, { "cell_type": "markdown", "id": "e988d365-c8ad-4b35-be3d-31b5f4746e0f", "metadata": {}, "source": [ "We can test different durations. The quantization engine will try to find the best representation for each rhythm\n", "\n", "Notice how, for nested tuplets, the quantization algorithm decides to place the smaller tuplet (in these cases the triplet) as the outter tuplet. This makes the rhythms easier to read." ] }, { "cell_type": "code", "execution_count": 15, "id": "0426e197-8291-4445-997d-855aeeaa1b1b", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 316 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 223 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 276 } }, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARQAAABUCAIAAADMPV/2AAAJMmlDQ1BkZWZhdWx0X3JnYi5pY2MAAEiJlZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEWQRQEXXJUia0UUC4uCAhZ0gywCyrpxFVFBWXDfGZ33HT+8/5l7z2/+c+bec8/5cAEgiINlwct7YlK6wNvJjhkYFMwE3yiMn5bC8fR0A9/VuxEArcR7ut/P+a4IEZFp/OW4uLxy+SmCdACg7GXWzEpPWeGjy0wPj//CZ1dYsFzgMt9Y4eh/eexLzr8s+pLj681dfhUKABwp+hsO/4b/c++KVDiC9NioyGymT3JUelaYIJKZttIJHpfL9BQkR8UmRH5T8P+V/B2lR2anr0RucsomQWx0TDrzfw41MjA0BF9n8cbrS48hRv9/z2dFX73kegDYcwAg+7564ZUAdO4CQPrRV09tua+UfAA67vAzBJn/eqiVDQ0IgALoQAYoAlWgCXSBETADlsAWOAAX4AF8QRDYAPggBiQCAcgCuWAHKABFYB84CKpALWgATaAVnAad4Dy4Aq6D2+AuGAaPgRBMgpdABN6BBQiCsBAZokEykBKkDulARhAbsoYcIDfIGwqCQqFoKAnKgHKhnVARVApVQXVQE/QLdA66At2EBqGH0Dg0A/0NfYQRmATTYQVYA9aH2TAHdoV94fVwNJwK58D58F64Aq6HT8Id8BX4NjwMC+GX8BwCECLCQJQRXYSNcBEPJBiJQgTIVqQQKUfqkVakG+lD7iFCZBb5gMKgaCgmShdliXJG+aH4qFTUVlQxqgp1AtWB6kXdQ42jRKjPaDJaHq2DtkDz0IHoaHQWugBdjm5Et6OvoYfRk+h3GAyGgWFhzDDOmCBMHGYzphhzGNOGuYwZxExg5rBYrAxWB2uF9cCGYdOxBdhK7EnsJewQdhL7HkfEKeGMcI64YFwSLg9XjmvGXcQN4aZwC3hxvDreAu+Bj8BvwpfgG/Dd+Dv4SfwCQYLAIlgRfAlxhB2ECkIr4RphjPCGSCSqEM2JXsRY4nZiBfEU8QZxnPiBRCVpk7ikEFIGaS/pOOky6SHpDZlM1iDbkoPJ6eS95CbyVfJT8nsxmpieGE8sQmybWLVYh9iQ2CsKnqJO4VA2UHIo5ZQzlDuUWXG8uIY4VzxMfKt4tfg58VHxOQmahKGEh0SiRLFEs8RNiWkqlqpBdaBGUPOpx6hXqRM0hKZK49L4tJ20Bto12iQdQ2fRefQ4ehH9Z/oAXSRJlTSW9JfMlqyWvCApZCAMDQaPkcAoYZxmjDA+SilIcaQipfZItUoNSc1Ly0nbSkdKF0q3SQ9Lf5RhyjjIxMvsl+mUeSKLktWW9ZLNkj0ie012Vo4uZynHlyuUOy33SB6W15b3lt8sf0y+X35OQVHBSSFFoVLhqsKsIkPRVjFOsUzxouKMEk3JWilWqUzpktILpiSTw0xgVjB7mSJleWVn5QzlOuUB5QUVloqfSp5Km8oTVYIqWzVKtUy1R1WkpqTmrpar1qL2SB2vzlaPUT+k3qc+r8HSCNDYrdGpMc2SZvFYOawW1pgmWdNGM1WzXvO+FkaLrRWvdVjrrjasbaIdo12tfUcH1jHVidU5rDO4Cr3KfFXSqvpVo7okXY5upm6L7rgeQ89NL0+vU++Vvpp+sP5+/T79zwYmBgkGDQaPDamGLoZ5ht2GfxtpG/GNqo3uryavdly9bXXX6tfGOsaRxkeMH5jQTNxNdpv0mHwyNTMVmLaazpipmYWa1ZiNsulsT3Yx+4Y52tzOfJv5efMPFqYW6RanLf6y1LWMt2y2nF7DWhO5pmHNhJWKVZhVnZXQmmkdan3UWmijbBNmU2/zzFbVNsK20XaKo8WJ45zkvLIzsBPYtdvNcy24W7iX7RF7J/tC+wEHqoOfQ5XDU0cVx2jHFkeRk4nTZqfLzmhnV+f9zqM8BR6f18QTuZi5bHHpdSW5+rhWuT5z03YTuHW7w+4u7gfcx9aqr01a2+kBPHgeBzyeeLI8Uz1/9cJ4eXpVez33NvTO9e7zofls9Gn2eedr51vi+9hP0y/Dr8ef4h/i3+Q/H2AfUBogDNQP3BJ4O0g2KDaoKxgb7B/cGDy3zmHdwXWTISYhBSEj61nrs9ff3CC7IWHDhY2UjWEbz4SiQwNCm0MXwzzC6sPmwnnhNeEiPpd/iP8ywjaiLGIm0iqyNHIqyiqqNGo62ir6QPRMjE1MecxsLDe2KvZ1nHNcbdx8vEf88filhICEtkRcYmjiuSRqUnxSb7JicnbyYIpOSkGKMNUi9WCqSOAqaEyD0tandaXTlz/F/gzNjF0Z45nWmdWZ77P8s85kS2QnZfdv0t60Z9NUjmPOT5tRm/mbe3KVc3fkjm/hbKnbCm0N39qzTXVb/rbJ7U7bT+wg7Ijf8VueQV5p3tudATu78xXyt+dP7HLa1VIgViAoGN1tubv2B9QPsT8M7Fm9p3LP58KIwltFBkXlRYvF/OJbPxr+WPHj0t6ovQMlpiVH9mH2Je0b2W+z/0SpRGlO6cQB9wMdZcyywrK3BzcevFluXF57iHAo45Cwwq2iq1Ktcl/lYlVM1XC1XXVbjXzNnpr5wxGHh47YHmmtVagtqv14NPbogzqnuo56jfryY5hjmceeN/g39P3E/qmpUbaxqPHT8aTjwhPeJ3qbzJqamuWbS1rgloyWmZMhJ+/+bP9zV6tua10bo63oFDiVcerFL6G/jJx2Pd1zhn2m9az62Zp2WnthB9SxqUPUGdMp7ArqGjzncq6n27K7/Ve9X4+fVz5ffUHyQslFwsX8i0uXci7NXU65PHsl+spEz8aex1cDr97v9eoduOZ67cZ1x+tX+zh9l25Y3Th/0+LmuVvsW523TW939Jv0t/9m8lv7gOlAxx2zO113ze92D64ZvDhkM3Tlnv296/d5928Prx0eHPEbeTAaMip8EPFg+mHCw9ePMh8tPN4+hh4rfCL+pPyp/NP637V+bxOaCi+M24/3P/N59niCP/Hyj7Q/Fifzn5Ofl08pTTVNG02fn3Gcufti3YvJlykvF2YL/pT4s+aV5quzf9n+1S8KFE2+Frxe+rv4jcyb42+N3/bMec49fZf4bmG+8L3M+xMf2B/6PgZ8nFrIWsQuVnzS+tT92fXz2FLi0tI/QiyQvpTNDAsAAAAJcEhZcwAAD4gAAA+IARbIpYYAAAAfdEVYdFNvZnR3YXJlAEdQTCBHaG9zdHNjcmlwdCA5LjU2LjGHWQ/gAAATdElEQVR4nO2dT2zT1h/AX6CFhrXFydCENgQkGajTxhhxhaZpY5PsXGAXpCRw47Kk0k7bDnambSekLebOpKSHTZxGjHYZO0x2JNA2BCxO6TS0rrROQTBaNuLQAAlNSn6H7/Z+Xv46Tpo07fscqmfXz352/H3v6+/7fr/PUiqVUGfheR4hJAhCh69LILSXDd1uAIHQqxDhIRBMQoSHQDAJER4CwSREeAgEkxDhIRBMQoSHQDAJER4CwSREeAgEk/SS8GiaJggCy7I8z2uahvfLsuzz+YLBoKqqXWweYb3RM8KjqqrT6aRpWpZlVVV9Ph/sF0WR5/loNDo2NkbTNJEfQsfoGeEJh8M+n49lWdh0Op1Q4Hk+FArZbDaapn0+Xzgc7l4bCeuL3hAeTdPGx8c9Hg9siqIYjUYRQoqipFIpm80G+202myiKXWslYZ3R15nL8DwvimIqlUIIHTx48J133sH/UlU1EomUHe9yuYLBIN5UFAWO9Pl8586d83q90WjUZrPBfjwcIYQymcxK3geB8H9WXHg0TWNZNplM4j1Xr14dGRnRHwAyUAdJkhBCs7Oz0Wg0Go2yLOvz+WRZnp2dXaFmEwiNKa0wgUCg8qKSJDV1EhiacC2O4xBC6XQahCqRSOj3t/kGCIQarPjIU/kR4nA49IqWoigQHqeHpml9tBxN05VnttlsYDbQm63dbnfrbSYQjNChbx4MRVFl4gSGsrLDXC6XfpOmabfbLUkSSJ2maQzDIIScTmcgEMD7ZVkeGxtb2RsgEP7FUlrhMGyYh0mlUhRF+Xy+UCiErcxNAdYCEBJFUURRBCObpmk+nw9meJxOZw9Fd2uaFo1G0+m03W6vHHsJq58VF572AqaFypFKURSsxfUKwWBwdHQ0GAwGg0GXy0Xkp+fotNrWIlU/fursX82Mjo7iGSpCL9JjIw9w4cIFTdOGhoa63ZCmcTqd+uFRlmVFUSRJwloo7OxS68wzPT39/vvvd7sVnabHRh7g2LFj9+7d63YrzOD1esvsJel0mqZp/RCEHSl6jvUmPz0pPPv27SuzZfcc4B4O9g+Px6O/l17UBSwWy969e7vdik7TG75ta49QKAQO4KqqOhyObjeHYAYiPN2B4zgwVUciEeLM2qP0pNq2BhAEQdM0TdP0/q+E3qInhWdsbKy3pnSqYrPZ1oypOhwO9+JsQYv0pKmaQFgN9OTI03PIsoz7ZlVVBUFYAyMngQhPJ4hEIn6/3+l0ggM4kZy1gVFrG8S0QfAzoSlUVfX7/cFgkGXZRCIRCoW63SJCezD0zYOjQSmKUhSl6x3nRx99dP/+/e3bt3e3GfUZHR3FKX4A6Hr05jVBENLpdKdbZpgrV6589dVXZBqqFobUtnA4DHHUmUwmHA53ffz59ttvEUIvvvhid5vREL3wqKoKPmz6AxKJhD6Sb7Vx8eLFn376iQhPTRrGmiYSibIqs7OzKxrd2hCGYTiO624bmoVhmEgk0u1WNAdqPmB+XdH4mwentqEoSpKkQCBQmeyGUB9RFOPxOJkPXWM0Fh7wkKcoSpZllmVdLhdxJ2kWSZK8Xm+3W0FoM42/eSDZmiiKME1B03QqlYKY5xVv3Vqhpx3ACbUwZDBgGEaf7wYhJMtyF5UQyHjYrauboLdai0kkEuvQ6cY4hoTH7/fjMs4/uFItMgAZ9DoDkZz6GBIe/ctKliFY/eiTsGqadv78+Xw+jxA6fvz40aNHu9q0NUWfoiixWKz+QePj4zDg5PP5c+fOIYSuXLlCsr10jHw+Pz8/j8uzs7PFYhE2FxYWnj59ihAqFouPHz8eGBiA/UtLS7Bfz+Tk5OXLlzvV6rVP45Fn8+bNuIwf/a5du5q90tTUVD6fpygKXgV9rvf1RiaTwQnpM5nMzZs3oVwoFP7++28o5/P5QqGAHz4MHQ2pf9hff/1lssXrm7m5uVgs5vf7d+/effbsWfx7NXbPYVkWXLM0TXM6nZlMxuFwmFDeWJaNx+NQjkQia2nSQ1EU7Cjw448/Tk1NQfnhw4fXr1+HciaTefToEc74s9KOBdhEkc1mn3nmGYqi5ufn33zzzV5MzdN1ZFn2eDyQmFb/GjceeWiaTiQSkJsP+ssWXRs5jiuz3a02agnDrVu37t69C+X5+XmLxWK1WhFCxWIxm80aObM5menr6yuTOhj5+/r6aJq+ffv2jh07BgYG3n33XSwzZRl5EEIsyxIDQHtpLDwejycYDAqCAF87DofD3KAB8hoIBCDjbid9uvTdrSiKWGX69ddfc7kclG/evDk0NNTX14cQyuVybVGTatHf318oFHC6YKwDgzBAuZYwQC84NzcH+1VVpWn6/PnzldbwMrPB9evXt23bZqK1hFo0Fh6WZTVNw6ONOfcCqMUwTDQaxSNYi8iyrDcloZaFweDoUcnAwIB+CMLCYLVaX331VShDqm4oJ5NJnueb9adWVVVVVfDQjUaj0Bn98ssvmUxm9+7dIDz5fD6dTg8ODuI7wqYFhNC1a9fM3SChKn0N15aanp7GP4Df79c0zYTe/PXXX+/Zs+fEiRN79+69ceMGakdezCNHjiwtLdU5wLQwWK1WkLonT56USiXcqS8vLy8vL+/fvx8htHPnzldeeQX2Dw4Omsha9uWXXz58+BDKd+/enZiYgHIul8MDy6NHj/L5/JYtW8ruqGwxiMXFxcXFRbxZa1R/9OgR+eYxAXRY8Fff5VlisVgdR89CoXD16lXotp9//vmXXnrJxLUXFxcnJiYOHjyYy+XwKwJrhLQC/m5rCEgCQujp06dgINm0aRNCaPPmzdi2u2XLFiwkfX19w8PDleeZmZlZXFystQTQ4uIi7mU0TXv8+DGU8/n8kydPoLy0tGSxWKAlGzduXF5eNngLJrBYLBs3boRysVi0WCzDw8Ojo6Mrd8W1SjqdnpiYOHDggN1uTyaTuG+qZ20rWxHRtLMGy7KCIMAq8DiXbEMrX0MsFsuGDRuGhoYoioI9L7/8MtZYGIbBc7v6DNE8zyuKYqQDrvxSmpyc1DRtx44d9+/fh/3z8/ObNm0C4TRuNjAHmA3wVbZt24bt2gih/v7+I0eODA8P1zIbgMGgvpedpmlGPInWm2ejGWsbz/MgOQ6Hw+l0yrJsQnh4nh8bG1shO88PP/xg0HCHtdO5ubl0Oj02NmbabFCWJhuPKs3S7JcSQohlWfghS6USrFDi8/nsdnupVIKgVNMeqLIs+3y+TCYTi8V8Pp+maWCKqDwyGAyOj49TFKWqKqyp7HQ6O+C8p6qqKIrBYHD1OArWFB5BEMbHx9G/a7nJslwZFWcERVEURQHNUK+L47XcTJwTA7JdZjZQFAXUp3w+v7CwoJ/xwGoV1h4rMT166KWuVCrhKPFnn30WB72CMIDB4LvvvmvFZF8Wz9uiw0ckEoHeJBKJ+Hy+YDDo8XiqCg+8FZlMRhRFWG6sRY8tm81Wy4AUDofxfbEsm0qlEonE6omIqS48qqqGw2EoR6NReIjmpnf04qFX29ry5WrkjTFtE68UBk3TlpaWXnvttZ07d8IxIyMjb731FpSrrg9Zh1U12YXVsHg8TtN0MpmsFWzvdruhz4I3u/Vhp47pdTUneEC1hIfnebgljuNAbaBpGsfDmb4YOMgBLZ7KBPAbP378eGlpaXh4uKkvJcD491LPIQiCy+VKJBI2m83lckUikVoiATnoNE1zuVydfLllWQa1rWNXbEgVa1sul7t06RJCaGho6ODBg3hnMpm0Wq3Dw8NWq/W5557r7+83fhmoXiwWBwYGSqVSsVhcXl622+379u0z3fR4PL5hw4YNGzYUi8VNmzaBFQshtHXrVnyM3W6H7wqEkNVqtVqt9S1m9Wmlrh6w3pizN1bWjcfjRk6VTCaHh4eNZE25c+dOLpczcuTVq1dHRkaqWiaNU8dq6nK5du/e3crJ20Ita1sfy7JlfQwotQihTz/91O12Z7PZb775Bjyv8/k81Lx9+/Z777135MgR4y3gOG5iYgJmNj744IOm6lYlHo9/8cUXzb7K4+PjN27cMKeC1qn7/fffI4QM3lQymZyYmMDnaaUuQigej8NmMpms8zQ4jtuzZ08gEGh4iZMnTx46dOjtt9+uf9j09PT169c///xzI82uw+pPZAfP/Pjx4263G5a3+OcflTlBoBtjGAY26zzuplLY4N6R47i25N9BpnK7cByHb62NdRmGMX5aUF/bUrdUKiHdpFmdB1Ir5VA6nfZ6vW63O5FI4BMaaQnHcYFAwGCzexp45vBs9YN8lQQgMIxC9KgsyzAQeb1eGHzgkcGRp06dMv4BoPdtWwnL9eoxwnSeWpqPpmmiKPI8X+dn4nn+3LlzyWQSTESCIBjUJ0VR7N0VINtCzew5YCcAmeM4DuySDMO4XK5oNCpJEnxwG0xDpfdtw9aINqKqKgRNNFsxGo22JYdjdycfOI6LRCJ6nU3TNJ7n7Xa73+8/deqUx+P5/fffq9bVLyTM87zBrk0UxVQqtaoMhp2nivBAhkh4pjCxiKfeaJqG7AXgNIAQAlfrhkiS5Ha7weqNv6naSDgchmymzVaMxWINA2mN0MqMe6VZr1kEQdDPHoJryKlTp/TH/Pnnn1X7rFAoFAgEKIrCMqNPWVELSZIYhlk985VdoUoYNvh9wRQKzBji6ZRr16798ccf+MitW7c+ePDg2LFj9U0i8/PzZ8+ePXHixMcff4ydfdoSxQ3x4fl8/syZM8jYMHjhwoWFhQV89ZmZGeONKatb9i/j5wG/T3zw5OSk6boAbM7MzMADuXDhAn7OZVS9is1mAxPw/Pz85s2bjXQoZ86cef3119dJKD48c3i28MIAVUYefYg1SAUOoIeARPxfg6nWL168eOzYMTyv0nYuX74MPjIPHjyAl3idA9JYxq5duxr+BFNTU0ZMw/l8fv/+/eBdvq6ptC2k02mKonBiZTDFpNNp2EQI4TJkwaxvqeA4LhaL6a0Wta7bLAghSZLKkmBRFIWbV6s9etNWIBAwbjKqY23jOM647bHMYtZK3ZLOOMYwDFiEKn9lh8NhxMLpcDjC4bDBlqwfmrC2wSAOs8gIoWg0qlfKHQ4Hjv9RFKXhvAE4toE7qn6Uhz316xohHA5HIhGY6i6VSqFQqKkvn1YWBoWPcp/Ph00O0WjU5/PxPF/VdIFtX1V1qlbqwr/w78JxnP6/gUDAyMIwqqqmUqmyZVEI9aglbQzDeL1e3IvjfothGOicwuEwRVFNzdisxMij3zRSq2z0aKrXrxy1EEJerxcKFEV5vV4YjctGs3Q6XfZCo/+OPKbrlv47zuAHkkgkwARn/AcKh8MOh8PgweuKWiNPzRcunU673W6321027wZvG/Tuza6ZoX8JWl+7ouvCo3+A8Kwq95f+fZKV3RZ+rTmOM10XV3G73bCMhcF7qcTtdq+TSc9mqSU89cKwISrh6NGjg4ODhw4dgp0TExM3btzYs2fP6dOnIcinat0y7t69e/LkyWw2e+DAAdhz9OhRt9v92WefGaleizIdxkhjIJ4HHwmGlA8//DCZTG7fvv348eM4Tw2QzWaTyeT09DRN02V1BwcHHz58CJulUknfgMHBQVweHx+vqmv9/PPP4Mw/NzdXKpXM1UUInT59GoLAOY6rZWRrCNzmoUOH1qTba4uYDMNGCBUKhXv37uFwsVwuVygUWneObJ14PA6+enjTyNR4mXPnzMzMnTt34CT37t3Th5oXCoWbN2/iDHcIocHBwf7+flx3bm5udnZ2ZGTkhRdegCfrdrsXFhZ+++23Xbt2YcfKixcv6rNwADabTd8GaNKdO3empqb03pAN69Z5IE2xuLg4MzOzb9++pvx91wmFQiGbzQ4NDfX39+uD7Zv+9oDZsbaPjCZANdS2+qpLpdpWVWWqpS+98cYbZWejKCqRSIB/WiKRoCiqTA+sPEmZ7QuaZK5unQdCWGlquudomiYIAs/zPeQzxrKsxWLxeDxN6R56axueCcHLsJZx+PBh/aYgCOC4BHmhwPJWFgttxPYFdUVRNFGX0C1qhmHrU39AXHunmlQPSHyVSCSquiTW8Y+sUwsAczN2j6/q8MYwzCeffFK2k2VZURRxVHmlY5ggCH6/PxaLuVwulmUrX3273Q4tNFFXD8dxRK46StXxqMw7Q6/nRCKRrqhtVS22ZWob9o/E+ytr7d+/v0xtq6oyVT6o+vOMs7OzrcRZdH2NZIIJDK3Po1dsOrxaGChg2WyW53nIlqjn0qVL+swBoPOA5CuKcuvWrcpak5OThw8fhm4e7gurTPpJW47j9I6VgUBAEIQ606ktdvlkxOhJqoqU3udFP3sAnjsd+yo1GO8A3Tb6r5dKw1owpwFTvTgOTI+JeUbCuqKehwFFUbFYTP/qeL3eDutskiRJkoQTdOg5cOCAJEmV8Y8gPIlEok4tSZIqnScIhKaomTEUYkIgxTssahCJROC7tvNRHDi5B8bhcMiyrNd2LJZ/7oVl2VAoBJa3hrUIBPPUEax0Oh0Oh3FKg6YyFrSXSottpes0QigWi8HECyiWRmoRCKZpvDLcKgGC9upYbPXjDKQVNlKLQDBNzwhPQ0B43G43JDVe5+H1hA5Q08Og5wDLgaIoZPFAQmdYO8KDZcb4uj0EQiusHeEhEDoMER4CwST/A6AlDpKSb/myAAAAAElFTkSuQmCC", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 276 } }, "output_type": "display_data" } ], "source": [ "durations = [\n", " \"3/7\", # By entering a fraction as a string we ensure that there are no rounding errors\n", " F(2, 3),\n", " F(1, 5)*F(1, 3),\n", " F(1, 3)*F(2, 7),\n", "]\n", "\n", "for duration in durations:\n", " chain = Chain([Note(p, duration) for p in pitches])\n", " chain.show()" ] }, { "cell_type": "markdown", "id": "6f2ac93b-92dd-4c2e-a820-9866b4bff7db", "metadata": {}, "source": [ "#### Entering durations in shorthand\n", "\n", "When entering notes there are some **shortcuts** possible. For example, when using a string to set the pitch of a note, it is possible to set the duration as well by using the following formats:\n", "\n", " : (example: 4Db:1.5 -> a dotted quarternote)\n", " / (example: 4Db/4. -> a dotted quarternote)\n", " \n", "* In the first format, the duration is given as **quarternotes**, so 0.5 is an eighth note, 0.25 is a 16th note, etc.\n", "* In the second format, the duration is given as **symbol**: 4 represents a quarter-note, 8 represents an 8th-note, 16 a 16th-note, etc. Dots can also be added" ] }, { "cell_type": "code", "execution_count": 16, "id": "13a3f2bf-781b-42c0-90fa-249539396c6e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Chain([4C:0.5♩, 4C:0.5♩, 4C:0.5♩, 4D:0.75♩, 4D:0.75♩, 4D:0.75♩, 4E:0.25♩, 4E:0.25♩, 4E:0.25♩], dur=4.5)
\n", " " ], "text/plain": [ "Chain([4C:0.5♩, 4C:0.5♩, 4C:0.5♩, 4D:0.75♩, 4D:0.75♩, 4D:0.75♩, 4E:0.25♩, 4E:0.25♩, 4E:0.25♩])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Chain([\n", " Note(\"4C\", 0.5),\n", " Note(\"4C:0.5\"), \n", " Note(\"4C/8\"),\n", " \n", " Note(\"4D\", 0.75),\n", " Note(\"4D:.75\"),\n", " Note(\"4D/8.\"),\n", " \n", " Note(\"4E\", 0.25),\n", " \"4E:.25\", # The string is enough to construct a note within a Chain\n", " \"4E/16\", \n", "])\n" ] }, { "cell_type": "markdown", "id": "73aef6fc-542a-4d0f-947b-a1b3aa03d0b4", "metadata": {}, "source": [ "### Explicit Offset\n", "\n", "Notes can have an **explicit start time** called **offset**. This can be useful when there is a need to **sync** with other time-based media, such as an audio file, a video, etc. For notation the quantizer will find the most appropriate subdivision according to your settings (the configuration of notational complexity will be discused later). Playback will respect your given start time, independently of the rounding effects regarding notation.\n", "\n", "#### Beat Time vs Absolute Time\n", "\n", "All time indications are given in *beat time* (also known as *quarternote time*). An offset or a duration express the time in terms of quarternotes. The absolute duration in seconds will depend on the tempo at the given moment" ] }, { "cell_type": "code", "execution_count": 17, "id": "a3387e62-ea9b-4db0-b4e0-8752ff43968d", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 288 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 334 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 536 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 501 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 240 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 417 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 389 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 474 } }, "output_type": "display_data" } ], "source": [ "offsets = [1.4, 1.42, 1.45, 1.47, 1.5, 1.55, 1.6, 1.7]\n", "for offset in offsets:\n", " n = Note(\"4G\", dur=2.5, offset=offset, gliss=\"4B\", label=str(offset))\n", " n.show() " ] }, { "cell_type": "markdown", "id": "60c336b5-3b89-4fb6-b888-a67ca45e7830", "metadata": {}, "source": [ "### Pure Notation\n", "\n", "Many **purely notational aspects** of a note/chord can be customized. These elements **do not have an impact regarding playback**. For example, a note can have an articulation, a size, color, etc. Here are some examples" ] }, { "cell_type": "code", "execution_count": 18, "id": "8d85150b-636e-47b2-9d3b-0cf39480f7fd", "metadata": {}, "outputs": [ { "data": { "text/html": [ "4F>:1.4♩:offset=0.2:symbols=[Color(value=#0000f0), Notehead(square, size=1.3), Articulation(kind=accent)]
\n", " " ], "text/plain": [ "4F>:1.4♩:offset=0.2:symbols=[Color(value=#0000f0), Notehead(square, size=1.3), Articulation(kind=accent)]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = Note(\"4F+25\", offset=1/5, dur=7/5)\n", "n.addSymbol(symbols.Color('#0000f0'))\n", "n.addSymbol(symbols.Notehead('square', size=1.3))\n", "n.addSymbol(symbols.Articulation('accent'))\n", "n" ] }, { "cell_type": "code", "execution_count": 19, "id": "68f212e9-f921-4faf-b0ed-8bc3d4a89e5b", "metadata": {}, "outputs": [ { "data": { "text/html": [ "4G:0.8♩:offset=0.2:symbols=[Notehead(slash, color=green), Articulation(kind=snappizz)]
\n", " " ], "text/plain": [ "4G:0.8♩:offset=0.2:symbols=[Notehead(slash, color=green), Articulation(kind=snappizz)]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n = Note(\"4G\", dur=F(4, 5), offset=\"1/5\")\n", "n.addSymbol(symbols.Notehead(shape='slash', color='green'))\n", "n.addSymbol(symbols.Articulation('snappizz'))\n", "n" ] }, { "cell_type": "markdown", "id": "0ed8439e-35cf-49e0-a554-605112fa0ba8", "metadata": {}, "source": [ "------\n", "\n", "## Chords\n", "\n", "A Chord is very similar to a Note but it allows multiple pitches. \n", "\n", "\n", "> A chord contains one or more Notes. These are interpreted as pitches and have no individual \n", "> duration (the `.dur` attribute is ignored). On any other aspects they are fully fledged \n", "> notes and can be customized individually" ] }, { "cell_type": "code", "execution_count": 2, "id": "c5055472-9d9e-43de-815b-06a6bf0d7530", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 132 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/dev/python/maelzel/docs/notebooks/tmp/stravinsky.ogg\", 2 channels, 4.20 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "setScoreStruct(timesig='4/4', tempo=60)\n", "ch = Chord(\"E2 G#2 B2 E3 G3 Bb3 Db4 Eb4\", dur=4)\n", "ch.show()\n", "ch.rec(\"tmp/stravinsky.ogg\", fade=(0, 0.2))" ] }, { "cell_type": "markdown", "id": "385c14d0-00d1-4b81-8127-3ba7af9cc7b6", "metadata": {}, "source": [ "The same chord distributed explicitely between two voices\n", "\n", "Notice how the enharmonic spelling algorithm chooses a **different spelling** here in comparison to the example above. This is because above **the chord is is distributed between two systems**, whereas in this example the chords are **manually split** and **unaware** of each other (the spelling algorithm works at the part level)" ] }, { "cell_type": "code", "execution_count": 3, "id": "956a831b-8361-4955-acf7-c01b959f8d86", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 126 } }, "output_type": "display_data" } ], "source": [ "left = Chord(\"E2 G#2 B2 E3\", 4)\n", "right = Chord(\"G3 Bb3 Db4 Eb4\", 4)\n", "score = Score([right, left])\n", "score.show()" ] }, { "cell_type": "markdown", "id": "7994f975-fd11-4e49-b132-521af602f3f1", "metadata": {}, "source": [ "A Chord is made out of Notes, so **each note can be given own parameters**." ] }, { "cell_type": "code", "execution_count": 4, "id": "7c243d7c-886d-4bf1-9784-01b24be6bedd", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 126 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/dev/python/maelzel/docs/notebooks/tmp/tristan.ogg\", 2 channels, 4.02 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/dev/python/maelzel/docs/notebooks/tmp/chord-with-different-amplitudes.ogg\", 2 channels, 4.02 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "chord = Chord(\"3f 3b 4d# 4g#\", dur=4)\n", "chord.show()\n", "\n", "chord.rec(\"tmp/tristan.ogg\").show()\n", "\n", "# Chords are always sorted by pitch. The last note is the highest\n", "chord[-1].amp = 0.8 \n", "\n", "for note in chord[:-1]:\n", " note.amp = 0.1\n", "\n", "chord.rec(\"tmp/chord-with-different-amplitudes.ogg\").show()" ] }, { "cell_type": "markdown", "id": "b3f32555-2654-482c-9f82-c7c997948de4", "metadata": {}, "source": [ "## Enharmonic Spelling\n", "\n", "A small detour about spelling: in general **the enharmonic spelling routine chooses the best spelling for any notes according to the context**. Even if the pitch is given as a notename, by default the engine will still insist in using its own spelling. See for example:" ] }, { "cell_type": "code", "execution_count": 5, "id": "cffa1b56-f282-4936-996b-88f89e3059c4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "‹4Eb 4G 4Bb 4♩›
\n", " " ], "text/plain": [ "‹4Eb 4G 4Bb 4♩›" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chord = Chord(\"G4 Bb4 D#4\", 4)\n", "chord\n" ] }, { "cell_type": "markdown", "id": "5a1cea2c-b42e-4c41-80f1-fef4480891c2", "metadata": {}, "source": [ "In order to force the spelling there are two different ways:\n", " \n", "1. Append a `!` sign to the notename\n", "2. Set the config key `fixStringNotenames` to True (`getConfig()['fixStringNotenames'] = True`). If this is set to True any pitch given as a string is interpreted as being fixed (as if it had an implicit `!` sign)\n", "\n", "Notice that fixing a pitch spelling has consequences for the context of that pitch. In the previous case, fixing the spelling of the `D#` modifies the spelling of the rest of the chord. One would need to fix all the pitches in order to force the spelling as is. \n", "\n", "**NB**: there are some enharmonic spellings which are not used by default. These include double alterations in the form of `Dbb` (enharmonic of `C`) or spellings like `E#` (enharmonic of `F`)" ] }, { "cell_type": "code", "execution_count": 18, "id": "c593754b-cb14-425f-9066-19fe2a372bfc", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAN8AAABPCAIAAADk/Yc4AAAJMmlDQ1BkZWZhdWx0X3JnYi5pY2MAAEiJlZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEWQRQEXXJUia0UUC4uCAhZ0gywCyrpxFVFBWXDfGZ33HT+8/5l7z2/+c+bec8/5cAEgiINlwct7YlK6wNvJjhkYFMwE3yiMn5bC8fR0A9/VuxEArcR7ut/P+a4IEZFp/OW4uLxy+SmCdACg7GXWzEpPWeGjy0wPj//CZ1dYsFzgMt9Y4eh/eexLzr8s+pLj681dfhUKABwp+hsO/4b/c++KVDiC9NioyGymT3JUelaYIJKZttIJHpfL9BQkR8UmRH5T8P+V/B2lR2anr0RucsomQWx0TDrzfw41MjA0BF9n8cbrS48hRv9/z2dFX73kegDYcwAg+7564ZUAdO4CQPrRV09tua+UfAA67vAzBJn/eqiVDQ0IgALoQAYoAlWgCXSBETADlsAWOAAX4AF8QRDYAPggBiQCAcgCuWAHKABFYB84CKpALWgATaAVnAad4Dy4Aq6D2+AuGAaPgRBMgpdABN6BBQiCsBAZokEykBKkDulARhAbsoYcIDfIGwqCQqFoKAnKgHKhnVARVApVQXVQE/QLdA66At2EBqGH0Dg0A/0NfYQRmATTYQVYA9aH2TAHdoV94fVwNJwK58D58F64Aq6HT8Id8BX4NjwMC+GX8BwCECLCQJQRXYSNcBEPJBiJQgTIVqQQKUfqkVakG+lD7iFCZBb5gMKgaCgmShdliXJG+aH4qFTUVlQxqgp1AtWB6kXdQ42jRKjPaDJaHq2DtkDz0IHoaHQWugBdjm5Et6OvoYfRk+h3GAyGgWFhzDDOmCBMHGYzphhzGNOGuYwZxExg5rBYrAxWB2uF9cCGYdOxBdhK7EnsJewQdhL7HkfEKeGMcI64YFwSLg9XjmvGXcQN4aZwC3hxvDreAu+Bj8BvwpfgG/Dd+Dv4SfwCQYLAIlgRfAlxhB2ECkIr4RphjPCGSCSqEM2JXsRY4nZiBfEU8QZxnPiBRCVpk7ikEFIGaS/pOOky6SHpDZlM1iDbkoPJ6eS95CbyVfJT8nsxmpieGE8sQmybWLVYh9iQ2CsKnqJO4VA2UHIo5ZQzlDuUWXG8uIY4VzxMfKt4tfg58VHxOQmahKGEh0SiRLFEs8RNiWkqlqpBdaBGUPOpx6hXqRM0hKZK49L4tJ20Bto12iQdQ2fRefQ4ehH9Z/oAXSRJlTSW9JfMlqyWvCApZCAMDQaPkcAoYZxmjDA+SilIcaQipfZItUoNSc1Ly0nbSkdKF0q3SQ9Lf5RhyjjIxMvsl+mUeSKLktWW9ZLNkj0ie012Vo4uZynHlyuUOy33SB6W15b3lt8sf0y+X35OQVHBSSFFoVLhqsKsIkPRVjFOsUzxouKMEk3JWilWqUzpktILpiSTw0xgVjB7mSJleWVn5QzlOuUB5QUVloqfSp5Km8oTVYIqWzVKtUy1R1WkpqTmrpar1qL2SB2vzlaPUT+k3qc+r8HSCNDYrdGpMc2SZvFYOawW1pgmWdNGM1WzXvO+FkaLrRWvdVjrrjasbaIdo12tfUcH1jHVidU5rDO4Cr3KfFXSqvpVo7okXY5upm6L7rgeQ89NL0+vU++Vvpp+sP5+/T79zwYmBgkGDQaPDamGLoZ5ht2GfxtpG/GNqo3uryavdly9bXXX6tfGOsaRxkeMH5jQTNxNdpv0mHwyNTMVmLaazpipmYWa1ZiNsulsT3Yx+4Y52tzOfJv5efMPFqYW6RanLf6y1LWMt2y2nF7DWhO5pmHNhJWKVZhVnZXQmmkdan3UWmijbBNmU2/zzFbVNsK20XaKo8WJ45zkvLIzsBPYtdvNcy24W7iX7RF7J/tC+wEHqoOfQ5XDU0cVx2jHFkeRk4nTZqfLzmhnV+f9zqM8BR6f18QTuZi5bHHpdSW5+rhWuT5z03YTuHW7w+4u7gfcx9aqr01a2+kBPHgeBzyeeLI8Uz1/9cJ4eXpVez33NvTO9e7zofls9Gn2eedr51vi+9hP0y/Dr8ef4h/i3+Q/H2AfUBogDNQP3BJ4O0g2KDaoKxgb7B/cGDy3zmHdwXWTISYhBSEj61nrs9ff3CC7IWHDhY2UjWEbz4SiQwNCm0MXwzzC6sPmwnnhNeEiPpd/iP8ywjaiLGIm0iqyNHIqyiqqNGo62ir6QPRMjE1MecxsLDe2KvZ1nHNcbdx8vEf88filhICEtkRcYmjiuSRqUnxSb7JicnbyYIpOSkGKMNUi9WCqSOAqaEyD0tandaXTlz/F/gzNjF0Z45nWmdWZ77P8s85kS2QnZfdv0t60Z9NUjmPOT5tRm/mbe3KVc3fkjm/hbKnbCm0N39qzTXVb/rbJ7U7bT+wg7Ijf8VueQV5p3tudATu78xXyt+dP7HLa1VIgViAoGN1tubv2B9QPsT8M7Fm9p3LP58KIwltFBkXlRYvF/OJbPxr+WPHj0t6ovQMlpiVH9mH2Je0b2W+z/0SpRGlO6cQB9wMdZcyywrK3BzcevFluXF57iHAo45Cwwq2iq1Ktcl/lYlVM1XC1XXVbjXzNnpr5wxGHh47YHmmtVagtqv14NPbogzqnuo56jfryY5hjmceeN/g39P3E/qmpUbaxqPHT8aTjwhPeJ3qbzJqamuWbS1rgloyWmZMhJ+/+bP9zV6tua10bo63oFDiVcerFL6G/jJx2Pd1zhn2m9az62Zp2WnthB9SxqUPUGdMp7ArqGjzncq6n27K7/Ve9X4+fVz5ffUHyQslFwsX8i0uXci7NXU65PHsl+spEz8aex1cDr97v9eoduOZ67cZ1x+tX+zh9l25Y3Th/0+LmuVvsW523TW939Jv0t/9m8lv7gOlAxx2zO113ze92D64ZvDhkM3Tlnv296/d5928Prx0eHPEbeTAaMip8EPFg+mHCw9ePMh8tPN4+hh4rfCL+pPyp/NP637V+bxOaCi+M24/3P/N59niCP/Hyj7Q/Fifzn5Ofl08pTTVNG02fn3Gcufti3YvJlykvF2YL/pT4s+aV5quzf9n+1S8KFE2+Frxe+rv4jcyb42+N3/bMec49fZf4bmG+8L3M+xMf2B/6PgZ8nFrIWsQuVnzS+tT92fXz2FLi0tI/QiyQvpTNDAsAAAAJcEhZcwAAD4gAAA+IARbIpYYAAAAfdEVYdFNvZnR3YXJlAEdQTCBHaG9zdHNjcmlwdCA5LjU2LjGHWQ/gAAAO7UlEQVR4nO2dPWzbRhuAL9/ntA4QJKQmJy1gU4KNFEiHkoG7FQFIFWiBDgFIefQkeuxGqkOBAllIbynQQdTSNWS2dGlJo0nRoTVEu0uBtAlpeyhsdBAVe7ALB9A3vF9eXEX92/pz7hkMiT7eHclXd+/fHS81Gg3CYEwk/xl9k0EQBEEw+nYZU8fM6Jv0fZ8QoijK6JtmTBdjGDsZjB5h0smYXJh0MiYXJp2MyYVJJ2NyYdLJmFyYdDImFyadjMmFSSdjcpkm6UySxLZtRVFM00ySBI8HQaBpmq7rcRyPsXuMc2dqpDOO42w2K0lSEARxHGuaBsc9zzNN03GctbU1SZKYgF4kpkY6LcvSNA2j89lsFj6YplkqlXielyRJ0zTLssbXR8Y5Mx3SmSRJpVLJ5/Pw1fM8x3EIIWEY7uzs8DwPx3me9zxvbL1knDcjylEyTdPzvJ2dHULI8vLy3bt38V9xHJfL5abyuVxO13X8GoYhlNQ07dGjR6qqOo7D8zwcp9Od6vX6MK+DMVKGLp1JkiiKsrW1hUc2Nzdv3bpFFwAh6wAk3UVR5DiO4ziKomiaFgRBFEVD6jZjImgMmWKxmG7U9/2+KoHBFc8yDIMQUqvVQGqr1Sp9/JwvgDE+hj52phVBQRDouTgMQ9M0m8pIkmTbNv01XTPP82Ab0d4lURTP3mfGhDDq3HiO45rkFcztpmK5XI7+KkmSKIq+74NYJ0kiyzIhJJvNFotFPB4Ewdra2nAvgDFCLjWGvOoN/JE7Ozscx2maViqV0BnUF2ASgRSGYeh5HpjqSZJomgaezmw2S4+4jGln6NJ5voD9lB5rwzDEiZ5xYZgy6WS8UYxhTeboieM4juOWCu5ZCMMwSZJsNjukMXtI3e6LYVwjWLEYQ+nEmH0G5wT4kmRZVlWVECKKIniyRFFsNBrlclmWZVmW+63W932oUBAEwzCKxaIgCKqq1mo1aJTjOMMwOldiWRZ0o18G7vY5YhgGXHvL/0ZRNECdxWKxZYVRFJXL5Uaj4bou1HxxpBMvmBACn8EbigUGfsxYYaPRqNVqhJBisQhfZVnuKp2+73ct046zdPu86HCNA/StVqtxHMdxHPzCaVzXhYZkWQbf9nTE2bsShmHal6Qoyrm7P3mel2W5r0woRVEupCdhsA1dPM/Tdb1er6cd4dVqNZPJEELiOAbnzAWRTkmSWipGTTuOhGEImaAYO22XM9oOiLs2KYKmabYTwSAITNPEcAOmokJINl15y86kuw2FoV1d1/FJx3EM+YQtrxTKm6Zp27YkSXBWy0axcLqTgOM4mqZhc031d7iTruuWSiVRFOnkCqgnDMMoisD/aJpmHMcXRDrbDU708TiOXdeFIRalVtO0Wq0WBEEmk+mweQ4EtEzTlCRJ13W6Ws/zCoWC53mu66aDXjzPJ0myvr5OCEmSxLIsz/Ns2/Z9P50koChKFEVBEIRhiEkwLbtNCJEkKZfLQQCiUCigFMZxbFlW+hRFUTKZDFxpuVyGtMN2dwAkz/O8JEk2NjbSN0TXdV3XwcEMXaXrx+zb9G3MZrM8z6+trW1tbWGfeZ7P5/NJkuTz+UwmI4piPp/neb5XvbNWq8myDErrhEMoNREBCwY+gz7q+77ruoQQVIAIIa7rtqsQwvrlcpm2hGRZRh0UBoO0OoXR/2q1KggCNIEWAEJ3BlW9lt2GrzD8YA/pJIT0KdVqFSsH1RnKt7wDUBgrbGcV0ToxXQ/U3/JOQmCv8Vr7xFsHQLd938fjPXmUMM8oDENFUabU6Z32y8BjwIRlWZY7TEk8z8PQEkXR+vp6oVCACtEzArcFblG7DmSz2UKhQAhRVbVUKqU7A7XRKl07d1IQBI7j0HmGHU6RJInjONArgiDgOA462fIOQOvpRO8O0J2Hv9VqNT2CwroGaI7n+UqlYts2z/OO44B8K4oCOr2iKEEQ9CSdlmVBCly9Xrcsq50uMqUMZrK0k+MObrw4jqGtMAxBDRh4p8gkSSRJKpVK8CwqlUrXU3RdtyyrWq2i/CFNdwD10Z5ckm3MI7BvaGB1Da2C5/N5x3FM0wQlwbIsUNPz+XyvVlEYhqA2AZVKZZLX7vTVNxjG0KRwHKeX1Po4jjmOw/EJlacwDAVB6OA5h2EDNNcgCJrkGzpDWxgd+gCp3DA49SLi0FwYhrZtO46DnWx5B+C/KKMt9U4a3/c/+eQT8vpWhGEIORVNxVzXpW+OoiiCIKBtBL838joo/f9CaeUgrStASY7jQCcY2Hs3bAzDABeSIAi0K873fVEUQV+MogiuqFgsgvKHnvb0dZXLZbpCWZZFUVRVFTNKBUGwLAvOFUURj9NNQzqVYRjQDSisqmpaM4NHBa1Uq9UO3Y6iiOM4UE9B/xMEwff9dqf8+OOPHMehZHAch623vAOoXquqChValtXUW5iLUUWG2AF0Jm2f4G3Ef8myDF2CizUMA5oQBAHP6i6dgiDA9cCttyyLPv9i4Pt+2prpBQhpRFHUVz51h+bA9jp7PU1Uq1VVVf3XpJ386ap66UkURfQPsq/O90J36cTRG77iIopz7ARj2KiqSs8MlmVN7ARI05O/U5blJjuUbfw+XTiOA7osmCBkUFtwxPRks4PuDODYOaweMYYAeG3G3Yu+6WnspD1ek2ywMy4YM+B761yoUqnAkHlycvLo0SNCyK+//trZ5cFgnJFcLtd9Zn/77bfx8y+//AIf5ufn+23s2bNnJycnHMednJwcHBzQGy4w3nAePnxICFlZWXny5Mnm5iYcvHXrVnebHd1XEBslhAzmUQK3HzAV8XrGyMAka8hJAGRZ7q53SpIEUVRIyyOENAWI+8UwDPYqLUYvdJfOfD4fBIFt26BxCoLQMvOgKxAQKxaLpVJpjAtlGFNEd71TUZQkSXC8HGyTNzhLlmVIq2F7cTF6YabrJlt//vnnq1ev4HOhUEhnuPTCt99+u7i4uLq6urS09Pz5c8L8+QwKSAkNgmB3dxcPHh0dXXJdN71BIXJ6erq5uXlyckIIuXnz5nvvvTdA24eHh9vb28vLy8fHx9vb23CQNpIGq/Py5ctXrlw5SyWMCQHyM0VRfPHixd7eHhycn5/vZLPXajV61Vg6Aad3iwzOBacpMFhVURThat2piBQzemEQm900TRBqyB8bbC42TRN2dB/g3DTlcpntvf3m0NYqsm0bMq5h17ggCMCv1C9hGIZhCMoDnW+Lu8YNUCfjDaG1dOLiD0IIplIP5uak5Q+S9dPHBwPWSU5Frg1jMFrP7KZpgtPHMAxIwcdlU2dpjNY7B64qjmNYD76xsUEvKWFcQDoY7AzGGGm9nh3tJlx6TFtSAMdx/cbKzx5np1sXBKFpNXRXcImPZVm+71uWhWkDLO4/XtrZ7C2kEx4hrjtp+VoCoC+fDkonLMga4Bpgd6hisQg/mL5axymCXk9TrVZxLRjzT42RPjxKEBCHfPggCMByhzWE8BRRXtfX13tXH88eZ0+SRNd1nuc7rxnHrYs8z8NcacxGpZuGxbt4LSyxetJo6+8EYwjsGMMwPM/TNE2W5Vwu5ziO7/sw6vSottJxdjS5zpcgCBRFyeVyYRjCdjy6rudyuWw2Sy9aYD6saSI9zMISYRxy6TL0fIpy2cvQXSwWRVGMogiDT4NNAdCBWq1WLBZB+2zqTLuJ++OPP8ZLpheS41TCZvYx0m5mb7Fy46233iKvp8KjoyNCTYu//fbbH3/8gSWvX7/+8uXLlZWVhYWFDj+Ag4ODhw8frq6ufvHFF/jSt94XfhwcHMzOzoKcff/997u7u+hIqtfrUM+DBw/gyNHREV3z0tIS5Fr/8MMPn3766e+//763t1coFJaXlxcWFur1+tOnT69fv/7hhx/21SXG+fLixQtCiGmaT548wYN//fVXC2/8/Pw8iuDCwsLm5ubBwcHc3BwhhOO4g4MDLDk3N/fy5cuubT99+nRlZYXjuL4m9Hq9Pjs7Ozs7++zZM0LI3bt3Hzx48M8//2ABlCoazCFI8+67796+fbter9fr9d3d3d3d3bm5udXVVXqTDMZkkR5mYYUGOllgrxJ6Ez38DHuqdx60DcPAmbSvLBDUIvADnAhme9PGMrT6yybuqaMPm53nedivDMLijuPQr1wQBIHe16qDvwnLlMtlRVFgV1w8Dkd6/AmhhKmqCoGiJrNd13V0ZxYKBdjeDfYXBncmC3hOI63j7LZtw/a7IAe0ayabzcIWlbZt0znz7TiXODuG1DuohiDu8BYV2C3ozp07sNlu7w0xJoq2OUqe58Hzhk3F8RlLklSr1WzbLpVK5XK5r2ffFGfvOnZCSN3zvHq9vrGx0cv4B8M8W1V3Mei0cgOS6O7du3f16tWPPvoIDm5vbz9//nxxcfGbb77JZrM9DoH7+/v3798/Ojr64IMP4Mi9e/dEUfzyyy9blq9UKj/99BNtgS0uLmJmfxAEt2/fvnr1arr1/f39/f19uKKlpaWlpaUbN2700kPGGBlw5QYh5PT09O+//z4+Poavx8fHp6enw37RNO5oOjMzMzMzk8lkYNHI4eHhlStXLl++nD6lVqvt7u4mSZLL5a5du3Z4eLi3t/fq1avZ2dmFhYV33nlnqB1mnIXDw0NCyLVr146Pj1HS3n///b694mB8DMFu+xf9htRZGP1C0jaSCa+xgWj1kH85rVvvGlKnYWH0C0lbqwhesgGfXddt9waaSYOF0S8SrcdOz/NQNMm/Uz1GPAIlSZIkCfhcOxRDc35ra6vlYG8YBnMtTR8t5/umyLuqqvivkb3VAF7o27WrCHrjyetXCMDW/Cy5eHq51KByzpE4jnO5HHyGNZngQYRXdePX4cHzPB2UFwShVCr1sn8TeuMJIXfu3Gn3/kzGVNBaOgkhiqKEYQgLMvEBa5o22E41fXfr0iVCCL72hud5Fop8A/nvV1991fIfn3322ePHjx8/fnzz5k3w2H/++ef7+/vffffdCPaHOT4+vnHjhqIoX3/99c8//0wIwRAo482hrUeJ53l4f63ruvl8vlwuS5L0r/dwDRPbttmMzOi0QyLP8/S7xRmMEdPTG2HGy9ra2mgGbMak0dYqGjv4pvlxd4QxNv4Hv4Ep4Ewg2qkAAAAASUVORK5CYII=", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 223 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 185 } }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 219 } }, "output_type": "display_data" } ], "source": [ "Chord(\"G4 Bb4 D#4!\", 4, label='The Bb is changed to A#').show()\n", "Chord(\"G4 Bb4! D#4!\", 4, label='Now the Bb is fixed').show()\n", "Chord(\"4C 4E#!\", 4, label='An E# is never supported').show()" ] }, { "cell_type": "markdown", "id": "7615207d-e9cf-4ced-adc5-bc969c1644ff", "metadata": {}, "source": [ "## Glissandi\n", "\n", "The pitch of a Note or Chord does not need to be static. In each case it is possible to define a **glissando** (the `.gliss` attribute) for the given duration of the event. \n", "\n", "**NB**: you can set an explicit target for a glissando or you can set the `.gliss` attribute to True, in which case the following event in the sequence determines the target pitch of the glissando" ] }, { "cell_type": "code", "execution_count": 20, "id": "8f40b8d6-9c76-4c10-8030-8587cd4a15a3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "4G:1♩:gliss=4B
\n", " " ], "text/plain": [ "4G:1♩:gliss=4B" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Note(\"4G\", gliss=\"4B\")" ] }, { "cell_type": "code", "execution_count": 5, "id": "040c4129-205c-44fa-94de-ff3d402022e3", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 189 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:41:04.547.wav\", 1 channels, 2.02 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain = Chain([\n", " Note(\"4G\", 2/3, gliss=True),\n", " Note(\"4A\", 4/3, gliss=\"4F#\")\n", "])\n", "chain.show()\n", "chain.rec(nchnls=1)\n", " " ] }, { "cell_type": "code", "execution_count": 6, "id": "03529b22-94e6-48f9-8e1f-8b062b7ea94b", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 139 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:41:07.342.wav\", 1 channels, 3.55 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ch = Chord(\"4G 4B\", 3, gliss=\"4G- 4A\")\n", "ch.show()\n", "ch.rec(instr='tri', fade=0.5, nchnls=1, extratime=0.55)" ] }, { "cell_type": "markdown", "id": "60ff0686-5165-4460-b698-75c28f3611c4", "metadata": {}, "source": [ "Series of chord glissandi are also possible. Here we render using a triangular wave" ] }, { "cell_type": "code", "execution_count": 7, "id": "33f8488e-0fe8-4a27-a6fa-a6a7249381bc", "metadata": {}, "outputs": [ { "data": { "image/png": "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1KlTVfbQVpiYmPj88889Hs+VK1dI7Q09WEHJ72QhhA4ePHjixIktW7YghObm5moKu6/1eoTQjRs3YGpu3Ljx3Xffvfvuu3fv3oXRVxfwWOARkYF8qqpWSBVACN2/f//27duLi4twuri4eP/+/WbFu69FTE5OQu5EAWia7unpwYrnnTt3bt++3dXV1dPTQ+YYXL9+fWFhYdeuXY888kj5gRYXF3///ffl5eW1lfRYBouLi4uLi6Dgk17HL774ouaANrwrbViQT5ZhGJ7nk8mkNeihDI4dO7Z582a32/3ll19a7wLL7uDgIEJo43xHqKSLD3/uEBtfbAB4nofPAOJPFdW6Yp05c+bTTz89dOjQW2+9BS1g7CRthLt27UqlUhunyHFJRiTNYLFYzOZFDEicaDDNmabpH3/8ESGUTqfHx8d1Xb9169a+fft27tz50ksvvfjii00ids2gOCPG43HSGAsedDher3nmDYKm6fpSOlwuV03ezvWKqj6BRj7iZDK5bmTnxrF37144WMc1SVYIRSVHsiAsfEwA2iGnxv5wEnwYdbWpWFco+eUp+JxONBplWRaLzH6/v76SIzZslEdJRgS3PTjxIKBaURTgQvtT2TaajnLf4gMLjqqqiUSC47iCbyjbsNFE/A89a1l/w2piKwAAAABJRU5ErkJggg==", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 216 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T15:41:12.169.wav\", 1 channels, 3.15 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain = Chain([\n", " Chord(\"4G 4B\", 4/3, gliss=True),\n", " Chord(\"4G- 4A\", 5/3, gliss=\"4G+ 4Ab\")\n", "])\n", "chain.show()\n", "chain.rec(instr='tri', nchnls=1, fade=0.1, extratime=0.15)" ] }, { "cell_type": "markdown", "id": "1b5aaa40-e3b3-4b6d-93b6-29c51e3af43a", "metadata": {}, "source": [ "## Chain\n", "\n", "As seen in many previous examples, a `Chain` is used to represent a sequence of notes or chords" ] }, { "cell_type": "code", "execution_count": 9, "id": "12e22122-0627-4472-aa8f-96f36c46a725", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 189 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-24T21:08:35.367.wav\", 1 channels, 4.22 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain = Chain(\"3f 3b 4Eb 4g#\".split())\n", "chain.show()\n", "chain.rec(nchnls=1, sustain=0.2)" ] }, { "cell_type": "markdown", "id": "21eee5a0-80e0-45e1-99fb-e2908a4ae293", "metadata": {}, "source": [ "Notes within a chain can have **different durations**" ] }, { "cell_type": "code", "execution_count": 6, "id": "eb4a085b-2f53-4f82-b8cd-ae2215d5e7f0", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 415 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T13:36:14.239.wav\", 2 channels, 7.30 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain = Chain([\n", " Note(\"3G\", 0.5),\n", " Note(\"3Bb\", 0.5),\n", " Note(\"4D\", 0.75),\n", " Note(\"4F#\", 0.75),\n", " Note(\"4A\", 0.5),\n", " Note(\"5C\", 0.5),\n", " Note(\"5E\", 0.5),\n", " Note(\"5G#\", 1),\n", " Note(\"5B\", 1),\n", " Note(\"6C#\", 1/3),\n", " Note(\"6Eb\", 1/3),\n", " Note(\"6F\", 1/3)\n", "])\n", "chain.show()\n", "# sustain adds an extra duration to the playback. This helps when playing a sequence legato\n", "chain.rec(sustain=0.15, fade=(0, 0.15))" ] }, { "cell_type": "markdown", "id": "f8b05a96-b7ba-4911-bcf0-948066f4894b", "metadata": {}, "source": [ "### Operations on Chains\n", "\n", "Chains are useful to express operations on a sequence of notes or pitches" ] }, { "cell_type": "code", "execution_count": 7, "id": "d8b6b979-9555-4123-acaa-56d2803fbc81", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAABiCAIAAADY2y//AAAJMmlDQ1BkZWZhdWx0X3JnYi5pY2MAAEiJlZVnUJNZF8fv8zzphUASQodQQ5EqJYCUEFoo0quoQOidUEVsiLgCK4qINEWQRQEXXJUia0UUC4uCAhZ0gywCyrpxFVFBWXDfGZ33HT+8/5l7z2/+c+bec8/5cAEgiINlwct7YlK6wNvJjhkYFMwE3yiMn5bC8fR0A9/VuxEArcR7ut/P+a4IEZFp/OW4uLxy+SmCdACg7GXWzEpPWeGjy0wPj//CZ1dYsFzgMt9Y4eh/eexLzr8s+pLj681dfhUKABwp+hsO/4b/c++KVDiC9NioyGymT3JUelaYIJKZttIJHpfL9BQkR8UmRH5T8P+V/B2lR2anr0RucsomQWx0TDrzfw41MjA0BF9n8cbrS48hRv9/z2dFX73kegDYcwAg+7564ZUAdO4CQPrRV09tua+UfAA67vAzBJn/eqiVDQ0IgALoQAYoAlWgCXSBETADlsAWOAAX4AF8QRDYAPggBiQCAcgCuWAHKABFYB84CKpALWgATaAVnAad4Dy4Aq6D2+AuGAaPgRBMgpdABN6BBQiCsBAZokEykBKkDulARhAbsoYcIDfIGwqCQqFoKAnKgHKhnVARVApVQXVQE/QLdA66At2EBqGH0Dg0A/0NfYQRmATTYQVYA9aH2TAHdoV94fVwNJwK58D58F64Aq6HT8Id8BX4NjwMC+GX8BwCECLCQJQRXYSNcBEPJBiJQgTIVqQQKUfqkVakG+lD7iFCZBb5gMKgaCgmShdliXJG+aH4qFTUVlQxqgp1AtWB6kXdQ42jRKjPaDJaHq2DtkDz0IHoaHQWugBdjm5Et6OvoYfRk+h3GAyGgWFhzDDOmCBMHGYzphhzGNOGuYwZxExg5rBYrAxWB2uF9cCGYdOxBdhK7EnsJewQdhL7HkfEKeGMcI64YFwSLg9XjmvGXcQN4aZwC3hxvDreAu+Bj8BvwpfgG/Dd+Dv4SfwCQYLAIlgRfAlxhB2ECkIr4RphjPCGSCSqEM2JXsRY4nZiBfEU8QZxnPiBRCVpk7ikEFIGaS/pOOky6SHpDZlM1iDbkoPJ6eS95CbyVfJT8nsxmpieGE8sQmybWLVYh9iQ2CsKnqJO4VA2UHIo5ZQzlDuUWXG8uIY4VzxMfKt4tfg58VHxOQmahKGEh0SiRLFEs8RNiWkqlqpBdaBGUPOpx6hXqRM0hKZK49L4tJ20Bto12iQdQ2fRefQ4ehH9Z/oAXSRJlTSW9JfMlqyWvCApZCAMDQaPkcAoYZxmjDA+SilIcaQipfZItUoNSc1Ly0nbSkdKF0q3SQ9Lf5RhyjjIxMvsl+mUeSKLktWW9ZLNkj0ie012Vo4uZynHlyuUOy33SB6W15b3lt8sf0y+X35OQVHBSSFFoVLhqsKsIkPRVjFOsUzxouKMEk3JWilWqUzpktILpiSTw0xgVjB7mSJleWVn5QzlOuUB5QUVloqfSp5Km8oTVYIqWzVKtUy1R1WkpqTmrpar1qL2SB2vzlaPUT+k3qc+r8HSCNDYrdGpMc2SZvFYOawW1pgmWdNGM1WzXvO+FkaLrRWvdVjrrjasbaIdo12tfUcH1jHVidU5rDO4Cr3KfFXSqvpVo7okXY5upm6L7rgeQ89NL0+vU++Vvpp+sP5+/T79zwYmBgkGDQaPDamGLoZ5ht2GfxtpG/GNqo3uryavdly9bXXX6tfGOsaRxkeMH5jQTNxNdpv0mHwyNTMVmLaazpipmYWa1ZiNsulsT3Yx+4Y52tzOfJv5efMPFqYW6RanLf6y1LWMt2y2nF7DWhO5pmHNhJWKVZhVnZXQmmkdan3UWmijbBNmU2/zzFbVNsK20XaKo8WJ45zkvLIzsBPYtdvNcy24W7iX7RF7J/tC+wEHqoOfQ5XDU0cVx2jHFkeRk4nTZqfLzmhnV+f9zqM8BR6f18QTuZi5bHHpdSW5+rhWuT5z03YTuHW7w+4u7gfcx9aqr01a2+kBPHgeBzyeeLI8Uz1/9cJ4eXpVez33NvTO9e7zofls9Gn2eedr51vi+9hP0y/Dr8ef4h/i3+Q/H2AfUBogDNQP3BJ4O0g2KDaoKxgb7B/cGDy3zmHdwXWTISYhBSEj61nrs9ff3CC7IWHDhY2UjWEbz4SiQwNCm0MXwzzC6sPmwnnhNeEiPpd/iP8ywjaiLGIm0iqyNHIqyiqqNGo62ir6QPRMjE1MecxsLDe2KvZ1nHNcbdx8vEf88filhICEtkRcYmjiuSRqUnxSb7JicnbyYIpOSkGKMNUi9WCqSOAqaEyD0tandaXTlz/F/gzNjF0Z45nWmdWZ77P8s85kS2QnZfdv0t60Z9NUjmPOT5tRm/mbe3KVc3fkjm/hbKnbCm0N39qzTXVb/rbJ7U7bT+wg7Ijf8VueQV5p3tudATu78xXyt+dP7HLa1VIgViAoGN1tubv2B9QPsT8M7Fm9p3LP58KIwltFBkXlRYvF/OJbPxr+WPHj0t6ovQMlpiVH9mH2Je0b2W+z/0SpRGlO6cQB9wMdZcyywrK3BzcevFluXF57iHAo45Cwwq2iq1Ktcl/lYlVM1XC1XXVbjXzNnpr5wxGHh47YHmmtVagtqv14NPbogzqnuo56jfryY5hjmceeN/g39P3E/qmpUbaxqPHT8aTjwhPeJ3qbzJqamuWbS1rgloyWmZMhJ+/+bP9zV6tua10bo63oFDiVcerFL6G/jJx2Pd1zhn2m9az62Zp2WnthB9SxqUPUGdMp7ArqGjzncq6n27K7/Ve9X4+fVz5ffUHyQslFwsX8i0uXci7NXU65PHsl+spEz8aex1cDr97v9eoduOZ67cZ1x+tX+zh9l25Y3Th/0+LmuVvsW523TW939Jv0t/9m8lv7gOlAxx2zO113ze92D64ZvDhkM3Tlnv296/d5928Prx0eHPEbeTAaMip8EPFg+mHCw9ePMh8tPN4+hh4rfCL+pPyp/NP637V+bxOaCi+M24/3P/N59niCP/Hyj7Q/Fifzn5Ofl08pTTVNG02fn3Gcufti3YvJlykvF2YL/pT4s+aV5quzf9n+1S8KFE2+Frxe+rv4jcyb42+N3/bMec49fZf4bmG+8L3M+xMf2B/6PgZ8nFrIWsQuVnzS+tT92fXz2FLi0tI/QiyQvpTNDAsAAAAJcEhZcwAAD4gAAA+IARbIpYYAAAAfdEVYdFNvZnR3YXJlAEdQTCBHaG9zdHNjcmlwdCA5LjU2LjGHWQ/gAAAUqklEQVR4nO2dy28TV9vAT0pCnebSGVORQIQSjwOFUkjrKVSiiyB5HCGEVKmKzQpQJez0L5hxValr27RVS8vCjoTadFU7qGLDAk8kQoXEizyhFVRJS+IkrYAEiRknLsQlQL7F876j+Xwd3y95fqvx8ZyZMxc/Pue5Nm1sbJDKIggCIcTr9Vb4vAiC1A6vVHsACIJsRlD0IAhSBVD0IAhSBVD0IAhSBVD0IAhSBVD0IAhSBVD0IAhSBVD0IAhSBVD0IAhSBepJ9CiK4vV6OY4TBEFRFLVdFEW73e5yuaLRaBWHhyCIfupG9ESjUYZhWJYVRTEajdrtdmgPhUKCIAQCgZGREZZlUfogSF1QN6LH4/HY7XaO4+AjwzCwIQiC2+2maZplWbvd7vF4qjdGBEH0Uh+iR1GU0dFRm80GH0OhUCAQIIRIkjQ/P0/TNLTTNB0Khao2SgRBdNNcmdMIghAKhebn5wkhhw8fPnr0qPpVNBr1+/1J+5vNZpfLpX6UJAn2tNvt4+Pjw8PDgUCApmloV6dChJBYLFbO60AQpDSUXfQoisJx3NTUlNpy69atvXv3ancACZKFcDhMCJmbmwsEAoFAgOM4u90uiuLc3FyZho0gSFkpu+gRBEErd4BTp06p26A5zn4Qs9lMCHE4HLC24jjO5/MpimKz2Xw+nyRJLMuWeuAIgpSRsoueVOWLyWTSLpEkSYLkYVpYltXmEksrWWiaBmWz1tBusViKHzOCIOWmQroeFYqikoQRGKeSdoNpjgrLshaLJRwOg8xSFMVqtRJCGIZxOp1quyiKIyMj5b0ABEFKQVO5E6SC3838/DxFUXa73e12q3bxvAAdM4gYSZJCoRAsvhRFsdvt4NHDMAzmXUWQuqDsoqe0gEI6dZYkSZK6/kIQpPapM9GDIEhjUB8uhXoAu3u1R4EgiC4aZ9ajapqrPRAEQXLTOLMeBEHqCBQ9CIJUgUr79ZSPYsxboCTSRo0hCFJW6kz0KIoiimIkErHZbFqXaEKIGr9eAMFgkKDoQZAKUjcLLkVRBEEwGo0Oh8Pn89lsNpQUCFK/1IfogfB3n8+nbRwdHcWchAhSp9THgsvj8aSGv6clEAiEw2GGYSB1ofarLIs1dINGkApTH7OetL6CVqs1SWSA3CGE+Hw+bTR8zsUaTdPFqIoQBMmXOhA9gUAgNfegyWRKlUcMw4RCIYiMHx0dhUZcrCFIDVLrokcUxYmJie3bt2sbjx8//uWXX0ajUVEUtRkOtTMXiqKg+yeffJJ2sXbjxo2c2RERBCkTNa3rgRI3qe1Xrly5cuWK+nFubk678oLZkNvtztQdOH36dFLfwvRECIIUQE2LHpfLxTDM6OjovXv3klZMKkm5MiDnIc/zoOuZnp7++uuvk7p0d3f7fL4dO3Zo+0LKZ0IIpF5VV3OKong8HvXsPp/P6XRinCqCFMtGzcPzvNVq1bObyWQymUzhcFjb2Nvbq71ep9Mpy3JqX4vFAtva2yLLctqMq3NzcyW6OATZpNT0rCcvjEYjLIuSEon19/dfunQpGAyazWaO4zLZ0VP1RCQfoz6CIHnROKJHEAS73Z5WsrAsq7NkhaonIoSIovjtt9+m7pNq1EcQJF9q3cKVF0VKhCQ9UTgcXltbS9onrVEfQZC8qfaKLxsQ1ZkdiqLSal7y6puqJ8rZPdN5VWRZDgaDPM9rdU/5EolEUK+ENCQ1veDiOI7n+WvXri0vL588eTLtPkajMe1kJ6++qXoijuMOHz68vLw8ODg4MzNDUVRfX5+qA8pyXlIKo1g0GgUHa5CAWGYDaUB0iihZlq1Wq9/vL6sgTItOC1eRfVMnF4WdtyRGMZ7neZ7XbiBIg6Fr1qPWTZckKYuRqK4p1UWhUQxB9KBLzaz+nGKxmMfjKfOQ6psLFy6kNhZjFEtbGBpB6p3cokeSJK0nMQZeZufJkydJLYUZxaLRqMvlCgQCExMTmTy5EaR+yV0Mx+VyQRQ4lEsPBoM0TVdG8Ql/+LOzs6urq2kVKIQQmqYDgUBqyoti+sLPPt++drtdUZSJiQntbjt37uzv729paYGPIyMjdrs98xUTQoggCKFQaH5+Xm2xWCxJka4YU4bUO7lnPVDZiqIoURQ5jjObzZCVAsnEnj17ent79+7de+TIkX379qlyRyc+nw/kDkVRJpPJ6XRq5Q4mikUahJyKaNhNdU6BXFyVdDapjIWrVH2196owKIqiKApizZIsXBhThjQMutTMVqs1aVaPRT7Lh6IoLpcrbeJENJ8hDYMu47rD4VC31VlPuUaEZEZnotjG5rvvvvvrr7+GhoYYhtlUF95g6BI92geM5q2KoSiKoiiQ8hVSMupMFNvYfPHFF4uLi+fOnevo6EgkEjt37ty2bVt/f/+xY8d27dqFSvd6oVlRlJx5QtVJfjweHx8fJ4TIslyxNdfCwkLBp6tK3+LXRHfv3p2amlJt6rFYTBTF1MMeP3787Nmz0Wi0VP8H8Xh8amrqzz//ZFk2k2mv6jx8+BA24vE4IWRxcXFxcXFqaioYDDY3N7e2tq6trRmNRrPZ3NbWZrPZ2tvb9+zZU9UhI8mwLNsUDAb9fn+WnSYnJw8cOGA0Ggkhs7Ozi4uLhJBDhw51dnbmdbLl5eXnz5+3traur6/H4/H+/n6dHbMbuWut78TExLvvvgu3qzAmJyefP3+ufjQYDH19fT09PbIs3759+9ChQ48ePWptbTUaja2trQWfJYn19XX4DastO3fu3LdvX6mOn5Opqamurq6enp6ce16/fn19fb25ufnFixcbuVxDCCGvvPJKU1PTli1btmzZ0tHRYTAYtm3b1tHRka/lESmA1dXV2dnZ/v7+zs5O7X/n+fPnc1u41NAtWZYhftJkMhWg0LZareqJ84oF22wWLrhFYORyOp2qhQu0bMUcORO1YDgjhOiMVrNarbBnOBz+6quvHA6HxWLp7e1taWnp6OjQ+ZMA0dPb22uxWBwOx8WLF4t8akha4KWFe6u9/+FwOLeuh2XZSCTicrlcLhfoGiCTVsHwPI8L8izwPB+NRhmG8Xq9lQmhqFPDGcdxSS8SrD2vXr26uLgoSdI///zz9OnT9fX1RCKR1Dd1sdbS0tLe3v7kyZMdO3YMDAxQFHXq1CmapnUmmUPyJbfoAac1r9cLWh6TyVSYDxu4+TqdTrfbzTCMoigFHGQzUDGJo9IwhjOweSXJI0mSFEX58ccfY7HYb7/99vDhw7a2tpWVlZcvX2p3W19fh3dSXXiOjY0ZDIaWlpbXXnutvb2dZdne3t6hoSGWZRu1YKQgCGazuTJOqrlFD8dxiqKoM53CXJmhl9VqDQQC6uwJqREa23AG05YkeXTy5Mk7d+4cOHBgdnb28ePHDx48MBgMMBXSkkgkEolEPB5fXl4Gh5LGtqy53W6O4/QnFC6G3KJHa//ieb6wMYXDYYvFEggEWJatx7l9tRgZGan8H6zT6fR6vY36xw709fU9fvz4p59+UlvA1FvwYs1sNk9PT1f0GsoATdMgfSRJKvucN7t5C0EQpOR4vd5sFpMkw0ckEilMy221WqEvqLsB/d03m4UrE+WzcJVkzBBxpn29nE5nXmPI18JVDMW8GOFw+OLFi1rLGng5FDmkGkHNSj48PFz80Qq0cAmCAIsjk8nEMExqiSs9CIIwMjKCZoLGRs1jqW0cHR0Fk0K1RlUmQK3z8ccfqy0///zzRx99VL0RlYxoNKrmAhwfH1cUpXzr7oyix+v1atP0QHaYAk4gSZIkSbCs01q14PlhGGpjUKfm+VKh35+oloH0x6rNwe/3l1Xfl170aIUf6IZJoe48WuEiiqLNZkttR+qaaDT6zTffpLbXo3m+djhz5szY2Ji2bPf+/fvb29th22AwnDhxQisaijSxwbwV5A5FUV6vt9wm9vSiRxAEGATP85BVj2VZNVtYwSfT6nr0H2ppaenGjRt9fX0FnFFRlGfPnhXc12AwFNBxsxGNRv/999+kxkYyz1eF33//nRCiDW3RbhNCxsbG1G2DwaBG1aytrW1sbHR3dxNCLl26VICuw+12V8C1p1mSpKRyd7FYDLwHu7q6CCHg3haLxTY2Ns6ePdvV1UVR1N69e/P6WcZiscuXLycSCVWKnzhxoq+v78MPP8zZ9z//+U8ikUi673lRcN8nT54U4N03OjqqFbKlYmFhgfzvcZScYsYMA9MyMDAwODiYr/H02rVrma4ukUgsLCwsLS319fXNzs7G4/Es92FpaclgMGiLpqU91/LycqluZjkeTV6mevA/0rbAO//555+//fbbOg8yNDQEouDBgwelvTOpb9fDhw/TzHp+/fVX2BgcHCSEJBKJmzdv3rp1ixCysrIClzQ5OTk4OPjOO+/oHAFFUe+//34ikaAoKpFILC0tZSrLl8rAwMAff/yhc+fS0tbWlm+XJCvP5uH06dNpayUWifb1I4TcunWrvb0d/hSTiMViBoPBYDDMzMwQQo4ePVqqMVQFmqa3b9/+6quvqi2PHz9+9uwZbD9//vzp06dbt2595ZX/ZvtL9T8i6YoUZKGvr29oaOjq1atFjDoP0qSF5zhuYmLCarWCOkZNC58Kz/P688PDYWHb7/frn9FFo9FPP/1U586l5eDBg5999llVTp0KaMpSn1fxNDU1hcPhgpfSJRlYU1NT6uuU1nBGCHG5XKlTKvijVsNQsr+ZgiBIklQqhWM5Hg14Fev8fSUlTvnll19mZmaCweDY2NipU6fyOi9kyCxV3Qe4M/B2NTU1qe3pjesgICAzoSiKIHeGh4cdDofD4eB5XlEUaIS05Pm+svmGjzIMo/U6RTYPmQxnWJgsiaSEjfD7CgaDO3bs0HkEr9cLdqTh4eFQKFSBSK6MuZlBuwwrNJ7nQ6GQ3W63Wq1mszkQCITDYZhU61/Pa8NH0c0H0UPBca1YNzFfZFmGDUVRGIYZGRnJmUGwSNKIHpPJRAgBux2cXp19sSwLQXQcx0EjKKRzog0fVc1nCJKdfONasW5iwYDXC8/zoihKkhQOh5OsTyUnTYLUXbt2zc/PwzJ427ZtROOD8+zZs8nJSRglwzDd3d1LS0s+ny9nKr/vv/9+9+7dZ86c2bNnz71790hF/Hri8fiVK1dWV1c7Ozv1a7VrFlh6lOm+FeMQWKqBLSwsJB3E4XBofwBZEsKOjo5ev359aWlJbdm9e3fS0bTpX4vJnJtKOR6NLMupNyRf8nqs3d3dW7duVc9os9mKvyIYQOow4vF4mgSp9+/fn5mZgaSCalJOSIcqy/KdO3fA8kUIuXPnzqNHj3LmA11dXb19+/bhw4fX1tZu374NjdqkhWVienq6s7Ozp6dnenq6tbW1MO+e2mFtbe3+/fv6E8vqp8ikrvCSFPlAJyYment7U69udXVVT0JY1YLR3Nzc3NxsNBq12V1T07+2t7e3tLSUKv90Se5AElNTU52dncU87nwfqyzLsiyX9gWDOwPD0BbmvXDhQpqYN0iEquYwHR4etlgssizDRzic+hXRETVXZPhowfj9/mAwuLGx4XQ6PR5PBc5Yp5DiwkdLEtdKdIePpqWAuolHjhyBHebm5jwej/pWF0A5InuLj5It4LEWH5ebRJbw0TS6HpqmXS6Xx+OBkKtAIKDVn5tMJnWBJkmS0+nMLvaqGD6qmglBBVD5ASAVo4C6icePH4cNjuMq479b+5TKpq6H9IEUXq9XkiTQ2NE0DXWg4CuGYSDMzOv1arMXZqLq4aOyLDdwRkskJ5nMZLXjsbU5yRi5HgqFIO221+vlOE6d9bAsK8syeAH4/f6cZs5qhY/CsEHA2Wy2SopzpIok1U0kOsxkoiiGQqEKzHrgpDi9AjKKHpqmwTnCbrfTNA1uPoQQqEVnsVgikUi+y6jCwkcLw+12B4NBlmWj0Si4CyCNjaIooihq6ybCBs/zWkN7avpXhmEq4wQE1joUPf8FE6QiCFJhxsbG0sRwZUcURY/HUxfZdmDujSljcqINriGEqBUXBgYG3nzzzaGhoezz0/IFl+kHLoGiKJielzAKKS2Kong8niSvxZx3IC/9Zl4xXGkpMjSv3GRccCmKEggEZFl+77331NVWfZHW3oHkRFtxgRBy7tw5mqZfvnz5xhtvsCx77NixgwcP1looTCXrJmYKaoUBwAYoj5JeP/wX1JJR9GhvbjAYrFPpg+ghEomcP3/+7t279+/fX1lZefHixfr6unYHME2urKzMzc0Fg0FI1dTV1dXf39/T07N///7qjFtDJesm5swGy3Hc/Px8JBJJKlqHf4Ra0oueUCikvbl+v18VPak+7Ei9w7LsDz/8oH6UJOn69es3b96UJOnvv/9ua2tLKhULqWGS/IM3Dw1TrLW65C4BSP6/tC7AsIXUF0nFJyHK7/Lly9PT07Ozs8vLyyRDYqoaodx1E2vHWl/fpHV/hvB0gKIo1R0bYizKVGcKqRcikUgwGHQ4HGaz+fXXX4d6DNUe1EYkEikmGEI/qeXGdJ4XIjz8fv/w8DDP89ArZ0bHLDFAOovEFFxBr6xktHBB8VMoR6HOJO12O3hP6LlgZPMgSdKmmgtDRnOz2az1ts2JIAiBQABMTuPj406nMxAIeL1eWZaT8sASQtrb2996662jR486HI5M9xYMbZlO5/P5HA5HX1+f2+2uQTVTRtEDanwIlWAYRlEUv98PcqcGLwNBah9BECAbDvmfNwD8+vLKA6ufGjeuZ8xSSNO0KIojIyPBYNBms/n9fpZlJUlCuYMgBaP9+ahLrc2ZBzabmpmmaUEQGvv6EaTygE5aDb3enCazjLMeBEHKAYRG8jyv/qnnmwe2MdBlXEcQpCREo1G73Q5pIdTGnAGuWY6WZMJfX1+XZTkej0NyQp7njUYjpNwq3UWUBhQ9CFIhjEYjGGqSLFZerxeyUOdrMtOSlAS29r098w4fRRCkYNQ4r9KSyUZWQAnAioG6HgSpHGVa+GSykX3wwQflOF1JwFkPgtQ9NE2n6qrV2uW1CYoeBKl7kjIuEUJMJpMoijWoXVbBBReC1D2pYWWSJNWy3CE460GQxqCwsLIq8n8tC97pZ2qigQAAAABJRU5ErkJggg==", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 382 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-28T13:36:19.726.wav\", 2 channels, 13.00 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chainReversed = Chain(chain.items[::-1])\n", "chainReversed.show()\n", "# Add sustain to simulate the pedal being down\n", "chainReversed.rec(sustain=4, extratime=2)\n" ] }, { "cell_type": "code", "execution_count": 19, "id": "e2e90343-105e-4776-9f52-1f1ee3f4a200", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 384 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-03T09:48:53.111.wav\", 2 channels, 7.20 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chainInv = chain.invertPitch(pivot=\"5C\")\n", "chainInv.show()\n", "# A little sustain can be used to simulate legato\n", "chainInv.rec(extratime=0.1, sustain=0.1)" ] }, { "cell_type": "markdown", "id": "688db4d8-6c04-4574-8eab-cf520a669b5b", "metadata": {}, "source": [ "### Offset\n", "\n", "\n", "Within a Chain, **notes are stacked together**, as long as they do not have an **explicit offset**. A gap within items in a chain can be achieved by either an explicit offset or by a Rest\n", "\n", "Any start time within a Chain is interpreted as **relative to the beginning** of the chain (a Chain can have also an explicit offset or be placed within another Chain)" ] }, { "cell_type": "code", "execution_count": 3, "id": "a88f7faf-2a81-4808-8aa2-14507c6205b3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Chain([4C:1♩, 4D:0.5♩, 4F:2♩:offset=5], dur=7)
\n", " " ], "text/plain": [ "Chain([4C:1♩, 4D:0.5♩, 4F:2♩:offset=5])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain = Chain([\n", " Note(\"4C\", label='default dur'),\n", " Note(\"4D\", dur=0.5),\n", " Note(\"4F\", dur=2, offset=5)\n", "])\n", "chain" ] }, { "cell_type": "markdown", "id": "0a3a055c-35eb-49b9-b5ed-28de2f4fa28f", "metadata": {}, "source": [ "**A chain itself can have an explicit offset**. The offset of each note within a chain is relative to the beginning of the chain. " ] }, { "cell_type": "code", "execution_count": 5, "id": "0b2ac229-917a-4fe1-a65a-786a50488b9e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "Chain([4C:1♩, 4D:0.5♩, 4F:2♩:offset=5, Chain([4G:1♩:symbols=[Slur(kind=start, uuid=r33b92cj, linetype=solid)], 4D#:1♩:symbols=[Slur(kind=end, uuid=r33b92cj, linetype=solid)]])], dur=9, offset=2)
\n", " " ], "text/plain": [ "Chain([4C:1♩, 4D:0.5♩, 4F:2♩:offset=5, Chain([4G:1♩:symbols=[Slur(kind=start, uuid=r33b92cj, linetype=solid)], 4D#:1♩:symbols=[Slur(kind=end, uuid=r33b92cj, linetype=solid)]])], offset=2)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chain1 = Chain([\n", " \"4G:1\",\n", " \"4Eb:1\"\n", "])\n", "chain1.addSpanner('slur')\n", "chain1[0].label='chain1'\n", "\n", "chain2 = Chain([\n", " Note(\"4C\", label='default dur'),\n", " Note(\"4D\", dur=0.5),\n", " Note(\"4F\", dur=2, offset=5),\n", " chain1\n", "], offset=2)\n", "chain2\n", " " ] }, { "cell_type": "markdown", "id": "806e643b-7dd9-44e9-9b52-a69b21ee176b", "metadata": {}, "source": [ "-----------\n", "\n", "## Multiple Voices\n", "\n", "A **Voice** is very similar to a Chain. \n", "\n", "* A Voice contains a sequence of non-overlapping objects (notes, chords, rests, clips)\n", "* A Voice can also contain other Chains. \n", "* A voice has always an offset of 0. \n", "* A Voice corresponds to a part in a Score - they can be stacked together to create a **Score**." ] }, { "cell_type": "code", "execution_count": 6, "id": "283825c3-be45-4cf0-8304-4145e068e543", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "" ] }, "metadata": { "image/png": { "width": 293 } }, "output_type": "display_data" }, { "data": { "text/html": [ "OfflineRenderer(outfile=\"/home/em/.local/share/maelzel/recordings/rec-2023-03-24T21:11:41.437.wav\", 2 channels, 5.20 secs, 44100 Hz)
\n", "
\n", " \n", " " ], "text/plain": [ "OfflineRenderer(sr=44100)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from maelzel.core import *\n", "\n", "# It is possible to create notes/chords in a variety of ways\n", "\n", "righthand = Voice([\n", " Rest(0.25), \n", " Chord(\"4F 5E\", 0.5),\n", " Rest(0.25),\n", " Note(\"5C#\", .25),\n", " Rest(.5),\n", " \"4Eb:.25\", \n", " \"4C,5D:.25\"\n", "])\n", "\n", "lefthand = Voice([\n", " \"R/8\",\n", " \"3B/16\",\n", " \"3F#,4G:.25\",\n", " \"R/8\",\n", " \"2A,3Bb/8\",\n", " \"R/16\",\n", " \"4G#/16\"\n", "])\n", "\n", "score = Score([righthand, lefthand])\n", "\n", "# Create a score structure with a time signature of 3/16 with tempo ♪. = 40\n", "setScoreStruct(timesig=(3, 16), tempo=30)\n", "\n", "score.show()\n", "score.rec(sustain=0.1, fade=(0, 0.1))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.7" } }, "nbformat": 4, "nbformat_minor": 5 }