{ "metadata": { "name": "", "signature": "sha256:52d00b9dab4b07c2d7be33a29b48519fe660c63508c72fbf5ac22aaa63f074b1" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Preamble" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This was taken and slightly adapted from the example section of the abjad documentation. I am not the author of the content (only the porting to noteook format). I have removed all diacritics for now." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from abjad import *\n", "%load_ext abjad.ext.ipython" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use and extra import here" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from abjad.demos import ferneyhough" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Ferneyhough: Unsichtbare Farben" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mikhial Malt analyzes the rhythmic materials of Ferneyhough\u2019s Unsichtbare Farben in The OM Composer\u2019s Book 2.\n", "\n", "Malt explains that Ferneyhough used OpenMusic to create an \u201cexhaustive catalogue of rhythmic cells\u201d such that:\n", "\n", "1. They are subdivided into two pulses, with proportions from 1/1 to 1/11.\n", "2. The second pulse is subdivided successively by 1, 2, 3, 4, 5 and 6.\n", "\n", "Let\u2019s recreate Malt\u2019s results in Abjad." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The proportions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we define the proportions" ] }, { "cell_type": "code", "collapsed": false, "input": [ "proportions = [(1, n) for n in range(1, 11 + 1)]\n", "proportions" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "[(1, 1),\n", " (1, 2),\n", " (1, 3),\n", " (1, 4),\n", " (1, 5),\n", " (1, 6),\n", " (1, 7),\n", " (1, 8),\n", " (1, 9),\n", " (1, 10),\n", " (1, 11)]" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The transforms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next we\u2019ll show how to divide a quarter note into various ratios, and then divide the final logical tie of the resulting tuplet into yet another ratio:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def make_nested_tuplet(\n", " tuplet_duration,\n", " outer_tuplet_proportions,\n", " inner_tuplet_subdivision_count,\n", " ):\n", " r'''Makes nested tuplet.\n", " '''\n", "\n", " outer_tuplet = Tuplet.from_duration_and_ratio(\n", " tuplet_duration, outer_tuplet_proportions)\n", " inner_tuplet_proportions = inner_tuplet_subdivision_count * [1]\n", " last_leaf = outer_tuplet.select_leaves()[-1]\n", " right_logical_tie = inspect_(last_leaf).get_logical_tie()\n", " right_logical_tie.to_tuplet(inner_tuplet_proportions)\n", " return outer_tuplet" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "tuplet = make_nested_tuplet(Duration(1, 4), (1, 1), 5)\n", "staff = scoretools.Staff([tuplet], context_name='RhythmicStaff')\n", "show(staff)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAJ8AAAAvCAAAAADYukdJAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAP+Hj8y/AAAACW9GRnMAAABjAAAAGgDkZzHhAAAACXBIWXMAAA+IAAAPiAEWyKWGAAAACXZwQWcA\nAANDAAAEnQBuEIPdAAAB9UlEQVRYw+WZTW6DMBBGbUJTFAm5O0QrZUFXXc0ReoNIPgWrSL3B3IOT\ncBYuQ4FAqsxg86NgUPlW0ZeH8wQYBxCl66QaEUfTwrmfUioptuuXwyTcuZ/WgGv5FZ9gTVYxKk19\nqOHMiv4s4fch7Km9KkdQNQxWVC7hB8OjwXfnN24k135Sl4WfbtdPQ6r0hJFc+5UFThrpqX4ZPH0k\n9+vHtPwfv/PBd5bDDL9QuIuc4Xd06Cdm+J1PMJwTg/yYFLE/iMAcP4BZkEJSoBpEysX83o8xiReS\nIvQGkXgxv2edpHv1e5UeiaCNFIOIt9v5sXW/N0mXKumRwhtG/N3Oj637bf34bn1+7NsvQzQ/WVrb\nrwCZAERgMlzZL/ebxyMlRtv0C4So95yWwnB7v66fbm9KpBBs+zIHpZKvAT8ONU2IpLgqG3JruF/U\negnuV9yehHlWPw61jURSvCgz0jXcr9tv1ffk+BZBu+acbXoMujcXWpyMyF+T3f1ybFJ1QfPhcsHH\nxN2aeEVzOMSaEQhvSpG2d3RCsPu+W2S7ieFrE8SaEQhvCnp8edpNAus7AQ6xZgTS15D5UZ+Cjz8d\nNZso+ysLDrFmBNLT0OtLfY6SU7+e8FjawyHWjEB6Gnp9Hnkddha2vulkbaV+v/v/g7WNTH5V0Pb/\nap38AqneDnW+QTaMAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTEyLTAyVDA5OjQzOjExKzAwOjAw\nBg0dWAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMi0wMlQwOTo0MzoxMSswMDowMHdQpeQAAAAd\ndEVYdFNvZnR3YXJlAEdQTCBHaG9zdHNjcmlwdCA5LjE0nbNcWAAAAABJRU5ErkJggg==\n" } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "tuplet = make_nested_tuplet(Duration(1, 4), (2, 1), 5)\n", "staff = scoretools.Staff([tuplet], context_name='RhythmicStaff')\n", "show(staff)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAKcAAAA7CAAAAAA72cUIAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAP+Hj8y/AAAACW9GRnMAAABjAAAAGgDkZzHhAAAACXBIWXMAAA+IAAAPiAEWyKWGAAAACXZwQWcA\nAANDAAAEnQBuEIPdAAACQUlEQVRo3u2ZTWrDMBCFR8YtphC0NKHQhbvqpnOEkAsEdICutQr0BnOP\nnMRn0WVc27FbqoljS7FiGTKLBCbvKR+yfkYWVOGDEMtb24DwmDqvSJj4OXdZZYDi5zyj3onTvKNH\n7Fqvwqx97DuPFj4dOV/BJ0Q3fzJVf5TCp4lvN070HiC5riqJnmbqB3Z4TtD1NNLxcyIq7+68J2dl\nyNvqznny7pKbwhTGjXPpeHCOhVZEtAJOKWUxvTpZjLNEJ/linEohrYFTap3iCjhP9d4h4+dsSr41\ncApVmdShOlmKU6GWykG/2Ph0rE4e++Y6OEUyRwgKzul17mMRnHMeTNi7cyI6cW6teH62M0yySexM\n8hWcc9zOJCTtjKTgnGTFdmtnmGSf2ZnsGJxzLePzwTkv5zzjk4JzjtvjmO+pFULYGSZJmESEXz/X\nMj7XwjnPcz8E5xy3xzGPHpz12Z9o+M1ULJwGRYGY4xBpJJxlCm1LlMfNmQE0PakEDBz/4+BUAKL5\nrs9fTF2VKGXxMZWzVcNV+2XJUdqZDePMOz7gnAbbrSGZxtmp4Yp9SPIk7Qw/F/f9WP9uPXeTdXvY\n2yTMXn0atA9LXpjkbz8qu2IQ4Fz9HQ524djvtUeaEEzN7T6SEvT5/rjOpZdvlvs3BgM/j6m53Uei\n7efOo7Nk0+4mmJrbfSRsHjVD9P8/561FTrxCYWpu95GwdakZw9bMaBYImkZ5Qc3tPhK2zruu5/cK\ntm+qYmmk65y/dcjSRGOcddC1um7Z+AHtRmAZMx0qRAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNC0x\nMi0wMlQwOTo0MzoxMiswMDowMDflB8UAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTItMDJUMDk6\nNDM6MTIrMDA6MDBGuL95AAAAHXRFWHRTb2Z0d2FyZQBHUEwgR2hvc3RzY3JpcHQgOS4xNJ2zXFgA\nAAAASUVORK5CYII=\n" } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "tuplet = make_nested_tuplet(Duration(1, 4), (3, 1), 5)\n", "staff = scoretools.Staff([tuplet], context_name='RhythmicStaff')\n", "show(staff)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAKwAAAA0CAAAAAAyb4wqAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAP+Hj8y/AAAACW9GRnMAAABjAAAAGgDkZzHhAAAACXBIWXMAAA+IAAAPiAEWyKWGAAAACXZwQWcA\nAANDAAAEnQBuEIPdAAACE0lEQVRo3u2ZPY6DMBCFxyyKUKTI0jYoTQq6VC72AKv0USQfINqSKmfw\nPTgJZ+EyLCYQbTyAfxQwjvaVkzfDJzQeownUXpVzIYSxG/zCUkqzKhDYklnZ/cJyzsQ6YM9sUnlj\noXkeM+mtJq3n2WELmFYiPXXNqDTn095iblgBQmdh3z2sWSWvsITXVZwHAstZTrlFJa+wdaW3LANb\nWUx7w0qebzA7vSns4SP2o0jYw+7AlxxgN95gTw5tsGWW2sdqZItqgN4S3+xhGTO2dhJUXwP0FurQ\nBm8Oe4FIESFqxMRyWQL25O+AvTnsLdor2mzUCOgt0f80CBr2Auo1T4gaMbH8T4OgYa8vmgbXJWCD\nOmBBwV7JS6YBWaQNgjpgQcEG1QbzHrBCiPEtyqpgK0YyxlI2hrsm2DKG1ibSKdjCZq0+H2wCIN8p\nJzCyhGyrxEBWAMvhjkEA0CPqklGaHa1gZcrnbrDGUwT0lh2CTTtIwLAVa6ddJKsYtkGXQgZrPEVA\nbyEItn+jze9KG1RJN5u/zN7p35RitIaN5ecBm3drHID7sudwUPc5/UVyNN4boRRcw8UioBStmlgi\nBhV1KSM/G6XgGi6WUm0DrD7FYumOUnANFws6YLJtn5+ctinU5g8ClIJruFjQ6JJ9rZwWOT6EBepA\nCq7hYkGXgsu1upjQdcsz30gGsI8PGd9ERrCNxNQn4gr0CzEDTLIivXO9AAAAJXRFWHRkYXRlOmNy\nZWF0ZQAyMDE0LTEyLTAyVDA5OjQzOjEzKzAwOjAwkZIMcQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAx\nNC0xMi0wMlQwOTo0MzoxMyswMDowMODPtM0AAAAddEVYdFNvZnR3YXJlAEdQTCBHaG9zdHNjcmlw\ndCA5LjE0nbNcWAAAAABJRU5ErkJggg==\n" } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "A logical tie is a selection of notes or chords connected by ties. It lets us talk about a notated rhythm of 5/16, for example, which can not be expressed with only a single leaf.\n", "\n", "Note how we can divide a tuplet whose outer proportions are 3/5, where the second logical tie requires two notes to express the 5/16 duration:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "normal_tuplet = Tuplet.from_duration_and_ratio(Duration(1, 4), (3, 5))\n", "staff = scoretools.Staff([normal_tuplet], context_name='RhythmicStaff')\n", "show(staff)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAHUAAAAlCAAAAABZ4fmXAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAP+Hj8y/AAAACW9GRnMAAABjAAAAGgDkZzHhAAAACXBIWXMAAA+IAAAPiAEWyKWGAAAACXZwQWcA\nAANDAAAEnQBuEIPdAAABvUlEQVRYw9WWS26DMBCGx5SAGxVZ6iLIGxbpouomvkCkKheIxK43yIoz\n+B6chLP4Mil2ACV+YGLSpPlXUWY8H8yMh4HjVAk+V80QCyZTKcxVHEB9nU1FAdTkIdQPOlo0vPOV\ndbcMoDI2aibcF4CTAOoqoUrbq6nV6WAW0k19XWO7eYRKZ9T1MVSMIiV8NfXzdBKFUB/TTc9G3USx\nVHTfDM/ppmejzpkSz9ZN/5Jacy7uTBUMrRnLmYv7J9QmBhWW5/ekYgD5liWCcoRaM1fwIGrZXWIE\nQAz/hhGy/pLU+OyqX5qzMaryqExq3tHApAqmJkvkoHZm5KZ2HguT2r9j66BlWOBuoBXWDA/mvRPa\ne5xta81pgWv/xOrHfq+tdsP2XVk3P4/Z6nGEA1OSqwmzCvWbS5DZ6iH0DJvqzmARZLZ76N0kS3t5\nKFdniCuqx2z30G+OLL7egW3Xc2dMj9nuoU8J7wy6iYyJWK4DojQJrd1WniUu6jD9gx5eUEjtk1R8\nv6ib7qDKhxr70nlUYUDFgdeX8UoCiJhpmP5V97/vNpVXEy0wphSnCzUn335srjekKjIv6FJtv/E7\n3Tgz9wt+wnHSpvIi9gAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNC0xMi0wMlQwOTo0MzoxNCswMDow\nMFQ1Mv8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTItMDJUMDk6NDM6MTQrMDA6MDAlaIpDAAAA\nHXRFWHRTb2Z0d2FyZQBHUEwgR2hvc3RzY3JpcHQgOS4xNJ2zXFgAAAAASUVORK5CYII=\n" } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "subdivided_tuplet = make_nested_tuplet(Duration(1, 4), (3, 5), 3)\n", "staff = scoretools.Staff([subdivided_tuplet], context_name='RhythmicStaff')\n", "show(staff)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAG8AAAAtCAAAAACFPmrbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC\nAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE\nAP+Hj8y/AAAACW9GRnMAAABjAAAAGgDkZzHhAAAACXBIWXMAAA+IAAAPiAEWyKWGAAAACXZwQWcA\nAANDAAAEnQBuEIPdAAAB90lEQVRYw+2XTWrDMBCFR45pTcEIujHpIhTvsukseoDcoKATdKlVoTeY\ne/gkPosuM5X/KNXISZ3IaRZ9CyPePOvDsixZwGlFeHB9wxoiknVIi6uRq7pvaa1rtzbPaGY0XavF\neCItL7dNM8CMQVqF94mjPIgAsfAPRpq1tXn/iM1QfUnFUzDK947KsR169HTUXQPH8ksiHuB3G/1U\nsapvHSZeEEvKM55X1+waVoZdbtfmcWVQOz4AG7TaxGJpedy03dVfHMVjF/O6ebkglnh9OT0cN8vb\nbfKztTks55VwgXA57+4S3vaM8XzAuPJtYGxzEflYzkOcKWgKDL9cz0Z+z3u628aVlYFRZiLydvvv\n79q8e5XFBWFBgYg8L+dde7788/55f8xriBzPKTXPoaoRK5wjJua1+bApUnWM10ROBefxCoDuyYwC\nw1H1vBxUGp6BoSd/HBBpf97xh7l9hNcXSgqcx3I+MvGqkQOS54YjRybGcywoEs58ZOJNz+XrwXi6\nYtxTXnmm8C6cZjYCdvjD8N7w17HbBf8eD9Metj9ZEI4wLLTUy3sFRZWNtxSnC8IRRhuOp9R0iztd\nEE4kEsyX7hX+7Lbqb9FyGZAF4chI+D107zicnn5CE0vJgnBkJPzej6xbSSTWM1OviYus16vifu5H\ndGw/SqMvHKo/J1VL7UcAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMTItMDJUMDk6NDM6MTUrMDA6\nMDDyQjlLAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTEyLTAyVDA5OjQzOjE1KzAwOjAwgx+B9wAA\nAB10RVh0U29mdHdhcmUAR1BMIEdob3N0c2NyaXB0IDkuMTSds1xYAAAAAElFTkSuQmCC\n" } ], "prompt_number": 9 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The rhythms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we know how to make the basic building block, let\u2019s make a lot of tuplets all at once.\n", "\n", "We\u2019ll set the duration of each tuplet equal to a quarter note:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "duration = Fraction(1, 4)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "And then we make one row of rhythms, with the last logical tie increasingly subdivided:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def make_row_of_nested_tuplets(\n", " tuplet_duration,\n", " outer_tuplet_proportions,\n", " column_count,\n", " ):\n", " r'''Makes row of nested tuplets.\n", " '''\n", "\n", " assert 0 < column_count\n", " row_of_nested_tuplets = []\n", " for n in range(column_count):\n", " inner_tuplet_subdivision_count = n + 1\n", " nested_tuplet = make_nested_tuplet(\n", " tuplet_duration,\n", " outer_tuplet_proportions,\n", " inner_tuplet_subdivision_count,\n", " )\n", " row_of_nested_tuplets.append(nested_tuplet)\n", " return row_of_nested_tuplets" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "tuplets = make_row_of_nested_tuplets(duration, (2, 1), 6)\n", "staff = scoretools.Staff(tuplets, context_name='RhythmicStaff')\n", "show(staff)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n" } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we can make one single row of rhythms, we can make many rows of rhythms. Let\u2019s try:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def make_rows_of_nested_tuplets(tuplet_duration, row_count, column_count):\n", " r'''Makes rows of nested tuplets.\n", " '''\n", "\n", " assert 0 < row_count\n", " rows_of_nested_tuplets = []\n", " for n in range(row_count):\n", " outer_tuplet_proportions = (1, n + 1)\n", " row_of_nested_tuplets = make_row_of_nested_tuplets(\n", " tuplet_duration, outer_tuplet_proportions, column_count)\n", " rows_of_nested_tuplets.append(row_of_nested_tuplets)\n", " return rows_of_nested_tuplets" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "score = Score()\n", "for tuplet_row in make_rows_of_nested_tuplets(duration, 4, 6):\n", " score.append(scoretools.Staff(tuplet_row, context_name='RhythmicStaff'))\n", "show(score)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n" } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "That\u2019s getting close to what we want, but the typography isn\u2019t as good as it could be." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The score" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we\u2019ll package up the logic for making the un-styled score into a single function:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def make_score(tuplet_duration, row_count, column_count):\n", " r'''Makes score.\n", " '''\n", "\n", " score = Score()\n", " rows_of_nested_tuplets = make_rows_of_nested_tuplets(\n", " tuplet_duration, row_count, column_count)\n", " for row_of_nested_tuplets in rows_of_nested_tuplets:\n", " staff = scoretools.Staff(row_of_nested_tuplets, context_name='RhythmicStaff')\n", " time_signature = indicatortools.TimeSignature((1, 4))\n", " attach(time_signature, staff)\n", " score.append(staff)\n", " return score" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "score = make_score(Duration(1, 4), 4, 6)\n", "show(score)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nYII=\n" } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then we\u2019ll apply some formatting overrides to improve its overall appearance:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def configure_score(score):\n", " r'''Configured score.\n", " '''\n", "\n", " moment = schemetools.SchemeMoment(1, 56)\n", " set_(score).proportional_notation_duration = moment\n", " set_(score).tuplet_full_length = True\n", " override(score).bar_line.stencil = False\n", " override(score).bar_number.transparent = True\n", " override(score).spacing_spanner.uniform_stretching = True\n", " override(score).spacing_spanner.strict_note_spacing = True\n", " override(score).time_signature.stencil = False\n", " override(score).tuplet_bracket.padding = 2\n", " override(score).tuplet_bracket.staff_padding = 4\n", " scheme = schemetools.Scheme('tuplet-number::calc-fraction-text')\n", " override(score).tuplet_number.text = scheme" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "code", "collapsed": false, "input": [ "configure_score(score)\n", "show(score)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n" } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The proportional spacing makes the score much easier to read, but now the notation is much too big. We\u2019ll clean that up next." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The LilyPond file" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let\u2019s adjust the overall size of our output, and put everything together:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def make_lilypond_file(tuplet_duration, row_count, column_count):\n", " r'''Makes LilyPond file.\n", " '''\n", "\n", " score = make_score(tuplet_duration, row_count, column_count)\n", " configure_score(score)\n", " lilypond_file = lilypondfiletools.make_basic_lilypond_file(score)\n", " configure_lilypond_file(lilypond_file)\n", " return lilypond_file" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "def configure_lilypond_file(lilypond_file):\n", " r'''Configures LilyPond file.\n", " '''\n", "\n", " lilypond_file.default_paper_size = '11x17', 'portrait'\n", " lilypond_file.global_staff_size = 12\n", " lilypond_file.layout_block.indent = 0\n", " lilypond_file.layout_block.ragged_right = True\n", " lilypond_file.paper_block.ragged_bottom = True\n", " spacing_vector = layouttools.make_spacing_vector(0, 0, 8, 0)\n", " lilypond_file.paper_block.system_system_spacing = spacing_vector" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "lilypond_file = make_lilypond_file(Duration(1, 4), 11, 6)\n", "show(lilypond_file)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n91QvrYqLz3uKo3iM0zHhLNl2v5pOmLHPzKQvnwq7p7pb9evn2MkhO6zT/CKd01enM+fkU0eWf/3d\nbbxtOUt2GDvM6WF89Avz9Zv4XtpXzszeM8wnt4NWz0b5CiHHu6bk868dZ+bbV+cx95V7yu3kFOen\nu1Wfn9zGPGTHaHnMdvt9vHNtVdcbeb8t3cbblrO43nX6MK/xKYZXmM1jRxjXe2lfOTNuD5xbmJnb\nQatno3KRm/c4T587zszjxnnMfeWecm7V5rG7Ve6XOayz/Ef7NttvXffseiC7v6vvn6WHMFHxUag+\nYTqPNeS9dAsTdDmD5gqhzhvu9SuO/z2VVa+t8I5d85psj9vj6Wm78298+geyf5Yewuz2sWeYHlrl\nf2ZErdJcIdRPq/zvqcyuVYfQiw1dbkzH+nRvNcyfL0znsYa8l25hBv1AO88bvh/8ddd0zyvrgBqt\nAtRoFaBGqwA1WgWo0SpAjVYBanfzAjc5jPGuhClM7DKIatcf54sBzO3ecvo8RJaS1gkgVwOHOfs8\npTAn8+1dknKrDB/zZjeftJgpTOQ/pP+uD7NBJFMKczVvCzMfOMzZw5TC5O5nVK20qvkN/JFa1Rwm\n8h/Sf9evhs/gW9l9PpztZnZhvviEaV351vrhi60fqfnsNuJKs/mX5jBP9qOv7DbbvFntuvntLkml\nVc2Pu5Fa1RwmchpFtOs/Xjabzc/eI2o3+5SH+d1x99aV7Xdw664fN41eHpqXLzSbG/5GZ2k/+sJu\ns4cXq10ffrlLUmlV7fmhxUnviSlM5DaMZtfiSdeyvtxyRO1mD01PObp2b10Z0CqeAVo8A1w2XT48\n1jPAxjCR60CKXX9YLJdL1wdyX5u95GFcf3C2rgxoVZ6lwWLevHyu2fwlOMzccrOF1a7z/7pLUmlV\nvG86hSO1qjlM5DiOZNfiM539R9Ru5hWmdWVAqwwrTSNOZvPIbrOmcx1ZbFZ9BnhcNby6O9YzwMYw\nkfNIgl1pleNKWnVdkjy9ruKG96ZGalVzmMh5JMGutMpxJa26Lkm+ZOt5wzDjtMoQJnIdSLErrXJc\nSauuS07DpvOGVwjGaZUhTOQ8kmBXWuW4kla9Lzkk30/D5h99U3VI3r5mQzOEOSTHyH2w8F2/JP4j\n2h74kFjNteYVpnXs87n2Sm8Y1zTiZDZv2LR5s9q5bjofDZu9tyqNzq+633/i4Wl59D8t3/SXMYQp\nFvtlCd31zXdE2wMX2yX9hGkd+3KuPdIbxjWNOJnNGzY1bvZWX7Tq3OzaqnX+XtbT6cfD3QsE6/k+\n+/VDNixDmGLx0n/EgF03zYu7R7Q9cLFd3E+Y1rEv59ojvWFc04iT2bxhU+Nmm/qiZedmp1Y9r/IJ\ngot3iJ+jaH43l/Np2cdZ2DTG7gxhLosDRtTtajmi7YHDhmvfu3Wt/0rXMJPZvGGZdrP95WfVaeU8\n/8mwvStdtF3NoqE/+skQ5rI4YETdrpYj2h44bLj2vVvX+q90DTOZzRuWaTe7vVpRzENflxaTew/N\nEMawOGDE/sPYHjhsuPa9W9f6r3QNM5nNG5ZpN+NvgQE5WgWo0SpAjVYBarJWXX5lC5rgQSWdUJZp\nmdSZmVQYJVWrjuv4Nf/3Lh77Ft3CTCLLtEzqzEwqjNStVd8eI2/5fI9JPufJ/nWf7f3Hub5vrQiT\nZ5GEmZSPfm9mF/blMxN7D/N8vQph6Z8lOpbDrL2Heeya23UMt1Z9bf2knXbHfAbgbJcd8zleU/9x\nrrOMCcIUWSRhJuXpzf8WpeUzc/Qe5u16berMP0v+sLuFOXgPsxn+2u9ut1a5z9ZXER+LMVZBU6Vd\nH8iCMKFZwiYS7E3gM3bFmRHNtagJE/hI6YesVctsezpH23XQ5U2qVhVhArP8OVulODOyVinCTLxV\n6eAzPdZdXw2aVJhJmUKqY+2L8UzhkVLD+1WAGq0C1GgVoEarALVeWjWBX2InFGaq1+VMLtDoZPdU\nH63KL0FJ43086BmZbJipXpdTBJrI3RRH8QSy6O6pjlZ9ih3tz1ctHbL94RRu77j3p7Ysv352DXMo\nh0ld976G+fbVdddyhPLlU97DfG29Lsc9YPp+Yoozc5CG+U/XMNtTq05J3h8yrmE+//p+3PTfvc/u\n+ykp3VPbkJG+futo1cx1xP35qqVddnhN3R9Gre8qfn5yDXMoh3Fu1TXM48b/DB/K1+X4t2rz2HZm\n3AOm7yemODOuD+T2MB9dw2yz/T7eXR4yrmGeLtOZps6P1btTUr6ntiEjbR67WpU5O1+C8mr8jFXv\nw/m8iy4JM6mLhJp4BHwP5HVm5GFOvdr63ku3R0X4tTCSC93y86NvVX4JyvYYJz4XoshbJQkzqYuE\nmvgELE5M5nVm9BVPYu97SdkqyYVuFq0aePr61sMdBv60p2uY/fgXxaSt//0cOOCkwtweFQM/Vs3S\nPe9XAWq0ClCjVYAarQLUaBWgRqsANVoFqJVadWh6wT+xHklLHibk3YyflgN4mFIY21ibYcOcraYU\nJlebp68823bTlHs+F5EoNIUJmvY7Ctj3YTaESYWxjDUfOExrpHHCnMzvk1Ra1fCe+XitqocZrVVf\nGj6D7832EwtXttsFhNm0fkhgR9T2gO2xnpo+oc8QxhTDGM8U7MkhTNMYG8sz2BSsMWwtUKVVDY+8\n8VpVDzNuq+7+ls06jO2BbbdrCtN+L3VEjQLWFg/ku0uUTGFMMYzxIsflE23VfFtLOl6r6mHGfQZ4\n9wHRo7WqCHP3TH60Vs0dwvTeqqk+A1zW/rh4xGeAtTCjterl4enp6e6xM1qrijA/VZeN1qrFKcvT\nz3Zhem9VEebOvGHZhwe7ZQ8f7JY9Le6TVFoV72uBx2tVPcxorWo6CaO1qinMaK1qWjtaqyLLZbZn\nsClYY9jaQarPAI+r+7+2GPEZYC0MrTKFoVWm5bYBe2zV6yq+f1tnvFbVw9AqUxhaZVpuG7C/Vn3J\n1vP7wUdrVUMYWmUKQ6tMy20D9teqOEvn968QjNaqhjC0yhSGVpmW2wbss1VZ/jFSVqeob01haJUp\nDK0yLbcN2FOrDsn3OP/EpvLKQ5J8NZyifjWH+R57DXbe+Tlg3y9JfZldmENyjKQBm8PUl9lGbQ/Y\nEb8ptCmMKYZ5efOhjZGaw9gFtL2Lm5fVA723Ko3O7+aVXyA4LYt2/zbwR7C0hKm93eg2YBKw71tz\nQKt9ba5Esg1oDPPWusemde3Kb21jaFMYU4zW5Sv75eYwFgFt72Ljslqg2fMqn7N4UVw9EEXz0lzO\ni9lj9DQPmE/ZV3OY87KgAVX72o5nfdyQAdv37W+tU5i+l1uHGWLZ/vKzqrjwIp+BtFS4+THbzl+z\n4TWFuSwLGlC1r+141scNGbB93/7WOoXpe7l1mCGWXZ8Bnn6Oze/fqoq2q1k0xkfhNYZpWBY04BBh\nrI8bMmD7vv2tdQrT93LrMEMsu71aUbvy+PSUMUlG+KXKEKZxWdCAQ4SxPm7IgO379rfWKUzfy63D\nDLGMv7AH5GgVoEarADVaBajRKkCNVgFqfbVq/CmfJhcmvfv3BEwkytTOTHAeeavi4qre9+nAxzah\nMMnqcNzl1wtPIs35zEwjyunMTCmO4p5qa9XH58jV8bBOT3kO+XTg2dF596U5qMdlfOcw51nks70w\nzD9dw+QTOEfZdntcv58a1zjPT7oweZzzmTlHiV13bwnz7dFxrLg4M7tdtvaM8/hNF+aap3xPOZ+e\n0/lpa9VT62c3Njo1Kf9opF0+HXj+vrOjlg9KnTkP9h5mV8xNnl8pIgtj/cmZF/lM9q/5/4+XU+MY\n5+1ZFyYp/oO3vEY5uu7eEuar7WePXhyLM7NO08gzzuarLsw1T/mecj49p/PT1iqfJ4frbJ9HKaYD\ndzfzWjV4mPbpppvtd9lxlx4807Qc0SfM5cz4nZiWI/rMiH46M6dKbT3jtBzRa3r20Hsq65pt26dV\nr0k+DfgxW7rvmslblYc5ZZGH8XggH9fbdBmtjp6nRt2q9zPjd2K0rTqdmeLXKs848lYF3lNZV6t8\n//DC39FrFWEmEyYd/GW8liMOH+bdkferADVaBajRKkCNVgFqXXMtAnDVNdfiWI4brZ9CwvwuDtPI\n9gWr34YIc9P+IQs/Dxvm7HdDmJ/GCNN4jrrmWhxLIp64axES5kUcplEypTA3X1rDLIYNc/Y/DGGW\nY4RpPEetcy2O9XHQJ7/M7ycKn/vMLn4V1KofFt5h7Df8bhnmxTVM++pF++r5f7WGWdR3MA20MK1w\nzT3/0TZM421rDBK2Ye0cVZ8BzqtPQ0ZsVf3zrKOg8YL2rp8H6+GsN7Q+185h2ld3fAh7R6zIYknH\nQMZ44SM13rbG3SPthtW5FrevHZsP5m2+WCweum6PvaC9V3mYysf+Wg9nvaH1uX7Mw1TMFq3aV8/n\n7av/39Yw9Z1nrscxxjOO9HfbMI3HbFw4C9qwdo7u5lqsXvk0Zqvy56uVNFHQeEF7P/iHsd7Q+lw/\nDPs7Q/vHyY8ywfXLlMI0nqO7uRar716N2KrfNufL8m+ioPGC9v765h3GekPrc/2l9vc5HX8K0r76\nrf3PJTa/tYZ5tj7axvRnRcZ4xpFMkZ6sbltjkFXQhrVAlVYlr9WPjB6xVd8fNncvh0dB4wXt/Y+X\nU5jKTO3Ww1lvaH2uP+VhKvdjxzHaV4f9XvWx9kp35DqQMZ7zSMs8TPkBPI3fq6J0mbZvPhieAbaG\nqTzn6DhG++qwVs2twwzQqiJMeeU0WjXbxvv2zQfzPX8J0+Wx0yFo7+KVdb8w1htan+sijMsPzvbV\nYa0qXny2CjNAq4ow0/tZlczXU2kVr6zLwrSv5pV107FErdpk+8n8XkWrZGHaV9Mq07FErTpleOVn\n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\nQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1W\nAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0\nClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCj\nVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAa\nrQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLU\naBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWg\nRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsA\nNVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoF\nqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEq\nQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1W\nAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0\nClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCj\nVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAa\nrQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLU\naBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWg\nRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsA\nNVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoF\nqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEq\nQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1W\nAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0\nClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCj\nVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAa\nrQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLU\naBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWg\nRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsA\nNVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoF\nqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEq\nQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1W\nAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0\nClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCj\nVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAa\nrQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLU\naBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWg\nRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsA\nNVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoF\nqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEq\nQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1W\nAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0\nClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCj\nVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAa\nrQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLU\naBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWg\nRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsA\nNVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoF\nqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEq\nQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1W\nAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0\nClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCjVYAarQLUaBWgRqsANVoFqNEqQI1WAWq0ClCj\n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\nc2NyaXB0IDkuMTSds1xYAAAAAElFTkSuQmCC\n" } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }