<?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:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1851744567432646507</id><updated>2010-04-28T13:20:14.662-05:00</updated><title type='text'>iGetIt! Music</title><subtitle type='html'>Online music education courseware for non-musicians who want to learn how to write their own rock songs.</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.igetitmusic.com/blog/atom.xml'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>187</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-1158220755314279950</id><published>2010-04-28T13:20:00.001-05:00</published><updated>2010-04-28T13:20:14.673-05:00</updated><title type='text'>This blog has moved</title><content type='html'>&lt;br /&gt;       This blog is now located at http://blog.igetitmusic.com/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://blog.igetitmusic.com/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://blog.igetitmusic.com/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-1158220755314279950?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/1158220755314279950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/this-blog-has-moved.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/1158220755314279950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/1158220755314279950'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/this-blog-has-moved.html' title='This blog has moved'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4787744543046202382</id><published>2010-04-26T14:55:00.002-05:00</published><updated>2010-04-26T15:50:28.160-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Flex 4's layouts, animations, and interpolators</title><content type='html'>Below is an applet that&amp;nbsp;demonstrates three new Flex features:&lt;br /&gt;1. Custom layouts&lt;br /&gt;2. Generalized animations&lt;br /&gt;3. Custom interpolators&lt;br /&gt;&lt;br /&gt;The applet, called AngleTest (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/AngleTest/srcview/index.html"&gt;here&lt;/a&gt;), shows the notes of the diatonic scale (Do, Re, Mi, etc.) placed around a circle:&lt;br /&gt;&lt;object height="480" width="640"&gt;&lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/AngleTest/AngleTest.swf"&gt;&lt;embed width="640" height="480" src="http://www.iGetItMusic.com/blog/SWFs/AngleTest/AngleTest.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Re is at the top to make the symmetry of the diatonic scale more obvious (because horizonal or vertical symmetry is much easier for human brains to recognize than symmetry along any other axis).&lt;br /&gt;&lt;br /&gt;Initially, the scale is in Do-mode ("major," or "Ionian"). You can tell, because degree number 1—in green, to make it stand out—is next to Do.&lt;br /&gt;&lt;br /&gt;If you click the "Next Mode" button (in the upper-left corner of the applet), the degree numbers change to reflect their positions in Re-mode ("Dorian"). Degree 1, in green, is now next to Re.&lt;br /&gt;&lt;br /&gt;I don't know about you, but I find that sudden change of numbers, in place, to be almost impossible to follow. What changed, exactly, and how? &lt;br /&gt;&lt;br /&gt;So, I added an "Animate" checkbox, also towards the upper-left corner. Click it, so that a checkmark appears in its check box, thereby enabling animation. Now, click the "Next Mode" button again.&lt;br /&gt;&lt;br /&gt;Cool! The degrre numbers slide smoothly from one note-name to another, showing—with much greater clarity—the relationships of the modes to the underlying scale. That's due to the interaction of two new Flex features: (a) Flex's new custom layout feature, which my code uses to place each degree label at the angle specified by its "angle" property, and (b) Flex's new generalized Animation effect, which smoothly animates the angle property between values.&lt;br /&gt;&lt;br /&gt;Er, hmmm, but...there's a problem. One of the degree numbers rotates in the wrong direction! Whichever degree label is on Mi goes all the way around the circle counter-clockwise to Fa, instead of going clockwise a short ways to Fa. WTF?&lt;br /&gt;&lt;br /&gt;The problem is fairly simple, actually: Mi's angle is 330 degrees, and Fa's is 0 degrees. The natural way to interpolate the numbers between 330 and 0 is downward, through 300, 200, 100, and so on down to 0...and that's exactly what the Animation effect's default interpolator does. That's the only interval on the circle in which a degree label is moving from&amp;nbsp;a large starting angle to a small ending angle, so it's the only interval for which the degree label goes the wrong way.&lt;br /&gt;&lt;br /&gt;What we need here is a custom interpolator -- an *angle* interpolator -- which recognizes that angles fall on a circular continuum, rather than a linear continuum.&lt;br /&gt;&lt;br /&gt;In the "Interpolator" panel, just below the "Animate" checkbox, are two radio buttons that let you select whether to use Animate's default "Number" interpolator or my custom "Angle" interpolator.&lt;br /&gt;&lt;br /&gt;The "Angle" interpolator keeps all of the degree labels moving clockwise.&lt;br /&gt;&lt;br /&gt;It isn't commercial-grade, though. I'm pretty sure that the increment and decrement methods aren't right, but my code doesn't need those functions so I haven't tested or revised them accordingly. (You've been warned!)&lt;br /&gt;&lt;br /&gt;The layout of the note-names is a little off, too. I'm not sure why. I think that it's because the bounding boxes of the labels reserve space for descenders -- the bits of letters like 'y' and 'p' that stick down below the rest of the text. Not sure, and for now, don't care -- it's good enough for Version 1.0.&lt;br /&gt;&lt;br /&gt;When I look at other people's sample Flex code, I am frequently stunned by the amazing effects they are able to get out of a tiny bit of code. My code's not like that. I seem to have to write reams of the stuff.&lt;br /&gt;&lt;br /&gt;For example, the arcs that show the widths of the seconds around the circle—the red and blue arrows—are, well, *arcs*, and Flex's new FXG graphics code does not support arcs. Theoretically, one can program them using cubic Bezier curves, but I seem to have missed that post-graduate mathematics course. Instead, I kludged them up in Adobe Illustrator, ran Illustrator's output through Adobe's Flash Catalyst, and pasted the result into my app. The result looks fine, but involved reams of impenetrably-complex MXML/FXG that's almost certainly longer than necessary. But...hey!&amp;nbsp; It works, and that counts for a lot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4787744543046202382?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4787744543046202382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/flex-4s-layouts-animations-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4787744543046202382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4787744543046202382'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/flex-4s-layouts-animations-and.html' title='Flex 4&apos;s layouts, animations, and interpolators'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-5512855183493768742</id><published>2010-04-06T12:39:00.000-05:00</published><updated>2010-04-06T12:39:14.979-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><title type='text'>Progressive Complexity</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 11px; white-space: pre-wrap;"&gt;In response to &lt;a href="http://www.igetitmusic.com/blog/2010/04/lesson-0051.html#c6390460767674958031"&gt;this comment&lt;/a&gt; on my post describing &lt;a href="http://www.igetitmusic.com/blog/2010/04/lesson-0051.html"&gt;Lesson 005.1&lt;/a&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; white-space: pre-wrap;"&gt;-----------------------&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 11px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande'; font-size: 11px; white-space: pre-wrap;"&gt;All of your criticisms above make perfectly valid points.  I have what I *think* are good reasons for structuring JiMS the way I am, but in the absence of hard scientific evidence as to the efficacy of one structure vs. another, there is very ample room for differences of opinion. I value, very highly, such critical feedback, because it forces me to revisit my assumptions and see if they have any rational basis.  That said...Many of the concepts that I'm teaching in JiMS with specifics, could be taught with greater generality.  Here's why I'm starting with narrow, concrete specifics, such as the assumption of the syntonic temperament in 12-TET tuning.  I could design JiMS such that it did not assume the syntonic temperament (i.e., alpha = P8, beta = tempered "perfect" fifth, with first comma tempered to unison) or 12-TET tuning (i.e., P8=1200 cents and P5=700 cents). Instead, I could teach that alpha and beta could be any interval. This would be a temperament-neutral approach.  So, why am I basing JiMS firmly on the syntonic temperament...and with a fixed octave, to boot?  Firstly, because JiMS is based on the philosophy of "progressive complexity," which states that "the simplest approximations of the truth should be presented first, with increasingly complex approximations added later, only as necessary."  (I'm quoting myself here, but some prominent educator somewhere must have said something similar.)  So, JiMS starts with the diatonic scale in the syntonic scale, in 12-TET tuning, and will progress through the chromatic scale also in 12-TET. It's only when JiMS needs to introduce the enharmonic scale -- which I've decided to do WAY later -- that the concept of "tuning" needs to be introduced. After that, JiMS can introduce Dynamic Tonality. Somewhere right before the introduction of Dynamic Tonality, I'll introduce the notion that the octave's width can be tempered in the syntonic temperament, too. After Dynamic Tonality, I can introduce non-syntonic temperaments.  Remember the immediate goal of JiMS: to dramatically increase the efficiency with which non-musicians gain sufficient musical knowledge to write their own pop/rock music. To achieve this goal, students do not need to learn about non-syntonic temperaments.  That being said, JiMS' *ultimate* goal is to establish a new universal paradigm of music which expands the frontiers of tonality. I believe that this ultimate goal cannot be achieved without first achieving JiMS immediate goal. Therefore, the immediate goal must take precedence in all of JiMS' design decisions.  Specifically, I can't allow JiMS early lessons to be made more complex in order to facilitate the later introduction of non-syntonic temperaments.  My recent re-writing of Lessons 4 and 5 is a manifestation of this design trade-off. I have a tendency to want to introduce non-12-TET and non-syntonic ideas sooner than necessary, because I think that JiMS' ability to support those concepts distinguishes it from traditional approaches, and because I think that these concepts are WAY COOL.  However, it's simply not efficient to introduce those concepts too early.  Secondly, the musical invariances on which JiMS is based -- transpositional invariance, tuning invariance, and cardinality invariance -- are all invariant only within a single given temperament. None of them are invariant across temperaments. I can't teach these invariances in the abstract; I can only teach them in the concrete context of a given temperament. Combined with the doctrine of progressive complexity, the temperament-dependency of musical invariances requires me to teach them within a given temperament (and tuning) first, and only then to generalize those teachings across (tunings and) temperaments.  For example, consider the syntonic and schismatic temperaments. Both have the same generators -- P8 and P5 -- so they can share the same note-names, note-layouts, and staff notation. However, their comma sequence differs, and hence so does their mapping of partials to notes. For example, from a fundamental on Do, the syntonic temperament maps the fifth partial to Mi, while the schismatic maps it to Fe. As a result, the "shape" of the major triad (for example) is different, on JiMS keyboard and the JiMS staff, even across temperaments as closely-related as the syntonic and the schismatic.  Combined with the doctrine of progressive complexity, this variance-across-temperaments requires JiMS to start by assuming the use of a single (tuning and) temperament, introducing other (tunings and) temperaments only when necessary (and it isn't necessary until after Dynamic Tonality has been introduced, using the syntonic temperament).  Thirdly, the music of human cultures in the real world seems to be strongly biased towards temperaments generated by the P8 and P5, including the syntonic and schismatic. The syntonic temperament's tuning continuum includes nearly all of the tunings ever used by human cultures; the exceptions are arguably schismatic, such as Turkish and arguably some Indian music. This bias may arise from the human ear/brain/mind's apparent use, for the detection and tracking of tonal relationships, of a "map of the regions" generated by P8's and P5's (as exposed by Petr Janata's brain-scans). Such a map of the regions is the dual graph of the Wicki/JiMS note-layout, and hence is topologically identical to it.  Combined with the doctrine of progressive complexity, this human cultural bias towards the syntonic temperament leads me to choose it as the basis of JiMS, with the added complexity of other temperaments being added to JiMS only much later in the lesson sequence.  Please note that all of this is "just talk," however. I don't have any scientific evidence that proves that these design choices lead to the most efficient and accurate acquisition of musical knowledge by musical novices, or that graduates of such an educational program are able to advance the state of the art faster and/or more creatively. But then, no contrary evidence exists to refute these claims, either. The efficacy of alternative paradigms in achieving such objectives is an under-studied area. I hope that, as JiMS becomes available, such rigorous studies can be carried out.  In the meantime, you're not wrong, and I'm not right.  We just disagree as to when, in the sequence of ideas, non-12-TET tunings and non-syntonic temperaments should be introduced.  On the other hand, we agree that these concepts SHOULD be introduced as soon as possible -- an agreement that differentiates us from the vast majority of music educators and music theorists, who neither understand nor care about these concepts.  I hope that you will find this response to be in the cooperative, exploratory spirit of give-and-take in which it is intended.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-5512855183493768742?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/5512855183493768742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/progressive-complexity.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/5512855183493768742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/5512855183493768742'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/progressive-complexity.html' title='Progressive Complexity'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-1256924517160742314</id><published>2010-04-05T21:05:00.000-05:00</published><updated>2010-04-05T21:05:29.557-05:00</updated><title type='text'>Invitation to address UNT's Composition faculty</title><content type='html'>On April 15th, I'll be addressing the faculty of the &lt;a href="http://music.unt.edu/comp/home"&gt;Division of Composition&lt;/a&gt; in the &lt;a href="http://music.unt.edu/"&gt;College of Music&lt;/a&gt; at the &lt;a href="http://www.unt.edu/"&gt;University of North Texas&lt;/a&gt;, just up the road in Denton (which is slightly north of Dallas; I'm in Mesquite, which is slightly south-east of Dallas).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://music.unt.edu/comp/faculty"&gt;UNT's Composition faculty&lt;/a&gt; is a computer-literate bunch; I look forward to meeting them.&lt;br /&gt;&lt;br /&gt;This presentation is the result of my (a) emailing a number of the division's faculty members with information on how my work could facilitate theirs, and (b) a follow-up meeting with the division's Chair, &lt;a href="http://music.unt.edu/comp/jklein/"&gt;Joseph Klein&lt;/a&gt;. That was a "flake filter" meeting; apparently, I passed was not filtered out.&lt;br /&gt;&lt;br /&gt;My pitch to Dr. Klein was as follows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If everyone were 100% certain that Idea X was about to emerge as their domain's new ruling paradigm, then every university in that domain would be racing to lead that emergence, in order to attract the best students, professors, research grants, etc., and to avoid obsolescence.&lt;/li&gt;&lt;li&gt;But by then, it would probably be too late to catch up with Idea X's early proponents.&lt;/li&gt;&lt;li&gt;The trick, then, is to identify ideas with high paradigm-shifting potential before it's too late to gain leadership.&lt;/li&gt;&lt;li&gt;There is a significant chance that the peer-reviewed findings of the Isomorphic Conspiracy could indeed lead to the emergence of a new paradigm in music, spanning the gamut of theory, composition, performance, education, technology, etc.&lt;/li&gt;&lt;li&gt;If UNT were to lead the way in establishing this new paradigm, then its leadership (all else being equal) would make it the top music school in the world. Just as Silicon Valley dominates computing tech, Detroit dominated auto manufacture (for a century, which ain't bad), and Vienna dominanted psychiatry, UNT could dominate the gamut of music under this new, far-reaching paradigm.&lt;/li&gt;&lt;li&gt;What if the Isomorphic Conspiracy's ideas don't pan out? To academics, it hardly matters. Consider the history of serialism. Within academia, serialism ruled for decades. One could hardly get one's foot in the door, let alone get tenure, without first establishing one's serialist &lt;em&gt;bona fides&lt;/em&gt;. People based excellent, successful, and productive careers on&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Serialism"&gt;serialism&lt;/a&gt;, despite its complete failure to make even the slightest impact on "real world" music-making. In short, even a &lt;em&gt;failed&lt;/em&gt; attempt attempt to establish a new paradigm&amp;nbsp;can be extremely successful for those who lead it.&lt;/li&gt;&lt;li&gt;But, again, if an attempted paradigm shift &lt;em&gt;did&lt;/em&gt; prove to be successful, then the professors who led it would be like Watson and Crick in biology -- able to write their own tickets to any university in the world, now and forever.&lt;/li&gt;&lt;li&gt;...and here are&amp;nbsp;our ideas; here's why they have the potential to establish a new paradigm in music; here's where UNT can add value; and here's how we can turn these ideas into a gold-mine of research funding.&lt;/li&gt;&lt;/ul&gt;UNT is very well-positioned to exploit this opportunity.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It has a high concentration of computer-savvy composers in its faculty.&lt;/li&gt;&lt;li&gt;It has two research programs that seem well-suited to explore and exploit it: &lt;a href="http://cemi.music.unt.edu/"&gt;CEMI&lt;/a&gt; and &lt;a href="http://iarta.unt.edu/"&gt;iARTA&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;It is in a large metropolitan area (the Dallas-Fort Worth Metroplex, the fourth-largest economic region in the USA, with strong tech &amp;amp; finance industries), with a history of innovation and philanthropy.&lt;/li&gt;&lt;/ul&gt;My attempt to make a similar pitch to UT/Austin failed, in large part due to its music school's strangely&amp;nbsp;backward-looking, technophobic culture.&lt;br /&gt;&lt;br /&gt;So -- no pressure! -- if I am able to deliver a compelling presentation, this could be a milestone for both the Isomorphic Conspiracy and for UNT.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-1256924517160742314?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/1256924517160742314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/invitation-to-address-unts-composition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/1256924517160742314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/1256924517160742314'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/invitation-to-address-unts-composition.html' title='Invitation to address UNT&apos;s Composition faculty'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4044028816735970178</id><published>2010-04-05T19:35:00.000-05:00</published><updated>2010-04-05T19:35:46.616-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='lessons'/><title type='text'>Lesson 005.1</title><content type='html'>My latest lesson is Lesson 005.1 (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/Lessons/Lesson_005.1/srcview/index.html"&gt;here&lt;/a&gt;), which replaces &lt;a href="http://www.igetitmusic.com/blog/2010/02/lesson-0050.html"&gt;Lesson 005&lt;/a&gt;:&lt;br /&gt;&lt;object height="480" width="640"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_005.1/main.swf"&gt;&lt;embed width="640" height="480" src="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_005.1/main.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Same crummy state-controlling button-bar at the bottom, for now. I really must fix that.&lt;br /&gt;&lt;br /&gt;This lesson defines "scale" and "diatonic scale," and introduces JiMS keyboard -- i.e., the mapping of the Wicki/Thummer note-layout to the computer keyboard.&lt;br /&gt;&lt;br /&gt;My lessons are starting to look a lot like PowerPoint presentations, except that their "graphics" are often interactive (e.g., JiMS keyboard).&amp;nbsp; I've always liked PowerPoint, so the similarity is fine with me.&lt;br /&gt;&lt;br /&gt;Although I was very strongly tempted to introduce other scales and even tunings at this point in the lessons. However,&amp;nbsp;there is absolutely no advantage &lt;em&gt;to the student&lt;/em&gt; in introducing those concepts now; they would just be a confusing distraction&amp;nbsp;-- and the student's advantage must win all such design trade-offs. Hence, my decision to re-write Lessons 4 and 5, to provide a leaner, cleaner sequence of concepts.&lt;br /&gt;&lt;br /&gt;I expect the next lesson (6) to introduce the term "mode," and discuss the modes of the diatonic scale. I think that I've got the components I need for that, but some of them haven't been used in a lesson before, and so will probably need to be tweaked...so don;t hold your breath for the next lesson.&amp;nbsp; ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4044028816735970178?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4044028816735970178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/lesson-0051.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4044028816735970178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4044028816735970178'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/lesson-0051.html' title='Lesson 005.1'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4186748580508053867</id><published>2010-04-02T12:00:00.003-05:00</published><updated>2010-04-02T12:22:40.146-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technology evangelism'/><title type='text'>The Plamondon Files</title><content type='html'>In a former life, I was a Technical Evangelist (TE) for Microsoft, where (among other things) I taught all of Microsoft's newly-hired TE's the ropes.&amp;nbsp; The first such training seminar I gave was videotaped and transcribed. Snippets of the transcription were cited in a number of anti-trust cases against Microsoft.&lt;br /&gt;&lt;br /&gt;In late 2008, I started a blog on Windows Live! documenting some thought I had on Technology Evangelism, and posted the relevant documents there. But Live! is so hard to deal with that I'm re-posting the documents here.&lt;br /&gt;&lt;br /&gt;Below, please find an blog post -- copied from the original Live! blog -- that describes and links to the relevant documents.&lt;br /&gt;&lt;br /&gt;[start of old blog post]-------------------------------------------------&lt;br /&gt;&lt;strong&gt;The Plamondon Files&lt;/strong&gt;&lt;br /&gt;On January 16th, 1996, a group of Microsoft's &lt;a href="http://en.wikipedia.org/wiki/Technology_Evangelist"&gt;Technology Evangelists&lt;/a&gt; (TEs) from its overseas subsidiaries gathered at its Redmond headquarters to receive training on the strategy and tactics of Technology Evangelism as practiced by Microsoft's top Redmond-based TEs. Microsoft had no TE formal training program at the time; everyone else just "learned by doing." &lt;br /&gt;&lt;br /&gt;At this event, called the "DRG Summit," I gave three presentations, "&lt;span id="goog_1392275989"&gt;&lt;/span&gt;&lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/WAR.pdf"&gt;Evangelism is WAR!&lt;span id="goog_1392275990"&gt;&lt;/span&gt;&lt;/a&gt;," "&lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/EvangelismStrategy.pdf"&gt;Evangelism Strategy&lt;/a&gt;," and "&lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/PowerEvangelism.pdf"&gt;Power Evangelism&lt;/a&gt;." &lt;a href="http://www.forbes.com/1999/05/06/feat.html"&gt;Marshall Goldberg&lt;/a&gt; gave a presentation on "Relationship Evangelism." As I recall, the DRG Summit was organized by &lt;a href="http://unicode.org/iuc/iuc14/b015.html"&gt;Avery Bishop&lt;/a&gt;, and &lt;a href="http://www.linkedin.com/pub/ken-fowles/a/845/a99"&gt;Ken Fowles&lt;/a&gt; also gave a presentation, although I came in late and missed it, so I don't recall what it was about. The training presentations were videotaped, and I arranged to have my and Marshall's presentations transcribed. These presentations were also attended by some of Microsoft's Redmond-based TEs. Many of them stated afterwards that they wished that they had received similar training. &lt;br /&gt;&lt;br /&gt;The Director of Microsoft's Developer Relations Group (DRG), &lt;a href="http://www.spoke.com/info/p8OFQaA/DougHenrich"&gt;Doug Henrich&lt;/a&gt;, agreed that such training should be available to Microsoft's Redmond-based TEs. He (a) assigned me to develop materials for use in training Microsoft's newly-hired TEs, (b) required all newly-hired TEs to attend such seminars, and (c) encouraged all experienced TEs to both attend these seminars and to contribute to them. My performance in leading such training seminars became, thereafter, an objective on which I was formally reviewed for raises, bonuses, and stock options. &lt;br /&gt;&lt;br /&gt;I augmented the above-mentioned training materials with two white papers, "&lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/EffectiveEvangelism.pdf"&gt;Effective Evangelism&lt;/a&gt;" and the "&lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/Timeline.pdf"&gt;Generalized Evangelism Timeline&lt;/a&gt;." I also wrote "&lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/PDC.pdf"&gt;Making the Most of the PDC&lt;/a&gt;" (Professional Developer's Conference), which was used as a preface to Microsoft's official PDC staff guide for at least three successive PDCs. &lt;br /&gt;&lt;br /&gt;I continued leading such seminars once each six months until I left DRG in 1998 for a TE role in Microsoft Research's University Relations Group. I received excellent performance reviews during this period. In January 2000, &lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/Dieken.pdf"&gt;Darryn Dieken&lt;/a&gt;, another Microsoft TE, received copies of these materials for use in training a new group of TEs. I recall sending copies of these documents to other TE groups during the 1998-2000 period, during which DRG's function was dispersed among Microsoft's product groups, but I can't prove it. &lt;br /&gt;&lt;br /&gt;These training materials embodied Microsoft's policies, practices, and preferences with regard to Technology Evangelism. The Director-level declaration that attendance at these seminars was mandatory for newly-hired TEs makes them "policy" by definition. &lt;br /&gt;&lt;br /&gt;The only substantial difference between the DRG Summit's transcripts and the later training seminar presentations was my use of a "&lt;a href="http://www.computerworld.com/s/article/print/9007527/Iowa_antitrust_case_Microsoft_exec_called_software_developers_pawns_?taxonomyName=Standards+and+Legal+Issues&amp;amp;taxonomyId=146"&gt;one night stand&lt;/a&gt;" analogy at the DRG Summit (see the top of page 2 in &lt;a href="http://www.igetitmusic.com/blog/MSFT_Docs/TranscriptPower.pdf"&gt;&lt;span id="goog_1776889859"&gt;&lt;/span&gt;this transcript&lt;span id="goog_1776889860"&gt;&lt;/span&gt;&lt;/a&gt;). In this analogy, I stated that it was OK to lie to ISVs to get them to support Microsoft's technologies. This implication that "lying to ISVs (or to anyone else) was OK" was a mistake, for which I alone am responsible, and which &lt;a href="http://www.computerworld.com.au/article/172219/microsoft_employee_apologizes_developers/?fp=2&amp;amp;fpid=1"&gt;I deeply regret&lt;/a&gt;. No similar analogy, statement, or implication was included, in any form, in DRG's mandatory seminars. This analogy was made only verbally, and did not appearing in the presentation's slides. Indeed, the presentation's slides clearly stated that TEs could stress those aspects of the truth that were advantageous, but should never, ever lie. This latter view was emphasized in DRG's mandatory training seminars. &lt;br /&gt;&lt;br /&gt;The above documents have been entered into the public record in a series of anti-trust actions against Microsoft. They have become known, collectively, as "The Plamondon Files." &lt;br /&gt;&lt;br /&gt;It has been expedient for Microsoft to deny that these documents accurately reflected Microsoft's practices at the time, to disavow any authority I might have had to define Microsoft's policy (neglecting to mention that the training materials were sanctioned by DRG's Director), and to discredit me in various ways. Yet the the public record contains (a) a description of me as "an uber-evangelist" (by &lt;a href="http://www.facebook.com/ddieken"&gt;Darryn Dieken&lt;/a&gt;), (a) a description of me as DRG's "theoretician" (Marshall Goldberg), and (c) the statement that "everything James says [in the DRG Summit presentations] is true" (also Marshall Goldberg). The record also shows that Marshall was also a very senior evangelist, meeting regularly with Bill Gates, so his comments cannot credibly be dismissed. &lt;br /&gt;&lt;br /&gt;Does Microsoft still utilize the TE techniques described in the Plamondon Files? Many in the Free and Open Source Software (FOSS) community believe that &lt;a href="http://www.groklaw.net/articlebasic.php?story=20071023002351958"&gt;Microsoft does&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[end of old blog post]-----------------------------------------&lt;br /&gt;&lt;br /&gt;On the other hand, it's actually relatively easy to do evangelism in an ethical manner, mostly by emphasizing transparency. If it would look bad if featured on Google News, don't do it. Secrecy isn't inherently wrong -- Apple develops its products in near-total secrecy, for example, and there's nothing wrong with that. Likewise, there's nothing wrong with Microsoft developing APIs and ISV support for them in secret. The problem is when actions are taken that are only effective when they remain secret forever. Cloak-and-dagger stuff.&lt;br /&gt;&lt;br /&gt;If you're attempting to establish a technology platform as a &lt;a href="http://en.wikipedia.org/wiki/De_facto_standard"&gt;&lt;em&gt;de facto&lt;/em&gt; standard&lt;/a&gt; in the face of competition and &lt;a href="http://en.wikipedia.org/wiki/Network_effect"&gt;network effects&lt;/a&gt;, then you MUST engage in Technology Evangelism, or you will lose.&amp;nbsp; It's that simple. The pressure to win can lead individual TE's, or the entire TE group, or an entire company over the edge into unethical TE practices is they're not careful and aware (Microsoft was neither).&lt;br /&gt;&lt;br /&gt;The trick, therefore, is to &lt;em&gt;win the battle without losing your soul&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Microsoft's dirty tricks, and the reputation it built for them, has cost it dearly. In industry after industry, firms have avoided partnering with Microsoft, fearing that they, too, would be taken to the cleaners. Apple has been left as technology's "honest broker," putting together industry-wide deals (music publishing, cell phone app publishing, magazine publishing on the iPad, etc.) that could otherwise have been Microsoft's.&lt;br /&gt;&lt;br /&gt;Woulda, coulda, shoulda.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4186748580508053867?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4186748580508053867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/plamondon-files.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4186748580508053867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4186748580508053867'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/plamondon-files.html' title='The Plamondon Files'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-9183609585339081591</id><published>2010-04-01T19:39:00.000-05:00</published><updated>2010-04-01T19:39:59.365-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='lessons'/><title type='text'>Lesson 004.1</title><content type='html'>My latest lesson is Lesson 004.1 (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/Lessons/Lesson_004.1/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="480" width="640"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_004.1/main.swf"&gt;&lt;embed width="640" height="480" src="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_004.1/main.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Same crummy state-controlling button-bar at the bottom, for now. I really must fix that.&lt;br /&gt;&lt;br /&gt;This lesson introduces a number of new terms. Each is clearly defined, and each definition is followed by a question to help cement understanding of the definition.&lt;br /&gt;&lt;br /&gt;I now expect to revise Lesson 5 to focus on defining the term "scale." This may require introducing the notion of "tuning," but I don't want to go there yet, so I'll avoid it if I can.&lt;br /&gt;&lt;br /&gt;Once the notion of "scale" is defined, then we can dive right into the Diatonic Scale, including its modes, intervals, chords, etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-9183609585339081591?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/9183609585339081591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/lesson-0041.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/9183609585339081591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/9183609585339081591'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/04/lesson-0041.html' title='Lesson 004.1'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-6602740305257002859</id><published>2010-03-17T13:42:00.000-05:00</published><updated>2010-03-17T13:42:45.680-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Rendering Notes into Text</title><content type='html'>I'm a bit torn by a code architecture problem. A "Note" is a point in 2D tonal space, defined by the number of octaves and fifths that it is away from the origin note [0, 0] (which is also known as Re&lt;sup&gt;0&lt;/sup&gt;). On the one hand, an abstract data type such as Note should not know anything about how it is rendered into graphic images or into text. The note [-2, 4] can be rendered in text as&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the string "[-2, 4]"&lt;/li&gt;&lt;li&gt;the Text Layout Framework "TextFlow" data structure that represents "Fi&lt;sup&gt;0&lt;/sup&gt;"&lt;/li&gt;&lt;li&gt;...and so on.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Likewise, the interval [-2, 4] can be rendered as&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the string "[-2, 4]"&lt;/li&gt;&lt;li&gt;the string "major third"&lt;/li&gt;&lt;li&gt;the string "M3"&lt;/li&gt;&lt;li&gt;an arrow pointing from a given note to another note two notes rightward&lt;/li&gt;&lt;li&gt;...and so on.&lt;/li&gt;&lt;/ul&gt;The question is, what entity should render a given note (or interval) into a given text string?&lt;br /&gt;&lt;br /&gt;The simple/stupid thing to do is have a method in the Note class, called something like toString(), that renders 'this' note into a canonical text form (e.g., "[-2, 4]"). Because strings are such a basic data type, having the Note class "know about" (and hence depend on) the String class is perhaps not a terrible violation of encapsulation.&lt;br /&gt;&lt;br /&gt;But what about the rendering "Mi&lt;sup&gt;0&lt;/sup&gt;"? To produce this, the Note class would have to know about (and hence depend on) the classes of Flex's Text Layout Framework, which is a pretty clear violation of Note's encapsulation.&lt;br /&gt;&lt;br /&gt;Likewise, an Interval can be rendered into at least three different text strings ("[-2, 4]", "major third", "M3"). Should the Interval class implement methods for all of these different renderings? What if I want to add a new rendering? After doing so, I'd have to recompile all of the classes that used the Note class. Currently, my code base is small enough that this would be no big deal, but once I've got dozens of lessons, this kind of change could lead to a&amp;nbsp;testing nightmare.&lt;br /&gt;&lt;br /&gt;It seems to me that I've encountered a classic example of where the &lt;a href="http://en.wikipedia.org/wiki/Abstract_factory_pattern"&gt;Factory design pattern&lt;/a&gt; is appropriate. I think I need a separate entity -- something that is not a Note, but which knows about Notes -- which renders Notes into...somethings.&lt;br /&gt;&lt;br /&gt;There's be an abstract RenderNote class, with a method that would, given a Note, return an Object containing its rendering. RenderNote would have an abstract RenderNoteToString subclass, which would return a String for a given note. RenderNoteToString would have the subclass RenderNoteToStringVector, which would return the string "[-2, 4]" for the example note.&lt;br /&gt;&lt;br /&gt;Then, RenderNote would also have a RenderNoteToTextFlow subclass, which would return a TextFlow (e.g., "Fi&lt;sup&gt;0&lt;/sup&gt;") for a given note. &lt;br /&gt;&lt;br /&gt;There would be a similar RenderInterval class hierarchy.&lt;br /&gt;&lt;br /&gt;This all seems very complicated (as Factory deisgns usually are), but it would cleanly separate the text-rendering function out of Notes and Interval into separate classes. If, later on, I needed to render Note objects into a new kind of text representation, I could just add a new subclass to the RenderNote hierarchy; no recompilation or&amp;nbsp;testing of the existing codebase would be necessary.&lt;br /&gt;&lt;br /&gt;The result would be very much like Flex 4's use of "skins" for the graphical rendering of a UI control. The "RenderX" class could be seen as a "text skin," so to speak.&lt;br /&gt;&lt;br /&gt;But...do I really want to mess with all of that complexity now? Or should I just slam a toTLFName() method into the Note class, and refactor it into a Factory if and only if it becomes a problem?&lt;br /&gt;&lt;br /&gt;I think I'll do the latter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-6602740305257002859?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/6602740305257002859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/03/rendering-notes-into-text.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/6602740305257002859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/6602740305257002859'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/03/rendering-notes-into-text.html' title='Rendering Notes into Text'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-6486513263582137170</id><published>2010-03-17T13:03:00.000-05:00</published><updated>2010-03-17T13:03:44.293-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>Way behind</title><content type='html'>I'm way behind on developing new lessons, for three reasons:&lt;br /&gt;(1) I had a short consulting contract that occupied a couple of weeks of my time&lt;br /&gt;(2) I need to correct some pedagogical deficiencies in earlier lessons (&lt;em&gt;e.g&lt;/em&gt;., introducing the term "note" without defining it in Lesson 4) rather&amp;nbsp;than focus on new lessons, and&lt;br /&gt;(3) I invested a couple of days learning more about Adobe's Text Layout Framework (TLF).&lt;br /&gt;&lt;br /&gt;I need to understand TLF better because JiMS makes heavy use of superscripts -- in note-names such as Re&lt;sup&gt;0&lt;/sup&gt; -- which, in Flex, require the use of TLF.&lt;br /&gt;&lt;br /&gt;But, I'm back in the saddle now. A corrected version of Lesson 4 should be posted tomorrow (Lesson 004.01), with a modified version of Lesson 5 to follow a few days thereafter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-6486513263582137170?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/6486513263582137170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/03/way-behind.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/6486513263582137170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/6486513263582137170'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/03/way-behind.html' title='Way behind'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-7261960949711646200</id><published>2010-02-27T00:47:00.002-06:00</published><updated>2010-02-27T10:50:47.877-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='syntonic temperament'/><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Tonality'/><category scheme='http://www.blogger.com/atom/ns#' term='syntonic tuning continuum'/><title type='text'>ExploreTuning1</title><content type='html'>One of the cool things about JiMS iGetIt! note-layout (also used on the now-defunct &lt;a href="http://www.thummer.com/"&gt;Thummer&lt;/a&gt;) is that it has the same fingering in every tuning of the syntonic temperament.&lt;br /&gt;&lt;br /&gt;This is kinda hard to explain, so I wrote a little Flash app to help. Here it is (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/ExploreTuning1/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="480" width="640"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ExploreTuning1/main.swf"&gt;&lt;embed width="640" height="480" src="http://www.iGetItMusic.com/blog/SWFs/ExploreTuning1/main.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The slider on the left controls the frequency of Re&lt;sup&gt;0&lt;/sup&gt;; all of the other notes' frequencies are determined by their geometric relationship to Re&lt;sup&gt;0&lt;/sup&gt;, as a combination of octaves and fifths (as &lt;a href="http://www.igetitmusic.com/blog/2010/02/lesson-0050.html"&gt;described here&lt;/a&gt;&amp;nbsp;and &lt;a href="http://www.igetitmusic.com/blog/2010/01/interval-width-changes-across-syntonic.html"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The slider on the right changes the width of the tempered major fifth (traditionally, "perfect fifth"), thereby changing the widths of all non-octave intervals -- that is, changing the tuning. A few notable tunings are labeled along the slider's track.&lt;br /&gt;&lt;br /&gt;This chart shows what's happening:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/intervalChanges-755032.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ps="true" src="http://www.igetitmusic.com/blog/uploaded_images/intervalChanges-755028.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;(The colors in the chart do NOT correspond to the colors of the keyboard buttons in the applet above.)&lt;br /&gt;&lt;br /&gt;On the keyboard app above,&lt;br /&gt;1. Every note in a given note-class (such as all of the Re's) has the same color.&lt;br /&gt;2. Two dfferent note-classes' notes have the same color if their frequencies, in the chart above, intersect in the current tuning.&lt;br /&gt;&lt;br /&gt;For example, in 7-tet, a&amp;nbsp;given diatonic note and all of its chromatic variations (a) control the same frequency, and hence (b) are drawn with the same color.&amp;nbsp; Example: Ra, Re, and Ri are all red in 7-tet. Hence, there are only 7 "frequency classes" in 7-tet.&amp;nbsp; That is, only 7 frequencies, and their octaves, occur in it.&lt;br /&gt;&lt;br /&gt;BUT THERE ARE STLL 19 NOTES PER OCTAVE. Many of them just share the same frequency-classes. For example, Ra, Re, and Ri are still different NOTES; they just happen to control the same frequencies when tuned to 7-tet.&lt;br /&gt;&lt;br /&gt;Likewise, if one moves the right-hand slider all the way down to 5-tet,&amp;nbsp;then only the 5 notes of the pentatonic scale have unique&amp;nbsp;frequency-classes, all of the diatonic, chromatic, and enharmonic notes (i.e., all of the notes of well-formed scales of cardinality higher than the pentatonic) share/duplicate these pentatonic notes' frequency-classes.&lt;br /&gt;&lt;br /&gt;If one slides the slider up to 12-tet, only the chromatic notes have unique frequency-classes; the enharmonic notes (that is, the notes of those well-formed scale with cardinality higher than the chromatic) share/duplicate these chromatic frequency-classes.&lt;br /&gt;&lt;br /&gt;In 19-tet, or 31-tet, or in most other tunings, each note-class of the enharmonic scale controls a different frequency-class.&lt;br /&gt;&lt;br /&gt;(One of the strangest tunings is 17-tet, in which the pairs De-Li and Se-My are enharmonic. Set the slider to 17-tet, and play Se&lt;sup&gt;0&lt;/sup&gt; and My&lt;sup&gt;0&lt;/sup&gt;, in the upper-left and lower-right corners of the keyboard, respectively.&amp;nbsp; Different notes, same frequencies.)&lt;br /&gt;&lt;br /&gt;This makes me wonder about the relationship between "scales" (that is, subsets of the enharmonic scale's note-classes) and&amp;nbsp;"tunings" (is the pentatonic scale "really" the pentatonic scale all across the tuning range? Why or why not? How about the diatonic scale...in 5-tet?).&lt;br /&gt;&lt;br /&gt;Now, the tunings that are far from 12-tet sound like crap when played using harmonic timbres (try it!), such as the timbre produced by the keyboard applet above. That's because the applet is only tempering the &lt;em&gt;tuning&lt;/em&gt;, not the timbre, too. Tunings sound best when played using a "&lt;a href="http://eceserv0.ece.wisc.edu/~sethares/consemi.html"&gt;related&lt;/a&gt;" timbre -- that is, a timbre in which the partials align with the tuning's notes. Indonesian gamelan orchestras, playing in slendro's 5-tet scale, are playing instruments that emit timbres that (when crossed with a harmonic timbre) fit 5-tet. Tradtitional Thai and African music, played in 7-tet, is played on instruments that emit timbres that fit 7-tet...just as Western timbres fit the tunings near 12-tet.&lt;br /&gt;&lt;br /&gt;With electronic sound synthesis, one can temper the timbres to match the tuning in real time -- by shoving a timbres' partials around -- so that voila! You get to have (or choose not to have) consonance in any tuning.&lt;br /&gt;&lt;br /&gt;Which bring us to &lt;a href="http://en.wikipedia.org/wiki/Dynamic_tonality"&gt;Dynamic Tonality&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here's a simple example of dynamic tonality, using the above keyboard applet:&lt;br /&gt;1. Slide the tuning to 19-tet (using the tuning slider at the right).&lt;br /&gt;2. Play the ReFiLa triad. &amp;nbsp;&lt;i&gt;Very nice; very restful.&lt;/i&gt;&lt;br /&gt;3. Slide the tuning to 5-tet (at the top of the slider).&lt;br /&gt;3. Play the ReFiLa triad again. &amp;nbsp;&lt;i&gt;Too much tension! &amp;nbsp;Must release!&lt;/i&gt;&lt;br /&gt;4. Slider the tuning back to 19-tet, and play the ReFiLa triad again. &amp;nbsp;&lt;i&gt;Aha...sweet relief.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;What you're experiencing is a novel means of creating tension and relief -- that is, of controlling emotional affect -- in tonal music.&lt;br /&gt;A. In 19-tet, the ReFiLa triad is your basic major triad, which fits well with the harmonic series, and sounds restful.&lt;br /&gt;B. Widening the fifth from 19-tet to 5-tet widens the triad's major third (Re-Fi) by so much that it begins to sound like a sus4 instead. That's one form of tension.&lt;br /&gt;C. Also, widening the fifth from 19-tet to 5-tet pulls the tuning's notes out of alignment with the timbre's (harmonic) partials, creating another form of tension. &amp;nbsp;The notes are "out of timbre."&lt;br /&gt;D. Tuning back to 19-tet relieves the tension of the pseudo-sus4, and also brings the notes back "into timbre."&lt;br /&gt;&lt;br /&gt;If one can temper one's timbres in addition to tempering one's tunings, then one can introduce "out of timbre" tension to any triad, including the tonic major triad.&lt;br /&gt;&lt;br /&gt;The above experiment would be more compelling if the &lt;a href="http://www.sonoflash.com/"&gt;underlying synth&lt;/a&gt; could alter the frequency of a note being played after it started playing (i.e., pitch bend), but, alas, it cannot (so far as I can tell).&lt;br /&gt;&lt;br /&gt;You can explore Dynamic Tonality more deeply with the Max/MPS-based TransFormSynth, &lt;a href="http://homepages.cae.wisc.edu/~sethares/software/TFSdocs/index.html"&gt;described here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;P.S.: Why the ReFiLa triad, instead of the DoMiSo triad? Because Re&lt;sup&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;0&lt;/span&gt;&lt;/sup&gt; -- being the center of symmetry (more or less) of all well-formed scales -- is the "origin note" from which the frequencies of all all other notes are determined. As such, Re's frequency doesn't change when the tuning changes, but the frequencies of all other notes do change. Clearly, the applet need to be extended to support the ability to specify a "tonic note-class," which would make the tonic note-class' members (e.g., Do) stable instead of Re. Always more work to do. &amp;nbsp;;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-7261960949711646200?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/7261960949711646200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/exploretuning1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7261960949711646200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7261960949711646200'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/exploretuning1.html' title='ExploreTuning1'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4423617533251192877</id><published>2010-02-24T18:33:00.000-06:00</published><updated>2010-02-24T18:33:35.335-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thummer'/><title type='text'>Guthman Musical Instrument Competition</title><content type='html'>The Thummer is a contestant in &lt;a href="http://gtcmt.coa.gatech.edu/?p=662"&gt;Georgia Tech's Guthman Musical Instrument Competition&lt;/a&gt;, being held later this week.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www2.mercer.edu/Music/cole.htm"&gt;Dr. Monty Cole&lt;/a&gt;, a high school friend of mine, happens to work just down the road at Mercer University, and has kindly offered to present the Thummer there on my behalf.&lt;br /&gt;&lt;br /&gt;Unfortunately, we haven't been able to get one of the (rapidly aging) Thummer prototypes working, so&amp;nbsp;the presentation will rely on&amp;nbsp;videos of other people performing on it, rather than a live performance.&lt;br /&gt;&lt;br /&gt;Here's the presentation, as a compressed PowerPoint file:&amp;nbsp; &lt;a href="http://www.igetitmusic.com/blog/Misc/Guthman.zip"&gt;Guthman.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's super-short, relying primarily on three videos.&amp;nbsp; I'm not sure that the PowerPoint file will be able to locate the videos properly after one downloads, unzips, and moves them to some other file folder. One may need to open the presentation in PowerPoint, go to the slides that contain the videos, double-click on the video graphics, and update the video-link to reference the video files' new location.&lt;br /&gt;&lt;br /&gt;Why do the videos have a "Wondershare" logo across their upper-left corner? Because I used a trial version of &lt;a href="http://www.dvd-ripper-copy.com/video-converter-mac.html"&gt;Wondershare's Video Converter for Mac&lt;/a&gt; to convert the video files from WMV to MOV format.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4423617533251192877?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4423617533251192877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/guthman-musical-instrument-competition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4423617533251192877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4423617533251192877'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/guthman-musical-instrument-competition.html' title='Guthman Musical Instrument Competition'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-6186017301075163928</id><published>2010-02-23T16:11:00.000-06:00</published><updated>2010-02-23T16:11:16.684-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><title type='text'>Marek Zabka: Let's Talk</title><content type='html'>Marek Zabka, a Lecturer at&amp;nbsp;Slovakia's Comenius University, is hot on our heels.&lt;br /&gt;&lt;br /&gt;His paper &lt;a href="http://www.springerlink.com/content/x371484885xw23m3/"&gt;&lt;em&gt;Generalized Tonnetz and Well-Formed GTS: A Scale Theory Inspired by the Neo-Riemannians&lt;/em&gt;&lt;/a&gt;&amp;nbsp;shows that he's&amp;nbsp;investigating the same&amp;nbsp;generalized approach to music theory that&amp;nbsp;Andy Milne, Bill Sethares, and myself are pursuing (our &lt;a href="http://en.wikipedia.org/wiki/William_Sethares#References"&gt;references here&lt;/a&gt;), on which JiMS iGetIt! Music System (JiMS) is based.&lt;br /&gt;&lt;br /&gt;Interestingly, Dr. Zabka does not cite any of our papers, which I presume means that he's unuaware of them.&lt;br /&gt;&lt;br /&gt;He&amp;nbsp;has not yet connected his approach to isomorphic keyboards or -- more importantly -- to a generalization of timbre, so we're still ahead of the pack.&lt;br /&gt;&lt;br /&gt;Clearly, the foundations of our mutual approach are "in the air," much as infinitesimal calculus was in the 1660's and natural selection was in the 1850's.&lt;br /&gt;&lt;br /&gt;I don't have Dr. Zabka's contact information, and can't find it on the web. If you, kind Reader, know how to contact him, or can forward this to him, I would welcome the opportunity to welcome him to into our growing collaboration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-6186017301075163928?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/6186017301075163928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/marek-zabka-lets-talk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/6186017301075163928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/6186017301075163928'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/marek-zabka-lets-talk.html' title='Marek Zabka: Let&apos;s Talk'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-8683502459727963761</id><published>2010-02-20T01:02:00.001-06:00</published><updated>2010-02-20T01:16:12.553-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='music education'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><category scheme='http://www.blogger.com/atom/ns#' term='music pedagogy'/><title type='text'>Lesson 005.0</title><content type='html'>Here's my first draft of Lesson 5 in JiMS iGetIt! Music System (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/Lessons/Lesson_005.0/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="480" width="640"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_005.0/main.swf"&gt;&lt;embed width="640" height="480" src="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_005.0/main.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Same crummy state-controlling button-bar at the bottom, for now. I really must fix that.&lt;br /&gt;&lt;br /&gt;This lesson is 640x480, rather than the much smaller dimensions of the previous lessons. The larger size doesn't fit this blog very well, but it makes the lesson's text easier to read -- especially the note-button labels.&lt;br /&gt;&lt;br /&gt;In this lesson, we build the "Fundamental Scales" -- that is, music's "well-formed scales." I'm not using the "well-formed scale" phrase yet, because to do so, I also need to introduce &lt;a href="http://en.wikipedia.org/wiki/Myhill's_property"&gt;Myhill's property&lt;/a&gt;, and we're still a few lessons away from that.&lt;br /&gt;&lt;br /&gt;In Lesson 6, I expect to introduce the notion of tuning, to show how the world's different musical cultures are related, and to establish the argument that to learn music using JiMS is to use a very general approach -- not limited to traditional Western music, for example. I had hoped to put that into Lesson 5, but it was just too much information. It needed its own lesson.&lt;br /&gt;&lt;br /&gt;As of this lesson, my courseware has not just drifted, but positively &lt;i&gt;galloped &lt;/i&gt;away from mainstream approaches to music education. Yet one can see that the concepts it introduces are quite simple, when shown using JiMS isomorphic keyboard and on-screen animations.&lt;br /&gt;&lt;br /&gt;This lesson is late because I spent a week doing the final packing, cleaning, etc.&amp;nbsp;to get our Austin house on the market. That's done; the coast is clear. More lessons!&amp;nbsp; (&lt;a href="http://www.buzzhumor.com/videos/28180/More_Cowbell"&gt;More cowbell!&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-8683502459727963761?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/8683502459727963761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/lesson-0050.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/8683502459727963761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/8683502459727963761'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/lesson-0050.html' title='Lesson 005.0'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-2456056316695178801</id><published>2010-02-07T01:23:00.000-06:00</published><updated>2010-02-07T01:23:27.556-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='isomorphism'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><title type='text'>Cardinality invariance</title><content type='html'>All &lt;a href="http://en.wikipedia.org/wiki/Isomorphic_keyboard"&gt;isomorphic note-layouts&lt;/a&gt;, by definition, have the property of &lt;i&gt;transpositional invariance:&lt;/i&gt;&amp;nbsp;the same fingering in every key.&lt;br /&gt;&lt;br /&gt;Non-trivial isomorphic keyboards also have the property of &lt;i&gt;tuning invariance:&lt;/i&gt;&amp;nbsp;the same fingering in every tuning (of&amp;nbsp;those temperaments with the same generators as the note-layout).&lt;br /&gt;&lt;br /&gt;I've &lt;a href="http://www.igetitmusic.com/blog/2009/10/isomorphism-diatonic-set-theory.html"&gt;blogged before&lt;/a&gt; about the fact that the Wicki note-layout has another invariant property, not yet named: its fingering patterns are the same for &lt;a href="http://en.wikipedia.org/wiki/Generated_collection"&gt;well-formed scales&lt;/a&gt; of any cardinality (again, assuming that the layout and temperament use the same generators). However, that property has not yet been assigned a name.&lt;br /&gt;&lt;br /&gt;I hereby define &lt;i&gt;cardinality invariance&lt;/i&gt; as "the same fingering in every well-formed scale, regardless of cardinality" (for a given generator-pair).&lt;br /&gt;&lt;br /&gt;JIMS' (Wicki) note-layout has this property. The &lt;a href="http://www.thearraymbira.com/arraysystem.php"&gt;Wesley&lt;/a&gt; note-layout has it, too. Most other isomorphic note-layouts don't have it. &amp;nbsp;I don't yet know what mathematical characteristics confer it.&amp;nbsp;But now, at least, it has a name:&amp;nbsp;cardinality invariance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-2456056316695178801?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/2456056316695178801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/cardinality-invariance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/2456056316695178801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/2456056316695178801'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/cardinality-invariance.html' title='Cardinality invariance'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4248939405129909768</id><published>2010-02-06T23:01:00.001-06:00</published><updated>2010-02-07T01:01:00.161-06:00</updated><title type='text'>Languages, Frameworks, and Idioms</title><content type='html'>I've recently realized that I'm not "re-learning how to do computer programming," as I had intended. I'm just learning&lt;br /&gt;- new languages (ActionScript, [M]XML),&lt;br /&gt;- a new framework (Flex),&lt;br /&gt;- new development tools (Eclipse), and&lt;br /&gt;- their relevant idioms.&lt;br /&gt;&lt;br /&gt;The data structures, algorithms, and fundamental abstractions are all pretty much the same as they were 17 years ago. There are a few new concepts, but basically, it's old wine in new bottles.&lt;br /&gt;&lt;br /&gt;It could be, that a more recently-experienced programmer would look at my code and ask "why aren't you using glorpization here?" -- and the answer would be, I haven't &amp;nbsp;a clue what glorpization is, because its use became widespread during my programming hiatus, so I never encountered it before.&lt;br /&gt;&lt;br /&gt;One example of this, I suspect, is iterators. The use of iterators for traversing collections had only recently come into vogue went I left programming in the early 1990's. So when I returned to programming, using Adobe's Flex, I tended to traverse its ArrayCollections using indexing (that is, "for i=0 to foo.length") rather than iterators, whether implicit ("for each element in foo") or explicit ("cursor = foo.getCursor; result = cursor.findAny(key)...").&lt;br /&gt;&lt;br /&gt;Another thing I missed was the introduction of associative arrays as an underlying mechanism of dynamic programming. "Static typing be damned -- just slam another property on that instance!" This was anathema, back then. Now, you can hardly turn around without bumping into associative arrays. XML appears to one big nested associative array. Flex depends on them.&lt;br /&gt;&lt;br /&gt;It's quite odd to see a practice that was formerly considered to be a hanging offense -- "Egad! Self-modifying code! Run away, run away!" -- &amp;nbsp;find its way into the core of modern programming.&lt;br /&gt;&lt;br /&gt;I am still finding XML to be impenetrable. It's so simple that I can't understand it, because its (assumed) simplicity is shrouded in impenetrable layers of complexity.&lt;br /&gt;&lt;br /&gt;My current confusion on the topic reminds me very much of how confused I was when I was first learning object-oriented programming (OOP). Everyone kept describing OOP in anthropomorphic/magical terms that clouded the issue. They'd say "message passing" when what they really meant was &lt;i&gt;a function call&lt;/i&gt;. They'd say "overriding a method" when what they meant was &lt;i&gt;a function call&lt;/i&gt;. &amp;nbsp;Only after I discovered C++'s &lt;a href="http://en.wikipedia.org/wiki/Virtual_method_table"&gt;vtables&lt;/a&gt; did OOP become clear to me. &amp;nbsp;At its heart, OOP was just a little bit of compiler (and runtime) code that maintained &lt;i&gt;tables of pointers to functions&lt;/i&gt;. &amp;nbsp;It was &lt;i&gt;simple&lt;/i&gt;. Why did everyone insist on hiding this simplicity with layers of complexity?&lt;br /&gt;&lt;br /&gt;I'm pretty sure that XML is the same -- a very simple idea layered in complex crap.&lt;br /&gt;&lt;br /&gt;For example, my online music education lessons rely heavily on the use of the computer keyboard as a musical input device. &amp;nbsp;I am quite aware that much of the world does not use the English language's "standard" QWERTY keyboard layout, using other layouts like QWERTZ, AZERTY, etc. instead. &amp;nbsp;I would like to write my code such that I can add new layouts without recompiling all of my lessons.&lt;br /&gt;&lt;br /&gt;I've got all of the relevant data structures working just fine in my code, as in-line ArrayCollections of Key objects (which define a name, code, and physical position for each key) -- but I can't figure out how to implement them in XML. It ought to be brain-dead simple. &amp;nbsp;It probably IS brain-dead simple. &amp;nbsp;But I just wasted an entire day on this issue without making any progress whatsoever, as far as I can tell. &amp;nbsp;Too many layers of complexity around XML's simple core.&lt;br /&gt;&lt;br /&gt;So, screw it. For now, I will continue to keep XML in the "too hard" file, along with fly fishing, calculus, preparing&amp;nbsp;beef Wellington,&amp;nbsp;and serialism.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4248939405129909768?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4248939405129909768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/languages-frameworks-and-idioms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4248939405129909768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4248939405129909768'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/languages-frameworks-and-idioms.html' title='Languages, Frameworks, and Idioms'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4691874387622424757</id><published>2010-02-04T23:48:00.000-06:00</published><updated>2010-02-04T23:48:17.372-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='moodle'/><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><category scheme='http://www.blogger.com/atom/ns#' term='music pedagogy'/><title type='text'>Lesson 004.0</title><content type='html'>Here's my first draft of Lesson 4 (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/Lessons/Lesson_004.0/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="325" width="365"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_004.0/main.swf"&gt;&lt;embed height="325" width="365" src="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_004.0/main.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;It uses the same crummy state-controlling button-bar at the bottom, for now. I'm going to write a new control for progressing-through-the-lesson-control soon, probably this weekend.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Moodle&lt;/strong&gt;&lt;br /&gt;I spent some time earlier this week looking at &lt;a href="http://moodle.org/"&gt;Moodle&lt;/a&gt;, the open-source &lt;a href="http://en.wikipedia.org/wiki/Learning_management_system"&gt;learning management system&lt;/a&gt;. I'd like to package my lessons in a Moodle wrapper, because it has excellent support for all sorts of things (like gradebook databases) that I don't want to have to think about. Unfortunately, Moodle's Flash/Flex support is seriously deficient. Fortunately, &lt;a href="http://code.google.com/p/moodle-swf/"&gt;an effort&lt;/a&gt; appears to be underway to address this deficiency. Therefore, I will proceed as if Moodle will have excellent support for Flash within the near-enough future.&lt;br /&gt;&lt;br /&gt;I met the Moodle guys when I was living near their home base in Perth, Western Australia. I knew at the time that they had a good chance of&amp;nbsp;beating their commerical competition. The signs were there, even then. Moodle hasn't been gaining market share&amp;nbsp;as rapidly as&amp;nbsp;I had expected, though. It needs some professional help with its evangelism, I suspect, to accelerate its rate of growth. If Moodle doesn't pick up the pace, it could be &lt;a href="http://digital.venturebeat.com/2010/01/25/myspace-facebook-nielsen/"&gt;the next MySpace&lt;/a&gt;. It's&amp;nbsp;"do or die" time.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Music &amp;amp; Pedagogy&lt;/strong&gt;&lt;br /&gt;Lesson 4 is the first lesson to introduce JIMS keyboard. The keyboard is introduced by deriving the pentatonic scale from an octave-reduced stack of (tempered) (major) fifths.&amp;nbsp; Notice that the lesson never qualifies the term "fifth" -- that is, it doesn't call it a "perfect" fifth or a "major" fifth. I don't want to, or need to, open that can of worms quite yet.&amp;nbsp; All in good time.&lt;br /&gt;&lt;br /&gt;The next lesson, Lesson 5, will state that JIMS' unique approach gives its students the power and flexibility to understand and describe the music of many cultures. It will suppor this statement by extending the Stack of Fifths to produce the diatonic, chromatic, and enharmonic scales, and by showing that -- using a tuning slider -- the student can change the tuning to match that of many different non-Western cultures and Western eras, while retaining the simplicity and consistency of JIMS' keyboard's pattern.&lt;br /&gt;&lt;br /&gt;I think that it's important to make this point early on, because immediately after making it, the lessons will shift their focus to the diatonic scale, and spend a LOT of time in the diatonic world thereafter. If the flexibility of the JIMS keyboard isn't demonstrated early on,&amp;nbsp;a knowledgeable music teacher, reviewing JIMS' early lessons, might &lt;em&gt;reasonably&lt;/em&gt; conclude that JIMS teaches concepts that are applicable only to the diatonic scale.&amp;nbsp; I need to plant the seed of JIMS' power early on, even if I don't water it until much later.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Programming&lt;/strong&gt;&lt;br /&gt;I'm becoming more comfortable with the architecture that I'm using for these lessons, in which the lesson's content is implemented in the transitions between Flex's application states. If I choose the states wisely, then the architecture works well -- even if this architecture is, as&amp;nbsp;I suspect, an unanticipated application of Flex's "state" feature.&lt;br /&gt;&lt;br /&gt;Flex's 4 Beta 2's implementation of stateGroups seems to be a bit buggy (as one might expect from a new feature in a beta-version framework).&amp;nbsp; It seems to clobber properties that aren't set by the relevant states. For example, you'll notice that in Lesson 4 above, the note's octave numbers disappear partway through the lesson. That appears to be a manifestation of the stateGroup bug.&amp;nbsp; I spent a couple of hours trying to work around it, before deciding that the lack of octave numbers, in those states, was not a big enough bug to worry about. Also, don't use stateGroups to affect the setting of the &lt;a href="http://www.igetitmusic.com/blog/2010/01/stategroup-bug-in-flex-4-beta-2.html"&gt;properties of a slider&lt;/a&gt;, because the max/min/value will be set to NaN under conditions that&amp;nbsp;I haven't spent the time to rigorously quantify.&lt;br /&gt;&lt;br /&gt;Now, if I were a really serious beta-tester, I'd dig into Adobe's online bug reports and open-source nightly builds of Flex, to track down the bug and try to identify a fix. However, I'm confident that the bug is severe enough that others will have done this work, so it will be fixed in the release version. Although my use of the state feature in my application's architecture is, as I've suggested above, likely to be unusual, the use of stateGroups is not, so other people should be encountering this bug.&amp;nbsp; If it persists in the next release, I will become more actively concerned.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Schedule&lt;/strong&gt;&lt;br /&gt;I've decided to try to post a new lesson each week. That would give me fifty lessons in a year. Assuming that I'll make the first dozen free, on a "try before you buy" basis, then those who subscribe to the paid lessons will get an additional 38 lessons (because 50 - 12 = 38). Thirty-eight is more than three dozen, and hence is three times the number of free lessons -- which ought to make the paying customer feel like they are getting enough to make the $29.95&amp;nbsp;purchase worthwhile. Of course, I'll be adding new lessons constantly thereafter, but with 50, I ought to have enough to "go live" and start selling subscriptions.&lt;br /&gt;&lt;br /&gt;I'll have to pause my output while writing a "notation" component, but since JIMS' sequencer-like notation is so much simpler than traditional notation, it shouldn't slow me down by too much.&lt;br /&gt;&lt;br /&gt;Lookin' good.&amp;nbsp; ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4691874387622424757?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4691874387622424757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/lesson-0040.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4691874387622424757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4691874387622424757'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/02/lesson-0040.html' title='Lesson 004.0'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-5458131055919488915</id><published>2010-01-29T20:00:00.001-06:00</published><updated>2010-01-29T20:24:20.779-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><title type='text'>Lesson 003.0</title><content type='html'>Here's my first draft of Lesson 3 (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/Lessons/Lesson_003.0/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="325" width="365"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_003.0/main.swf"&gt;&lt;embed height="325" width="365" src="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_003.0/main.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Like the first two lessons, it uses a gross-looking and non-intuitive button-bar (along the bottom) to move from state to state.&amp;nbsp; I need to replace that with a simpler/better "Next" button that only appears when one can proceed, and&amp;nbsp;along with "Quit" and "Previous" buttons.&amp;nbsp; The button bar is better for my development purposes, though, because it allows me to jump around non-sequentially.&lt;br /&gt;&lt;br /&gt;Musically, this lesson shows JIMS starting to diverge from traditional representations of musical information. There is no international standard way of indicating the octave to which a note belongs. Some musicians indicate the octave of the piano keyboard; some musicians use MIDI numbers; some musicians use apostrophes -- it varies across the globe. So one more variation can't hurt, and might help.&lt;br /&gt;&lt;br /&gt;In JIMS, octaves are numbered relative to the octave of the "origin note." In Lesson 3, Fred takes the note Bob sings as his origin, and numbers all octaves from it. Octaves are numbered along a number line, with higher octaves being positive and lower octaves being negative, as described in Lesson 3.&lt;br /&gt;&lt;br /&gt;This system is entirely relative. The note Xx&lt;sup&gt;0&lt;/sup&gt; is in the same octave as the origin note, irrespective of the frequency associated with the origin note. As my father used to say, "Everything is relative (but relatives aren't everything)."&lt;br /&gt;&lt;br /&gt;Develping Lesson 3 took much longer than it should have, in part because I spent a week (or more) rewriting my QWERTY/Wicki keyboard code to Flex 4...which I then decided not to use in this lesson after all.&amp;nbsp; I'll use it soon enough, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-5458131055919488915?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/5458131055919488915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/lesson-0030.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/5458131055919488915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/5458131055919488915'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/lesson-0030.html' title='Lesson 003.0'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-2053051378639794951</id><published>2010-01-29T19:09:00.000-06:00</published><updated>2010-01-29T19:09:33.237-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex 4'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>StateGroup bug in Flex 4 Beta 2</title><content type='html'>I hit an annoying bug in Flex 4 Beta 2 today: using stateGroups to set the min/value/max of a slider control SOMETIMES sets those values to NaN instead of the specified values.&amp;nbsp; It can be worked around by not using state groups...which of course makes state groups considerably less useful.&lt;br /&gt;&lt;br /&gt;Here's a Flex app that reproduces the bug 100% of the time (&lt;a href="http://www.igetitmusic.com/blog/SWFs/StateGroupTest/srcview/index.html"&gt;source code here&lt;/a&gt;):&lt;br /&gt;&lt;object height="310" width="310"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/StateGroupTest/StateGroupTest.swf"&gt;&lt;embed height="310" width="310" src="http://www.iGetItMusic.com/blog/SWFs/StateGroupTest/StateGroupTest.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;I've edited the code and walked Flex's source code in the debugger, trying to track down the cause of the failure, and also tried to find a mention of the bug in Adobe's bug database...but it's already eaten up my whole day, and I've got lessons to finish, so I'll just stop using stateGroups.&amp;nbsp; That's life in beta-land.&lt;br /&gt;&lt;br /&gt;Bummer.&amp;nbsp; :-(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-2053051378639794951?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/2053051378639794951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/stategroup-bug-in-flex-4-beta-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/2053051378639794951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/2053051378639794951'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/stategroup-bug-in-flex-4-beta-2.html' title='StateGroup bug in Flex 4 Beta 2'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-7728510396854744051</id><published>2010-01-10T19:12:00.000-06:00</published><updated>2010-01-10T19:12:31.967-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>wordWrapping a Flex Panel's title?</title><content type='html'>How does one turn on word wrap in the title of a Flex Panel?&lt;br /&gt;&lt;br /&gt;I'm using Panels to present questions, and the question statements can occupy more than one line. However, the Panel clips them to just one line. There must be a way to make the Panel use as many lines as necessary to display the title's text in full, preferably from MXML.&lt;br /&gt;&lt;br /&gt;How?&lt;br /&gt;&lt;br /&gt;I suspect that the answer involves using "Cascading Style Sheets," which is on my steadily-growing "must-learn" list. &amp;nbsp;That list seems to be growing from the bottom faster than I can scratch newly-learned things off the top, which is a bit worrisome. &amp;nbsp;The problem isn't that cascading style sheets are rocket science; I'm sure that they are not. It's just one more thing on the list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-7728510396854744051?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/7728510396854744051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/wordwrapping-flex-panels-title.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7728510396854744051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7728510396854744051'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/wordwrapping-flex-panels-title.html' title='wordWrapping a Flex Panel&apos;s title?'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-5316527021110401516</id><published>2010-01-09T16:50:00.000-06:00</published><updated>2010-01-09T16:50:29.807-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JiMS'/><category scheme='http://www.blogger.com/atom/ns#' term='music education'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><title type='text'>Lesson 2</title><content type='html'>Here's my first cut at Lesson 2 in JiMS iGetIt! Music System (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/Lessons/Lesson_002.0/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="325" width="365"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_002.0/Lesson_002.swf"&gt;&lt;embed height="325" width="365" src="http://www.iGetItMusic.com/blog/SWFs/Lessons/Lesson_002.0/Lesson_002.swf"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;br /&gt;&lt;br /&gt;No radical departures from mainstream theory or pedagogy, so far. I'm not super-happy with the state-based architecture that I'm using, and there are some bugs (unimplemented events, actually) in the Flex 4 beta that I had to work around, but...so far, so good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-5316527021110401516?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/5316527021110401516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/lesson-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/5316527021110401516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/5316527021110401516'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/lesson-2.html' title='Lesson 2'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-4346817187952117563</id><published>2010-01-03T13:03:00.002-06:00</published><updated>2010-01-03T15:05:46.046-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='well-formed scales'/><category scheme='http://www.blogger.com/atom/ns#' term='diatonic set theory'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><title type='text'>Interval width changes across the syntonic tuning continuum</title><content type='html'>If we stack nine tempered &lt;a href="http://www.igetitmusic.com/blog/2009/09/nobodys-perfect.html"&gt;major fifths&lt;/a&gt; (traditionally called "&lt;a href="http://en.wikipedia.org/wiki/Perfect_fifth"&gt;perfect fifths&lt;/a&gt;") above Re, and nine below it, we get the following &lt;a href="http://en.wikipedia.org/wiki/Generated_collection"&gt;generated collection&lt;/a&gt;:&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;-9 -8 -7 -6 -5 -4 -3 -2 -1 &amp;nbsp;0 &amp;nbsp;1 &amp;nbsp;2 &amp;nbsp;3 &amp;nbsp;4 &amp;nbsp;5 &amp;nbsp;6 &amp;nbsp;7 &amp;nbsp;8 &amp;nbsp;9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;De-Se-Ra-Le-Me-Te-Fa-Do-So-Re-La-Mi-Ti-Fi-Di-Si-Ri-Li-My&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Plotting these intervals' relationships across the &lt;a href="http://en.wikipedia.org/wiki/Syntonic_temperament"&gt;syntonic temperament's tuning continuum&lt;/a&gt; produces this chart:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/intervalChanges-755032.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" ps="true" src="http://www.igetitmusic.com/blog/uploaded_images/intervalChanges-755028.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;(You might want to open this chart into its own window, so that you can look at it, without scrolling, while reading the text below.)&lt;br /&gt;&lt;br /&gt;This chart follows the following&amp;nbsp;JIMS&amp;nbsp;conventions:&lt;br /&gt;- Interval names are traditional, except for&lt;br /&gt;&amp;nbsp; +&amp;nbsp;4ths and 5ths: wider is "major," narrower is "minor"&lt;br /&gt;&amp;nbsp; + (that way, 4ths and 5ths follow &lt;a href="http://www.igetitmusic.com/blog/2009/09/nobodys-perfect.html"&gt;the same naming-pattern&lt;/a&gt; as all of the other non-octave intervals)&lt;br /&gt;&lt;br /&gt;- All intervals follow the standard JIMS color-code:&lt;br /&gt;&amp;nbsp;&amp;nbsp;+ major intervals in &lt;span style="color: blue;"&gt;blue&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;+ augmented intervals in &lt;span style="color: cyan;"&gt;cyan&lt;/span&gt;&lt;span style="color: black;"&gt; (an "extreme blue")&lt;/span&gt;&lt;br /&gt;&amp;nbsp; + minor intervals in &lt;span style="color: red;"&gt;red&lt;/span&gt;&lt;br /&gt;&amp;nbsp; + diminished intervals in &lt;span style="color: magenta;"&gt;magenta&lt;/span&gt;&lt;span style="color: black;"&gt; (an "extreme red")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- All chromatic variations of a given diatonic interval share the same note-line symbol. For example,&lt;br /&gt;&amp;nbsp; + All the unisons (Ra, Re, Ri) are marked with x's.&lt;br /&gt;&amp;nbsp; + All of the seconds (Me, Mi, My) are marked with squares.&lt;br /&gt;&amp;nbsp; + All of the thirds (Fa, Fi) are marked with vertical lines.&lt;br /&gt;&amp;nbsp; + etc.&lt;br /&gt;&lt;br /&gt;The legend, at the right of the chart, displays the generated collection of notes, in the same order (bottom to top) as they appear in the list at the top of this blog post. Each note's name is followed, after a colon (':'), by its interval-from-Re. Observe that the follow a pattern: augmented intervals at the top, then major intervals, then unison (Re), then minor intervals, then diminished intervals at the bottom of the list.&lt;br /&gt;&lt;br /&gt;The vertical scale, on the left, indicates the width of a given note from Re.&lt;br /&gt;&lt;br /&gt;The horizontal scale, on the bottom, indicates the width of the tempered major fifth (M5), that is, of the generator of the generated collection. The scale includes the valid tuning range of the syntonic temperament, which can be thought of an an &lt;a href="http://en.wikipedia.org/wiki/Meantone_temperament#Extended_meantones"&gt;extended meantone&lt;/a&gt; tuning system.&lt;br /&gt;&lt;br /&gt;The widths of the intervals between Re and every other (non-octave) note is controlled by the width of the generator, M5. As the width of the M5 increases, from left to right across the chart, the widths of all of the non-octave intervals change:&lt;br /&gt;- The intervals &lt;em&gt;below&lt;/em&gt; Re in the legend, representing minor and diminished intervals, slope downwards as the M5 increases, indicating that they &lt;em&gt;narrow&lt;/em&gt;.&lt;br /&gt;- The intervals &lt;em&gt;above&lt;/em&gt; Re in the legend, representing major and augmented intervals, slope upwards as M5 increases, indicating that they &lt;em&gt;widen&lt;/em&gt;.&lt;br /&gt;- The farther a note is from Re in the legend, the steeper its slope.&lt;br /&gt;&lt;br /&gt;Consider, for example, the widths of the unisons. As the generator (M5) increases in width:&lt;br /&gt;- &lt;strong&gt;Re&lt;/strong&gt; (unison) is unchanged at 0, because it is the basis from which all other intervals are measured. Its note-line is shown at the very bottom of the chart area, as a series of black x's.&lt;br /&gt;- &lt;strong&gt;Ra&lt;/strong&gt; (diminished unison, d1), shown with &lt;span style="color: magenta;"&gt;magenta x's&lt;/span&gt;, decreases in width. It's note-line drops from 0 cents below Re (i.e., 1200 cents above Re), on the left edge of the chart, to 240 cents below Re (i.e., 960 cents above Re) at the right edge.&lt;br /&gt;- &lt;strong&gt;Ri&lt;/strong&gt; (augmented unison, A1), shown width &lt;span style="color: cyan;"&gt;cyan x's&lt;/span&gt;, increases in width, from 0 cents above Re on the left to 240 cents above Re on the right.&lt;br /&gt;&lt;br /&gt;All of the unisons start, on the left, at 0, and separate as the width of the generator increases.&lt;br /&gt;&lt;br /&gt;Likewise, consider the widths of the seconds-from-Re:&lt;br /&gt;- &lt;strong&gt;Me&lt;/strong&gt; (minor second, m2) drops rapidly from 171 cents to 0.&lt;br /&gt;- &lt;strong&gt;Mi&lt;/strong&gt; (major second, M2) rises slowly from 171 cents to 240.&lt;br /&gt;- &lt;strong&gt;My&lt;/strong&gt; (augmented second, A2) rises sharply from 171 cents to 480.&lt;br /&gt;&lt;br /&gt;Just as with the unisons, all of the seconds start together (at 171 cents) and separate as the width of the generator increases. Generally, all of the chromatic variations of a given diatonic degree start at the same point on the left-hand edge of the chart, and diverge as the M5's width increases rightwards across the chart. (Note that 1200 and 0 are the same octave-reduced interval, so that Ra, which intersects the left edge at 1200, intersects it at the same interval as Re and Ri, which intersect it at 0.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7-edo&lt;/strong&gt;&lt;br /&gt;The&amp;nbsp;seven left-edge-intersection-points divide the octave into 7 equally-wide intervals, forming a 7-note "equal division of the octave," abbreviated "7-edo."&lt;br /&gt;&lt;br /&gt;(The phrase "N-tone equal temperament" and its abbreviation "N-TET," used in &lt;a href="http://en.wikipedia.org/wiki/Equal_temperament"&gt;Wikipedia&lt;/a&gt; and elsewhere, is avoided in JIMS, because it confuses the important distinction between tunings and temperaments...an explanation of which is beyond the scope of this blog post.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5-edo&lt;/strong&gt;&lt;br /&gt;Likewise, the right-hand edge of the chart, at M5=720, shows that a completely different combination of notes intersect to divide the octave into five equally-wide intervals: 5-edo. (Again, note that 1200 and 0 are the same octave-reduced interval, so Di, intersecting the right edge at 1200, and Me, intersecting the right edge at 0, are intersecting it at the same interval.)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;12-edo&lt;/strong&gt;&lt;br /&gt;Near the middle of the chart, at M5=700, you can see that seven pairs of note-lines cross. From top to bottom, the crossing pairs are:&lt;br /&gt;1100 - Ra and Di (d1 and M7)&lt;br /&gt;900 - De and Ti (d7 and M6)&lt;br /&gt;800 - Te and Li (m6 and A5)&lt;br /&gt;600 - Le and Si (m5 and M4, traditionally named d5 and A4)&lt;br /&gt;400 -&amp;nbsp;Se and&amp;nbsp;Fi (d4 and M3)&lt;br /&gt;300 - Fa and Mi (m3 and A2)&lt;br /&gt;100 - Me and Ri (m2 and A1)&lt;br /&gt;&lt;br /&gt;The notes in the crossing pair are always 12 notes apart in the 19-note stack of M5's (check for yourself, using the chart's legend).&lt;br /&gt;&lt;br /&gt;The crossing note-pairs are said to be "enharmonic" (i.e., have the same pitch) in 12-edo. This is the "equal temperament" tuning familiar to most modern musicians -- so familiar, in fact, that many such musicians do not realize that other tunings exist, or that there is such a thing as a tuning (let alone a temperament).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;17-edo&lt;/strong&gt;&lt;br /&gt;Slightly to the right of 12-edo, at M5-706 cents, two other note-lines cross:&lt;br /&gt;352 -&amp;nbsp;Se and Mi (d4 and A2)&lt;br /&gt;847 - De and Li (d7 and A5)&lt;br /&gt;&lt;br /&gt;All of the note-lines intersect the vertical line labeled "17-edo" at 17 equally-spaced intervals, so M5=706 is 17-edo tuning.&lt;br /&gt;&lt;br /&gt;In 17-edo, the major second is subdivided into three equally-wide intervals by the augmented second and minor second. For example, see how the gap between Re (black x's, at the bottom) and Mi (blue squares, near the 200 cent horizontal line) is evenly divided by Ri (A1, cyan x's) an Me (m2, red squares). Note that at this point along the horizontal axis (M5=706), Me is closer to Re (i.e., lower in pitch) than Ri is.&lt;br /&gt;&lt;br /&gt;In 17-edo -- and indeed everywhere rightward of 12-edo -- minor/diminished intervals are &lt;em&gt;lower&lt;/em&gt; in pitch than the augmented/major intervals with which they are enharmonic in 12-edo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;19-edo&lt;/strong&gt;&lt;br /&gt;Likewise, the vertical line labeled "19-edo" marks the spot, at M5=695, where the note-lines subdivide the octave into 19 equally-wide intervals: 19-edo tuning.&amp;nbsp; At this tuning,&amp;nbsp;a major second&amp;nbsp;(for example, Re-Mi) is divided into three equally-wide intervals by and augmented unison (Ri) and a minor second (Me).&lt;br /&gt;&lt;br /&gt;In 19-edo -- and indeed everywhere leftward of 12-edo -- minor/diminished intervals are &lt;em&gt;higher&lt;/em&gt; in pitch than the augmented/major intervals with which they are enharmonic in 12-edo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Dynamic Tonality&lt;/strong&gt;&lt;br /&gt;Despite the changes among the relationships between intervals across the syntonic temperament's tuning continuum, the sound of tonal harmony's basic structure survives, as shown in this video (with over-the-top narration, for which I apologize):&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Nd4h8vmEsQM&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Nd4h8vmEsQM&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This dynamic&amp;nbsp;flexibility of tuning, combined with the consistent fingering of the &lt;a href="http://en.wikipedia.org/wiki/Isomorphic_keyboard"&gt;Wicki/JIMS keyboard&lt;/a&gt;, can be used to create musical effects that are truly new, such as the tuning progression in this piece, &lt;a href="http://en.wikipedia.org/wiki/Dynamic_tonality#Example:_C2ShiningC"&gt;&lt;em&gt;C to Shining Sea&lt;/em&gt;&lt;/a&gt;, by &lt;a href="http://en.wikipedia.org/wiki/William_Sethares"&gt;William Sethares&lt;/a&gt;. We call the result &lt;a href="http://en.wikipedia.org/wiki/Dynamic_tonality"&gt;Dynamic Tonality&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-4346817187952117563?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/4346817187952117563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/interval-width-changes-across-syntonic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4346817187952117563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/4346817187952117563'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/interval-width-changes-across-syntonic.html' title='Interval width changes across the syntonic tuning continuum'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-686997113211854195</id><published>2010-01-02T18:21:00.044-06:00</published><updated>2010-01-03T08:10:46.565-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='well-formed scales'/><category scheme='http://www.blogger.com/atom/ns#' term='diatonic set theory'/><category scheme='http://www.blogger.com/atom/ns#' term='alternative tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><category scheme='http://www.blogger.com/atom/ns#' term='generated sets'/><title type='text'>Well-formed scales beyond the chromatic</title><content type='html'>First, let's review the construction of the &lt;a href="http://en.wikipedia.org/wiki/Chromatic_scale"&gt;chromatic scale&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Stacking 13 &lt;a href="http://en.wikipedia.org/wiki/Musical_temperament"&gt;tempered&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Perfect_fifth"&gt;perfect fifths&lt;/a&gt; (P5's) one atop the other, centered on Re, produces the following 13-note &lt;a href="http://en.wikipedia.org/wiki/Generated_collection"&gt;generated collection&lt;/a&gt;:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;-6 -5 -4 -3 -2 -1 &amp;nbsp;0 &amp;nbsp;1 &amp;nbsp;2 &amp;nbsp;3 &amp;nbsp;4 &amp;nbsp;5 &amp;nbsp;6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Le-Me-Te-Fa-Do-So-Re-La-Mi-Ti-Fi-Di-Si&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Le-to-Di and Me-to-Si 12-note subsets of this generated collection are both just transposition of each other, so either can be used to represent a 12-note contiguous subset of the above 13-note generated collection. In the following discussion, the Me-to-Si subset will be used.&lt;br /&gt;&lt;br /&gt;The Me-Si generated collection's notes can be adjusted so that they all fall within a single &lt;a href="http://en.wikipedia.org/wiki/Octave"&gt;octave&lt;/a&gt;. We will arbitrarily define the octave to start on Do. The result is a "well-formed scale," in this case the chromatic scale.&lt;br /&gt;&lt;br /&gt;The chromatic scale has the following &lt;i&gt;note sequence&lt;/i&gt; and &lt;i&gt;interval sequence&lt;/i&gt;:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;note sequence: &amp;nbsp; &amp;nbsp;Do-Di-Re-Me-Mi-Fa-Fi-So-Si-La-Te-Ti-[Do2]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;interval sequence: &amp;nbsp;A1-m2-m2-A1-m2-A1-m2-A1-m2-m2-A1-m2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...where:&lt;br /&gt;A1: &lt;a href="http://en.wikipedia.org/wiki/Semitone#Augmented_unison"&gt;augmented unison&lt;/a&gt;&lt;br /&gt;m2: &lt;a href="http://en.wikipedia.org/wiki/Semitone#Minor_second"&gt;minor second&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the syntnonic temperament's valid tuning range -- that is, when the width of the P5 is anywhere between 686 and 720 cents wide -- the m2 is wider than the A1. Hence, in the syntonic temperament, the chromatic scale has the following &lt;i&gt;width sequence&lt;/i&gt;:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;width sequence: S L L S L S L S L L S L&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's 7 L's and 5 S's.&lt;br /&gt;&lt;br /&gt;With that review, we can now go...&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Beyond the Chromatic&lt;/span&gt;&lt;br /&gt;In the syntonic temperament, then, the well-formed scale with the next-highest cardinality after the chromatic's 12 will have the cardinality:&lt;br /&gt;Cardinality' = 2L + S = (2 * 7) + 5 = (14) + 5 = 19.&lt;br /&gt;&lt;br /&gt;Stacking 19 tempered P5's one atop the other, centered on Re, produces the following generated set:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;-9 -8 -7 -6 -5 -4 -3 -2 -1 &amp;nbsp;0 &amp;nbsp;1 &amp;nbsp;2 &amp;nbsp;3 &amp;nbsp;4 &amp;nbsp;5 &amp;nbsp;6 &amp;nbsp;7 &amp;nbsp;8 &amp;nbsp;9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;De-Se-Ra-Le-Me-Te-Fa-Do-So-Re-La-Mi-Ti-Fi-Di-Si-Ri-Li-My&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...with the extra notes (relative to the chromatic scale) appearing the ends and shown in boldface.&lt;br /&gt;&lt;br /&gt;Octave-reducing this generated set, and arbitrarily defining the octave to being on Do, gives the following 19-note note sequence and interval sequence:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;Do-Di-Ra-Re-Ri-Me-Mi-My-Fa-Fi-Se-So-Si-La-Li-Te-Ti-De-[Do2]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;A1-d2-A1-A1-d2-A1-A1-d2-A1-d2-A1-A1-d2-A1-d2-A1-d2-A1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...where:&lt;br /&gt;A1: augmented unison&lt;br /&gt;d2: diminished second&lt;br /&gt;&lt;br /&gt;Clearly, as we sub-divide the octave into more pieces (i.e., into higher-cardinality scales), those pieces must get smaller.&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Scale &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Cardinality Large Small&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Pentatonic &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5 &amp;nbsp; &amp;nbsp; &amp;nbsp; m3 &amp;nbsp; &amp;nbsp;M2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Diatonic &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;7 &amp;nbsp; &amp;nbsp; &amp;nbsp; M2 &amp;nbsp; &amp;nbsp;m2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Chromatic &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;12 &amp;nbsp; &amp;nbsp; &amp;nbsp; m2 &amp;nbsp; &amp;nbsp;A1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Enharmonic_19 &amp;nbsp; &amp;nbsp; &amp;nbsp;19 &amp;nbsp; &amp;nbsp; &amp;nbsp; A1 &amp;nbsp; &amp;nbsp;d2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At each successively-higher cardinality, the formerly-small interval width becomes the new large width, and a new small width is introduced.&lt;br /&gt;&lt;br /&gt;On a 19-note-per-octave Wicki/JIMS note-layout, and played in 19-tone equal temperament (P5=695, at which the A1 and d2 are both 1200/19=63.16 cents wide), this scale looks/sounds like this (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/ScalePatterns/Enharmonic_19/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="192" width="775"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Enharmonic_19/Main.swf"&gt;&lt;embed height="192" width="775" src="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Enharmonic_19/Main.swf"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Now, let's explore the alternative cardinality-successor to the chromatic scale.&lt;br /&gt;Stacking 17 tempered P5's one atop the other, centered on Re, produces the following generated set:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;-8 -7 -6 -5 -4 -3 -2 -1 &amp;nbsp;0 &amp;nbsp;1 &amp;nbsp;2 &amp;nbsp;3 &amp;nbsp;4 &amp;nbsp;5 &amp;nbsp;6 &amp;nbsp;7 &amp;nbsp;8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;strong&gt;Se&lt;/strong&gt;-&lt;b&gt;Ra&lt;/b&gt;-Le-Me-Te-Fa-Do-So-Re-La-Mi-Ti-Fi-Di-Si-&lt;b&gt;Ri&lt;/b&gt;-&lt;b&gt;Li&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...with the extra notes, relative to the chromatic, added to either end, and shown in &lt;b&gt;boldface&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Octave-reducing this generated set, and arbitrarily starting defining the octave to being on Do, gives the following 17-note &lt;em&gt;note sequence&lt;/em&gt; and &lt;em&gt;interval sequence&lt;/em&gt;:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Do-Ra-Di-Re-Me-Ri-Mi-Fa-Se-Fi-So-Le-Si-La-Te-Li-Ti-[Do2]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;m2-d2-m2-m2-d2-m2-m2-m2-d2-m2-m2-d2-m2-m2-d2-m2-m2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On a 17-note-per-octave Wicki/JIMS note-layout, played in 17-tone equal temperament (P5=706), this scale looks/sounds like this (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/ScalePatterns/Enharmonic_17b/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="154" width="684"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Enharmonic_17b/Main.swf"&gt;&lt;embed height="154" width="684" src="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Enharmonic_17b/Main.swf"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And there you have it: the next-higher-cardinality scales after the chromatic are 17 and 19.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-686997113211854195?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/686997113211854195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/well-formed-scales-beyond-chromatic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/686997113211854195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/686997113211854195'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/well-formed-scales-beyond-chromatic.html' title='Well-formed scales beyond the chromatic'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-7334916300971596223</id><published>2010-01-02T13:34:00.003-06:00</published><updated>2010-01-02T15:11:12.331-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='well-formed scales'/><category scheme='http://www.blogger.com/atom/ns#' term='diatonic set theory'/><category scheme='http://www.blogger.com/atom/ns#' term='alternative tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><category scheme='http://www.blogger.com/atom/ns#' term='generated sets'/><title type='text'>Syntonic and Mavila</title><content type='html'>In an earlier post, I calculated the cardinalities of successive well-formed scales -- pentatonic (5), diatonic (7), and chromatic (12) -- and animated their interval-patterns on the Wicki/JIMS note-layout.&lt;br /&gt;&lt;br /&gt;What we saw -- with some interpretative help from Andy Milne -- was that:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;each successive well-formed scale came in two &lt;i&gt;versions&lt;/i&gt;: one with X large intervals and Y small intervals, and one that was vice versa (Y large and X small); and that&lt;/li&gt;&lt;li&gt;the sequence of intervals that defined both versions was the same; the only difference between the two versions was the tuning (that is, the width of the tempered perfect fifth, since that is the &lt;i&gt;generator&lt;/i&gt; of the generated set that defines a well-formed scale).&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;For example, the diatonic "generated set" is Fa-Do-So-Re-La-Mi-Ti, which produces the &lt;i&gt;note-sequence&lt;/i&gt; (in Do-mode) Do-Re-Mi-Fa-So-La-Ti-[Do2], which has the inter-note &lt;i&gt;interval sequence&lt;/i&gt; M2-M2-m2-M2-M2-M2-m2.&lt;br /&gt;&lt;br /&gt;In the syntonic temperament's valid tuning range (P5=(686, 720)), the M2 is wider than the m2, so this sequence can be written as the &lt;i&gt;width sequence&lt;/i&gt; L-L-S-L-L-L-S, which is 5 large (L) and 2 small (S) intervals.&lt;br /&gt;&lt;br /&gt;However, as P5's width shrinks towards 686, the m2 widens and the M2 shrinks, such that they become equal at around P5=686 cents, producing 7-tone equal temperament tuning.&lt;br /&gt;&lt;br /&gt;If one narrows the P5 even further, one leaves the syntonic temperament and enters what Erv Wilson called the Mavila temperament, in which the m2 is wider than the M2. There, this same pattern (note sequence:&amp;nbsp;Do-Re-Mi-Fa-So-La-Ti-[Do2] == interval sequence: M2-M2-m2-M2-M2-M2-m2 ) has the width sequence S-S-L-S-S-S-L, because in the Mavila temperament's valid tuning range, m2 &amp;gt; M2.&lt;br /&gt;&lt;br /&gt;Alternatively put, the diatonic note note sequence and (hence) interval sequence&amp;nbsp;are unchanged from syntonic to Mavila; the only thing that's changed is the relationships among the interval-widths, in that syntonic's m2 &amp;lt; M2 becomes Mavila's m2 &amp;gt; M2.&lt;br /&gt;&lt;br /&gt;The same meta-pattern applies to the chromatic scale (all from Do):&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;note sequence: &amp;nbsp; &amp;nbsp;Do-Di-Re-Me-Mi-Fa-Fi-So-Si-La-Te-Ti-[Do2].&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;interval sequence: A1-m2-m2-A1-m2-A1-m2-A1-m2-m2-A1-m2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Within the syntonic temperament's valid tuning range, the m2 is wider than the A1 (i.e., m2 &amp;gt; A1), so the above chromatic note/interval sequence produces the following width sequence:&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;width sequence: &amp;nbsp; &amp;nbsp; S &amp;nbsp;L &amp;nbsp;L &amp;nbsp;S &amp;nbsp;L &amp;nbsp;S &amp;nbsp;L &amp;nbsp;S &amp;nbsp;L &amp;nbsp;L &amp;nbsp;S &amp;nbsp;L&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;However, if the P5's width is narrowed so that it crosses out of the syntonic temperament's valid range into the Mavila temeprament's valid tuning range, then the width-relationship of the m2 and A1 is reversed, such that m2 &amp;lt; A1 -- producing a chromatic width sequence in Mavila that's the opposite of that in the syntonic:&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;width sequence: &amp;nbsp; &amp;nbsp; L &amp;nbsp;S &amp;nbsp;S &amp;nbsp;L &amp;nbsp;S &amp;nbsp;L &amp;nbsp;S &amp;nbsp;L &amp;nbsp;S &amp;nbsp;S &amp;nbsp;L &amp;nbsp;S&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;Apparently, Andy's algorithm for calculating the sequence of cardinalities for successive well-formed scales, and the count of large &amp;amp; small intervals in each, produces a single scale, of which there is a syntonic variant and a Mavila variant. Let's see, in my next post, if that pattern continues, as we explore well-formed scales beyond the chromatic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-7334916300971596223?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/7334916300971596223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/syntonic-and-mavila.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7334916300971596223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7334916300971596223'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2010/01/syntonic-and-mavila.html' title='Syntonic and Mavila'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-1663678008824336924</id><published>2009-12-31T13:43:00.003-06:00</published><updated>2010-01-01T12:50:26.034-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='music education'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><category scheme='http://www.blogger.com/atom/ns#' term='iSlate'/><category scheme='http://www.blogger.com/atom/ns#' term='Kodály'/><title type='text'>Kodály, Wicki, and iSlate</title><content type='html'>The &lt;a href="http://en.wikipedia.org/wiki/Kod%C3%A1ly_Method"&gt;Kodály music education Method&lt;/a&gt;starts young students with pentatonic songs, then slowly introduces them to the "extra" diatonic intervals, and then eventually to the "extra" chromatic intervals.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/Pentatonic-793438.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" src="http://www.igetitmusic.com/blog/uploaded_images/Pentatonic-793435.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Now, imagine that the youngest students were presented with a "pentatonic keyboard" in the Wicki/JIMS note-layout, like the one shown in the (non-interactive) image at right.&lt;br /&gt;&lt;br /&gt;For the pentatonic songs used initially by the&amp;nbsp;Kodály Method, this pentatonic-only keyboard would be ideal. It would contain only the notes (intervals) that the students were currently learning. (Other keyboard controls, not shown, would be used to indicate the tonic and define its pitch.) Also, it would give students a visual, tangible metaphor for &lt;a href="http://en.wikipedia.org/wiki/Pitch_space"&gt;tonal space&lt;/a&gt;, hence (potentially) accelerating their development of &lt;a href="http://www.blogger.com/"&gt;&lt;span id="goog_1262290122788"&gt;&lt;/span&gt;audiation&lt;span id="goog_1262290122789"&gt;&lt;/span&gt;&lt;/a&gt; skills.&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/Diatonic-757492.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://www.igetitmusic.com/blog/uploaded_images/Diatonic-757489.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Then, when they were introduced to the "extra" intervals of the diatonic scale, they could get a new &lt;i&gt;diatonic&lt;/i&gt; keyboard.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see, it's the same as the pentatonic keyboard, with the addition of Fa and Ti along the left and right edges, respectively. In effect, the diatonic keyboard's extra notes expand the "tonal space" to which the student is exposed.&lt;br /&gt;&lt;br /&gt;Again, by containing only the notes in the scale currently being studied, such a keyboard has the potential to sharpen student's focus.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Later, as the student progressed to learning about chords, they could be presented with a &lt;i&gt;two-handed&lt;/i&gt; diatonic keyboard, suitable for self-accompaniment. (The note-layouts are mirrored for cognitive convenience, and angled for ergonomic convenience.)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/Diatonic2-751136.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="281" src="http://www.igetitmusic.com/blog/uploaded_images/Diatonic2-751133.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;...which would, in turn, be superseded by a two-handed &lt;i&gt;chromatic&lt;/i&gt; keyboard:&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/Chromatic2-797125.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://www.igetitmusic.com/blog/uploaded_images/Chromatic2-797122.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;...and eventually, a two-handed &lt;i&gt;enharmonic&lt;/i&gt; keyboard, featuring all 19 intervals of the &lt;a href="http://en.wikipedia.org/wiki/Enharmonic_scale"&gt;enharmonic scale&lt;/a&gt;:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.igetitmusic.com/blog/uploaded_images/Enharmonic2-739186.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="184" src="http://www.igetitmusic.com/blog/uploaded_images/Enharmonic2-739183.jpg" width="640" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The latter keyboard looks rather overwhelming, and it probably would be, if it were the first keyboard a student encountered. However, after starting with the simple pentatonic keyboard and working progressively up through the diatonic an chromatic keyboards, the enharmonic keyboard wouldn't seem like such a big deal. It just adds a few extra notes at the outer edges of the keyboard, leaving its pentatonic/diatonic/chromatic core unchanged.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;The main advantage of this approach is that&amp;nbsp;the student always uses a keyboard that has &lt;i&gt;precisely enough note-controlling buttons to achieve the required pedagogical goals&lt;/i&gt;, thus encouraging proper focus and minimizing distraction/confusion. Of all of the &lt;a href="http://en.wikipedia.org/wiki/Isomorphic_keyboard"&gt;isomorphic note-layouts&lt;/a&gt;, the Wicki note-layout is &lt;a href="http://www.thummer.com/ThumTone/Tuning_Invariant_Layouts_Last_Draft.pdf"&gt;best for this purpose&lt;/a&gt;.&amp;nbsp;Each successively-wider Wicki keyboard enables the student to see farther into tonal space, literally expanding their tonal horizons.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The main &lt;i&gt;dis&lt;/i&gt;advantage is that the student must trade-up keyboards rather frequently.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Perhaps this disadvantage could be ameliorated by using a virtual multi-touch keyboard, such as the much-rumored &lt;a href="http://en.wikipedia.org/wiki/ISlate"&gt;Apple iSlate&lt;/a&gt;&amp;nbsp;(see &lt;a href="http://www.wired.com/gadgetlab/2009/12/iguide-islate/"&gt;article here&lt;/a&gt;):&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.wired.com/images_blogs/gadgetlab/2009/11/tablet_1a.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://www.wired.com/images_blogs/gadgetlab/2009/11/tablet_1a.jpg" width="320" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Such a multi-touch sensitive display would perhaps lack the tactile feedback needed in a true performance instrument...but that's not the point. The&amp;nbsp;Kodály&amp;nbsp;Method&amp;nbsp;stresses the use of one's &lt;i&gt;voice&lt;/i&gt; as one's performance instrument. Hence, in a&amp;nbsp;Kodály&amp;nbsp;context, the Wicki note-layout keyboard would be used&amp;nbsp;&lt;i&gt;not&lt;/i&gt;&amp;nbsp;for performance (absent the&amp;nbsp;&lt;a href="http://www.thummer.com/"&gt;Thummer&lt;/a&gt;&amp;nbsp;[&lt;a href="http://www.igetitmusic.com/blog/2009/09/what-killed-thumtronics.html"&gt;sigh&lt;/a&gt;]), but&amp;nbsp;rather for pedagogy -- i.e., in helping students apply additional senses (sight, touch) to the development of proper audiation skills.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Using a virtual keyboard would enable new intervals to be introduced not just one &lt;i&gt;scale&lt;/i&gt; at a time, but one &lt;i&gt;note&lt;/i&gt; at a time -- first just So and Mi, then also Do, then Re, then La, etc. -- following the standard &lt;a href="http://en.wikipedia.org/wiki/Kod%C3%A1ly_Method#Melodic_sequence_and_pentatony"&gt;sequence&lt;/a&gt;&amp;nbsp;of the&amp;nbsp;Kodály&amp;nbsp;Method.&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Apple's iSlate is likely to be to expensive for K-12 music instruction. Give it 10 years, however -- maybe less -- and iSlate clones will be cheaper than traditional band instruments.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-1663678008824336924?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/1663678008824336924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2009/12/kodaly-wicki-and-islate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/1663678008824336924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/1663678008824336924'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2009/12/kodaly-wicki-and-islate.html' title='Kodály, Wicki, and iSlate'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1851744567432646507.post-7510155163430611490</id><published>2009-12-31T06:24:00.004-06:00</published><updated>2009-12-31T18:25:41.283-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='well-formed scales'/><category scheme='http://www.blogger.com/atom/ns#' term='MOS scales'/><category scheme='http://www.blogger.com/atom/ns#' term='music theory'/><category scheme='http://www.blogger.com/atom/ns#' term='cardinality'/><title type='text'>Cardinality of well-formed scales</title><content type='html'>Let’s apply Andy's next-highest-cardinality-MOS-scale-calculating &lt;a href="http://www.igetitmusic.com/blog/2009/12/cardinality-sequence-of-mos-scales.html"&gt;algorithm&lt;/a&gt;, starting with the pentatonic scale.&lt;br /&gt;&lt;br /&gt;First, here's an animation of the pentatonic scale on a Wicki note-layout (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/ScalePatterns/Pentatonic/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="228" width="276"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Pentatonic/Main.swf"&gt;&lt;embed height="228" width="276" src="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Pentatonic/Main.swf"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;As you can see, the pentatonic scale has two large steps (m3’s) and three small steps (M2's).&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L&amp;nbsp;&amp;nbsp; S&amp;nbsp;&amp;nbsp; Cardinality&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Pentatonic&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So far, so good.&lt;br /&gt;&lt;br /&gt;Remember, a well-formed scale is drawn from a stack of tempered perfect fifths; the stack has the same number of notes in it as the scale does: the cardinality of the scale. The pentatonic scale's stack of P5's (laid on its side) looks like this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;-2 -1&amp;nbsp; 0&amp;nbsp; 1&amp;nbsp; 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Do-So-Re-La-Mi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, let’s apply Andy's algorithm to these values of L and S to get the L and S of the next-higher-cardinality MOS scale, i.e., L’ and S’ respectively.&lt;br /&gt;&lt;br /&gt;Cardinality’ = 2L + S = (2 * 2) + 3 = 4 + 3 = 7, which agrees with our expectations for the diatonic scale, which is a god sign. ;-)&lt;br /&gt;&lt;br /&gt;X = L + S = 2 + 3 = 5&lt;br /&gt;Y = L = 2&lt;br /&gt;&lt;br /&gt;Therefore, the next-higher-cardinality-than-pentatonic MOS scale will have either 5 large steps and 2 small steps, or vice versa.&lt;br /&gt;&lt;br /&gt;The diatonic scale has five large steps and two small steps, with cardinality 7, so that seems to be the “right choice.”&lt;br /&gt;&lt;br /&gt;However, I am confused. Does this mean that there ALSO exists some “Bizarro-Diatonic” scale of cardinality 7 which has five small steps and two large ones? If so, what is that scale? If not, why not?&lt;br /&gt;&lt;br /&gt;This process gives us the following result:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Name&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; L&amp;nbsp;&amp;nbsp; S&amp;nbsp;&amp;nbsp; Cardinality&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Diatonic&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;Bizarro-Diatonic&amp;nbsp; 2&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hmmmm, it’s a little weird to have the Bizarro-Diatonic scale as a result of this algorithm, but what the heck, let’s press on.&lt;br /&gt;&lt;br /&gt;[&lt;strong&gt;Edit&lt;/strong&gt;: Andy Milne was kind enough to point out that the Bizarro-Diatonic scale is more properly named the Mavila scale, following Erv Wilson. I haven't been able to find out much about it on the web. When I understand it better, I'll put up an appropriate animation of its interval pattern.]&lt;br /&gt;&lt;br /&gt;The diatonic scale described above looks like this (source code &lt;a href="http://www.igetitmusic.com/blog/SWFs/ScalePatterns/Diatonic/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="228" width="383"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Diatonic/Main.swf"&gt;&lt;embed height="228" width="383" src="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Diatonic/Main.swf"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;The diatonic scale's stack of tempered P5's is just like the pentatonic's, but it has one additional note at each end (Fa and Ti):&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;-3 -2 -1&amp;nbsp; 0&amp;nbsp; 1&amp;nbsp; 2&amp;nbsp; 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;strong&gt;Fa&lt;/strong&gt;-Do-So-Re-La-Mi-&lt;strong&gt;Ti&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, let’s apply the stated algorithm to the diatonic scale’s L and S values, to find the next-higher-cardinality MOS scale (which OUGHT to be the chromatic scale, if all goes well).&lt;br /&gt;&lt;br /&gt;Taking the values L' = 2 and S' = 5 from the diatonic scale...&lt;br /&gt;&lt;br /&gt;Cardinality’’ = 2L’ + S’ = (2 * 5) + 2 = 10 + 2 = 12, which is the cardinality of the chromatic scale, which is encouraging.&lt;br /&gt;&lt;br /&gt;X’ = L’ + S’ = 5 + 2 = 7&lt;br /&gt;Y’ = L = 5&lt;br /&gt;&lt;br /&gt;Therefore, the next-higher-than-diatonic MOS scale will have either 7 large steps and 5 small steps, or vice versa.&lt;br /&gt;&lt;br /&gt;Hmmmm, that's odd. Can there be two different versions of the chromatic scale?&lt;br /&gt;&lt;br /&gt;Yes, it turns out that there can, and the existence of the two different versions answers a question that's been puzzling me for the last couple of weeks.&lt;br /&gt;&lt;br /&gt;Here's an animation of the first version of the chromatic scale (source &lt;a href="http://www.igetitmusic.com/blog/SWFs/ScalePatterns/Chromatic_Si2/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="202" width="535"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Chromatic_Si2/Main.swf"&gt;&lt;embed height="202" width="535" src="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Chromatic_Si2/Main.swf"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;There are 12 intervals in the chromatic scale, so any drawing of them is going to look complicated, and this animation's drawing is no exception. But if you look closely, you can see a lot of structure in its pattern of intervals.&lt;br /&gt;&lt;br /&gt;Firstly, the scale has only two interval sizes, as predicted: minor seconds (m2's, in &lt;span style="color: red;"&gt;red&lt;/span&gt;) and augmented unisons (A1's, in &lt;span style="color: magenta;"&gt;pink&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Second, there are five A1's (smaller intervals) and seven m2's (larger intervals). In &lt;a href="http://en.wikipedia.org/wiki/Equal_temperament#Twelve-tone_equal_temperament"&gt;12-tone equal temperament&lt;/a&gt; ("12-tet"), the&amp;nbsp;A1 and m2 happen to be equally wide (at 100 cents), but they are still different intervals, so they have different shapes on the Wicki note-layout.&lt;br /&gt;&lt;br /&gt;Third, all the interval lines are parallel to each other. Among them, they outline a &lt;a href="http://musicnotation.org/"&gt;chromatic staff&lt;/a&gt; (well, kinda sorta).&lt;br /&gt;&lt;br /&gt;One of the note-buttons, Le, isn't used in the animation above, however -- none of the interval-arrows ever reach it. You might well ask, "why did Jim include Le in the animation, then?"&lt;br /&gt;&lt;br /&gt;To answer this leading question, let's look at an animation of the &lt;em&gt;other&lt;/em&gt; version of the chromatic scale (source &lt;a href="http://www.igetitmusic.com/blog/SWFs/ScalePatterns/Chromatic_Le2/srcview/index.html"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;object height="202" width="535"&gt; &lt;param name="movie" value="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Chromatic_Le2/Main.swf"&gt;&lt;embed height="202" width="535" src="http://www.iGetItMusic.com/blog/SWFs/ScalePatterns/Chromatic_Le2/Main.swf"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;It looks very much the same, as you would expect. The only difference is that, after the scale goes up an m2 from Fi to So, it goes up another m2 from So to Le, rather than turning back towards Si with&amp;nbsp;an A1&amp;nbsp;as the previous version of the chromatic scale did.&lt;br /&gt;&lt;br /&gt;We can call the first version "Chromatic Si," and the second version "Chromatic Le." In 12-tone equal temperament, there is no difference between them, but there would be a difference in (say) 1/4-comma meantone tuning, which had a leading role in Western music for many centuries (and which appears to have been used in the tuning of ancient Chinese bells).&lt;br /&gt;&lt;br /&gt;In the stack of tempered perfect fifths that forms the chromatic scale, Le and Si are on opposite ends:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;-6 -5 -4 -3 -2 -1&amp;nbsp; 0&amp;nbsp; 1&amp;nbsp; 2&amp;nbsp; 3&amp;nbsp; 4&amp;nbsp; 5&amp;nbsp; 6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&lt;b&gt;Le&lt;/b&gt;-&lt;b&gt;Me&lt;/b&gt;-&lt;b&gt;Te&lt;/b&gt;-Fa-Do-So-Re-La-Mi-Ti-&lt;b&gt;Fi&lt;/b&gt;-&lt;b&gt;Di&lt;/b&gt;-&lt;b&gt;Si&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...which is the same as the diatonic stack, but with extra notes added at the ends (in &lt;b&gt;boldface&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;This chromatic stack has 13 notes, but only 12 can be included in the chromatic scale. One must &lt;b&gt;&lt;i&gt;choose&lt;/i&gt;&lt;/b&gt; whether to include Le or Si; you can't have both, because then you'd have a scale of cardinality 13, not 12.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you choose to include Le, you get the Chromatic_Le scale.&lt;/li&gt;&lt;li&gt;If you choose to include Si, you get the Chromatic_Si scale.&lt;/li&gt;&lt;/ul&gt;[&lt;strong&gt;Edit&lt;/strong&gt;: I got all excited when I first saw this, because, after about 4am, my counting skills decline precipitously -- so I thought that Chromatic_Le had 5 small and 7 large intervals, and Chromatic_Si, &lt;em&gt;vice versa&lt;/em&gt;. They are just transpositions of each other, and nothing to get excited about. One should never trust (or at least, never&amp;nbsp;&lt;i&gt;post&lt;/i&gt;) late-night epiphanies.&lt;br /&gt;&lt;br /&gt;As further evidence of the decline in my late-night counting abilities, I also declared the down-and-right-pointing intervals (e.g., from Do to Di) to be "diminished seconds," when they were clearly augmented unisons (how "clearly"? In both chromatic animations, the A1 arrows ALWAYS connect notes that begin with the same initial consonant -- that is, chromatically-altered versions of &lt;em&gt;the same note&lt;/em&gt;. Hence, the interval MUST be a variation on unison.&amp;nbsp;What an idjit I am!). I have relabeled them accordingly, and updated this blog post's text accordingly.&amp;nbsp; Thanks to Andy Milne for giving me the heads-up on these errors; see his comment below.&lt;br /&gt;&lt;br /&gt;I realy should have changed the color of the A1 arrows to be cyan, while I was relabelling them, to follow my convention that all augmented intervals are colored cyan...but I forgot, and now I'm too tired again. Later, perhaps.]&lt;br /&gt;&lt;br /&gt;I've been up all night working on this blog posting (and its animations), so now, at 6am, I'm off to bed. Soon, I'll put up another post that continues walking up the cardinality chain to 17-tone scales, 19-tone scales, and beyond.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1851744567432646507-7510155163430611490?l=www.igetitmusic.com%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/7510155163430611490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.igetitmusic.com/blog/2009/12/cardinality-of-well-formed-scales.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7510155163430611490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1851744567432646507/posts/default/7510155163430611490'/><link rel='alternate' type='text/html' href='http://www.igetitmusic.com/blog/2009/12/cardinality-of-well-formed-scales.html' title='Cardinality of well-formed scales'/><author><name>JimPlamondon</name><uri>http://www.blogger.com/profile/09369224973365121846</uri><email>jim@igetitmusic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='18075042458146665610'/></author><thr:total>4</thr:total></entry></feed>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      