<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5648227177104898374</id><updated>2026-10-11T15:30:14.199-07:00</updated><category term="linux"/><category term="piano"/><category term="composition"/><category term="lmms"/><category term="music"/><category term="algorithmic composition"/><category term="canon"/><category term="classical"/><category term="poetry"/><category term="choir"/><category term="lilypond"/><category term="algorithmic"/><category term="experimental"/><category term="music theory"/><category term="soundscape"/><category term="choral"/><category term="fluidR3"/><category term="mixing"/><category term="original song"/><category term="python"/><category term="tutorial"/><category term="Canon (Music)"/><category term="avant-garde"/><category term="bach"/><category term="bassoon"/><category term="cello"/><category term="concert"/><category term="equalizer"/><category term="fuga"/><category term="generative"/><category term="jazz"/><category term="leuven"/><category term="modes"/><category term="pitch shift"/><category term="poem"/><category term="pop"/><category term="rhythm"/><category term="solo"/><category term="supercollider"/><category term="synthesizer"/><category term="tonal"/><category term="tunestorm"/><category term="6-part"/><category term="Compose a track"/><category term="Gaubert"/><category term="Harpsichord"/><category term="Kronke"/><category term="Samuel Menashe"/><category term="Table Canon"/><category term="XIV"/><category term="YouCoLeLe Twilight"/><category term="animals"/><category term="announcement"/><category term="ardour"/><category term="arpeggio"/><category term="atonal"/><category term="atonality"/><category term="audio"/><category term="belgium"/><category term="between walls"/><category term="blues"/><category term="bohlen-pierce"/><category term="book"/><category term="broken"/><category term="canon in 5"/><category term="capella academica"/><category term="carnival"/><category term="catalogue"/><category term="chords"/><category term="clarinet"/><category term="compressor"/><category term="constraint"/><category term="crab canon"/><category term="daydream lullaby"/><category term="delay"/><category term="description"/><category term="deux papillons"/><category term="digital sound design"/><category term="distortion"/><category term="divertissement grec"/><category term="donkey"/><category term="dove"/><category term="download"/><category term="dsi"/><category term="duck"/><category term="ducker"/><category term="effects"/><category term="elizabeth"/><category term="encoding"/><category term="equipment"/><category term="euclid"/><category term="expander"/><category term="fairy tale"/><category term="fast"/><category term="fear of change"/><category term="flute"/><category term="free"/><category term="freesound"/><category term="frye"/><category term="fun"/><category term="gate"/><category term="geese"/><category term="generative music"/><category term="glass"/><category term="goose"/><category term="gospel"/><category term="gruesome"/><category term="gui"/><category term="harmonize"/><category term="horror"/><category term="humor"/><category term="instrument"/><category term="instrumental"/><category term="invention"/><category term="jack"/><category term="jazzy"/><category term="julia galef"/><category term="key"/><category term="keyboard"/><category term="lady"/><category term="latex"/><category term="limited transposition"/><category term="limiter"/><category term="lullaby"/><category term="lyx"/><category term="mastering"/><category term="meditation"/><category term="messiaen"/><category term="microtonal"/><category term="midi"/><category term="minimal"/><category term="minimal music"/><category term="modal transposition"/><category term="mode"/><category term="modpo"/><category term="modulation"/><category term="mood"/><category term="musescore"/><category term="music composition"/><category term="musicxml"/><category term="near-tonal"/><category term="near-tonality"/><category term="oboe"/><category term="original"/><category term="palindrome"/><category term="paths"/><category term="pdw"/><category term="pedaling"/><category term="philip glass"/><category term="philosophy"/><category term="pig"/><category term="pitch extract"/><category term="principle"/><category term="randomness within constraints"/><category term="realtime"/><category term="reception"/><category term="requiem"/><category term="rev2"/><category term="reverb"/><category term="rtmidi"/><category term="rutger kopland"/><category term="score"/><category term="seal"/><category term="seaside"/><category term="sheep"/><category term="sing"/><category term="sleepless"/><category term="song"/><category term="sonic visualiser"/><category term="soundfont"/><category term="sourceforge"/><category term="staccato"/><category term="stravinsky"/><category term="streams"/><category term="strict canon"/><category term="string quartet"/><category term="strings"/><category term="symmetry"/><category term="synthesis"/><category term="technique"/><category term="the fly"/><category term="time signature"/><category term="time stretch"/><category term="tongue-in-cheek"/><category term="tremolo"/><category term="tunestorm07"/><category term="university of philippines singing ambassadors"/><category term="upsa"/><category term="vibrato"/><category term="viola"/><category term="violin"/><category term="virtual"/><category term="vocal"/><category term="vocals"/><category term="voice"/><category term="wcw"/><category term="wedding"/><category term="william blake"/><category term="william carlos williams"/><category term="yoshimi"/><title type='text'>A touch of music</title><subtitle type='html'>&lt;p&gt;A hobbyist&#39;s music page. I do welcome comments :) &lt;/p&gt;&lt;p&gt;&lt;i&gt;Any correspondence of this blog&#39;s name to names of individuals, organizations, companies, products or other blogs is pure coincidence. Except where explicitly noted, all material posted on this site is available under a &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/us/&quot;&gt;creative commons attribution sharealike license&lt;/a&gt;. If you believe I&#39;ve infringed on your copyright please notify me.&lt;/i&gt;&lt;/p&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-384312154147574728</id><published>2020-03-28T10:33:00.002-07:00</published><updated>2020-03-28T10:33:13.744-07:00</updated><title type='text'>Music and Geometry - part IV: Second Voice Leading Plane Live Improvisation </title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
&lt;section class=&quot;elementor-element elementor-element-26cd05b6 elementor-section-boxed elementor-section-height-default elementor-section-height-default elementor-section elementor-top-section&quot; data-element_type=&quot;section&quot; data-id=&quot;26cd05b6&quot;&gt;
      &lt;div class=&quot;elementor-container elementor-column-gap-default&quot;&gt;
&lt;div class=&quot;elementor-row&quot;&gt;
&lt;div class=&quot;elementor-element elementor-element-6ba3da68 elementor-column elementor-col-100 elementor-top-column&quot; data-element_type=&quot;column&quot; data-id=&quot;6ba3da68&quot;&gt;
&lt;div class=&quot;elementor-column-wrap  elementor-element-populated&quot;&gt;
&lt;div class=&quot;elementor-widget-wrap&quot;&gt;
&lt;div class=&quot;elementor-element elementor-element-68c34e23 elementor-widget elementor-widget-text-editor&quot; data-element_type=&quot;widget&quot; data-id=&quot;68c34e23&quot; data-widget_type=&quot;text-editor.default&quot;&gt;
&lt;div class=&quot;elementor-widget-container&quot;&gt;
&lt;div class=&quot;elementor-text-editor elementor-clearfix&quot;&gt;
&lt;h1&gt;
Introduction&lt;/h1&gt;
In the&amp;nbsp;&lt;a href=&quot;https://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-i-pitch-class.html&quot;&gt;first article&lt;/a&gt; we introduced the pitch line. The&amp;nbsp;&lt;a href=&quot;https://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-ii-pitch-class.html&quot;&gt;second article&lt;/a&gt; examined what happens to the pitch line if you remove all octave information and replace pitch with pitch class. As we found out the pitch line bends into a pitch circle. In the&amp;nbsp;&lt;a href=&quot;https://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-iii-intervals.html&quot;&gt;third article&lt;/a&gt; we left the one-dimensional spaces of pitch and pitch circle, and we started looking at intervals, represented as points in a 2d-plane. In this fourth (and for now final) article in this series about geometry and music, we will examine the effect of removing octave information from the voice leading plane and replacing pitch with pitch class.&lt;br /&gt;
&lt;br /&gt;
First, let’s recall what we ended up doing last time.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_FbMxyu7pOfygNQOfnXhAMC7Xuui4Qiarzx44EhmdgHDCfctXG4lzeIIskH64QFPxa5NMNTMFYgNuvXRrFD3kyCKU6wvi-WfJFrqzahfwa7zOwyipsnJkPDt87pFXb2hFaAOmeuaDAyA/s1600/motionarrows_rotated.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1068&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_FbMxyu7pOfygNQOfnXhAMC7Xuui4Qiarzx44EhmdgHDCfctXG4lzeIIskH64QFPxa5NMNTMFYgNuvXRrFD3kyCKU6wvi-WfJFrqzahfwa7zOwyipsnJkPDt87pFXb2hFaAOmeuaDAyA/s640/motionarrows_rotated.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Live improvisation in the 2d voice leading space&lt;/h2&gt;
If you are not afraid of computers and trying new things, I’ve created a supercollider program that allows you to explore the 2d voice leading space auditively by navigating it using the computer mouse.&lt;br /&gt;
&lt;br /&gt;
If you want to play with the program yourself, you will first need to install the free and open source supercollider system. You can download it from the&amp;nbsp;&lt;a href=&quot;http://supercollider.github.io/download.html&quot;&gt;supercollider download site&lt;/a&gt;.&lt;br /&gt;
Before you worry: this is free of cost and completely legal.&lt;br /&gt;
&lt;br /&gt;
The second step is to download the voiceleadingplane.sc code I wrote from&amp;nbsp;&lt;a href=&quot;https://github.com/shimpe/voiceleadingplane&quot;&gt;my github page&lt;/a&gt;. If you have no idea how to use github, the easiest is to click the green “Clone or download” button on&amp;nbsp;&lt;a href=&quot;https://github.com/shimpe/voiceleadingplane&quot;&gt;my github page&lt;/a&gt;, and then the “download ZIP” link that appears. This will download a .zip file to your computer that contains the voiceleadingplane.sc program as well as&amp;nbsp;a LICENSE agreement that basically grants you the right to use this software for any purpose you see fit, including modifying it and calling it your own, as long as you distribute your derived work under the same license for others to learn from and to modify.&lt;br /&gt;
&lt;br /&gt;
Finally you will need to start the “scide” editor that you installed as part of supercollider, and paste the contents of the voiceleadingplane.sc file in it, put the cursor just before the first bracket and press ctrl-enter (or command-enter on a Mac). You can change the sounding interval by clicking the different points in the voice leading space.&lt;br /&gt;
&lt;br /&gt;
The next video gives a demonstration of me exploring my newly created musical instrument. Navigating the voice leading space like this to actually create music is new to me as well. As with any new instrument this one too would benefit from some practice to make (better) music!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/HFjo2OaZ10c/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/HFjo2OaZ10c?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
I kept the program as simple as possible. Did you like what you see? Did you encounter problems? Do you wish you had additional features to play with? Consider logging a &lt;a href=&quot;https://github.com/shimpe/voiceleadingplane/issues&quot;&gt;bug or a suggestion&lt;/a&gt; on github then.&lt;br /&gt;
&lt;h2&gt;
Removing octave information&lt;/h2&gt;
Recall from last article that every point in this plane consists of a pair of notes with associated octave number. Now what happens if we remove the octave information?&lt;br /&gt;
&lt;br /&gt;
If we no longer consider the octave numbers, the space contains a lot of points that represent duplicate information, e.g. the points (E3,G3), (E3,G4), (E4, G3), (E4, G4), (G3, E3), (G4,E3), (G3, E4) and (G4, E4) are all equivalent (as well as all other intervals consisting of an E-note and a G-note). In the following figure, these (E,G) and (G,E) intervals are colored.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpNL2ytjjiQ36ybspqklEa-fkJ8ZiEOOmyXBhLj9XfO_iKkhRnP8v6Y9QBQGVhRTSPHijr_tno-a3Ti08GuE8quB9SPbzeK54iyhjj_drOhCWpcT0-TAir7QWzdmGkNlUDGspVLvdU6wE/s1600/equivalentpoints.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1068&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpNL2ytjjiQ36ybspqklEa-fkJ8ZiEOOmyXBhLj9XfO_iKkhRnP8v6Y9QBQGVhRTSPHijr_tno-a3Ti08GuE8quB9SPbzeK54iyhjj_drOhCWpcT0-TAir7QWzdmGkNlUDGspVLvdU6wE/s640/equivalentpoints.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As there’s no need to keep all those equivalent points around, we will select some that, taken together, represent all possible intervals (discarding octave information).&lt;br /&gt;
&lt;h3&gt;
Selecting each possible interval&lt;/h3&gt;
In the next figure each point is colored according to the size of the interval it represents. We select a subset of the points that covers all distinct intervals ignoring octave information. Only the points that fall completely in the black rectangle are part of the selection. Given that horizontal movement represents parallel motion, it should not come as a surprise that the colors form horizontal bands. (The colors represent the size of the interval.) The fact that the colored bands are distributed symmetrically around the horizontal axis should not come as a surprise either: this is the consequence of the fact that (because of ignoring octave information) an interval like (E,G) is equal to an interval (G,E). When you move along the 45deg axes, you’re moving in parallel with one of the contributing pitch lines (and therefore perpendicular to the other one), and therefore you expect to hear oblique motion.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUlzCJeXBFtDauOVcjSvUOeKRcn1ZWqhadHkuOBGVZrze0Nb0d5fbI5-LnY0Kl2bUIkDGdduFaNcK4G5HDZwldFcjBvdabB6VbZoUxJtxgVZLZWypwxAjgeCgLrriYLjvYZlej9gvw_1Y/s1600/ribbon_selected.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1068&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUlzCJeXBFtDauOVcjSvUOeKRcn1ZWqhadHkuOBGVZrze0Nb0d5fbI5-LnY0Kl2bUIkDGdduFaNcK4G5HDZwldFcjBvdabB6VbZoUxJtxgVZLZWypwxAjgeCgLrriYLjvYZlej9gvw_1Y/s640/ribbon_selected.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Let us look at this selection of points in more detail. In the following image, the selection of points has been stretched horizontally, and squeezed vertically, but it is still the exact same selection of points as in the previous image.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zYlccaxG4G_EsMgFmx7G2iCeuJI-orEQfK5c5PQY2rAjbSW_SelF49vAnYxQaGqMwylW2ZV-T1MBKQD8hwh_DvH7RXuqXffgVXEpghlSVvZMRxsWdLZev4wB4V7_9xAnIxjkWG5sPQw/s1600/ribbon_selected_alone.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;231&quot; data-original-width=&quot;1068&quot; height=&quot;138&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8zYlccaxG4G_EsMgFmx7G2iCeuJI-orEQfK5c5PQY2rAjbSW_SelF49vAnYxQaGqMwylW2ZV-T1MBKQD8hwh_DvH7RXuqXffgVXEpghlSVvZMRxsWdLZev4wB4V7_9xAnIxjkWG5sPQw/s640/ribbon_selected_alone.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Each ellipse shape in the ribbon corresponds to a point on the 2d voice leading plane. Moving vertically in this plane still represents perfect contrary motion, and moving horizontally represents parallel motion.&lt;br /&gt;
&lt;h2&gt;
Bending the voice leading plane&lt;/h2&gt;
To fully understand the beauty of what we’ve created here, we need to take a second, very close look at the colorful ribbon. We’re especially interested in what happens at the borders of the ribbon. It will become apparent that the ribbon does not represent all our intuitions about the 2d voice leading plane. Recall that moving horizontally causes the 2 voices to move in parallel motion. Look at the upper side of the ribbon. It starts with (C,C), and as we move horizontally, it goes to (C#,C#), …, all the way to the right where it says (F#,F#).&lt;br /&gt;
&lt;br /&gt;
Now what happens if we try to go even further horizontally? Well, at first sight we just drop off the ribbon into empty space. But look closely… what we should be doing, taking into account that moving horizontally implies parallel motion, is jumping to the lower left corner and continuing our journey going horizontal until we reach the lower right corner of the ribbon, where it says … (B,B), (C,C) again. And what happens if we try to go even further horizontal? Indeed! We jump back to the upper left corner and continue our journey horizontally.&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;It is as if the upper left corner and the lower right corner are one and&lt;br /&gt;the same point in space. And in the same way the lower left corner and the&lt;br /&gt;upper right corner are the same point in our interval space. Our ribbon does&lt;br /&gt;not represent these intuitions explicitly.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;
Similarly, you can verify that travelling vertically on the ribbon represents perfect contrary motion of the voices, and that again the same corners seem to be connected to each other as in the previous paragraph. Now also verify how every point on the right side of the ribbon matches up with the upside-down points on the left side of the ribbon.&lt;br /&gt;
&lt;br /&gt;
Our 2d ribbon representation does not explicitly show these connections between corners and left and right side of the ribbon. Can we do something, similar to what we did with bending the pitch line into a pitch circle, to get a graphical representation that makes all these connections explicitly visible?&lt;br /&gt;
The answer is: yes! But it’s not as easy as when we bent the pitch line into the&lt;br /&gt;
pitch circle. I’ve created a video to illustrate&amp;nbsp;how it can be done.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/XVBPqhZjOSc/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/XVBPqhZjOSc?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
This time we use&amp;nbsp;3 dimensions to represent the effect of ignoring octave &amp;nbsp;information and order between notes in the intervals on our 2d plane. Despite using 3 dimensions to draw our space, the resulting space is really still two-dimensional. Only points glued to the surface have a physical interpretation as an interval. The resulting figure is a so-called Moebius strip. It is a fascinating geometrical object for many reasons.&lt;br /&gt;
&lt;br /&gt;
Amusing videos illustrating some of the wonders of Moebius strips can be found on Youtube. Here’s one (not made my be) that illustrates the unexpected things that can happen if you &lt;a href=&quot;https://www.youtube.com/watch?v=-u-O_2Hz82I&quot;&gt;try to cut Moebius strips in half&lt;/a&gt;.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%204_%202d%20Voice%20Leading%20Plane%20&amp;amp;%20Live%20Improvisation%20_%20MusicWiz.club_files/ribbon_selected_alone.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%204_%202d%20Voice%20Leading%20Plane%20&amp;amp;%20Live%20Improvisation%20_%20MusicWiz.club_files/ribbon_selected.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%204_%202d%20Voice%20Leading%20Plane%20&amp;amp;%20Live%20Improvisation%20_%20MusicWiz.club_files/equivalentpoints.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%204_%202d%20Voice%20Leading%20Plane%20&amp;amp;%20Live%20Improvisation%20_%20MusicWiz.club_files/motionarrows_rotated.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/motionarrows_rotated.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/motionarrows.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/motions.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/voiceleading.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/2dspace-poging2-counterpoint.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/counterpoint.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/intervalspace.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/14223235/segment.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/drawing7.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/examples2.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203045/examples.svg.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203120/invert_math.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203127/transpose_math.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/transposition_pitchclass_circle_coordinate.jpg&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/-u-O_2Hz82I/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/-u-O_2Hz82I?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Here’s another one (also not made by me) that demonstrates how Moebius strips, despite first appearance, have &lt;a href=&quot;https://www.youtube.com/watch?v=_XMlwcAHlHI&quot;&gt;no top or bottom side, and no left or right side&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/_XMlwcAHlHI/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/_XMlwcAHlHI?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
Conclusion&lt;/h2&gt;
Congratulations if you made it until here! We’ve come a far way. We started with pitches and pitch lines in the first article, then discarded octave information and saw how this bent the pitch line into a pitch class circle in the second article. Next we turned our attention to intervals and discussed how to represent these intervals as points on a plane in the third article. Finally we discarded octave information again in the fourth article and ended up with a Moebius strip.&lt;br /&gt;
&lt;br /&gt;
Geometry doesn’t stop at 2 or 3 dimensions. Mathematics is not limited to things we can easily imagine and represent. You can create a voice leading cube with three-note chords, and keep on adding dimensions to analyze four- and more-note chords, and study the geometrical properties of these spaces. But as the number of dimensions in these spaces increases, things get harder to represent with movies and drawings. That’s where you need to start using more rigorous maths.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/384312154147574728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-iv-second-voice.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/384312154147574728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/384312154147574728'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-iv-second-voice.html' title='Music and Geometry - part IV: Second Voice Leading Plane Live Improvisation '/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_FbMxyu7pOfygNQOfnXhAMC7Xuui4Qiarzx44EhmdgHDCfctXG4lzeIIskH64QFPxa5NMNTMFYgNuvXRrFD3kyCKU6wvi-WfJFrqzahfwa7zOwyipsnJkPDt87pFXb2hFaAOmeuaDAyA/s72-c/motionarrows_rotated.svg.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-2200174581528885386</id><published>2020-03-28T10:28:00.007-07:00</published><updated>2020-03-28T10:28:59.215-07:00</updated><title type='text'>Music and Geometry - part III: Intervals, Counterpoint and Voice Leading</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;

       
       In the &lt;a href=&quot;https://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-i-pitch-class.html&quot;&gt;first&lt;/a&gt; and &lt;a href=&quot;https://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-ii-pitch-class.html&quot;&gt;second&lt;/a&gt; article we’ve studied single pitches. This is great for analyzing melodies or scales, but its usefulness is limited when considering multiple pitches sounding simultaneously. In this article we will turn our attention to intervals (2-note chords).&lt;br /&gt;

&lt;h2&gt;
Representing intervals&lt;/h2&gt;
A straightforward idea would be to represent intervals as line segments on the pitch line, or as circle segments or chords on the pitch class circle. The following could represent an interval made of pitch classes C and E.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQNuopijQYfrDYK9BbCYMwnCxi6L2DsNTdqa7V8SVOslROisw9w5OaLTyZ_kaZabq8LMtKsajK32-83MDljgh_Rq2zGfmqF0yoIeAiemSuUYaNhPFtXJAkEoqMFV9eqGKe6340Qw4yMA/s1600/segment.svg-300x244.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;244&quot; data-original-width=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQNuopijQYfrDYK9BbCYMwnCxi6L2DsNTdqa7V8SVOslROisw9w5OaLTyZ_kaZabq8LMtKsajK32-83MDljgh_Rq2zGfmqF0yoIeAiemSuUYaNhPFtXJAkEoqMFV9eqGKe6340Qw4yMA/s1600/segment.svg-300x244.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

While this representation has been used as the basis for other exotic music theories (e.g. Peter Schat’s tone clock theory), as far as the geometrical structure of the space of intervals is concerned this approach won’t bring us many new insights.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

To represent intervals we will instead represent groups of 2 notes as one point in a 2-dimensional space. Representing an interval as a point in a 2-dimensional space sounds abstract, so let’s examine first what this means.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

Probably the simplest way to represent an interval as a point in a two-dimensional space, is to consider two pitch lines, each of which contribute a note to the interval. A horizontal pitch line contributes a note, and a vertical pitch line contributes another note. Both together determine a point in the 2-dimensional plane. Any point on the plane can be analyzed as consisting of a combination of 2 pitches.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

As an example, we look at the representation of the interval (E4,G4). The fact that each point consists of the contribution of &lt;b&gt;two&lt;/b&gt; pitch lines is what makes this a &lt;b&gt;two&lt;/b&gt;-dimensional space (you need two coordinates to unambiguously define a point in this space). This is a 2-dimensional extension of the pitch line we discussed in the first article. Because every point in this space represents an interval, we call it the interval space.&lt;br /&gt;

&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uWYFWNNPP2hQwnTb2QdLgPQHcMbs5M28q-gpezyz34C4cI-CUcdRWw1jwwG8lc2ZINTQVvYBgRjRfwP-ZZRsvxJ3BdB1kt3WVNovMCaFgPqxjXqQ-Csi2XR41iQMrz1A5_lz3QKum-M/s1600/intervalspace.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1068&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0uWYFWNNPP2hQwnTb2QdLgPQHcMbs5M28q-gpezyz34C4cI-CUcdRWw1jwwG8lc2ZINTQVvYBgRjRfwP-ZZRsvxJ3BdB1kt3WVNovMCaFgPqxjXqQ-Csi2XR41iQMrz1A5_lz3QKum-M/s640/intervalspace.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
The first note for every interval is contributed by the horizontal pitch line, and the second note in the interval is contributed by the vertical pitch line. In the above drawing each note in each note pair has an octave number associated to it. Just as with the pitch line, also microtonal intervals can be drawn in the interval plane.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

A composition in 2 voices can be represented as a path in the two dimensional interval space. Consider e.g. a counterpoint exercise in the D dorian mode taken from Johann Joseph Fux’ book “Gradus ad Parnassum”. Suffice to say there’s a lot more to counterpoint than just drawing lines in 2d interval space but in this article we won’t go any deeper.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHwMLwnUwjaeGWwuARZOgOTZTZHxQKANw-HQGmNCZNJgboT0rhaipQBBCs9oTzlg9-gFQ168rQMpoQWmgYS32dIiawkOXf_I4RDwV5FGAXf8qGod0JtPo3aAfLzRj_0rtVjDjEXGlsGaQ/s1600/counterpoint.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;140&quot; data-original-width=&quot;534&quot; height=&quot;103&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHwMLwnUwjaeGWwuARZOgOTZTZHxQKANw-HQGmNCZNJgboT0rhaipQBBCs9oTzlg9-gFQ168rQMpoQWmgYS32dIiawkOXf_I4RDwV5FGAXf8qGod0JtPo3aAfLzRj_0rtVjDjEXGlsGaQ/s400/counterpoint.svg.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi86Vq9-HSep_OKjFySU8iZJZ5r93LQ-iRmxaOrP2Zc_5C2g15IgNP_tmio1pyyAx_mg0A-XAUEvdErpNGUzEwkeQ3jTFnPEB6atbbdMB6SeYORzteyDfH050UaIYkuSM_MUw9oh_f-WcQ/s1600/2dspace-poging2-counterpoint.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;775&quot; data-original-width=&quot;1068&quot; height=&quot;290&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi86Vq9-HSep_OKjFySU8iZJZ5r93LQ-iRmxaOrP2Zc_5C2g15IgNP_tmio1pyyAx_mg0A-XAUEvdErpNGUzEwkeQ3jTFnPEB6atbbdMB6SeYORzteyDfH050UaIYkuSM_MUw9oh_f-WcQ/s400/2dspace-poging2-counterpoint.svg.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;

&lt;br /&gt;
When moving from interval to interval, the jumps (thick black lines) are kept relatively small, especially if you mentally cross out intervals (points) that cannot be used because they contain notes that are not available in the D dorian mode. This is no coincidence: one of the (many) rules in counterpoint is to limit the size of the jumps in melodies, to keep the intervals easy to sing.&lt;br /&gt;

&lt;h2&gt;
Voice leading&lt;/h2&gt;
Voice leading is a compositional principle governing many styles of music. It is used by classical, pop, folk and jazz musicians alike. The basic idea is that when you go from one chord (or interval) to the next, you do so by moving the different voices the shortest distance possible, so as to gently lead the listener from one chord to the next. Consider the following examples of good and bad voice leading. Both measures move between the same chords. Play them on the piano to hear the difference! In the smooth version adjacent notes take small leaps or remain the same as much as possible.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLhXqi3ApySc99z8Z72LR6dkDDpMqMZ5ovb6vt6IrA54PRq3gzPAPpFg2BSYfxRR7U_EjexN7MJNq5WtQtasbqTy6T1FJ8cbE9MBjLkjTCkgyPOe06o7ewzF2TQxvemlSLkd27w0bAsWA/s1600/voiceleading.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;239&quot; data-original-width=&quot;534&quot; height=&quot;143&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLhXqi3ApySc99z8Z72LR6dkDDpMqMZ5ovb6vt6IrA54PRq3gzPAPpFg2BSYfxRR7U_EjexN7MJNq5WtQtasbqTy6T1FJ8cbE9MBjLkjTCkgyPOe06o7ewzF2TQxvemlSLkd27w0bAsWA/s320/voiceleading.svg.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Because of how the two-dimensional plane of intervals is constructed, points that lie closer together in the plane have a shorter voice-leading distance. Another way to say the same is that a jump between two points in the plane (i.e. a move from one interval to another interval) will have better voice leading if the distance you jump is smaller. This follows from the fact that adjacent points in the 2d interval space are made from adjacent notes on the contributing pitch lines.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

Note that our 2d interval space contains all chromatic notes. In many pieces, composers restrict themselves to a subset of the chromatic notes (e.g. only the white keys on a piano). In such cases the interval space can redrawn showing only the relevant intervals.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

Voice leading is not only used to write choir pieces! Listen, e.g. how smoothly J.S. Bach moves from chord to chord in his prelude #1 from the well-tempered clavier:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/gUdz-Iinjm4/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/gUdz-Iinjm4?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
or the dazzling tribute to Bach’s prelude made by Frederic Chopin in which he guides us through a wild ride from c major through the most distant keys and back to c major with ease (well… for the listener at least!)&lt;/div&gt;
&lt;div class=&quot;wpbf-video&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/SXq0chEW-pA/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/SXq0chEW-pA?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;
Motion&lt;/h2&gt;
Now that we’ve introduced the concept of voice leading, it’s useful to mention the concept of motion, and to study how it translates to our 2d interval space. When moving from one interval to the next, one has a choice between four types of motion.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp364RBATEQYDQ5ApV-3OTKBgSvBiVCYDZRjUW8uvg0CNQPAOGTwRABzzb9O9cxFIXozTWw9SNUvJl0pJQxEa5-ROVsC4gWZFQpDqUgzGxSxxYYYmhfv_mxLmErIhecNQ8D_YIl9CFPxk/s1600/motions.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;240&quot; data-original-width=&quot;935&quot; height=&quot;102&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp364RBATEQYDQ5ApV-3OTKBgSvBiVCYDZRjUW8uvg0CNQPAOGTwRABzzb9O9cxFIXozTWw9SNUvJl0pJQxEa5-ROVsC4gWZFQpDqUgzGxSxxYYYmhfv_mxLmErIhecNQ8D_YIl9CFPxk/s400/motions.svg.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

In parallel motion, both voices move together, keeping the same interval between them. In similar motion, both voices move up or down together, but not necessarily keeping the same interval. In contrary motion, when one voice moves up, the other moves down and vice versa. In oblique motion, one voice remains stationary while the other voice moves.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

In many music styles certain parallel motions are forbidden: parallel fifths and parallel octaves are commonly forbidden. This is not just because music teachers like to be pedantic, but also because they sound really bad in a piece that for the rest uses more traditional rules. People who didn’t study music composition can still hear that something “strange” happens when hearing a parallel fifth, although they will struggle to define exactly what causes this sensation of “strange”. It’s also advised not to keep using parallel motion for too long because that starts to tie the two voices together, threatening their melodic independence.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

In contrapuntal writing at the same time contrary motion is applauded, as it helps suggesting that the melodies in the two voices are independent.&lt;br /&gt;

&lt;h2&gt;
Parallel and contrary motion in 2d interval space&lt;/h2&gt;
How is parallel and contrary motion visible in our 2d interval space? Look at the diagram and verify for yourself: any two points in the 2d interval space that are connected by a straight line under 45 degrees represents parallel motion. And any two points in the 2d interval space that are connected by a straight line under -45 degrees represents perfect contrary motion (i.e. contrary motion whereby each voice moves the same number of scale degrees).&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxdFOxApDLtLHyoeWR11CxWfsuhkOBSFTDiFc5MpYVYPqEoaO0nq15FLb7nGkj29n2QAX9XB9F6Fw_RCaUn2Jg6AbeiD60BclUWqmdYa_B0xuPScg_Zvfe8gHGfUOdXWA5tCel8BvCQIM/s1600/motionarrows.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1068&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxdFOxApDLtLHyoeWR11CxWfsuhkOBSFTDiFc5MpYVYPqEoaO0nq15FLb7nGkj29n2QAX9XB9F6Fw_RCaUn2Jg6AbeiD60BclUWqmdYa_B0xuPScg_Zvfe8gHGfUOdXWA5tCel8BvCQIM/s320/motionarrows.svg.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;

&lt;br /&gt;

If you check the 2d path again that we drew in the counterpoint exercise, you can immediately see from the path segment angles that the composer switches between parallel motion and contrary motion after every chord.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/motionarrows_rotated.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/motionarrows.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/motions.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/voiceleading.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/2dspace-poging2-counterpoint.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/counterpoint.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%203_%20Intervals,%20Counterpoint%20and%20Voice%20Leading%20_%20MusicWiz.club_files/intervalspace.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/14223235/segment.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/drawing7.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/examples2.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203045/examples.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203120/invert_math.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203127/transpose_math.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/transposition_pitchclass_circle_coordinate.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;Because voice leading and motions play such a central role in classical music theory, professor Tymoczko decided to rotate the 2d interval pitch space a bit, to make parallel and contrary motion happen along horizontal and vertical directions in the 2d space. This new space contains all the same information as the original space, just rotated a bit. The new space is called the “voice leading space”.&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDm33YQMHumuhHVEZgJLMiufJ11zKOf0MKL4wNBfKXTU6h9lGjSlgcrPj8ILJ0R2Eo-P0e4og6VZTCHJHAXjmGK5eYDUa6KOq0NPFHxB1uZAOhgXjS8WYtHKv26gO2vuWNPqPv-vYYnr8/s1600/motionarrows_rotated.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1068&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDm33YQMHumuhHVEZgJLMiufJ11zKOf0MKL4wNBfKXTU6h9lGjSlgcrPj8ILJ0R2Eo-P0e4og6VZTCHJHAXjmGK5eYDUa6KOq0NPFHxB1uZAOhgXjS8WYtHKv26gO2vuWNPqPv-vYYnr8/s640/motionarrows_rotated.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;

This article was mostly about explaining the preliminaries for the next article where we will examine what happens to the voice leading space if we replace pitch with pitch class again. Remember from the previous article that the pitch line was bent into a pitch class circle.&lt;/section&gt;&lt;section class=&quot;entry-content article-content&quot; itemprop=&quot;text&quot;&gt;&lt;br /&gt;

What do you expect will happen to the 2d voice leading space? Will it simply bend into a ring? Or can we expect something more twisted? Stay tuned for the next episode!&lt;br /&gt;

&lt;div class=&quot;likebtn_container&quot;&gt;
&lt;!-- LikeBtn.com BEGIN --&gt;&lt;span class=&quot;likebtn-wrapper&quot; data-engine=&quot;WordPress&quot; data-event_handler=&quot;likebtn_eh&quot; data-identifier=&quot;post_4313&quot; data-item_date=&quot;2017-01-20T17:54:52+00:00&quot; data-item_title=&quot;Music and Geometry 3: Intervals, Counterpoint and Voice Leading&quot; data-item_url=&quot;https://musicwiz.club/music-and-geometry-3-intervals-counterpoint-and-voice-leading/&quot; data-plugin_v=&quot;2.6.25&quot; data-prx=&quot;https://musicwiz.club/wp-admin/admin-ajax.php?action=likebtn_prx&quot; data-show_copyright=&quot;&quot; data-site_id=&quot;5d4315d26fd08b275ccdc33f&quot; data-style=&quot;&quot; data-unlike_allowed=&quot;&quot;&gt;&lt;/span&gt;&lt;!-- LikeBtn.com END --&gt;&lt;/div&gt;
&lt;/section&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/2200174581528885386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-iii-intervals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/2200174581528885386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/2200174581528885386'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-iii-intervals.html' title='Music and Geometry - part III: Intervals, Counterpoint and Voice Leading'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQNuopijQYfrDYK9BbCYMwnCxi6L2DsNTdqa7V8SVOslROisw9w5OaLTyZ_kaZabq8LMtKsajK32-83MDljgh_Rq2zGfmqF0yoIeAiemSuUYaNhPFtXJAkEoqMFV9eqGKe6340Qw4yMA/s72-c/segment.svg-300x244.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-4756834976956435887</id><published>2020-03-28T10:26:00.002-07:00</published><updated>2020-03-28T10:26:19.703-07:00</updated><title type='text'>Music and Geometry - part II: pitch class circle and composing</title><content type='html'>In the &lt;a href=&quot;https://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-i-pitch-class.html&quot;&gt;previous article&lt;/a&gt; we introduced the concept of pitch and pitch class. We saw how notes could be represented on a pitch line, forming a one-dimensional geometrical space, and how removing octave information caused the line to turn into a circle.&lt;br /&gt;
&lt;br /&gt;
The pitch class circle, despite first appearance, is still a one-dimensional space (but it’s a curved one). The reason is that, like on the pitch line, you still need only one number (a so-called coordinate) to unambiguously address a point on the circle compared to a chosen reference point. We’ll explore this idea and some of its consequences later in this article. We will look at some properties and applications of the pitch class circle, getting a first taste of how strange life in curved spaces can be.&lt;br /&gt;
&lt;h2&gt;
Composition operations on the pitch class circle&lt;/h2&gt;
&lt;h3&gt;
Geometrical operations&lt;/h3&gt;
As with the pitch line, the pitch class circle allows to perform certain composition operations.&lt;br /&gt;
Transposition of pitch classes is done by traveling along the pitch class circle. After the transposition is done, the composer is free to assign octaves to convert from pitch class back to pitch.&lt;br /&gt;
Both example 1 and 2 in the following picture can be represented on the pitch class circle below.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCdQLXqJydwXbs8SWvKHJTU-ugr1l5DwadayJsPIp_xO_IlVOYYKBin6jWUT-W1966pn6Tz_ldi5Boy3knZwYaOg5rAFVYEOKwWf_WxsKvqVSc_iWlT4e83035fF6mByH0i3zjOg7k7G0/s1600/transposition_pitchclass.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;101&quot; data-original-width=&quot;250&quot; height=&quot;161&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCdQLXqJydwXbs8SWvKHJTU-ugr1l5DwadayJsPIp_xO_IlVOYYKBin6jWUT-W1966pn6Tz_ldi5Boy3knZwYaOg5rAFVYEOKwWf_WxsKvqVSc_iWlT4e83035fF6mByH0i3zjOg7k7G0/s400/transposition_pitchclass.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTyUcyWmUDS0J97jCCZegznSIPOaYhXDKILQ6laISKYlV6rSz6m0YUZIXxGlphCRrF55qkfzU66znWVGJn4L3GWzJswGKnnIE4uYLHfKW4NYKgSuDUqjRyx-46yDHUPqsXXuO_WgWjVeE/s1600/transposition_pitchclass_circle.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;395&quot; data-original-width=&quot;500&quot; height=&quot;315&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTyUcyWmUDS0J97jCCZegznSIPOaYhXDKILQ6laISKYlV6rSz6m0YUZIXxGlphCRrF55qkfzU66znWVGJn4L3GWzJswGKnnIE4uYLHfKW4NYKgSuDUqjRyx-46yDHUPqsXXuO_WgWjVeE/s400/transposition_pitchclass_circle.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/transposition_pitchclass_circle_coordinate.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203127/transpose_math.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203120/invert_math.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://s3.amazonaws.com/musicwiz/wp/2017/01/05203045/examples.svg.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/examples2.svg.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/drawing7.svg.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/inversion_pitchclass_circle.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/invertpitchclass.svg.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/transposition_pitchclass_circle.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/Music%20and%20Geometry%202_%20Pitch%20Class%20Circles%20and%20Composing%20_%20MusicWiz.club_files/transposition_pitchclass.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;Inversion mirrors around a diameter of the circle:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0xpmFNFSB6LeME91w3vGAb7XM3-z0NtmjktxCFAReT_0dexdWZbNB97LrKvt5uwE4cCQO852YiFCsMZ3RSAyKmbV2xrNxJsFiQpsd9yPk7czpNMd2NhLGHUfKLexCBEldtPYGESzth80/s1600/invertpitchclass.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;45&quot; data-original-width=&quot;250&quot; height=&quot;72&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0xpmFNFSB6LeME91w3vGAb7XM3-z0NtmjktxCFAReT_0dexdWZbNB97LrKvt5uwE4cCQO852YiFCsMZ3RSAyKmbV2xrNxJsFiQpsd9yPk7czpNMd2NhLGHUfKLexCBEldtPYGESzth80/s400/invertpitchclass.svg.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib8KicKzMG1Vdpw1LqGwep9mSXlDpgdhLs5KyeEBRFtsibQdzqJ-uY3dpE-2iH12uZ0lh5fsQ0Mw_yxlh9UcfRrlCWWjhgp9LMbD7DKzwlbc4FurYxFE_OZtr2akH4YVL1y490MBmCsCM/s1600/inversion_pitchclass_circle.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;449&quot; data-original-width=&quot;500&quot; height=&quot;358&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib8KicKzMG1Vdpw1LqGwep9mSXlDpgdhLs5KyeEBRFtsibQdzqJ-uY3dpE-2iH12uZ0lh5fsQ0Mw_yxlh9UcfRrlCWWjhgp9LMbD7DKzwlbc4FurYxFE_OZtr2akH4YVL1y490MBmCsCM/s400/inversion_pitchclass_circle.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Mathematical equivalent of geometric operations&lt;/h3&gt;
Instead of drawing pitch class circles, and sliding or mirroring pitches, one can also do something easier. Remember how I said that the pitch class circle is a one-dimensional space? And we needed only one number (a coordinate) to unambiguously name any pitch on the circle? Well, let’s choose the “C” class as reference (i.e. we give it the coordinate 0) and assign a coordinate to the remaining pitches. Note that with our choice of numbers, microtonal pitches can be represented as floating point numbers. E.g. F quarter sharp would have a coordinate 5.5, because it falls exactly between F (with coordinate 5) and F# (with coordinate 6).&lt;br /&gt;
&lt;br /&gt;
Note that coordinate 12 does not occur on the pitch class circle. Coordinate 12 is equivalent to coordinate 0 on the pitch class circle. Whenever we do mathematics operations while working with pitch classes and we end up with numbers &amp;gt;= 12, we need to keep subtracting 12 until we end up lower than 12 again. In math speak, we say that we calculate “modulo 12”, and that “12 is congruent with 0 modulo 12”.&lt;br /&gt;
&lt;br /&gt;
When you calculate modulo 12, you can write funny sums like: 11 + 3 = 2 (mod 12). Why? Well, 11+3 in the normal universe equals 14, but we’re calculating modulo 12, so we need to subtract 12 until the result is smaller than 12, and we get 14-12=2. Life in curved spaces at first sight seems different from what we’re used to in everyday life but attentive readers probably have noticed that clock reading uses the exact same form of modulo 12 arithmetic. 3 hours later than 11 o’clock indeed is 2 o’clock. Perhaps this is the reason that in at least one other exotic music theory I’m aware of the pitch class circle is also known as a tone clock.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFoRQIBzmMdv3FBpqCRcTknE476aBy6Cv48A8mx9PxBe4O1PgpB-toRiq9YGfw2-7fzZHYxHVV1nNPlS77YcVqR0Q3ODKmoW8GdcghdtJ6tPutgYSUlnZ9yz-IiO-jMhnLFt4QKShyphenhyphenAkE/s1600/transposition_pitchclass_circle_coordinate.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;350&quot; data-original-width=&quot;500&quot; height=&quot;280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFoRQIBzmMdv3FBpqCRcTknE476aBy6Cv48A8mx9PxBe4O1PgpB-toRiq9YGfw2-7fzZHYxHVV1nNPlS77YcVqR0Q3ODKmoW8GdcghdtJ6tPutgYSUlnZ9yz-IiO-jMhnLFt4QKShyphenhyphenAkE/s400/transposition_pitchclass_circle_coordinate.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Using the coordinates we can now also do the same composition operations we did using geometry before using only purely mathematical operations. Transposition boils down to adding a constant number to each note-coordinate.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIytdBlYRJ4FKkDfcJLTJetGUG2D5d5QmI21Qgh0zI_QMqC5aP3bEmfMa_MZNMWoXbbNlyL7PntD3hfOZmS1v53pEDYg3xCV3JlpfH2iiqvFBco6jplCWK6zNcqHICNpjQQHsaGkJsTwE/s1600/transpose_math-1024x88.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;88&quot; data-original-width=&quot;1024&quot; height=&quot;54&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIytdBlYRJ4FKkDfcJLTJetGUG2D5d5QmI21Qgh0zI_QMqC5aP3bEmfMa_MZNMWoXbbNlyL7PntD3hfOZmS1v53pEDYg3xCV3JlpfH2iiqvFBco6jplCWK6zNcqHICNpjQQHsaGkJsTwE/s640/transpose_math-1024x88.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inversion boils down to subtracting the note-coordinate from the constant number 12.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-kk3nTexeYvpoaR_JlOc4q_CQCgW_6v9lsN7DMxih1svKHRbG0wcGHGQ6-a5Ly6hL-K10HYZsOkAq6RSVeNY_4_YMU0rpKbqYD7hcxqyarPJ2ZIcG8dzSut3uWcPgx2goL5c5qptR8zM/s1600/invert_math-1024x107.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;108&quot; data-original-width=&quot;1024&quot; height=&quot;66&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-kk3nTexeYvpoaR_JlOc4q_CQCgW_6v9lsN7DMxih1svKHRbG0wcGHGQ6-a5Ly6hL-K10HYZsOkAq6RSVeNY_4_YMU0rpKbqYD7hcxqyarPJ2ZIcG8dzSut3uWcPgx2goL5c5qptR8zM/s640/invert_math-1024x107.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Beyond geometry&lt;/h3&gt;
Now that we can use numbers instead of geometry, nothing stops us from performing other operations on pitches and pitch classes. What happens to a melody if you multiply all pitch coordinates with 2? What happens if you take your 2 favorite melodies and calculate their average? What happens if you take two melodies and you multiply them pitch by pitch? Your imagination and curiosity are the only limits here. Let’s see some simple examples.&lt;br /&gt;
&lt;h4&gt;
Transforming a single melody using maths&lt;/h4&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTkJFK5H0CYZuDzMpwaU_Y4ZLNId5ODwghBDiUD07ybwdfVl6lQoqMq3w7ZSgb6kuFW8UOtjhHYKP2A_Ku1vWcy4d9iZk53T4wBDCM6UIbcYJJRfQ0z7Pj5grINaEjfTw_JQ08_hQwm0/s1600/examples.svg-1024x607.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;1024&quot; height=&quot;378&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdTkJFK5H0CYZuDzMpwaU_Y4ZLNId5ODwghBDiUD07ybwdfVl6lQoqMq3w7ZSgb6kuFW8UOtjhHYKP2A_Ku1vWcy4d9iZk53T4wBDCM6UIbcYJJRfQ0z7Pj5grINaEjfTw_JQ08_hQwm0/s640/examples.svg-1024x607.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRM-1WfkGAlxE0UA07O8Jwm2Jtcvv7qwQrtzrlPIWIrLQusTTBAIdIE8FKE_OigC8fIruTF0GqJIW9InCdakDORMo73GWNkwEttmmOGq9d8PrMFEKbnRTbd7050-S1dZR6RQgd-jWemtg/s1600/examples2.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;765&quot; data-original-width=&quot;875&quot; height=&quot;558&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRM-1WfkGAlxE0UA07O8Jwm2Jtcvv7qwQrtzrlPIWIrLQusTTBAIdIE8FKE_OigC8fIruTF0GqJIW9InCdakDORMo73GWNkwEttmmOGq9d8PrMFEKbnRTbd7050-S1dZR6RQgd-jWemtg/s640/examples2.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;
Using the pitch class circle to analyze scale symmetry&lt;/h2&gt;
Neither the pitch line nor the pitch class circle in themselves are &lt;i&gt;the&lt;/i&gt; right or wrong representation. The pitch class circle offers possibilities for analysis and composition that were not readily present in the pitch line representation.&lt;br /&gt;
&lt;br /&gt;
As an example, the pitch class circle immediately and very visually shows you if a collection of notes belong to a symmetrical scale. This is illustrated in the following picture, where some important symmetrical scales/modes are illustrated (there are many more). The symmetry is visually present.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoyT8RUQkRWt_k-EwbV0qCKAKDSopH3FbJzYOssKrZ5wl8YmeZeh8VAJG2Jw6RGRkxfbdfeI44zmE-hLOGqGw0dc-zDC5QmxTud_8pkuqOamR2V2vOdSaPNp2mdZDApUh3J2kX-v4lW34/s1600/drawing7.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;796&quot; data-original-width=&quot;1068&quot; height=&quot;476&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoyT8RUQkRWt_k-EwbV0qCKAKDSopH3FbJzYOssKrZ5wl8YmeZeh8VAJG2Jw6RGRkxfbdfeI44zmE-hLOGqGw0dc-zDC5QmxTud_8pkuqOamR2V2vOdSaPNp2mdZDApUh3J2kX-v4lW34/s640/drawing7.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
There are more music-theoretical things one can do with the pitch class circle, but in this article I won’t go any deeper.&lt;br /&gt;
&lt;br /&gt;
In this article we saw how pitch classes can be assigned numbers, how we can calculate with these numbers. We saw how closely connected the concepts of musical pitch class, curved spaces and modular arithmetic are connected.&lt;br /&gt;
&lt;br /&gt;
In the next articles we will investigate “intervals” instead of “pitches”. We will leave our one-dimensional spaces (pitch line and pitch class circle) behind, and will end up exploring two-dimensional curved spaces, where life is even more strange and fascinating.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/4756834976956435887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-ii-pitch-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/4756834976956435887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/4756834976956435887'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-ii-pitch-class.html' title='Music and Geometry - part II: pitch class circle and composing'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCdQLXqJydwXbs8SWvKHJTU-ugr1l5DwadayJsPIp_xO_IlVOYYKBin6jWUT-W1966pn6Tz_ldi5Boy3knZwYaOg5rAFVYEOKwWf_WxsKvqVSc_iWlT4e83035fF6mByH0i3zjOg7k7G0/s72-c/transposition_pitchclass.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-7610436967697853596</id><published>2020-03-28T10:24:00.000-07:00</published><updated>2020-03-29T05:15:25.584-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="composition"/><category scheme="http://www.blogger.com/atom/ns#" term="music theory"/><title type='text'>Music and Geometry - part I: pitch class</title><content type='html'>&lt;h2&gt;
Introduction&lt;/h2&gt;
In this series of 4 articles I’m going to introduce you to what for many will be the most exotic piece of music theory you’ve ever come across. Even if you think you’re not good at theory, you may want to try following along and – who knows – perhaps pick up an insight or two.&lt;br /&gt;
&lt;br /&gt;
Music shows deep inner structure on multiple levels that appeals to mathematically inclined people. Math professor Guerino Mazzola has written a book called the “Topos of Music”. It’s safe to assume that only a handful of people in the world really understand the finer details of what it describes. You literally need a PhD in mathematics (in category theory to be more precise) to even begin making sense of it. Professor Mazzola argues that all this complexity is unavoidable because the music it models is just as complex.&lt;br /&gt;
&lt;br /&gt;
Luckily also other books showing neat connections between music and mathematics have been written. And luckily these books are accessible to a wider audience. One of the more intriguing ones, in my humble opinion, is &lt;a href=&quot;http://dmitri.mycpanel.princeton.edu/geometry-of-music.html&quot;&gt;“A Geometry Of Music”&lt;/a&gt; by professor Dmitry Tymoczko of Princeton University. In these articles we will dip our toes in some of the very basics of his ideas. To be perfectly clear: I’m not affiliated to professor Tymoczko or the book in any way, and all awesome ideas are his, whereas all mistakes in the explanation are mine.&lt;br /&gt;
&lt;h2&gt;
Pitch line&lt;/h2&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=5648227177104898374&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-chkvVCaFwOrLFI3A3SFuGdeSfCBKCbbzAuyJYyftcPdDPWi5r5bdxEFWWjCWxXEcI8T6xJ8cSjZAE8D8BSwTnbzqWhpYcAtHsz4agqCMbgJykWWERy_NCeGbNHAIHJP7a53cEjItii4/s1600/drawing1.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;166&quot; data-original-width=&quot;1068&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-chkvVCaFwOrLFI3A3SFuGdeSfCBKCbbzAuyJYyftcPdDPWi5r5bdxEFWWjCWxXEcI8T6xJ8cSjZAE8D8BSwTnbzqWhpYcAtHsz4agqCMbgJykWWERy_NCeGbNHAIHJP7a53cEjItii4/s640/drawing1.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
If you just consider notes in a chromatic scale, starting with the very lowest note you can imagine, and rising to the very highest note you can imagine, it’s not so difficult to depict these notes as points on a line. Although the picture below highlights only a few special notes on the line, actually all conceivable pitches, including microtonal ones or pitches so high they can only be heard by dogs, have their place on the pitch line which has no beginning and no end. It’s an infinite line. In geometry, such a line is considered a 1-dimensional space.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some simple composition operations can be done by reasoning on a pitch line directly. Take transposition, e.g., and observe how it corresponds to sliding along the line. Or consider inversion of a melody and observe how it corresponds to mirroring pitches around some other pitch on the pitch line.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsJqjyLtPSTTtaU_H5bki4SiJzRVZTxw1aaxqKGH3XdVXaI0yZ3G3CyJj0u_Rhy358NXDa2xZ3vzk4OZ2yPuuuQJtFR-XTv7yjpfF8P93b1_8ONGaryuwAIfqTen2WaMg-GNyPJWYsrJE/s1600/drawing2.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;133&quot; data-original-width=&quot;1068&quot; height=&quot;78&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsJqjyLtPSTTtaU_H5bki4SiJzRVZTxw1aaxqKGH3XdVXaI0yZ3G3CyJj0u_Rhy358NXDa2xZ3vzk4OZ2yPuuuQJtFR-XTv7yjpfF8P93b1_8ONGaryuwAIfqTen2WaMg-GNyPJWYsrJE/s640/drawing2.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ6WBunMXpJYfGRFIIyiWx-YOc7NgYe0IbzsFLKPY8laAqzG4ylSWyoMgK664rlFtNTd3-nxN3GcMv85wcVSTvCW3eQoVrlPbwK_zy8-vPdMFa-wN2aPsnuCCThbxMsCRF3QakFTcbRzU/s1600/transpose-300x54.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;54&quot; data-original-width=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ6WBunMXpJYfGRFIIyiWx-YOc7NgYe0IbzsFLKPY8laAqzG4ylSWyoMgK664rlFtNTd3-nxN3GcMv85wcVSTvCW3eQoVrlPbwK_zy8-vPdMFa-wN2aPsnuCCThbxMsCRF3QakFTcbRzU/s1600/transpose-300x54.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbxPFZ9_vriGVs8HEknLkDj8NDMCiyCuqjcCTd-gcIhUfPnD1h8TNTSizBD4qnXO47hEpR4D4rgqBDlPjfEFEkEHT93u2dABxOt4lRl-i65AH_SuxBx_29k5v3UaDch9Hd3MXnH9Gfqc/s1600/drawing5.svg.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;155&quot; data-original-width=&quot;1068&quot; height=&quot;92&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvbxPFZ9_vriGVs8HEknLkDj8NDMCiyCuqjcCTd-gcIhUfPnD1h8TNTSizBD4qnXO47hEpR4D4rgqBDlPjfEFEkEHT93u2dABxOt4lRl-i65AH_SuxBx_29k5v3UaDch9Hd3MXnH9Gfqc/s640/drawing5.svg.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjElvh1VumpioS92yXcHJBzjf8RlqJu8g6h-1TJDkh2vP-uCRNAKEikCDS0A35UOLET6Wo6aOlcGerDLAQOCz3TIFHFUlkkBaRqi2NxpWbQIRA_YhfVDeO-mPBQU4170cTuImeyjwltTNk/s1600/inversion_staff.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;82&quot; data-original-width=&quot;381&quot; height=&quot;68&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjElvh1VumpioS92yXcHJBzjf8RlqJu8g6h-1TJDkh2vP-uCRNAKEikCDS0A35UOLET6Wo6aOlcGerDLAQOCz3TIFHFUlkkBaRqi2NxpWbQIRA_YhfVDeO-mPBQU4170cTuImeyjwltTNk/s320/inversion_staff.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2&gt;
&lt;/h2&gt;
&lt;h2&gt;
Pitch class&lt;/h2&gt;
Yet this pitch line doesn’t model all existing intuitions about pitches. One intuition that is not visible on this line, is the feeling that notes one octave apart in some sense sound the same. Who doesn’t remember the lyrics to the Do-Re-Mi song from the sound of music? When reaching the end of the song, it’s made very clear that “this will lead us back to do”, as if all do’s (C notes) are equal in some sense.&lt;br /&gt;
&lt;br /&gt;
A more difficult way to say the same thing is to say that in some contexts it makes sense to abstract away the exact pitch, and instead reason on pitch class. In other words we don’t speak of a concrete C4 or D3 note anymore, but of a more abstract concept of a “C” note, or a “D” note, with no indication of exactly which octave it belongs to.&lt;br /&gt;
&lt;br /&gt;
The question arises what introducing this “pitch class” abstraction does to our pitch line. How does incorporating pitch class change the pitch line?&lt;br /&gt;
&lt;br /&gt;
The solution is straightforward, but not necessarily trivial to come up with by yourself. To model the concept of pitch class, we need to transform our pitch line so that all differences between octaves disappear. This can be done by curling up the pitch line in three dimensions, so that all equivalent notes (e.g. all “C” notes) perfectly line up. After this is done, we will squash the curled line until it’s flat again. If you think deeply about it, the lining up and especially the squashing of equivalent pitches indeed is a kind of geometrical equivalent to replacing concrete notes with pitch classes. Just like with the pitch line, the pitch class circle has plenty of room to host all microtonal pitches you can come up with. In case you’ve been wondering: the pitch class circle as such has nothing to do with the so-called “circle of fifths”. Other than the fact that both are represented on a circle, there’s no special relation between the two circles.&lt;br /&gt;
&lt;br /&gt;
Please watch the first video animation to better understand how replacing concrete pitch with pitch class has the effect of curling up the pitch line into a pitch class circle.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/C6f4n7nlMIs/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/C6f4n7nlMIs?feature=player_embedded&quot; width=&quot;320&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Before going on to our next topic, let’s sum up a few quick facts about the concept of pitch class and related subjects:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;“Pitch” indicates a specific point on a pitch line.&amp;nbsp; C4, for example, is a different pitch than C5.&amp;nbsp; The higher the number, the higher the sound.&lt;/li&gt;
&lt;li&gt;“Pitch class” indicates an entire group of pitches, related by their “octave equivalence”.&amp;nbsp; The pitch class of C, for example, includes C4, C5, C9 and so on.&lt;/li&gt;
&lt;li&gt;“Pitch class” includes notes with enharmonic spellings.&amp;nbsp; The pitch class of “C”, for example, would include such pitches as C3, B#5, D double flat 6, and so forth.&lt;/li&gt;
&lt;/ul&gt;
Pitch classes are “octave equivalent”, which means that pitches in different octaves are still in the same class.&amp;nbsp;&amp;nbsp; Pitch classes are also “spelling equivalent” which means that notes spelled differently but sounding the same, which we call enharmonic spellings, are in the same pitch class.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a piece which is built entirely on one pitch class, until the final few measures.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe width=&quot;320&quot; height=&quot;266&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/nIs3jechQ_E/0.jpg&quot; src=&quot;https://www.youtube.com/embed/nIs3jechQ_E?feature=player_embedded&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;likebtn_container&quot;&gt;
&lt;!-- LikeBtn.com BEGIN --&gt;&lt;span class=&quot;likebtn-wrapper&quot; data-engine=&quot;WordPress&quot; data-event_handler=&quot;likebtn_eh&quot; data-identifier=&quot;post_3971&quot; data-item_date=&quot;2016-12-22T18:59:09+00:00&quot; data-item_title=&quot;Music and Geometry: 1. Pitch Class&quot; data-item_url=&quot;https://musicwiz.club/music-and-geometry-1-pitch-class/&quot; data-plugin_v=&quot;2.6.25&quot; data-prx=&quot;https://musicwiz.club/wp-admin/admin-ajax.php?action=likebtn_prx&quot; data-show_copyright=&quot;&quot; data-site_id=&quot;5d4315d26fd08b275ccdc33f&quot; data-style=&quot;&quot; data-unlike_allowed=&quot;&quot;&gt;&lt;/span&gt;&lt;!-- LikeBtn.com END --&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/7610436967697853596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-i-pitch-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/7610436967697853596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/7610436967697853596'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2020/03/music-and-geometry-part-i-pitch-class.html' title='Music and Geometry - part I: pitch class'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-chkvVCaFwOrLFI3A3SFuGdeSfCBKCbbzAuyJYyftcPdDPWi5r5bdxEFWWjCWxXEcI8T6xJ8cSjZAE8D8BSwTnbzqWhpYcAtHsz4agqCMbgJykWWERy_NCeGbNHAIHJP7a53cEjItii4/s72-c/drawing1.svg.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-516533570657742993</id><published>2018-07-26T05:35:00.001-07:00</published><updated>2018-07-26T05:35:20.848-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bohlen-pierce"/><category scheme="http://www.blogger.com/atom/ns#" term="dsi"/><category scheme="http://www.blogger.com/atom/ns#" term="microtonal"/><category scheme="http://www.blogger.com/atom/ns#" term="rev2"/><title type='text'>Between Secrets</title><content type='html'>&lt;h2&gt;
Introduction&lt;/h2&gt;
After recently acquiring a Dave Smith Instruments REV2 16-voice analog synthesizer, I have been very interested in exploring all its possibilities. I was happily surprised to discover that it supports the Midi Tuning Specification standard. This is a standardized set of MIDI messages that allow&lt;br /&gt;
to assign any frequency to any midi note. Having never written microtonal music before, I decided to dive in head first and try my hand at writing something.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBFnriY1rj9EekS3ht9kiRZ0IqhnY23VvUX-MeHD2OPlhDck13R70oC5kNXDXfamgCwRtKP4nTNgIh_RvV_6Q6Xeg0xOwJiAeCppTXe0GyMLkLUGgA3ISQ67YprrTHvRkB1ZwG3VRD16k/s1600/rev2_2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;175&quot; data-original-width=&quot;452&quot; height=&quot;123&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBFnriY1rj9EekS3ht9kiRZ0IqhnY23VvUX-MeHD2OPlhDck13R70oC5kNXDXfamgCwRtKP4nTNgIh_RvV_6Q6Xeg0xOwJiAeCppTXe0GyMLkLUGgA3ISQ67YprrTHvRkB1ZwG3VRD16k/s320/rev2_2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Microtonal music is one of the least exploited ways to create new music. To the uninitiated it typically conjures images of weird and incomprehensible alien music mostly sounding badly out of tune. While such description no doubt applies to some hardcore experimental compositions, there actually is a whole spectrum of microtonal music possibilities.&lt;br /&gt;
&lt;br /&gt;
People writing microtonal music (even though there are very little to start with) come in a few flavors:&lt;br /&gt;
&lt;br /&gt;
The first kind is looking to create the same kind of music we know from day to day life, but using much purer intervals. Western music in 99.9999% (approximately :) ) of the cases is based on the same 12 notes that evenly divide the octave. This system is known as 12-tone Equal Temperament (also known as 12 tET).&lt;br /&gt;
&lt;br /&gt;
In 12 tET, some note combinations sound smoother together than others. In music terms one speaks of consonance and dissonance. If you analyze these note combinations (or intervals) mathematically,&lt;br /&gt;
it turns out that even the consonant ones in fact sound ever so slightly out of tune. Over time, however, our ears have become accustomed to that specific sound. Interestingly, throughout history what is considered to sound &quot;normal&quot; or &quot;good&quot; has changed! By retuning instruments to purer intervals, some consonant chords can be made to sound even more consonant, whereas (as a side effect) some others actually sound worse. There&#39;s a whole universe of trade-offs to be made. And a more radical way of working involves retuning instruments on the fly (this is typically only possible with electronic synthesizers) to have the purest possible chords at all times.&lt;br /&gt;
&lt;br /&gt;
A second kind of composers are looking to leave the traditional ways and to exploit new music notes to create new harmonies. This is sometimes called &lt;a href=&quot;http://xenharmonic.wikispaces.com/&quot; target=&quot;_blank&quot;&gt;xenharmonic&lt;/a&gt; music.&lt;br /&gt;
&lt;br /&gt;
Think about painters: throughout history they&#39;ve used some types of canvas: in the earliest days there were rocks, later pottery and wood and nowadays the majority of painters has settled on using a canvas made of some kind of paper or fabric. Painting techniques can be adapted to different media: it&#39;s a very different experience painting paper than it is to paint rock. Any of these media (rock,wood,pottery,paper,fabric) in principle supports painting any style of painting, although in practice some media seem to be associated to certain styles more than others.&lt;br /&gt;
&lt;br /&gt;
Something similar is true for microtonal music: over time different tuning systems have been popular, but by now the majority in the Western world has settled on 12tET. Nothing prevents us from using other tuning systems, however, and still write medieval, impressionistic, romantic, expressionistic or atonal music in it.&lt;br /&gt;
&lt;h2&gt;
Bohlen-Pierce scale&lt;/h2&gt;
The Bohlen-Pierce scale divides the &quot;tritave&quot; (= an octave + fifth) in 13 equal steps. I&#39;ll spare you the mathematical details.&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
In some cases, people have just taken compositions written for 12tET and, after some minor adjustments, replayed them through retuned instruments. Here&#39;s an example of Pachelbel&#39;s canon in a Bohlen-Pierce scale:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;iframe width=&quot;320&quot; height=&quot;266&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/UWYggKqsDqw/0.jpg&quot; src=&quot;https://www.youtube.com/embed/UWYggKqsDqw?feature=player_embedded&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
The result still sounds a little alien to me, maybe because the music was originally conceived for the 12tET system and just doesn&#39;t fit the new scale&lt;br /&gt;
&lt;br /&gt;
If you change the canvas, you probably ought to invest some time in adapting your painting techniques. Indeed, you read that right: when using a different tuning (e.g. dividing the octave in 13 steps instead of 12), you had better throw out all harmony theory and start with a clean slate.&lt;br /&gt;
&lt;br /&gt;
Some basic principles that span many music theories can still be used to guide music compositions in other tuning systems.&lt;br /&gt;
&lt;br /&gt;
There are the concepts of &quot;consonance&quot; and &quot;dissonance&quot; (because intervals made of notes other than the ones we typically use can still sound consonant or dissonant, in fact even more so!). Consonance and dissonance can be used create tension and release, a tried and proven technique when writing music.&lt;br /&gt;
&lt;br /&gt;
There&#39;s the concept of &quot;voice leading&quot; which is fundamental to create smooth sounding chord changes.&lt;br /&gt;
&lt;br /&gt;
It is still possible to use the principles of modulation and cadences to accomplish smooth key changes.&lt;br /&gt;
&lt;br /&gt;
Everything you know about rhythm can be transferred without any change. By trial and error and using your ears carefully you can write music that is adapted to a different tuning, and which still stands a chance of being acceptable to a wider audience.&lt;br /&gt;
&lt;br /&gt;
Of course, since it&#39;s using a very different tuning from 12 steps per octave, it &lt;b&gt;&lt;i&gt;&lt;u&gt;will&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; sound a bit different, a bit weird, a bit out of tune but that actually will give the music a new color, a new character, a new appeal. If you have been cursed with absolute hearing basically all hope is lost at this point ;). Note that in addition to using your ears, it also helps to carefully select the instruments that will execute the music. The spectrum of a sound can do a lot for consonance or dissonance. With the right timbres, even in 12tET an octave (=the most consonant interval possible&amp;nbsp;) can be made to sound very dissonant.&lt;br /&gt;
&lt;br /&gt;
Some people will dislike the new sound, and that&#39;s fine too. My own ears, however, have opened a bit, and I will probably try to write more microtonal music in the future.&lt;br /&gt;
&lt;br /&gt;
So without further ado, let&#39;s hear my take on some Bohlen-Pierce music:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe width=&quot;320&quot; height=&quot;266&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/VRWrdtfCT4Y/0.jpg&quot; src=&quot;https://www.youtube.com/embed/VRWrdtfCT4Y?feature=player_embedded&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/516533570657742993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2018/07/between-secrets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/516533570657742993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/516533570657742993'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2018/07/between-secrets.html' title='Between Secrets'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBFnriY1rj9EekS3ht9kiRZ0IqhnY23VvUX-MeHD2OPlhDck13R70oC5kNXDXfamgCwRtKP4nTNgIh_RvV_6Q6Xeg0xOwJiAeCppTXe0GyMLkLUGgA3ISQ67YprrTHvRkB1ZwG3VRD16k/s72-c/rev2_2.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-4044465198890251583</id><published>2017-05-20T13:12:00.000-07:00</published><updated>2017-05-20T13:12:23.182-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bach"/><category scheme="http://www.blogger.com/atom/ns#" term="choir"/><category scheme="http://www.blogger.com/atom/ns#" term="classical"/><category scheme="http://www.blogger.com/atom/ns#" term="experimental"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="soundscape"/><category scheme="http://www.blogger.com/atom/ns#" term="stravinsky"/><category scheme="http://www.blogger.com/atom/ns#" term="supercollider"/><title type='text'></title><content type='html'>&lt;h2&gt;
The Vows&lt;/h2&gt;
&lt;div&gt;
My latest piece was destined to be played in a concert in a church. When you think of churches you think about the big moments in life: birth, marriage, death. In &quot;The Vows&quot; I committed myself to the theme of marriage.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The idea of &quot;marriage&quot; was used throughout the construction of the piece. In the background e.g. we hear a sound &quot;carpet&quot; made by a mathematical combination of J. S. Bach&#39;s orchestral suite in B minor piece (aka &quot;Badinerie&quot;, sometimes used in marriage ceremonies) and Stravinsky&#39;s firebird (a story that ends in marriage of a prince and a princess set to music). The mathematical technique deconstructs both pieces into information bins and then mixes those bins together so as to weave them back together into a sound carpet.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
King Eduard VIII was a king who had was forced to abdicate because of his desire to marry the American girl Wallis Simpson. The speech he held for the abdication survived history thanks to an audio recording. It is this audio recording that was cut into pieces, and then rewoven into the king expressing his wedding vows. Where the original speech sounded very self-assured, the new version sounds rather uncertain - a feeling that some people feel when they are about to get married.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
By using this speech we get a marriage between spoken word and instrumental sounds. This is emphasized in the last part of the music where the spoken word is lifted to a choir piece by supporting it with tonal chords. The scale in which the chord are written was adapted to match the underlying sound carpet as good as possible, resulting in a harmonious marriage between the tonal chords and the atonal sound carpet.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Just like in a wedding service, the ceremony sometimes is interrupted for some music (!). This is accomplished by using an experimental Waltz between the different parts.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The piece is supported by images. There&#39;s a marriage between image and sound, between animations and film fragments, between authentic archive material from King Eduard&#39;s marriage and fake romance from an old movie.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To generate the animations in the video, I developed a new python library, the code of which is freely available via my other blog: &lt;a href=&quot;http://technogems.blogspot.be/2017/05/mask-driven-vector-animations-with.html&quot; target=&quot;_blank&quot;&gt;http://technogems.blogspot.be/2017/05/mask-driven-vector-animations-with.html&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Finally the music video can be found on youtube:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe width=&quot;320&quot; height=&quot;266&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/I5eTCUdugt4/0.jpg&quot; src=&quot;https://www.youtube.com/embed/I5eTCUdugt4?feature=player_embedded&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/4044465198890251583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2017/05/the-vows-my-latest-piece-was-destined.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/4044465198890251583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/4044465198890251583'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2017/05/the-vows-my-latest-piece-was-destined.html' title=''/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/I5eTCUdugt4/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-484370699879051216</id><published>2016-05-28T05:08:00.000-07:00</published><updated>2016-05-28T14:22:39.033-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="euclid"/><category scheme="http://www.blogger.com/atom/ns#" term="generative"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><category scheme="http://www.blogger.com/atom/ns#" term="rhythm"/><title type='text'>Modeling rhythms using numbers - part 2</title><content type='html'>This is a continuation of my &lt;a href=&quot;http://a-touch-of-music.blogspot.com/2015/12/modeling-rhythms-using-numbers.html&quot; target=&quot;_blank&quot;&gt;previous post on modeling rhythms using numbers&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;
Euclidean rhythms&lt;/h2&gt;
&lt;div&gt;
The Euclidean Rhythm in music was discovered by &lt;a href=&quot;https://en.wikipedia.org/wiki/Godfried_Toussaint&quot; target=&quot;_blank&quot;&gt;Godfried Toussaint&lt;/a&gt; in 2004 and is described in a 2005 paper &quot;&lt;a href=&quot;http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf&quot; target=&quot;_blank&quot;&gt;The Euclidean Algorithm Generates Traditional Musical Rhythms&lt;/a&gt;&quot;. The greatest common divisor of two numbers is used rhythmically giving the number of beats and silences, generating the majority of important World Music rhythms.&lt;/div&gt;
&lt;h2&gt;
Do it yourself&lt;/h2&gt;
&lt;div&gt;
You can play with a slightly generalized version of euclidean rhythms&amp;nbsp;&lt;a href=&quot;http://stefaanhimpe.pythonanywhere.com/euclidean/static/index.html&quot; target=&quot;_blank&quot;&gt;in your browser&lt;/a&gt;&amp;nbsp;&amp;nbsp;using a &lt;a href=&quot;https://p5js.org/&quot; target=&quot;_blank&quot;&gt;p5js&lt;/a&gt; based sketch I made to test my understanding of the algorithms involved. If it doesn&#39;t work in your preferred browser, retry with &lt;a href=&quot;https://www.google.com/chrome/&quot; target=&quot;_blank&quot;&gt;google chrome&lt;/a&gt;. &amp;nbsp;&lt;/div&gt;
&lt;h2&gt;
The code&lt;/h2&gt;
&lt;div&gt;
The code may still evolve in the future. There are some possibilities not explored yet (e.g. using ternary number systems instead of binary to drive 3 sounds per circle). You can download &lt;a href=&quot;https://github.com/shimpe/euclidean_rhythm&quot; target=&quot;_blank&quot;&gt;the full code&lt;/a&gt; for the &lt;a href=&quot;https://p5js.org/&quot; target=&quot;_blank&quot;&gt;p5js&lt;/a&gt; sketch on&amp;nbsp;&lt;a href=&quot;https://github.com/shimpe/euclidean_rhythm&quot; target=&quot;_blank&quot;&gt;github&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAQbicv-DoUioiJqbzq-Ko4-zvncUixZxVXudU27Wu5M_tjfaGM9ofjzCugq2vG4FQcIYjmh9rpnIXPPCObqal0sRlFoAFS6esIKJDywR2U5SCAyS7sS8-_HeZMRb_gVmvwsAVDTiK9nA/s1600/screenshot.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAQbicv-DoUioiJqbzq-Ko4-zvncUixZxVXudU27Wu5M_tjfaGM9ofjzCugq2vG4FQcIYjmh9rpnIXPPCObqal0sRlFoAFS6esIKJDywR2U5SCAyS7sS8-_HeZMRb_gVmvwsAVDTiK9nA/s640/screenshot.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;screenshot of the p5js sketch running. click the image&amp;nbsp;&lt;span style=&quot;font-size: 12.8px;&quot;&gt;to enlarge&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;
The theory&lt;/h2&gt;
&lt;div&gt;
So what does it do and how does it work? Each wheel contains a number of smaller circles. Each small circle represents a beat. With the length slider you decide how many beats are present on a wheel. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Some beats are colored dark gray (these can be seen as strong beats), whereas other beats are colored white (weak beats). To strong and weak beats one can assign a different instrument. The target pattern length decides how many weak beats exist between the strong beats. Of course it&#39;s not always possible to honor this request: in a cycle with a length of 5 beats and a target pattern length of 3 beats (left wheel in the screenshot) we will have a phrase of 3 beats that conforms to the target pattern length, and a phrase consisting of the 2 remaining beats that make a &quot;best effort&quot; to comply to the target pattern length.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Technically this is accomplished by running &lt;a href=&quot;https://en.wikipedia.org/wiki/Euclidean_algorithm&quot; target=&quot;_blank&quot;&gt;Euclid&#39;s algorithm.&lt;/a&gt; This algorithm is normally used to calculate the greatest common divisor between two numbers, but here we are mostly interesting in the intermediate results of the algorithm. In Euclid&#39;s algorithm, to calculate the greatest common divisor between an integer m and a smaller integer n, the smaller number n is repeatedly subtracted from the greater
until the greater is zero or becomes smaller than the smaller, in which case it is called the remainder. This
remainder is then repeatedly subtracted from the smaller number to obtain a new remainder. This process
is continued until the remainder is zero. When that happens, the corresponding smaller number is the greatest common divisor between the original two numbers n and m.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Let&#39;s try it out on the situation of the left wheel in the screenshot. The greater number m is 5 (length) and the smaller number n is 3 (target pattern length). Now the recipe says to repeatedly subtract 3 from 5 until you get something smaller than 3. We can do this exactly once:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #20124d; color: white;&quot;&gt;5&lt;/span&gt; - (&lt;span style=&quot;background-color: #660000;&quot;&gt;1&lt;/span&gt;).&lt;span style=&quot;background-color: #7f6000;&quot;&gt;3&lt;/span&gt; = &lt;span style=&quot;background-color: #274e13;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We can rewrite this as:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: #20124d;&quot;&gt;5&lt;/span&gt; = (&lt;span style=&quot;background-color: #660000;&quot;&gt;1&lt;/span&gt;).&lt;span style=&quot;background-color: #7f6000;&quot;&gt;3&lt;/span&gt;&amp;nbsp;+ &lt;span style=&quot;background-color: #274e13;&quot;&gt;2&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This we can interpret as: the cycle of &lt;span style=&quot;background-color: #20124d;&quot;&gt;5&lt;/span&gt; beats is to be decomposed as &lt;span style=&quot;background-color: #660000;&quot;&gt;1&lt;/span&gt; phrase with &lt;span style=&quot;background-color: #7f6000;&quot;&gt;3&lt;/span&gt; beats, followed by a phrase with &lt;span style=&quot;background-color: #274e13;&quot;&gt;2&lt;/span&gt; beats (the remainder). Each phrase consists of a single strong beat followed by all weak beats. In a symbolic representation easier read by musicians one might write: x..x. (In the notation of the previous part of this article one could also write 10010).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Euclid&#39;s algorithm doesn&#39;t stop here. Now we have to repeatedly subtract the remainder &lt;span style=&quot;background-color: #274e13;&quot;&gt;2&lt;/span&gt; from the smaller number&amp;nbsp;&lt;span style=&quot;background-color: #7f6000; color: white;&quot;&gt;3&lt;/span&gt;:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
3 = (1).2&amp;nbsp;+ 1&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This in turn can be read as: the phrase of 3 beats can be further decomposed as 1 phrase of 2 beats followed by a phrase consisting of 1 beat. In a symbolic representation: x.x Euclid continues:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2 = (2).1&amp;nbsp;+ 0&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The phrase of two beats can be represented symbolically as: xx. We&#39;ve reached remainder 0 and Euclid stops: apparently the greatest common divisor between 5 and 3 is 1.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now it&#39;s time to realize what we really did:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;We decomposed a phrase of 5 beats in a phrase of 3 beats and a phrase of 2 beats making a rhythm x..x.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Then we further decomposed the phrase of 3 beats into a phrase of 2 beats followed by a phrase of 1 beat.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;We can substitute this refined 3 beat phrase in our original rhythm of 5 = 3+2&amp;nbsp;beats to get a rhythm consisting of 5 = (2 + 1)&amp;nbsp;+ 2 beats:&amp;nbsp;x.xx.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;I hope it&#39;s clear by now that by choosing how long to continue using Euclid&#39;s algorithm, we can decide how fine-grained we want our rhythms to become.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;This is where the max pattern length slider comes into play.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
The length slider and the target pattern slider will determine a rough division between strong and weak beats by running Euclid&#39;s algorithm just once, whereas the max pattern length slider helps you decide how long to carry on Euclid&#39;s algorithm to further refine the generated rhythm.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/484370699879051216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2016/05/modeling-rhythms-using-numbers-part-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/484370699879051216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/484370699879051216'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2016/05/modeling-rhythms-using-numbers-part-2.html' title='Modeling rhythms using numbers - part 2'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAQbicv-DoUioiJqbzq-Ko4-zvncUixZxVXudU27Wu5M_tjfaGM9ofjzCugq2vG4FQcIYjmh9rpnIXPPCObqal0sRlFoAFS6esIKJDywR2U5SCAyS7sS8-_HeZMRb_gVmvwsAVDTiK9nA/s72-c/screenshot.png" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-8598589240839394959</id><published>2015-12-21T11:12:00.001-08:00</published><updated>2015-12-21T11:15:30.023-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition"/><category scheme="http://www.blogger.com/atom/ns#" term="encoding"/><category scheme="http://www.blogger.com/atom/ns#" term="generative"/><category scheme="http://www.blogger.com/atom/ns#" term="generative music"/><category scheme="http://www.blogger.com/atom/ns#" term="rhythm"/><title type='text'>Modeling rhythms using numbers</title><content type='html'>&lt;h2&gt;
Context&lt;/h2&gt;
&lt;div&gt;
I like to dabble a bit in generative music from time to time. While thinking about how to generate percussion patterns I was wondering about compact representations of rhythm. This blog entry documents my current approach (which, as usual, may or may not exist already, and may or may not be useful to you.)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
(Note to self: this blog entry lacks some pictures for clarity.)&amp;nbsp;&lt;/div&gt;
&lt;h2&gt;
Encoding rhythm in a number&lt;/h2&gt;
&lt;div&gt;
Consider the following simple rock beats:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD7BhFozSDFRHEYyUS2QCsUnmS_HnzT6EjsxRYLxIMAFI76TsCGJkcbwKwftbgQK3YRzFTUtgIs-neYMxcGHmPpHynoRagEtxoezjaLujfHc10g83AI-9492s6wWTATdqddPFghqqLnGA/s1600/drum.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD7BhFozSDFRHEYyUS2QCsUnmS_HnzT6EjsxRYLxIMAFI76TsCGJkcbwKwftbgQK3YRzFTUtgIs-neYMxcGHmPpHynoRagEtxoezjaLujfHc10g83AI-9492s6wWTATdqddPFghqqLnGA/s640/drum.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
This beat has 3 voices:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;the upper voice represents the hi-hat&lt;/li&gt;
&lt;li&gt;the middle voice represents the snare drum.&lt;/li&gt;
&lt;li&gt;the lower voice represents the bass drum (kick)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Simple case: a voice has notes with equal duration (e.g. upper staff)&lt;/h3&gt;
In the upper staff, there&#39;s an easy conversion between notes being present/absent and the bits in a binary number.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
For the hi-hat, consider each measure as consisting of 8 8th notes. To each 8th note we can associate a bit in a binary number. Since on each beat an 8th note is played all bits are set to one. Therefore the hi-hat in the first measure in this case could be represented as a binary number (1111 1111), which can be written as the decimal number 255, and a resolution 2 (The resolution, 2, represents the number of bits per beat. Here it&#39;s 2 because there are 2 8th notes per beat).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The bass drum can be seen as consisting out of 4th notes. There&#39;s a kick on the first and third beat, but not on the second and fourth beat of the measure. The bass drum voice in the first measure therefore can be represented as the decimal number (1010) (in decimal this is number 10) with a resolution of 1.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The snare drum also consists of 4th notes. There&#39;s a snare drum on beats 2 and 4, but not on beats 1 and 3 of the measure. For this reason, the snare drum can be represented as (0101) (in decimal this is number 5) with resolution of 1.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The complete first measure therefore can be summarized as:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;hi-hat: 255 (resolution 2)&lt;/li&gt;
&lt;li&gt;snare drum: 10 (resolution: 1)&lt;/li&gt;
&lt;li&gt;bass drum (kick): 5 (resolution 1)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3&gt;
Second case: a voice has notes with unequal duration (e.g. lower staff)&lt;/h3&gt;
&lt;div&gt;
The simple notation we used before no longer suffices. The bass drum voice has a kick on the first beat, and one on the second half of the second beat. As a first idea, we can pretend that the notes are written as 8th notes that are tied together. In that case the bass drum could be almost modeled as (1101) with a resolution of 2, except that this number doesn&#39;t model at all that the first two 8th notes are tied together to form one longer kick.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
To overcome this limitation, introduce a new digit 2. 2 indicates that the current note is present, and tied to the next note (whereas digit 1 indicates that the current note is present but not tied to the next one). An accurate representation for the bass drum in the lower staff therefore is (2101) with a resolution of 2. Because of the number 2, this is no longer a binary number, but it can be interpreted as a ternary number (a number in number base 3). &amp;nbsp;(2101) in number base 3 corresponds to decimal number 64.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Since one cannot tie a note to a rest, the number combination 20 doesn&#39;t make any sense and for all practical purposes can be replaced with 10.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Without loss of generality, we can also interpret the numbers of the upper staff as numbers in number base 3. The upper staff therefore is modeled as:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;hi-hat: (1111 1111) in number base 3, or 3280 in number base 10, (resolution: 2)&lt;/li&gt;
&lt;li&gt;snare drum (0101) in number base 3, or 10 in number base 10, (resolution: 1)&lt;/li&gt;
&lt;li&gt;bass drum (kick): (1010) in number base 3, or 30 in number base 10, (resolution: 1)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The lower staff is modeled as:&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;hi-hat: (1111 1111) in number base 3, or 3280 in number base 10, (resolution: 2)&lt;/li&gt;
&lt;li&gt;snare drum (0101) in number base 3, or 10 in number base 10, (resolution: 1)&lt;/li&gt;
&lt;li&gt;bass drum (2101) in number base 3, or 64 in number base 10, (resolution: 1)&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3&gt;
What&#39;s the point?&lt;/h3&gt;
&lt;div&gt;
Any decimal number can be rewritten in number base 3 and vice versa, so any integer represents a drum pattern voice, and every drum pattern voice can be written as a single integer. So drum pattern voices can be enumerated and constructed systematically.&lt;br /&gt;
&lt;h3&gt;
Hah! I bet you can&#39;t do triplets can you?&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Why not? Of course I can. Suppose you have a drum pattern voice that mixes 8th notes with 8th-based triplets. You can again consider the 8th notes as consisting of 3 tied 16th-triplet notes, and the 8th triplet notes as consisting of 2 tied16th triplet notes. The resolution is 6 (since there are 6 triplet 16ths per beat), and the pattern for 8th note triplets is (212121) (decimal: 616), whereas the pattern for 8th notes is (221221) (decimal: 700).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
How did I know I had to use a resolution of 6? A single beat has 3 triplet 8th notes, or 2 8th notes. The least common multiple of 2 and 3 is 6. Therefore I had to subdivide the beat into 6 equal parts (which corresponds to using a triplet 16th as reference length).&lt;/div&gt;
&lt;h3&gt;
Is this system general enough to encode mixtures of different tuplets?&lt;/h3&gt;
&lt;div&gt;
It is, but if you got to very exotic rhythms, you may end up with large resolutions and many digits. Rest assured: in popular practice most rhythms don&#39;t need very complex encodings.&lt;/div&gt;
&lt;h3&gt;
Can you convert representations between different resolutions?&lt;/h3&gt;
&lt;div&gt;
To some extent, yes, but not every pattern can be expressed in any resolution without loss of information. In number base 3, if you understand what we&#39;re doing here, it&#39;s rather trivial. E.g.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;(1010) with resolution 2 corresponds to (21002100) in resolution 4. What we did here is replace every 8th note with tied 16th notes. This boils down to applying rewriting rules 1 -&amp;gt; 21 and 0 -&amp;gt; 00. This is &quot;up&quot;sampling the rhythmic representation, and it may be a preparation step for other transformations later on.&lt;/li&gt;
&lt;li&gt;Similar we can upsample (21002100) in resolution 4 to (2221000022210000) in resolution 8. Here we replaced every 16th note with tied 32th notes.This boils down to applying rewriting rules 2 -&amp;gt; 22, 1-&amp;gt; 21, 0 -&amp;gt;00.&lt;/li&gt;
&lt;li&gt;If you want to halve the resolution, you process the base 3 numbers by two:&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Take drum pattern represented by 2221000022210000 in number base 3, and group by 2: (22,21,00,00,22,21,00,00)&lt;/li&gt;
&lt;li&gt;Then substitute: 22 -&amp;gt; 2, 21 -&amp;gt; 1, 00 -&amp;gt; 0 (This is a form of &quot;down&quot;-sampling without loss of information)&lt;/li&gt;
&lt;li&gt;If you encounter other patterns than 22, 21 or 00 you cannot reduce the resolution without mutilating the rhythm.In that case you down-sample while losing some information (a kind of low-pass filtering).&lt;/li&gt;
&lt;li&gt;If you downsample the rhythm to a lower resolution, and while doing so are forced to mutilate the rhythm, you can upsample it again, then subtract the resulting number from the original number to get an error rhythm (a kind of high-pass filtered rhythm).&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3&gt;
Are digits 0,1,2 enough to notate any rhythm?&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Yes and no. Yes: you can form any rhythm using this system. No: you cannot accurately annotate certain expressive marks (e.g. staccato, marcato, ghost notes) using this system. To add such information should be possible by introducing new digits (which themselves can encode different dimensions of information, e.g. by forming the digits by multiplying prime factors, where presence of a given prime factor indicates presence of a certain expressive mark). In that case not every conceivable number is a valid rhythm anymore and things may get hairy. Instead of absorbing the expressive marks directly in the rhythm model, they can also be added as meta-information, e.g. in the form of a second (binary) number where each bit represents presence or absence of a given expressive mark.&lt;/div&gt;
&lt;h2&gt;
So how do I use this in my generative music?&lt;/h2&gt;
&lt;div&gt;
It&#39;s up to you how you use the representation to create music. Here are some possibilities.&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;You can generate random integers and interpret them as drum pattern voices.&lt;/li&gt;
&lt;li&gt;You can start from an integer, and use rewriting rules like the ones shown above to upsample to a higher resolution. By using rewriting rules other than the ones present in the previous section you can systematically calculate variations on the starting pattern. E.g. try 21-&amp;gt;11, 22-&amp;gt;11 or 22-&amp;gt;21 to break ties, or 21 -&amp;gt; &amp;nbsp;10 to replace a longer duration with a shorter one.&lt;/li&gt;
&lt;li&gt;Instead of using rewriting rules, you can also use systematic calculations on the decimal representations (or representation in any other number base really), and interpret the results as rhythms again. In that case the variations are stilll systematic, but most likely more unpredictable to an observer.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/8598589240839394959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/12/modeling-rhythms-using-numbers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8598589240839394959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8598589240839394959'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/12/modeling-rhythms-using-numbers.html' title='Modeling rhythms using numbers'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD7BhFozSDFRHEYyUS2QCsUnmS_HnzT6EjsxRYLxIMAFI76TsCGJkcbwKwftbgQK3YRzFTUtgIs-neYMxcGHmPpHynoRagEtxoezjaLujfHc10g83AI-9492s6wWTATdqddPFghqqLnGA/s72-c/drum.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-2183679100857030084</id><published>2015-09-06T05:08:00.003-07:00</published><updated>2015-09-06T05:43:26.669-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="composition"/><category scheme="http://www.blogger.com/atom/ns#" term="fear of change"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><category scheme="http://www.blogger.com/atom/ns#" term="philosophy"/><title type='text'>Fear of change and its influence on the practice of music composition</title><content type='html'>&lt;h2&gt;
&lt;span class=&quot;section_label&quot;&gt;1&lt;/span&gt; Introduction&lt;/h2&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4156&quot;&gt;&lt;/a&gt;In this blog entry I will formulate some thoughts about how fear of change can explain a number of principles in music composition. It&#39;s very well possible that all this has been written before, and much better explained than I will ever be able to do, but I&#39;m in philosophical mood today, and perhaps you&#39;ll start to think differently about some things after reading this text. If you experience a feeling of skepticism while reading this article, and feel like it&#39;s written by an internet crackpot theorist, rest assured that this is in complete correspondence with what the article predicts will happen :) &lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 class=&quot;section&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4157&quot;&gt;&lt;/a&gt;&lt;span class=&quot;section_label&quot;&gt;2&lt;/span&gt; Fear of change as an organizing principle in the universe&lt;/h2&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4158&quot;&gt;&lt;/a&gt;Fear of change, while sounding specific to human psychology, really permeates the universe.&amp;nbsp;In Newtonian physics, any action will cause a counter-action that resists the original action. If you push your table top down, the table top pushes back and cancels out your intention to change it (until you hit it so hard that it breaks or deforms). Dynamic processes strive for equilibrium, that is, a state in which all changes canceled each other out perfectly and nothing happens anymore. Exactly why all things strive for minimal energy to the best of my knowledge is not known to anyone but it&#39;s an empirical observation that has held together science for a few centuries already and has been observed over and again in experiments and observations.&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4160&quot;&gt;&lt;/a&gt;In psychology, “fear of change” is a well-known topic.&amp;nbsp;When Copernicus found that the earth rotates around the sun, it caused massive resistance from the world population. When confronted with the implications of quantum theory (that he helped to establish), Einstein resisted the change in world view it would bring about and declared that &quot;God doesn&#39;t throw dice&quot;.&amp;nbsp;Announcements for big changes in an organization, e.g., are typically met with skepticism, and quickly resistance and conservatism will pop up to cancel out the announced change. Just google for “change management” to find a myriad of books explaining how to reorganize a corporation.&amp;nbsp;As I will argue in this blog entry, this same mechanism of fear of change (or better &quot;resistance to change&quot;) also permeates music theory.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
At the same time the universe doesn&#39;t appear to like complete rest. Quantum physics (a revolutionary theory that of course was met with a lot of skepticism at first!) predicts that there&#39;s no such thing as complete “rest”. The Heisenberg uncertainty relation necessitates that even at a temperature of 0 Kelvin (the lowest possible temperature in the universe) there must still be a small rest energy. In nature and technology we also observe constant evolution. Change is inevitable it seems. Similarly, in music, listening to a piece that consists of a single note without volume or rhythmic variation that lasts forever is not a pleasant experience. Ask anyone who&#39;s suffering from tinnitus what it&#39;s like...&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4162&quot;&gt;&lt;/a&gt;Finally, I want to stress that this fear of change is not a bad thing per se. After all, it has helped us survive since the stone age. It was probably safer to eat the berries that your parents ate than to try new berries every day. And it continues until today, since not all big changes or revolutionary “new insights” really have the merit they claim they have (and that may well apply to this blog entry too!)&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2 class=&quot;section&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4163&quot;&gt;&lt;/a&gt;&lt;span class=&quot;section_label&quot;&gt;3&lt;/span&gt; Fear of change in music&lt;/h2&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4164&quot;&gt;&lt;/a&gt;In this section I will list some places where I see fear of change in action in music composition. If you know about more examples, by all means, comment!&lt;/div&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;span class=&quot;subsection_label&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4165&quot;&gt;&lt;/a&gt;&lt;span class=&quot;subsection_label&quot;&gt;3.1&lt;/span&gt; Music style&lt;/h3&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4166&quot;&gt;&lt;/a&gt;In modern classical music, certain experiments have been branded &quot;interesting&quot;, whereas other experiments have proved to be wildly successful with wide audiences.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
The “12 tone” music style, that resolutely throws away the organizing principle of “sounding good” and replaces it with a different organizing principle of “using all available notes and treating them without differences”, as introduced by Schoenberg, results in music that has many leaps and bounds and, let&#39;s face it, has failed to attract a significant audience. On the other hand, “minimal music” with composers like Philip Glass, Steve Reich, Brian Eno, Michael Nyman, Terry Riley and a myriad of others, makes slowly evolving music and continues to be wildly successful with wide audiences. Compared to the 12-tone music, minimal music minimizes change. It also offers just enough changes to keep it from being boring. As such it avoids complete rest.&lt;/div&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;span class=&quot;subsection_label&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4167&quot;&gt;&lt;/a&gt;&lt;span class=&quot;subsection_label&quot;&gt;3.2&lt;/span&gt; Writing melody&lt;/h3&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4168&quot;&gt;&lt;/a&gt;When writing melody, e.g. in the context of counterpoint, or in the context of a song, it is advised to avoid big leaps. The reason given by ancient theorists is that smaller leaps are easier to sing. What makes a bigger leap harder to sing accurately than a smaller leap? Is the larger change of pitch a cause for distress in our brains? At the same time, I also took an introduction to counterpoint class, in which I was warned to avoid “turbulence”, i.e. writing a flurry of notes that doesn&#39;t seem to go anywhere. Minimize the change, while avoiding complete lack of direction (lack of direction would be a form of equilibrium or rest).&lt;/div&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;span class=&quot;subsection_label&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4169&quot;&gt;&lt;/a&gt;&lt;span class=&quot;subsection_label&quot;&gt;3.3&lt;/span&gt; Voice leading&lt;/h3&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4170&quot;&gt;&lt;/a&gt;When moving from chord to chord, voice leading is the principle that makes you do these movements while minimizing the changes in notes. Voice leading is an important topic in many courses on harmony and jazz theory. It is perhaps the most common principle that governs modern music styles (apart from those styles that avoid it on purpose, like the 12-tone music mentioned earlier). Voice leading is a direct application of minimizing change between chords. The fact that you move between chords and don&#39;t just stay on the same chord all the time, is a direct application of avoiding complete rest.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
Minimizing changes between chords historically probably also has a second reason: when playing chords on a keyboard it is easiest to play chords that are close together, i.e. where you minimize the changes in required hand and finger movements. Minimizing unneeded movements is absolutely required when learning to play an instrument at the level of a virtuoso. This synergy between physical minimization of change and pyschological minimization of change probably has led voice leading towards the huge role it plays in music composition.&lt;/div&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;span class=&quot;subsection_label&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4171&quot;&gt;&lt;/a&gt;&lt;span class=&quot;subsection_label&quot;&gt;3.4&lt;/span&gt; Fugue construction&lt;/h3&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4172&quot;&gt;&lt;/a&gt;While constructing a fugue according to the classical rules, the composer first states the theme, then restates the theme a fifth away from the original theme (but without introducing new accidentals, a so-called modal transposition), then returns to the original theme. This is the so-called “exposition” part of the fugue. During the exposition, the listener is taught the theme that will return in all kinds of variations later on. The theme is taught three times (minimize change), but the second time a fifth away compared to the first and third time (no complete rest). Why a fifth away? At first sight, a fifth seems like a large jump. Why didn&#39;t the composer just write the theme a second higher?&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4173&quot;&gt;&lt;/a&gt;There&#39;s again an application of the principle here and it requires some explanation. If you transpose all notes from the C major key a perfect fifth up, you get the notes from G major. If you compare the notes of C major and G major, you will notice that they share all the same notes, except for the note f (in C major) compared to a note f# (in G major). G major therefore represents a key that is as close as possible to C major (since it differs in only one accidental) while not being completely the same (since it differs in at least one accidental). A theme written in C major that is modally transposed from c to g will therefore sound maximally the same as the original theme (minimize change). Next time you wonder why moving along the circle of fifths is so popular, fear of change may be the answer you look for.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4174&quot;&gt;&lt;/a&gt;&lt;span class=&quot;subsection_label&quot;&gt;3.5&lt;/span&gt; Modulation&lt;/h3&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4175&quot;&gt;&lt;/a&gt;Modulation is the art of moving from musical key to musical key. When you move from one key to another, you want to gently guide the listener towards this change. When you read about modulation, you will often be advised to modulate to “near” keys, that is, musical keys that do not differ in number of accidentals too much. This is a direct application of minimization of change.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
One can also modulate to more distant keys. In those cases a sudden change, known as direct modulation, is frown upon by composers and theorists. To modulate between keys, especially to distant keys, several advanced techniques have been invented and they involve clever voice leading, sometimes going as far as substituting chromatic notes for enharmonic equivalents, towards a cadence to confirm the new key. These techniques incrementally introduce small changes to the audience so they are guided from the old key into the new key without sudden changes.&lt;/div&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;span class=&quot;subsection_label&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 class=&quot;subsection&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4176&quot;&gt;&lt;/a&gt;&lt;span class=&quot;subsection_label&quot;&gt;3.6&lt;/span&gt; Writing hit songs&lt;/h3&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4177&quot;&gt;&lt;/a&gt;Commercial pop music often reuses the same chord progressions. During the 1980-ies, these chords where typically I, IV, V (think: C F G). Nowadays, the new chord progression used in virtually all hit songs is (I, V, vi, IV) (think: C G Am F). Why is that? Why exactly those progressions? Why did I,V,iv,IV come after I,IV,V? &lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4178&quot;&gt;&lt;/a&gt;Look at I, IV, V. Remember from the section about fugue construction that transposing a theme a fifth up will maximally retain the existing melody notes. The same is true when transposing a theme a fifth down (note “c” transposed a fifth down gives an “f”. This can just as well be thought of as transposing it a fourth up). When transposing something a fifth up, you need an extra sharp (or one less flat) to completely preserve the same melody. Similarly, when transposing a theme a fifth down, or equivalently a fourth up, you need an extra flat (or one less sharp) to completely preserve the melody. This means that by playing with the chords I, IV, V you have minimized the changes in the set of notes that need to be recognized by an audience, and maximally preserved the possible melodies that can be written on top of these chords. &lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4179&quot;&gt;&lt;/a&gt;Complete rest is still not desirable, and so after 20 years of I, IV, V the time was ready for a new chord progression that finds a way to minimize change while avoiding complete rest. And this new chord progression appears to be I, V, vi, IV. It&#39;s an evolution from I,IV,V in that it introduces an extra chord. Because the audience is already very used to I, IV, V, this extra chord can inject a bit of much needed change into the music again. The new chord of course is not chosen arbitrarily. It&#39;s chosen in such a way that it minimizes change with respect to the old chord progression.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
As before, when going from I to V, you need only one extra accidental. When going from V to vi, you need one less accidental (since vi is the minor equivalent of major I). Then when going from vi to IV, you need one less accidental again, and finally when going back from the final IV to I to sing the next verse, you need a single extra accidental again, making the circle round. Changes have been minimized between every two consecutive chords, and total rest is avoided by moving between different chords.&lt;/div&gt;
&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?--&gt;









&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4154&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4155&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4156&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4157&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4158&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4159&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4160&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4161&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4162&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4163&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4164&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4165&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4166&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4167&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4168&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4169&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4170&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4171&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4172&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4173&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4174&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4175&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4176&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4177&quot;&gt;
&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4178&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4179&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4180&quot;&gt;

&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4181&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot; id=&quot;magicparlabel-4180&quot;&gt;&lt;/a&gt;I&#39;m afraid we&#39;re still stuck with I, V, vi, IV for a while, but if you want to define the future, grab your chance, and design a new chord progression that minimizes change while avoiding complete rest :) Unfortunately, you may have trouble selling it to the music publishing companies, since they will probably resist these sudden changes you try to introduce ;) “Never change a winning team/theme!”&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;standard&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/null&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/2183679100857030084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/09/fear-of-change-and-its-influence-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/2183679100857030084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/2183679100857030084'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/09/fear-of-change-and-its-influence-on.html' title='Fear of change and its influence on the practice of music composition'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-8476710929267805888</id><published>2015-08-19T13:34:00.000-07:00</published><updated>2015-08-19T13:34:06.884-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mixing"/><category scheme="http://www.blogger.com/atom/ns#" term="vocals"/><title type='text'>More notes to self on treating vocals</title><content type='html'>&lt;h2&gt;
Steps to follow:&lt;/h2&gt;
&lt;h3&gt;
Remove background noise using gate&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;e.g.: threshold: -17dB, reduction: -100dB, attack: 5ms, hold: 30ms, release: 60ms, hysteresis: -3dB, lookahead: 0, high cut: 20kHz, low cut: 20Hz&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
Corrective Equalization&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
see &quot;Remove Rumble&quot; and &quot;Sweep Sound&quot; part of previous post&lt;br /&gt;
&lt;h3&gt;
Normalize gain to -3dB&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
De-esser (some say it should come after compression)&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;e.g.: detection frequency: 9800Hz, sensitivity: 26%&lt;/li&gt;
&lt;li&gt;e.g.: suppressor: 9300Hz, strength: -9dB&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;
Compression&lt;/h3&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;e.g.: attack: 2ms, knee: 1, threshold: -22dB&amp;nbsp;RMS, gain: 8dB, limiter threshold: -0.5dB&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;h3&gt;
Equalization and Enhancing&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
see &quot;Give Glitter&quot; part of previous post.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Note: to make sure that all similar vocals are treated similarly, route them through a common bus and apply the effects on the bus.&lt;/div&gt;
&lt;h3&gt;
Add reverb and delay&lt;/h3&gt;
&lt;div&gt;
use send/return configuration for all time based effects&lt;/div&gt;
&lt;h3&gt;
Last minute fix-ups&lt;/h3&gt;
&lt;div&gt;
Autotune&amp;nbsp;+ see &quot;Special fx&quot; part of previous post&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/8476710929267805888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/08/more-notes-to-self-on-treating-vocals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8476710929267805888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8476710929267805888'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/08/more-notes-to-self-on-treating-vocals.html' title='More notes to self on treating vocals'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-8336880073271503441</id><published>2015-08-16T13:23:00.003-07:00</published><updated>2015-08-16T13:25:30.768-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="equalizer"/><category scheme="http://www.blogger.com/atom/ns#" term="mixing"/><category scheme="http://www.blogger.com/atom/ns#" term="vocal"/><title type='text'>Note to self about equalizing vocals</title><content type='html'>Since I&#39;m sure I will forget this information, I&#39;m putting it online where I know I will find it back. After each step, also check the effect in the mix (i.e. together with other instruments). A subtle effect is usually better than an over-the-top effect. The information here is summarized from &lt;a href=&quot;https://www.youtube.com/watch?v=qdDDVortvRU&quot; target=&quot;_blank&quot;&gt;https://www.youtube.com/watch?v=qdDDVortvRU&lt;/a&gt;&amp;nbsp;. Be sure to check out their video for sound examples.&lt;br /&gt;
&lt;h2&gt;
Step 1: remove rumble&lt;/h2&gt;
Use a &lt;b&gt;high pass filter&lt;/b&gt; (aka low cut filter). Increase the cut-off frequency until you just start to hear the difference, then reduce it a bit. That&#39;s right, aim for not hearing the effect. This ensures that you only remove rubbish, and don&#39;t remove valuable data. A typical cut-off frequency will be around &lt;b&gt;80Hz-120Hz&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
When done, check the effect in the mix.&lt;br /&gt;
&lt;h2&gt;
Step 2: give glitter&lt;/h2&gt;
&lt;div&gt;
For this purpose use a &lt;b&gt;high shelving filter&lt;/b&gt;. Try to boost frequencies &lt;b&gt;above 8kHz&lt;/b&gt; with anything from 1dB to about 6dB. If you want a more subtle effect, try to boost above 12kHz-16kHz instead.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When done, check the effect in the mix.&lt;/div&gt;
&lt;h2&gt;
Step 3: sweep sound&lt;/h2&gt;
&lt;div&gt;
Use a &lt;b&gt;small bandpass filter&lt;/b&gt;, vary its center frequency and search for frequency bands that obviously stand out compared to other frequency bands. You can attenuate these a bit. A typical action is to &lt;b&gt;attenuate around 800Hz-1kHz&lt;/b&gt;.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When done, check the effect in the mix.&lt;/div&gt;
&lt;h2&gt;
Step 4: special fx&lt;/h2&gt;
This step is optional.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;To make sound brighter, try to boost 2kHz-5kHz.&lt;/li&gt;
&lt;li&gt;To make vocal sit better in the mix in quieter passages, try cutting between 100Hz-250Hz&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
When done, check the effect in the mix.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/8336880073271503441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/08/note-to-self-about-equalizing-vocals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8336880073271503441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8336880073271503441'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/08/note-to-self-about-equalizing-vocals.html' title='Note to self about equalizing vocals'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-4486259666587424479</id><published>2015-01-14T14:36:00.001-08:00</published><updated>2015-01-15T16:05:26.300-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="composition"/><category scheme="http://www.blogger.com/atom/ns#" term="description"/><category scheme="http://www.blogger.com/atom/ns#" term="fairy tale"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><category scheme="http://www.blogger.com/atom/ns#" term="original song"/><category scheme="http://www.blogger.com/atom/ns#" term="piano"/><category scheme="http://www.blogger.com/atom/ns#" term="solo"/><title type='text'>Stefaan Himpe - Fairy tale for piano solo</title><content type='html'>&lt;h2&gt;
Fairy tale for piano solo&lt;/h2&gt;
&lt;div&gt;
It&#39;s been a while but I finally found some time to write, practice and record a new piece. All things music have been on a break for a while now, and I&#39;m glad that I can take a break from taking a break.&lt;br /&gt;
&lt;br /&gt;
You can download the piece from my soundcloud account:&amp;nbsp;&lt;a href=&quot;https://soundcloud.com/stefaanhimpe/fairy-tale-for-piano-solo&quot; target=&quot;_blank&quot;&gt;https://soundcloud.com/stefaanhimpe/fairy-tale-for-piano-solo&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/tkZYH9fzLb0?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So... what do we have here really?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The piece started as a sad ending theme for a video game. It was never used for that purpose and so I decided to rework it into something longer. Maybe it&#39;s interesting if I tell you how I think about the music, bar by bar. (Then again, maybe it&#39;s not ;) Feel free to skip the explanations. Most of all, I&#39;m also curious how much of this I will still recognize in a year or in 5 years. I may even come back to my description and update it as my insights change.)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 1-4: The piece starts off quite melancholic (which was a requirement for the sad ending of the video game). This part is written in C minor key, a key that is traditionally regarded as the key in which to express a&amp;nbsp;&lt;i&gt;declaration of love with lament of unhappy love, sighing of the lovesick soul&lt;/i&gt;. Clearly someone is thinking back about something.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 5-8: The beginning is repeated with a slight variation in the accompaniment to avoid making it sound the same twice. It is as if the accompaniment adds more detail to the memories as they are repeated.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 9-12: Suddenly the melancholic fantasy is interrupted with a little waltz. A short distraction? Or perhaps a related memory, a sudden free association.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 13-20: The distracting thoughts are pushed away and make place again for the fantasy. As the fantasy repeats itself, the melody notes again add more details to the memories. By coloring the melody using notes outside the scale, the color of the memories changes. Little imperfections that keep the story alive as it were.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 21-27: The fantasy continues. The fantasizing person remembers and overthinks some of the consequences that resulted from whatever happened in bars 13-20.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 27-32: Stress level increases a bit. Temper gets a bit heated.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 33-34: Some soothing thoughts manage to calm down the person.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 35-38: There&#39;s our distraction waltz again. It&#39;s barely interesting enough to keep our thoughts away from what happened.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 39-48: The fantasy is resumed, but in bar 45 it suddenly takes a different path. The person has second thoughts about how everything really went back then. For a while, things are remembered as perhaps more festive than before (bars 47-48).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 49-52: These finish the first fantasy and prepare the music to change into a different key of f minor. F minor is the key in which one traditionally expresses&lt;i&gt; deep depression, funeral lament, groans of misery and longing for the grave. &lt;/i&gt;No doubt the passage that follows will have a sinister side to it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 52-85: A buildup of emotions, a waterfall of notes follows. In the left hand we have a sad but very static accompaniment with typical f minor notes. In the right hand, in bars 53-64, we also have very dissonant chords which work to create a somewhat uneasy feeling. In bars 65-76, the dissonant chords are now replaced with a locrian motif that further increases the uneasyness in the music. In bar 74, the deepest note of the piece (a very low &quot;d&quot;) is reached. Then bars 77-85 repeat the same techniques but a fifth higher and with many more, and much faster notes, which adds even more drama to the already dramatic state of mind of our fantast. The fifth higher brings us in the key of Bb minor, which traditionally is used to express feelings of&amp;nbsp;&lt;i&gt;mocking God and the world, discontented with itself and everything, preparation of suicide.&lt;/i&gt; Quite restless and dramatic indeed :)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 86-91: The deepest darkest memories subside and make place again for the sweeter earlier theme.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 92-113: The earlier theme is repeated, but again the colors have changed to something more bitter-sweet. This time the chords in the right hand sound much more yearning than in the beginning of the piece. As if the darkest memories increased the feeling of having lost something valuable and make it more painful to think back about what was lost.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bars 114-117: Eventually, the person snaps out of his trip through memory lane and we hear the waltz playing again.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Bar 118: The piece ends with some bitter sweet ending chords. A near happy end, and time to get back to work ;)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/4486259666587424479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/01/stefaan-himpe-fairy-tale-for-piano-solo.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/4486259666587424479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/4486259666587424479'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2015/01/stefaan-himpe-fairy-tale-for-piano-solo.html' title='Stefaan Himpe - Fairy tale for piano solo'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-286268193118508144</id><published>2014-03-08T15:03:00.000-08:00</published><updated>2014-03-21T13:46:34.664-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="limited transposition"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="messiaen"/><category scheme="http://www.blogger.com/atom/ns#" term="modes"/><category scheme="http://www.blogger.com/atom/ns#" term="music composition"/><category scheme="http://www.blogger.com/atom/ns#" term="symmetry"/><title type='text'>Olivier Messiaen - a closer look at his modes of limited transposition</title><content type='html'>&lt;h2&gt;
Olivier who?&lt;/h2&gt;
Olivier Messiaen was a French composer (December 10, 1908&amp;nbsp;– April 27, 1992), known for inventing a new musical language. He wrote a book about his ideas on rhythm, melody and harmony and is generally regarded as one of the great innovators in music. He drew inspiration mostly from his Christian beliefs and from bird songs. I personally fell in love with this musical language after hearing his work &quot;&lt;i&gt;Vingt Regards sur l&#39;Enfant-Jésus&lt;/i&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/ruYEGQ004gk&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;

&lt;br /&gt;
One key element of his compositions is a set of scales that he &quot;invented&quot; (or rather, selected from the vast space of possible scales). They consist of symmetrical note groups. While writing music he would often adhere to using only notes from one or more of his scales, leading to special music (with very rewarding harmonies).&lt;br /&gt;
&lt;br /&gt;
I was curious about these special scales and wondered about the mechanisms that cause the scales to &quot;work so well&quot; with a listener, so&lt;br /&gt;
I set up my own private investigation and took a close look at his scales.&lt;br /&gt;
I discovered quite a number of interesting things (which may be known already in literature, I don&#39;t want to claim I found something new, but they were certainly new to me)&lt;br /&gt;
&lt;br /&gt;
I&#39;ve written up what I came up with so far and put it online on github. The pdf can be seen here: &lt;a href=&quot;https://github.com/shimpe/mints/blob/master/out/document.pdf?raw=true&quot;&gt;https://github.com/shimpe/mints/blob/master/out/document.pdf?raw=true&lt;/a&gt; . All the code required to reconstruct the article is available here &lt;a href=&quot;https://github.com/shimpe/mints&quot;&gt;https://github.com/shimpe/mints&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;
Feel free to contact me with questions or remarks about this document.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/286268193118508144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2014/03/olivier-messiaen-closer-look-at-his.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/286268193118508144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/286268193118508144'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2014/03/olivier-messiaen-closer-look-at-his.html' title='Olivier Messiaen - a closer look at his modes of limited transposition'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/ruYEGQ004gk/default.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-1912092712408169818</id><published>2014-01-04T14:56:00.001-08:00</published><updated>2014-01-04T14:56:36.082-08:00</updated><title type='text'>Etude for piano solo</title><content type='html'>Inspired by youtube composer &lt;a href=&quot;https://www.youtube.com/gonrolgonrol&quot;&gt;Rolando Gonzalez&lt;/a&gt;&#39; recent videos, I set out to write something in classical (&quot;Mozart&quot;) style... but as I started working, I felt the piece heading itself in a very different direction. Sorry Mozart, you have been postponed ;)&lt;br /&gt;
&lt;br /&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/RbJMh-5kmnc&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;166&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F127915782&amp;show_artwork=true&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/1912092712408169818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2014/01/etude-for-piano-solo.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/1912092712408169818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/1912092712408169818'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2014/01/etude-for-piano-solo.html' title='Etude for piano solo'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-398923896640974379</id><published>2013-12-29T02:57:00.002-08:00</published><updated>2013-12-30T18:13:49.907-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="choir"/><category scheme="http://www.blogger.com/atom/ns#" term="gui"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="pitch extract"/><category scheme="http://www.blogger.com/atom/ns#" term="pitch shift"/><category scheme="http://www.blogger.com/atom/ns#" term="realtime"/><category scheme="http://www.blogger.com/atom/ns#" term="sing"/><category scheme="http://www.blogger.com/atom/ns#" term="supercollider"/><category scheme="http://www.blogger.com/atom/ns#" term="synthesis"/><category scheme="http://www.blogger.com/atom/ns#" term="virtual"/><title type='text'>Virtual choir: auto harmonize your voice in real time with supercollider</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK8ABd45PIwGT1JYJPq0F6ziD6DWXixvxhmWTfc_AnLbtjylTv5EK58osbYIzRNDAUA7HiZ0fFxHaRIvlLc7hG-U89Ka8mDz-57xGAJx3XPJ9vdGB4Tl4-M58MxPXoBXzkYdMQ96gF7Lo/s1600/virtualchoir.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;114&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK8ABd45PIwGT1JYJPq0F6ziD6DWXixvxhmWTfc_AnLbtjylTv5EK58osbYIzRNDAUA7HiZ0fFxHaRIvlLc7hG-U89Ka8mDz-57xGAJx3XPJ9vdGB4Tl4-M58MxPXoBXzkYdMQ96gF7Lo/s320/virtualchoir.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
This blog entry is about to describe an experiment I did with the &lt;b&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt; real time audio synthesis and algorithmic composition programming language&lt;/span&gt; &lt;/b&gt;&lt;a href=&quot;http://supercollider.github.io/&quot; target=&quot;_blank&quot;&gt;supercollider&lt;/a&gt;. &lt;b&gt;Before you read on, please realize that this stuff is highly addictive.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So you&#39;ve always wanted to sing in a choir, but didn&#39;t have the 
opportunity or courage to join one near you? Here&#39;s an easy way to turn 
your singing into a choir piece in real time using supercollider.&lt;br /&gt;
&lt;br /&gt;
The system is based on the following example from the supercollider documentation:&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;s.boot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;(&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SynthDef(&quot;pitchFollow1&quot;,{&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; var in, amp, freq, hasFreq, out;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; in = Mix.new(SoundIn.ar([0,1]));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; amp = Amplitude.kr(in, 0.05, 0.05);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; # freq, hasFreq = Pitch.kr(in, ampThreshold: 0.02, median: 7);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; //freq = Lag.kr(freq.cpsmidi.round(1).midicps, 0.05);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; out = Mix.new(VarSaw.ar(freq * [0.5,1,2], 0, LFNoise1.kr(0.3,0.1,0.1), amp));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; 6.do({&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; out = AllpassN.ar(out, 0.040, [0.040.rand,0.040.rand], 2)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; });&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; Out.ar(0,out)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;}).play(s);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This example does something very interesting: it reads sound from your microphone using the SoundIn command, then tracks its frequency using the Pitch command and then synthesizes a new sawtooth wave at different multiples of the detected frequency. The new sawtooth wave is then sent to the speakers, allowing you to hear the sawtooth following your voice&#39;s pitch.&lt;br /&gt;
&lt;br /&gt;
Upon hearing this, I immediately thought of harmonizing singing voice in real time, with the possibility to harmonize every note differently, so as to arrive at an (hopefully somewhat interesting) choir piece.&lt;br /&gt;
&lt;br /&gt;
So I sat out to improve the example (combine it with pitch-shifting instead of synthesizing a new sawtooth wave, and add a bit of a GUI to it, to allow reconfiguring the harmonization on the fly), and came up with the following.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Please note that I&#39;m very new to the supercollider programming language, and I&#39;m glad for any suggestions you may have w.r.t. code style! The following code can also be cloned/forked from &lt;a href=&quot;https://github.com/shimpe/sc-virtual-choir&quot; target=&quot;_blank&quot;&gt;the github repository&lt;/a&gt;.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;s.boot;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;(&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var table;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var gap = 40;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var mapped, mapped2, diffbuf, diffbuf2;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var miditoname;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var nametomidi;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var sound;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var difference, difference2;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;var tf, tf2;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a function to convert a midi note number to a midi note name&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;miditoname = ({ arg note = 60, style = \American ;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var offset = 0 ;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var midi, notes;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case { style == \French } { offset = -1}&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; { style == \German } { offset = -3} ;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; midi = (note + 0.5).asInteger;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; notes = [&quot;C&quot;, &quot;C#&quot;, &quot;D&quot;, &quot;D#&quot;, &quot;E&quot;, &quot;F&quot;, &quot;F#&quot;, &quot;G&quot;, &quot;G#&quot;, &quot;A&quot;, &quot;A#&quot;, &quot;B&quot;];&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (notes[midi%12] ++ (midi.div(12)-1+offset))&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a function to convert a midi note name to a midi note number&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;nametomidi = ({ arg name = &quot;C4&quot;, style = \American ;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var offset = 0 ; // French usage: +1 ; German usage: +3&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var twelves, ones, octaveIndex, midis;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; case { style == \French } { offset = 1}&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; { style == \German } { offset = 3} ;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; midis = Dictionary[($c-&amp;gt;0),($d-&amp;gt;2),($e-&amp;gt;4),($f-&amp;gt;5),($g-&amp;gt;7),($a-&amp;gt;9),($b-&amp;gt;11)];&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ones = midis.at(name[0].toLower);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( (name[1].isDecDigit), {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; octaveIndex = 1;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },{&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; octaveIndex = 2;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( (name[1] == $#) || (name[1].toLower == $s) || (name[1] == $+), {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ones = ones + 1;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },{&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if( (name[1] == $b) || (name[1].toLower == $f) || (name[1] == $-), {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ones = ones - 1;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; twelves = (name.copyRange(octaveIndex, name.size).asInteger) * 12;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; (twelves + 12 + ones + (offset*12))&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a table of reference notes [c c# d ... b]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;table = Array.fill(12, {arg i; i + 60}); // [60,61,...,71]&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a table of mapped notes (Default values)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;mapped = [nametomidi.value(&quot;g3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;a3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;b3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;bb3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;c4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;c4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;a3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;d4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;e4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;f4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;f4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;g4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;];&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;mapped2 = [nametomidi.value(&quot;e3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;g3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;g3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;g#3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;a3&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;a4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;d4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;b4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;c4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;d4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;d4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; nametomidi.value(&quot;d4&quot;),&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;];&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a table to store the difference between reference and mapped note&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;difference = Array.fill(table.size, {0});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a buffer on the server for consultation from the SynthDef&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;diffbuf= Buffer.loadCollection(s,table,action:{|msg| msg.postln;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;difference2= Array.fill(table.size, {0});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;diffbuf2=Buffer.loadCollection(s,table,action:{|msg| msg.postln;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;tf = List.new(table.size);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;tf2 = List.new(table.size);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define a window called &quot;Setup mapping&quot;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;w = Window.new(&quot;Setup mapping&quot;, Rect(200,200,15*gap,190));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// add the reference notes as labels (fixed), and the mapped notes as text fields (editable)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// whenever a text field is updated, update the list of mapped notes (mapped)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;table.do({arg item, i;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var t, u;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; StaticText(w, Rect(10+gap*i, 10, gap, 30)).string_(miditoname.value(item));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t = TextField(w, Rect(10+gap*i, 50, gap, 30)).string_(miditoname.value(mapped[i]));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t.action = { mapped[i] = nametomidi.value(t.value); (&quot;upper map note number &quot; ++ i ++ &quot; from &quot; ++ table[i] ++ &quot; to &quot; ++&amp;nbsp; mapped[i]).postln;&amp;nbsp; diffbuf.set(i, (table[i] - mapped[i]).midiratio.reciprocal)};&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf.add(t);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u = TextField(w, Rect(10+gap*i, 90, gap, 30)).string_(miditoname.value(mapped2[i]));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u.action = { mapped2[i] = nametomidi.value(u.value); (&quot;lower map note number &quot; ++ i ++ &quot; from &quot; ++ table[i] ++ &quot; to &quot; ++ mapped2[i]).postln; diffbuf2.set(i, (table[i]-mapped2[i]).midiratio.reciprocal);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf2.add(u);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// add a button to play a reference note&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;c = Button(w, Rect(10,130,100,30)).states_([[&quot;Play C4&quot;,Color.black,Color.gray]]);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;c.action_({arg butt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (butt.value == 0,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; var env = Env.perc;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SinOsc.ar(nametomidi.value(&quot;c4&quot;).midicps)*EnvGen.kr(env, doneAction:2)!2;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }.play,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {})&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// also add a start/stop button&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// when the button is set to start, instantiate a new Synth, otherwise free the Synth&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;b= Button(w, Rect(110,130,100,30)).states_([&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&quot;Start&quot;,Color.black, Color.red],&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&quot;Stop&quot;,Color.black, Color.green]]);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;b.action_({arg butt;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (butt.value == 1,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tf.do({arg item; item.action});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tf2.do({arg item; item.action});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; table.do({arg item, i;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; difference2[i] = (table[i] - mapped2[i]).midiratio.reciprocal;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; difference[i] = (table[i] - mapped[i]).midiratio.reciprocal;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; diffbuf.setn(0,difference);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; diffbuf2.setn(0,difference2);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; sound = Synth.new(&quot;pitchFollow1&quot;);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp; sound.free;}&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;});&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// define the Synth itself:&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// - first it determines the pitch of what it hears in the microphone&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// - then it harmonizes the pitch with the notes as defined in the ui&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;SynthDef.new(&quot;pitchFollow1&quot;,{&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var in, amp, freq, hasFreq, out;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var t, midinum;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var harmony, harmony2, partials;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; in = Mix.new(SoundIn.ar([0,1]));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; amp = Amplitude.kr(in, 0.05, 1);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # freq, hasFreq = Pitch.kr(in);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; midinum = freq.cpsmidi.round(1);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; midinum.postln;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; freq = Lag.kr(midinum.midicps, 0.05);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //freq = midinum.midicps;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; harmony2= WrapIndex.kr(diffbuf2.bufnum, midinum);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; harmony = WrapIndex.kr(diffbuf.bufnum, midinum);&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; partials = [&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0.5,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 1,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0.5*harmony,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 1*harmony,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;0.5*harmony2,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 1*harmony2,&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; out = Mix.new(PitchShift.ar(in, 0.2, partials, 0, 0.004));&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.do({&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; out = AllpassN.ar(out, 0.040, [0.040.rand,0.040.rand], 2)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Out.ar(0,out/partials.size)&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;}).add;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;// make the ui visible&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;w.front;&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;br style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot; /&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#39;s a sound example. It&#39;s not perfect, obviously, but to hear the computer create this in real time while you sing into the microphone is quite cool...&lt;br /&gt;
&lt;br /&gt;
&lt;iframe frameborder=&quot;no&quot; height=&quot;166&quot; scrolling=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F126953368&amp;amp;show_artwork=true&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;

&lt;br/&gt;
And a complete piece:
&lt;br/&gt;
&lt;iframe width=&quot;100%&quot; height=&quot;166&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F127207949&amp;show_artwork=true&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/398923896640974379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/12/virtual-choir-auto-harmonize-your-voice.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/398923896640974379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/398923896640974379'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/12/virtual-choir-auto-harmonize-your-voice.html' title='Virtual choir: auto harmonize your voice in real time with supercollider'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK8ABd45PIwGT1JYJPq0F6ziD6DWXixvxhmWTfc_AnLbtjylTv5EK58osbYIzRNDAUA7HiZ0fFxHaRIvlLc7hG-U89Ka8mDz-57xGAJx3XPJ9vdGB4Tl4-M58MxPXoBXzkYdMQ96gF7Lo/s72-c/virtualchoir.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-8284575326407418129</id><published>2013-10-20T06:33:00.006-07:00</published><updated>2013-10-20T06:44:45.817-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="music"/><title type='text'>Music to die for...</title><content type='html'>When starting this blog, I announced I would sometimes share things I&#39;ve come across that really need to heard to be believed.&lt;br /&gt;
&lt;br /&gt;
Here is one such thing...&lt;br /&gt;
&lt;h3 class=&quot;r&quot;&gt;
&lt;a href=&quot;http://www.arstidir.com/&quot;&gt;&lt;i&gt;Árstíðir&lt;/i&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;r&quot;&gt;
&lt;i&gt;I&#39;d happily have missed my train for this...&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;r&quot;&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;360&quot; src=&quot;//www.youtube.com/embed/e4dT8FJ2GE0&quot; width=&quot;480&quot;&gt;&lt;/iframe&gt;

&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/8284575326407418129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/10/music-to-die-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8284575326407418129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/8284575326407418129'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/10/music-to-die-for.html' title='Music to die for...'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-1388417548217065991</id><published>2013-10-03T01:14:00.000-07:00</published><updated>2013-10-03T01:14:00.602-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jazzy"/><category scheme="http://www.blogger.com/atom/ns#" term="paths"/><category scheme="http://www.blogger.com/atom/ns#" term="pedaling"/><category scheme="http://www.blogger.com/atom/ns#" term="piano"/><category scheme="http://www.blogger.com/atom/ns#" term="poem"/><category scheme="http://www.blogger.com/atom/ns#" term="poetry"/><category scheme="http://www.blogger.com/atom/ns#" term="staccato"/><category scheme="http://www.blogger.com/atom/ns#" term="streams"/><category scheme="http://www.blogger.com/atom/ns#" term="time signature"/><title type='text'>Streams and paths</title><content type='html'>&lt;h2&gt;
What?&amp;nbsp;&lt;/h2&gt;
Piano music, based on &lt;a href=&quot;http://tma7850.blogspot.com/2013_08_01_archive.html&quot; target=&quot;_blank&quot;&gt;a poem by Tricia Adams&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The style uses some harmonic ideas from jazz, and features quickly changing time signatures. Difficulties in performing come from the requirements in precise pedaling, the ever-changing time signatures, and some awkward jumps in the left hand (in combination with the speed).&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Where? &lt;/h2&gt;
The usual places :)

&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/4K04vNXHI_k?list=UU42x-Fd8gCJqUi0kpe0ggmw&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;

&lt;iframe frameborder=&quot;no&quot; height=&quot;166&quot; scrolling=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F113568028&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;

</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/1388417548217065991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/10/streams-and-paths.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/1388417548217065991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/1388417548217065991'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/10/streams-and-paths.html' title='Streams and paths'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-5531975496364505021</id><published>2013-08-24T16:26:00.000-07:00</published><updated>2015-09-06T05:31:19.801-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition"/><category scheme="http://www.blogger.com/atom/ns#" term="canon"/><category scheme="http://www.blogger.com/atom/ns#" term="Canon (Music)"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="musescore"/><category scheme="http://www.blogger.com/atom/ns#" term="musicxml"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><title type='text'>Algorithmic composition: generating tonal canons with Python and music21</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8AbUmUVDlUej07Z5YSiY6Hgdock1EKAACiViGoSaNdQTZXU95upQGIPrcpwLYRYuu7FbhpBWWAsj9m9xrR5VPeLizxdrA6Jm35lIoj0MS15jlpEoQQqtccCQwrvRmb_ublGURWCTneQk/s1600/spiced_up-blog.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;302&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8AbUmUVDlUej07Z5YSiY6Hgdock1EKAACiViGoSaNdQTZXU95upQGIPrcpwLYRYuu7FbhpBWWAsj9m9xrR5VPeLizxdrA6Jm35lIoj0MS15jlpEoQQqtccCQwrvRmb_ublGURWCTneQk/s640/spiced_up-blog.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;1x spiced up chord progression (intermediate step in canon generation)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;h2&gt;
&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;
&amp;nbsp;&amp;nbsp;What?&lt;/h2&gt;
According to wikipedia: &lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;b&gt;Algorithmic composition&lt;/b&gt; is the technique of using &lt;a href=&quot;http://en.wikipedia.org/wiki/Algorithm&quot; title=&quot;Algorithm&quot;&gt;algorithms&lt;/a&gt; to create &lt;a href=&quot;http://en.wikipedia.org/wiki/Music&quot; title=&quot;Music&quot;&gt;music&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Some algorithms that have no immediate musical relevance are used by composers as creative inspiration for their music. Algorithms such as &lt;a class=&quot;mw-redirect&quot; href=&quot;http://en.wikipedia.org/wiki/Fractals&quot; title=&quot;Fractals&quot;&gt;fractals&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/L-system&quot; title=&quot;L-system&quot;&gt;L-systems&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Statistics&quot; title=&quot;Statistics&quot;&gt;statistical models&lt;/a&gt;, and even arbitrary &lt;a href=&quot;http://en.wikipedia.org/wiki/Data&quot; title=&quot;Data&quot;&gt;data&lt;/a&gt; (e.g. &lt;a href=&quot;http://en.wikipedia.org/wiki/Census&quot; title=&quot;Census&quot;&gt;census&lt;/a&gt; figures, &lt;a href=&quot;http://en.wikipedia.org/wiki/Geographic_information_system&quot; title=&quot;Geographic information system&quot;&gt;GIS&lt;/a&gt; coordinates, or &lt;a href=&quot;http://en.wikipedia.org/wiki/Magnetic_field&quot; title=&quot;Magnetic field&quot;&gt;magnetic field&lt;/a&gt; measurements) have been used as source materials.&lt;/blockquote&gt;
And: &lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
In &lt;a href=&quot;http://en.wikipedia.org/wiki/Music&quot; title=&quot;Music&quot;&gt;music&lt;/a&gt;, a &lt;b&gt;canon&lt;/b&gt; is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Counterpoint&quot; title=&quot;Counterpoint&quot;&gt;contrapuntal&lt;/a&gt; compositional technique that employs a &lt;a href=&quot;http://en.wikipedia.org/wiki/Melody&quot; title=&quot;Melody&quot;&gt;melody&lt;/a&gt; with one or more &lt;a href=&quot;http://en.wikipedia.org/wiki/Imitation_%28music%29&quot; title=&quot;Imitation (music)&quot;&gt;imitations&lt;/a&gt; of the melody played after a given &lt;a href=&quot;http://en.wikipedia.org/wiki/Duration_%28music%29&quot; title=&quot;Duration (music)&quot;&gt;duration&lt;/a&gt; (e.g., quarter rest, one measure, etc.). &lt;/blockquote&gt;
&lt;h2&gt;
How?&lt;/h2&gt;
Last year I wrote a series of articles on an easy method for writing some types of canons:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/07/tutorial-on-my-technique-for-writing.html&quot; target=&quot;_blank&quot;&gt;Tutorial on my technique for writing a Canon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/08/how-to-write-crab-canon.html&quot; target=&quot;_blank&quot;&gt;How to write a crab Canon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/07/6-part-invention.html&quot; target=&quot;_blank&quot;&gt;6-part Invention&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/08/how-to-write-table-canon.html&quot; target=&quot;_blank&quot;&gt;How to write a table Canon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
In at least one of those articles I claimed that the methods described there should be easy to use as basis for automation. Here I automate the 
method for writing a simple canon as explained in the first of these articles.&lt;br /&gt;
&lt;h2&gt;
Code?&lt;/h2&gt;
The code discussed below is available under GPLv3 license on github: &lt;a href=&quot;https://github.com/shimpe/canon-generator&quot;&gt;https://github.com/shimpe/canon-generator.&lt;/a&gt; Similar to the gcc compiler, the music you generate with this program is yours. The GPLv3 license only applies to the code itself.&lt;br /&gt;
&lt;br /&gt;
It depends on free software only: &lt;a href=&quot;http://www.python.org/download/releases/2.7.5/&quot; target=&quot;_blank&quot;&gt;python 2.7&lt;/a&gt;, &lt;a href=&quot;http://web.mit.edu/music21/&quot; target=&quot;_blank&quot;&gt;music21&lt;/a&gt; and &lt;a href=&quot;http://musescore.org/&quot; target=&quot;_blank&quot;&gt;MuseScore&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;
Explanation?&amp;nbsp;&lt;/h2&gt;
This program generates canons from a given chord progression in a fixed key (no modulations for now, sorry!).&lt;br /&gt;
&lt;br /&gt;
It does &lt;b&gt;NOT&lt;/b&gt; generate atonal or experimental music, that is, if you&#39;re willing to accept the limitations of the program. It can occasionally generate &quot;grave&quot; errors against common practice rules (e.g. parallel fifths/octaves) -&amp;gt; see further explanation.&lt;br /&gt;
&lt;br /&gt;
It closely follows the method as explained in the&amp;nbsp; &lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/07/tutorial-on-my-technique-for-writing.html&quot; target=&quot;_blank&quot;&gt;Tutorial on my technique for writing a Canon&lt;/a&gt; article referenced above. If you want to understand in detail how it all works, please read that article first, and then come back here. If you just want to experiment with the different program settings, continue :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
One thing is worth explaining in more detail: the article mentions in one of the 
first steps of the recipe that the composer can start from a chord progression, and 
&quot;spice it up&quot; to get a choral.&amp;nbsp; So: how to we get a computer to spice up a chord progression, without 
building in thousands of composition rules?&lt;br /&gt;
&lt;br /&gt;
I introduced some note 
transformations that:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;introduce small steps between notes so as to generate something that could be interpreted as a melody &lt;br /&gt;
  &lt;/li&gt;
&lt;li&gt;do not fundamentally alter the harmonic function in the musical context &lt;br /&gt;
  &lt;/li&gt;
&lt;/ul&gt;
To accomplish this I replace with a sequence of notes without altering the total duration of the fragment, e.g.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;original note (half note) -&amp;gt; original note (quarter note), neighbouring note (8th note), original note (8th note)&lt;/li&gt;
&lt;/ul&gt;
Other transformations&amp;nbsp; look at the current note and the next note, and interpolate a note in between (again, without changing total duration)&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;original note (half note), next note -&amp;gt; original note (quarter note), note between original note and next note (quarter note), next note&lt;/li&gt;
&lt;/ul&gt;
A property of generating melodies by spicing up lists of notes using this method is that after spicing up a list of notes, you can spice the spiced up list again to get an even spicier list (more complex melody, both in pitch and in rhythm).&lt;br /&gt;
&lt;br /&gt;
Finally a warning for the sensitive ears: for a composer to write a choral 
that obeys all the rules of the &quot;common practice&quot; takes years of study 
and lots of practice. Given the extreme simplicity of the program, the computer 
doesn&#39;t have any of this knowledge and it will happily generate errors against 
the common practice rules (e.g. parallel fifths and octaves). Not always, but sometimes, as dicated by randomness. Note that this is an area in which the program could be improved, by checking for errors while spicing up and skipping proposed spicings that introduce errors against the common practice rules. &lt;br /&gt;
&lt;br /&gt;
Yet, despite the extreme simplicity of the method, the results can be surprisingly complex and in some cases sound interesting. &lt;br /&gt;
&lt;h2&gt;
How can I use it?&lt;/h2&gt;
In its current form, the program is not really easy to install and use, at least if you have no computer experience:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;You need to install the free python programming language from &lt;a href=&quot;http://www.python.org/download/releases&quot;&gt;http://www.python.org/download/releases&lt;/a&gt;. I recommend using version 2.7. &lt;u&gt;&lt;i&gt;&lt;b&gt;Version 3 and later of python won&#39;t work!&lt;/b&gt;&lt;/i&gt;&lt;/u&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;You also need to install the free &lt;a href=&quot;http://web.mit.edu/music21/&quot; target=&quot;_blank&quot;&gt;music21toolkit for computer-aided musicology&lt;/a&gt;. Follow the instructions on their website. Music21 provides for vast amounts of music knowledge which would take a long time to write ourselves. I&#39;m using only a fraction of its possibilities in the canon generator.&lt;/li&gt;
&lt;li&gt;Then you need something to visualize and audition the MusicXml that is generated by the program. For our purposes, the free &lt;a href=&quot;http://musescore.org/&quot; target=&quot;_blank&quot;&gt;MuseScore &lt;/a&gt;program works perfectly.&lt;/li&gt;
&lt;li&gt;Finally you need to get the free canon-gen.py program from the github repository &lt;a href=&quot;https://github.com/shimpe/canon-generator&quot;&gt;https://github.com/shimpe/canon-generator&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
The main function defined near the bottom of the canon-gen.py file contains some parameters you can edit to experiment with the generator:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;chords = &quot;C F Am Dm G C&quot;&lt;/i&gt; &lt;br /&gt;#You can insert a new chord progression here.&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;scale = music21.scale.MajorScale(&quot;C&quot;)&lt;/i&gt;
  &lt;br /&gt;#You can define a new scale in which the notes of the chords should be interpreted here&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;voices = 5&lt;/i&gt;
  &lt;br /&gt;#Define the number of voices in your canon here&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;quarterLength = 2&lt;/i&gt;
  &lt;br /&gt;#Define the length of the notes used to realize the chord progression
  &lt;br /&gt;#(don&#39;t choose them too short, since the automatic spicing-up will make them shorter)&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;spice_depth = 1&lt;/i&gt;
  &lt;br /&gt;# Define how many times a stream (recursively) should be spiced up
  &lt;br /&gt;# e.g. setting 2 will first spice up the chords, then again spice up the already spiced chords.
  &lt;br /&gt;# scores very quickly become rhytmically very complex for settings &amp;gt; &lt;i&gt;2&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;stacking = 1&lt;/i&gt;
  &lt;br /&gt;# the code can generate multiple versions of the spiced up chord progression, and use those
  &lt;br /&gt;# versions to create extra voices
  &lt;br /&gt;# e.g. setting stacking = 2 will turn a 3-voice canon into a 3*2 = 6-voice canon&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;voice_transpositions =  { VOICE1 : +12, VOICE2 : 0, VOICE3 : -12, VOICE4: -24, VOICE5: 0 }&lt;/i&gt;
  &lt;br /&gt;# allow extra octave jumps between voices&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
What does it sound like?&lt;/h2&gt;
This is a simple example generated with the program with settings&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;chords = &quot;C F Am Dm G C&quot;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;scale = music21.scale.MajorScale(&quot;C&quot;)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;voices = 5&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;quarterLength = 2&lt;/i&gt;&amp;nbsp;
  &lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;spice_depth = 1&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;stacking = 1&lt;/i&gt;&amp;nbsp;
  &lt;i&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;&lt;i&gt;voice_transpositions =  { VOICE1 : 0, VOICE2 : 0, VOICE3 : -12, VOICE4: -24, VOICE5: 0 }&amp;nbsp;&amp;nbsp;&lt;/i&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;iframe frameborder=&quot;no&quot; height=&quot;166&quot; scrolling=&quot;no&quot; src=&quot;https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F107077393&amp;amp;show_artwork=true&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt; Ideas for future improvements&lt;/h2&gt;
I see many possible improvements, most of which are low-hanging fruits. Feel free to jump in and improve the code :D&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;fix a known bug related to octaviations in keys other than C &lt;/li&gt;
&lt;li&gt;support modulations, i.e. keep musical key per measure/beat instead of over the complete chord progression &lt;/li&gt;
&lt;li&gt;extend the code to cover the things explained in the later articles: crab and table canons&lt;/li&gt;
&lt;li&gt;see if the method/code can be extended to generate canons at the third, fifth, ... &lt;/li&gt;
&lt;li&gt;smarter spicing up of chord progressions to avoid parallel fifths/octaves (e.g. rejecting a proposed spice if it introduces an error in the overall stream); or use Dmitry Tymoczko&#39;s voice leading spaces to ensure better voice leading by construction.&lt;/li&gt;
&lt;li&gt;protect the end chord from getting spiced up&lt;/li&gt;
&lt;li&gt;implement more note transformations, e.g. appogiatura&lt;/li&gt;
&lt;li&gt;experiment with more rhythms&lt;/li&gt;
&lt;li&gt;how can we better spice up the chord progressions without messing up too much of the original harmonies?&lt;/li&gt;
&lt;li&gt;...&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/5531975496364505021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/08/algorithmic-composition-generating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/5531975496364505021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/5531975496364505021'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/08/algorithmic-composition-generating.html' title='Algorithmic composition: generating tonal canons with Python and music21'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8AbUmUVDlUej07Z5YSiY6Hgdock1EKAACiViGoSaNdQTZXU95upQGIPrcpwLYRYuu7FbhpBWWAsj9m9xrR5VPeLizxdrA6Jm35lIoj0MS15jlpEoQQqtccCQwrvRmb_ublGURWCTneQk/s72-c/spiced_up-blog.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-3834097983428511604</id><published>2013-07-03T15:07:00.000-07:00</published><updated>2013-07-03T15:07:06.645-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cello"/><category scheme="http://www.blogger.com/atom/ns#" term="clarinet"/><category scheme="http://www.blogger.com/atom/ns#" term="elizabeth"/><category scheme="http://www.blogger.com/atom/ns#" term="frye"/><category scheme="http://www.blogger.com/atom/ns#" term="piano"/><title type='text'>Do not stand at my grave and weep</title><content type='html'>&lt;i&gt;&lt;b&gt;Do Not Stand at My Grave and Weep&lt;/b&gt;&lt;/i&gt; is a free of rights poem written in 1932 by &lt;a href=&quot;http://en.wikipedia.org/wiki/Mary_Elizabeth_Frye&quot; title=&quot;Mary Elizabeth Frye&quot;&gt;Mary Elizabeth Frye&lt;/a&gt;. Frye allegedly found herself composing the piece of verse on a brown paper shopping bag.&lt;br /&gt;
&lt;br /&gt;
When I found the poem (as with all great findings, by accident :) ) it resonated with me, and I quickly found myself humming a melody to it. It&#39;s my first composition for a piano, clarinet, cello trio.&lt;br /&gt;
&lt;br /&gt;
The piece is conceived as an elaborate harmonization of a single note (&quot;e&quot;). Throughout the first verse you can hum the note &quot;e&quot; to the melody. After a modulation the text is repeated and the pedal note becomes the note &quot;f&quot;. &lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&lt;dl&gt;&lt;dd&gt;Do not stand at my grave and weep,&lt;/dd&gt;&lt;dd&gt;I am not there; I do not sleep.&lt;/dd&gt;&lt;dd&gt;I am a thousand winds that blow,&lt;/dd&gt;&lt;dd&gt;I am the diamond glints on snow,&lt;/dd&gt;&lt;dd&gt;I am the sun on ripened grain,&lt;/dd&gt;&lt;dd&gt;I am the gentle autumn rain.&lt;/dd&gt;&lt;dd&gt;When you awaken in the morning’s hush&lt;/dd&gt;&lt;dd&gt;I am the swift uplifting rush&lt;/dd&gt;&lt;dd&gt;Of quiet birds in circling flight.&lt;/dd&gt;&lt;dd&gt;I am the soft starlight at night.&lt;/dd&gt;&lt;dd&gt;Do not stand at my grave and cry,&lt;/dd&gt;&lt;dd&gt;I am not there; I did not die.&lt;/dd&gt;&lt;dd&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/dd&gt;&lt;/dl&gt;
&lt;iframe width=&quot;420&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/Bhj_r5U9IKE&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/3834097983428511604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/07/do-not-stand-at-my-grave-and-weep.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/3834097983428511604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/3834097983428511604'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/07/do-not-stand-at-my-grave-and-weep.html' title='Do not stand at my grave and weep'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-7703096795774972710</id><published>2013-06-19T11:32:00.002-07:00</published><updated>2013-06-19T12:36:40.696-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="canon"/><category scheme="http://www.blogger.com/atom/ns#" term="classical"/><category scheme="http://www.blogger.com/atom/ns#" term="julia galef"/><category scheme="http://www.blogger.com/atom/ns#" term="lilypond"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="poem"/><category scheme="http://www.blogger.com/atom/ns#" term="poetry"/><category scheme="http://www.blogger.com/atom/ns#" term="seaside"/><title type='text'>Seaside canon, for Douglas Hofstadter</title><content type='html'>&lt;h1&gt;
What?&lt;/h1&gt;
Here&#39;s a musical crab canon inspired by &lt;a href=&quot;http://measureofdoubt.com/2011/06/06/a-crab-canon-for-douglas-hofstadter/&quot; target=&quot;_blank&quot;&gt;a blog post from Julia Galef&lt;/a&gt;, who wrote quite an impressive crab canon &lt;b&gt;&lt;i&gt;poem&lt;/i&gt;&lt;/b&gt;.

My musical interpretation of her poem is a crab canon too. It differs from &lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/08/how-to-write-crab-canon.html&quot;&gt;my previous crab canon&lt;/a&gt; in the following aspects:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;This canon was conceived after serendipitously finding a poem written by Julia Galef, who kindly granted me permission to use it.&lt;/li&gt;
&lt;li&gt;Compared to the previous crab canon, this one uses more and longer pedal notes. What can I say - I just love pedal notes!&amp;nbsp;&lt;/li&gt;
&lt;li&gt;In contrast to my previous crab canon, this one modulates to different keys. Have you discovered &lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/09/modulation.html&quot;&gt;my free modulation book&lt;/a&gt; yet?&lt;/li&gt;
&lt;li&gt;As a nice variation on a typical crab canon (where you can reverse the score), here you can also reverse the raw audio samples. That&#39;s right! When you reverse the raw audio samples and listen to the result, you get the same piece again. Mind you: I&#39;m not just talking the notes, but also the timbres! Nothing should sound more&amp;nbsp;&quot;&lt;i&gt;backward&lt;/i&gt;&quot; than in the forward version of the piece. You can try it out! Download&amp;nbsp;&lt;a href=&quot;https://docs.google.com/file/d/0B2JcYjgxQWlLUzBtcWxsaXJDWXc/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;the raw audio&lt;/a&gt;&amp;nbsp;and import it into your favourite audio editor. Then listen to it, and relisten to it in reverse.&lt;/li&gt;
&lt;li&gt;The spectrogram (slowly appearing in black on white) looks like the sea, and the score layed on top of it in colored rectangles looks like a frontal view of a crab. Very appropriate for a crab canon about seaside :) Ok, that&#39;s a joke (or not? Try squinting your eyes... :D )&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&amp;nbsp;With respect to the images that pass by: in black on white you can see a spectrogram of the piece. 
In colored rectangles I&#39;ve overlayed half of the notes that are being played in the canon (four voices). The other half of the notes you hear come from those same voices simultaneously playing backwards.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;I&#39;ve developed a systematic method for constructing music canons, crab &amp;amp; palindrome canons, and table canons using &lt;a href=&quot;http://lilypond.org&quot;&gt;Lilypond&lt;/a&gt;, fully documented in a series of articles that you can freely download and use. It&#39;s advised to read them in the order listed below:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/07/tutorial-on-my-technique-for-writing.html&quot; target=&quot;_blank&quot;&gt;Tutorial on my technique for writing a Canon&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/08/how-to-write-crab-canon.html&quot; target=&quot;_blank&quot;&gt;How to write a crab Canon&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/07/6-part-invention.html&quot; target=&quot;_blank&quot;&gt;6-part Invention&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://a-touch-of-music.blogspot.be/2012/08/how-to-write-table-canon.html&quot; target=&quot;_blank&quot;&gt;How to write a table Canon&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;m aware that the method I devised in its current form still has limitations and does not necessarily yield music that can compete with the Big Composers, but who knows... I &amp;nbsp;still have some ideas for further experimentation. And besides, it&#39;s just too much fun :)&lt;br /&gt;
&lt;br /&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/km4-eJ3owjk&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/7703096795774972710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/06/seaside-canon-for-douglas-hofstadter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/7703096795774972710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/7703096795774972710'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/06/seaside-canon-for-douglas-hofstadter.html' title='Seaside canon, for Douglas Hofstadter'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/km4-eJ3owjk/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-6617766348905078253</id><published>2013-04-17T16:40:00.002-07:00</published><updated>2013-04-28T14:11:23.691-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic"/><category scheme="http://www.blogger.com/atom/ns#" term="algorithmic composition"/><category scheme="http://www.blogger.com/atom/ns#" term="avant-garde"/><category scheme="http://www.blogger.com/atom/ns#" term="constraint"/><category scheme="http://www.blogger.com/atom/ns#" term="experimental"/><category scheme="http://www.blogger.com/atom/ns#" term="jack"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="midi"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="randomness within constraints"/><category scheme="http://www.blogger.com/atom/ns#" term="rtmidi"/><category scheme="http://www.blogger.com/atom/ns#" term="sonic visualiser"/><category scheme="http://www.blogger.com/atom/ns#" term="yoshimi"/><title type='text'>25 shades of random</title><content type='html'>&lt;h1&gt;A first exploration of algorithmic composition.&lt;/h1&gt;

&lt;p&gt;
I&#39;ve written a simple scheduler in the programming language python and I&#39;ve created some midi event generators, and combined both of those to drive the software synthesizer &lt;b&gt;Yoshimi&lt;/b&gt; and the sampler engine &lt;b&gt;LinuxSampler&lt;/b&gt; using the &lt;a href=&quot;http://jackaudio.org/&quot;&gt;jack-midi&lt;/a&gt; protocol. I&#39;ve made the complete code available on &lt;a href=&quot;https://github.com/shimpe/twenty-five-shades-of-random&quot;&gt;github&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
The midi events are generated based on a concept of &lt;b&gt;randomness within constraints&lt;/b&gt;. The things you hear are randomly generated, but not in an &quot;anything goes&quot; manner. 
&lt;p&gt;
Constraints are imposed to limit the disorder of the randomness. Just like harmony and counterpoint limit randomness in traditional composition, the constraints here limit randomness in the experimental composition. One could say that different constraints generate families of alternative music theories.
&lt;/p&gt;
&lt;p&gt;
&quot;Randomness within constraints&quot; is a deep idea whose time has come. Nowadays it is extremely popular both in science (artificial intelligence) and art (abstract art) and indeed one of the basic mechanisms underlying the origin and evolution of life itself. I suspect that &quot;randomness within constraints&quot; is the barren wasteland where creativity and innovation hides. In this piece, I try to explore a number of different constraints. In some cases the constraints slowly evolve, in other cases they abruptly change. 
&lt;/p&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Ton_de_Leeuw&quot;&gt;Ton De Leeuw&lt;/a&gt; in a speech once distinguished between two kinds of music:
&quot;music that becomes&quot; versus &quot;music that is&quot;. &quot;Music that becomes&quot; is music that starts from a begin point and gradually evolves. &quot;Music that is&quot; is music that doesn&#39;t show any progression or evolution. Because the constraints I used are quite static (with some exceptions they don&#39;t gradually evolve as time progresses), I think this composition is closer to &quot;music that is&quot;. Nevertheless, I hope that by combining different timbres and different constraints I have managed to keep the composition reasonably interesting to listen to.
&lt;/p&gt;
&lt;p&gt;
Note: I do not consider &quot;traditional music theory&quot; (or rather: the different traditional music theory families) inferior or unnecessary (quite the contrary!), but in this piece I don&#39;t mind looking beyond its borders.
&lt;/p&gt;
&lt;p&gt;
For this composition I programmed my own algorithmic composition system using &lt;a href=&quot;http://python.org/&quot;&gt;Python&lt;/a&gt;, &lt;a href=&quot;https://pypi.python.org/pypi/python-rtmidi/&quot;&gt;Rtmidi&lt;/a&gt;, &lt;a href=&quot;http://yoshimi.sourceforge.net/&quot;&gt;Yoshimi&lt;/a&gt; and &lt;a href=&quot;http://www.linuxsampler.org/&quot;&gt;LinuxSampler&lt;/a&gt; with &lt;a href=&quot;http://sso.mattiaswestlund.net/&quot;&gt;Sonatina Sound Fonts&lt;/a&gt;, 
but for a next algorithmic composition (if any ;) ) I would probably try to use the excellent 
&lt;a href=&quot;http://supercollider.sourceforge.net/&quot;&gt;supercollider&lt;/a&gt; environment instead.
&lt;/p&gt;
&lt;p&gt;
The visualization was made with &lt;a href=&quot;http://www.sonicvisualiser.org/&quot;&gt;Sonic Visualiser&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/C0ojxscXbMU&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/6617766348905078253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/04/25-shades-of-random.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/6617766348905078253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/6617766348905078253'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/04/25-shades-of-random.html' title='25 shades of random'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/C0ojxscXbMU/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-5022823688613160413</id><published>2013-04-07T13:07:00.000-07:00</published><updated>2013-04-07T13:11:47.328-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="animals"/><category scheme="http://www.blogger.com/atom/ns#" term="carnival"/><category scheme="http://www.blogger.com/atom/ns#" term="choir"/><category scheme="http://www.blogger.com/atom/ns#" term="donkey"/><category scheme="http://www.blogger.com/atom/ns#" term="dove"/><category scheme="http://www.blogger.com/atom/ns#" term="duck"/><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="geese"/><category scheme="http://www.blogger.com/atom/ns#" term="goose"/><category scheme="http://www.blogger.com/atom/ns#" term="humor"/><category scheme="http://www.blogger.com/atom/ns#" term="instrumental"/><category scheme="http://www.blogger.com/atom/ns#" term="lady"/><category scheme="http://www.blogger.com/atom/ns#" term="pig"/><category scheme="http://www.blogger.com/atom/ns#" term="seal"/><category scheme="http://www.blogger.com/atom/ns#" term="sheep"/><category scheme="http://www.blogger.com/atom/ns#" term="soundscape"/><category scheme="http://www.blogger.com/atom/ns#" term="tongue-in-cheek"/><title type='text'>Carnival of the animals</title><content type='html'>Because it is fun to have fun once in a while...

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/qzGdilt3b5I&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/5022823688613160413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/04/carnival-of-animals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/5022823688613160413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/5022823688613160413'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/04/carnival-of-animals.html' title='Carnival of the animals'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/qzGdilt3b5I/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-3682968396292047238</id><published>2013-03-31T16:34:00.001-07:00</published><updated>2013-03-31T16:34:39.227-07:00</updated><title type='text'>Meditation for piano and cello</title><content type='html'>&lt;h1&gt;Meditation&lt;/h1&gt;

A bootleg recording of my first attempt at writing something for a cello... enjoy!
The score is available upon request. I&#39;ve been told it&#39;s not that difficult :)

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/LoUUrI8r_10&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;

</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/3682968396292047238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/03/meditation-for-piano-and-cello.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/3682968396292047238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/3682968396292047238'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/03/meditation-for-piano-and-cello.html' title='Meditation for piano and cello'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/LoUUrI8r_10/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-3701519415016559440</id><published>2013-02-20T14:59:00.001-08:00</published><updated>2013-02-20T14:59:13.188-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="avant-garde"/><category scheme="http://www.blogger.com/atom/ns#" term="digital sound design"/><category scheme="http://www.blogger.com/atom/ns#" term="experimental"/><category scheme="http://www.blogger.com/atom/ns#" term="pdw"/><category scheme="http://www.blogger.com/atom/ns#" term="requiem"/><title type='text'>Digital sound design</title><content type='html'>&lt;h1&gt;Digital sound design&lt;/h1&gt;
I took a nice little course on coursera: a (very basic) introduction to digital sound design.
Of course, as it goes with such courses, one must create a small composition demonstrating the newly 
acquired skills (or the lack thereof).

I was in the mood for something experimental, so be prepared!
Art or Nonsense? Feel free to leave your opinion.

Incidently, the piece is dedicated to Patrick De Witte, a journalist and very witty humorist who died unexpectedly yesterday due a &quot;heart failure&quot; (he almost certainly would have seen some humor in this announcement: after all, doesn&#39;t everyone die of heart failure?). I didn&#39;t know the man personally, but I think he&#39;d have gotten a good laugh out of it.

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/oNqDypqhBqA&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;
</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/3701519415016559440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/02/digital-sound-design.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/3701519415016559440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/3701519415016559440'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2013/02/digital-sound-design.html' title='Digital sound design'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/oNqDypqhBqA/default.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5648227177104898374.post-6803773825536285682</id><published>2012-12-27T14:04:00.000-08:00</published><updated>2013-02-15T15:35:16.817-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="composition"/><category scheme="http://www.blogger.com/atom/ns#" term="key"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="mode"/><category scheme="http://www.blogger.com/atom/ns#" term="mood"/><category scheme="http://www.blogger.com/atom/ns#" term="music theory"/><title type='text'>Musical key and mood</title><content type='html'>&lt;h2&gt;
Key determines mood? Really?!&lt;/h2&gt;
&lt;div&gt;
It is often argued that with the advent of &lt;a href=&quot;http://en.wikipedia.org/wiki/Equal_temperament&quot; target=&quot;_blank&quot;&gt;equal temperament&lt;/a&gt;&amp;nbsp;all differences between musical keys disappeared, i.e. C major doesn&#39;t sound fundamentally different from Eb major. Yet composers still attribute certain moods to certain musical keys. In part this is probably determined by tradition, and in part it may be influenced by the mechanics of playing an instrument: playing a piece in C major on a piano (using only white keys) is quite a different experience from playing that same piece in C# major (using many black and some white keys) because of the differences between physical location of black and white keys on a piano. Also, bowed instruments will often play an F# differently than a Gb, despite both being the same note on a piano.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;&lt;div&gt;
So what are these traditional moods associated to certain keys?&lt;/div&gt;&lt;/h2&gt;
This list is &lt;a href=&quot;http://www.koelnklavier.de/quellen/schubart/s-377_tonarten.html&quot;&gt;based on a list&lt;/a&gt; made up by &lt;a href=&quot;http://en.wikipedia.org/wiki/Christian_Friedrich_Daniel_Schubart&quot;&gt;Christian Schubart&lt;/a&gt; in his book &lt;a href=&quot;http://www.amazon.com/Ideen-%C3%84sthetik-Tonkunst-German-Edition/dp/127972062X/ref=sr_1_fkmr2_2?ie=UTF8&amp;qid=1356645237&amp;sr=8-2-fkmr2&amp;keywords=ideen+zur+einer+aesthetik+der+tonkunst&quot;&gt;Ideen Zu Einer Ästhetik Der Tonkunst...&lt;/a&gt;
&lt;br/&gt;
&lt;div&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;Key&lt;/th&gt;&lt;th&gt;Mode&lt;/th&gt;&lt;th&gt;Mood&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;completely pure key; speaks of innocence, simplicity, naivety, child&#39;s talk&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Db&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key to bring out unusual feelings; can smile but not laugh; can grimace but not cry&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key of triumph, hallelujah, war-cries and victory-rejoicing&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key of love, devotion, intimate conversation with God&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;noisy shouts of love, laughing pleasure and not-yet-complete full delight &lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key of complaisance and calmness&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;Gb&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key of triumph over difficulty, sigh of relief after difficulaties have been overcome&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key that is rustic, idyllic and lyrical, calm and satisfied passion, any gentle and peaceful emotion of the heart&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;key of the grave, death, putrefaction, judgement, eternity&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;declaration of innocent love, satisfaction with one&#39;s state of affairs, hope of seeing one&#39;s beloved one again when departing, youthful cheerness and trust in God&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;cheerful love, clear conscience, hope, aspiration for a better world&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;major&lt;/td&gt;&lt;td&gt;&lt;i&gt;strongly colored, announcing wild passions, anger, rage, jealousy, fury, despair and every emotion of the heart&lt;/i&gt;&lt;/td&gt;

&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;declaration of love with lament of unhappy love, sighing of the lovesick soul&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;C#&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;penitential lamentation, intimate conversation with God, sighs of disappointed friendship and love&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;melancholy, womanliness&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;feelings of anxiety, the soul&#39;s deepest distress, brooding despair, blackest depression, most gloomy condition of the soul&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;naive declaration of love, lament without grumbling, sighs accompanied by a few tears, desires to resolve into the pure happiness of C major&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;deep depression, funeral lament, groans of misery and longing for the grave&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;F#&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;a gloomy key, resentment and discontent, it languishes for the calm of A major or happiness of D major&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;discontent, uneasiness, worry about a failed scheme, bad-tempered gnashing of teeth, dislike&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;G#&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;grumbling, struggling with difficulty, heart squeezed until it suffocates&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;pious womanliness, tenderness of character&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;mocking God and the world, discontented with itself and everything, preparation of suicide&lt;/i&gt;&lt;/td&gt;
&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;minor&lt;/td&gt;&lt;td&gt;&lt;i&gt;key of patience, calm awaiting one&#39;s fate, submission to divine dispensation, mild lament without breaking out into offensive murmuring or whimpering, &lt;/i&gt;&lt;/td&gt;
&lt;/table&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://a-touch-of-music.blogspot.com/feeds/6803773825536285682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://a-touch-of-music.blogspot.com/2012/12/musical-key-and-mood.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/6803773825536285682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5648227177104898374/posts/default/6803773825536285682'/><link rel='alternate' type='text/html' href='http://a-touch-of-music.blogspot.com/2012/12/musical-key-and-mood.html' title='Musical key and mood'/><author><name>shiihs</name><uri>http://www.blogger.com/profile/01738225085577318818</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>11</thr:total></entry></feed>