{"id":817,"date":"2012-02-21T13:09:14","date_gmt":"2012-02-21T11:09:14","guid":{"rendered":"http:\/\/www.matthiaskronlachner.com\/?p=817"},"modified":"2026-02-24T14:13:26","modified_gmt":"2026-02-24T12:13:26","slug":"non-standard-scaletuning-playback-via-midi","status":"publish","type":"post","link":"https:\/\/www.matthiaskronlachner.com\/?p=817","title":{"rendered":"non-standard scale\/tuning playback via midi"},"content":{"rendered":"<p><a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/header.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-833\" title=\"Bohlen-Pierce Chromatic Notation\" src=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/header-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" \/><\/a>In my composition studies at &#8220;lietuvos muzikos ir teatro akademija&#8221; in Vilnius I came across using 12 tone techniques from Schoenberg\/Hauer in combination with the Bohlen-Pierce[ref name=&#8221;bp&#8221;]Bohlen-Pierce Site <a href=\"http:\/\/www.huygens-fokker.org\/bpsite\/\" target=\"_blank\">http:\/\/www.huygens-fokker.org\/bpsite\/<\/a>[\/ref] scale discovered independently by Heinz Bohlen in early 1970&#8217;s and John Pierce.<\/p>\n<p>This scale is based on mainly odd frequency ratios and divides the duodezime (ratio 3:1) into 13 steps. You can listen to the equally tempered scale here:<br \/>\n<audio class=\"wp-audio-shortcode\" id=\"audio-817-1\" preload=\"none\" style=\"width: 100%;\" controls=\"controls\"><source type=\"audio\/mpeg\" src=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/bohlen-pierce-eqtempered.mp3?_=1\" \/><a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/bohlen-pierce-eqtempered.mp3\">https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/bohlen-pierce-eqtempered.mp3<\/a><\/audio><\/p>\n<p>If you want to know how to use non-standard tunings and scales in combination with your MIDI keyboard or favourite music notation software read on!<br \/>\n<!--more--><\/p>\n<p>There is a very handy tool for all kind of non-standard tunings which is called <strong>Scala<\/strong>[ref name=&#8221;scala&#8221;]Scala <a title=\"Scala Musical Tuning Tool\" href=\"http:\/\/www.huygens-fokker.org\/scala\/\" target=\"_blank\">http:\/\/www.huygens-fokker.org\/scala\/<\/a>[\/ref].<\/p>\n<p>This tool will be the central part of the setup.<br \/>\nYour MIDI Sequencer, notation software or MIDI keyboard will send MIDI notes to Scala. Scala will interprete them according a loaded scale and loaded key mapping.<br \/>\nScala will output MIDI notes plus pitch bend to your sampler\/synthesizer.<br \/>\nYour sampler\/synthesizer will hopefully playback the desired pitch.<\/p>\n<p>To route the MIDI signals you can use the built in functions of Mac OSX, namely IAC-Driver. (Inter-Application-Communication Driver).<br \/>\nOn Linux you can use Jack and on Windows <a title=\"loopMIDI.html\" href=\"http:\/\/www.tobias-erichsen.de\/loopMIDI.html\" target=\"_blank\">loopMIDI<\/a> or <a href=\"http:\/\/nerds.de\/en\/loopbe1.html\" target=\"_blank\">LoopBe1<\/a>&#8230;<\/p>\n<h1>Lets start with Scala&#8230;<\/h1>\n<p>This tool can receive MIDI Notes and Map them to a specific scale\/tuning that is loaded.<br \/>\nDownload a huge set of different scales\/tunings here: <a title=\"Scales for Scala\" href=\"http:\/\/www.huygens-fokker.org\/docs\/scales.zip\" target=\"_blank\">http:\/\/www.huygens-fokker.org\/docs\/scales.zip<\/a><\/p>\n<p><a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/scala.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-831\" title=\"Scala Microtonal Tuning Tool\" src=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/scala-150x150.jpg\" alt=\"with bohlen-pierce scale loaded and corresponding mapping for chromatic notation\" width=\"150\" height=\"150\" \/><\/a>Scala is receiving MIDI Notes and translates them according to the loaded scale\/tuning.<br \/>\nIt sends the nearest MIDI note to the desired frequency and a pitch bend message to exactly match this frequency.<\/p>\n<p>The problem with pitch bend in MIDI is that it affects the whole MIDI channel. Every note played back or is stil sounding over this channel will be detuned by a new pitch bend message.<br \/>\nTherefore Scala iterates through all available 16 MIDI channels in a cirle. That means the first note is sent on first MIDI channel, the second note on the second MIDI channel and so on. The note after the 16th note will be sent on MIDI channel 1 again.<br \/>\nKeep in mind, that wrong tunings may accure if still a sound is played back on channel one when already playing the 17th note. The same happens if more than 16 Notes played together as cluster.<\/p>\n<p>I made a custom keymapping to playback Bohlen-Pierce scale in chromatic notation for Scala. Download <a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/bohlen_pierce_scala.zip\">here<\/a>.<\/p>\n<p>In Scala you can either use the menu to load scales and mappings or you use commands like in unix shell.<br \/>\nI rather use the command line&#8230;<br \/>\nFor opening a scale\/tuning change to the directory (File-&gt;Change directory) where you downloaded the scales linked from above. Then type <em>LOAD bohlen-p_et.scl<\/em>. This will load the equally tempered Bohlen-Pierce scale.<br \/>\n<a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/Screen-shot-2012-02-22-at-08.04.41.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-869\" title=\"Scala Relay\" src=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/Screen-shot-2012-02-22-at-08.04.41-150x150.jpg\" alt=\"MIDI note relay dialog\" width=\"150\" height=\"150\" \/><\/a>If you download my custom mapping<a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/bohlen_pierce_scala.zip\">[*]<\/a> you can load it with the command <em>LOAD\/MAPPING bohlen_pierce_sibelius.kbm<\/em>.<br \/>\nIf you now click the Relay button you can setup your MIDI input and output device.<br \/>\nFor the input choose your MIDI keyboard or virtual MIDI cable where you send notes from your other application (Sibelius, Finale, whatever&#8230;).<br \/>\nThe output should be your sampler or synthesizer. We will see how to use Linuxsampler for that purpose later.<br \/>\nThere is a strange behaviour in my version of Scala. Each time i start relaying the mapping resets itself. So after i click <em>Start Relaying<\/em> i have to load the mapping again.<\/p>\n<p>&lt;&lt; for some more info about Scala check the official website<strong><\/strong>[backref name=&#8221;scala&#8221;] &gt;&gt;<\/p>\n<h1>Linuxsampler<\/h1>\n<p>You also need a Sampler which plays back the MIDI notes including correct pitch bend interpretation.<br \/>\n<strong>Linuxsampler<\/strong>[ref name=&#8221;linuxsampler&#8221;]Linuxsampler <a title=\"Linuxsampler\" href=\"http:\/\/www.linuxsampler.org\" target=\"_blank\">http:\/\/www.linuxsampler.org<\/a>[\/ref] is a very powerful and free of charge Sampler.<br \/>\nUse can use the <a href=\"http:\/\/download.linuxsampler.org\/instruments\/pianos\/maestro_concert_grand_v2.rar\">Maestro Concert Grand v2<\/a> Sample Library for good sounding piano playback.<br \/>\nThe only problem with this version is that the pitch bend range is set to zero. That means it won&#8217;t react to pitch bend values and playback in alternative tunings is not possible &#8220;out-of-the-box&#8221;.<\/p>\n<p>You can change this by using the tool <strong>gigedit<\/strong>. It&#8217;s available from the Linuxsampler Homepage[backref name=&#8221;linuxsampler&#8221;] or as packet in most Linux distributions packet manager. Unfortunately its not available for Mac OSX.<br \/>\nOpen the file <em>maestro_concert_grand_v2.gig <\/em>with gigedit and right click on the instrument -&gt; choose settings and set pitch bend range to 2. (two semitones)<br \/>\nNow save it &#8211; maybe under a different name <em>maestro_concert_grand_v2_pb.gig<\/em>. (pb for pitch bend)<\/p>\n<p><a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/Screen-shot-2012-02-21-at-13.49.47.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-thumbnail wp-image-828\" title=\"Linuxsampler 16 channels piano\" src=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/Screen-shot-2012-02-21-at-13.49.47-150x150.jpg\" alt=\"Qsampler frontend\" width=\"150\" height=\"150\" \/><\/a>Linuxsampler is basically a command line program. To make it easy accessible the GUI <strong>qsampler<\/strong> can be used.<br \/>\nYou have to create 16 channels of the <em>maestro_concert_grand_v2_pb.gig [0] <\/em>Instrument. Every channel listens to <span style=\"text-decoration: underline;\">one<\/span> MIDI channel. Thats because the earlier mentioned pitch bend message affects every note played back via this channel.<\/p>\n<p>You can download my configuration for Linuxsampler <a href=\"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/maestro_bp.lscp_.zip\">here<\/a>.<\/p>\n<p>If you want to record the music played back by Linuxsampler you have to use the Jack enabled version.<br \/>\nWith Jack you can connect the audio output of Linuxsampler to your favourite audio recording software and record the performance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my composition studies at &#8220;lietuvos muzikos ir teatro akademija&#8221; in Vilnius I came across using 12 tone techniques from Schoenberg\/Hauer in combination with the Bohlen-Pierce[ref name=&#8221;bp&#8221;]Bohlen-Pierce Site http:\/\/www.huygens-fokker.org\/bpsite\/[\/ref] scale discovered independently by Heinz Bohlen in early 1970&#8217;s and John &hellip; <a href=\"https:\/\/www.matthiaskronlachner.com\/?p=817\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":833,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[37],"tags":[43,41,47,46,38,42,39,44,40,45],"class_list":["post-817","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-bohlen-pierce","tag-finale","tag-keyboard","tag-linuxsampler","tag-mdi","tag-microtonal","tag-scala","tag-scale","tag-sibelius","tag-tuning"],"modified_by":"matthias","jetpack_featured_media_url":"https:\/\/www.matthiaskronlachner.com\/wp-content\/uploads\/2012\/02\/header.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/posts\/817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=817"}],"version-history":[{"count":1,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/posts\/817\/revisions"}],"predecessor-version":[{"id":2772,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/posts\/817\/revisions\/2772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=\/wp\/v2\/media\/833"}],"wp:attachment":[{"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=817"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=817"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.matthiaskronlachner.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}