back to list

Free software: Microtonal Scales program

🔗calebmrgn@...

8/19/2016 6:03:55 AM

Free, runs on (any? most?) platforms including PC, lists microtonal scales in any modulus within reason.

I'm hoping that someone can get some benefit from this, and that posting this won't take much of my time, nor embroil me in any disputes.

I'm using this program, already finding it helpful for scale practice and for composition problems.

It can generate scales, identify them within its purview, find complements, find supersets. It can list the keyboard fingering for scales of the "N notes of X EDO" type. (I use 118 EDO as a gamut, and 36 and 43 notes of that, and the program will list these keyboard fingerings.)

Link to source code of latest version. Just copy this to a text file, put it on your desktop.
http://www.internationalskeptics.com/forums/showthread.php?postid=11449762#post11449762 http://www.internationalskeptics.com/forums/showthread.php?postid=11449762#post11449762

Download Dr. Racket system (free, any platform) here:
https://racket-lang.org/download/ https://racket-lang.org/download/

Start Racket, open the text file of source code you copied, and under the Racket pull-down menu, choose Create Executable. Wait a minute, and the program should be up and running. It should be easy. If not, something is wrong. Probably something I can't help you with. The program shouldn't crash or malfunction in any way. It behaves admirably on my system.

There's a sketchy tutorial here, although the program was expanded after I wrote this.
http://www.internationalskeptics.com/forums/showthread.php?postid=11304395#post11304395 http://www.internationalskeptics.com/forums/showthread.php?postid=11304395#post11304395

If anyone finds this useful, and -- *after aquiring some experience with the program* -- wishes that the program would do X or Y, I'd be interested to hear. (He said, with some trepidation.)

And the same comment as above applies to the issue of naming.

Names are somewhat serious, somewhat arbitrary and humorous. The program identifies modal groups, not particular scales. The names are just a way to make identifying the data onscreen much faster, like attaching icons, or something.

One good thing the program will do is identify any scale in any EDO within N cents tolerance. So it will identify the closest thing to the Lydian group in 27EDO, for example, without someone having to enter those intervals explicitly.

Here's a sample of the output header, which shows what parameters the program operates with.

modulus: 24
wolf intervals (between any two notes): (13 15)
display multiple spellings: #f
acceptable error when naming scales (cents): 0
sort order: (length rotation wolves packing)
abbreviated multiple-column output: #f
output format: numbers
number of output columns: 3
keyboard notes: ()
first note of scale: 0
minimum scale length: 6
maximum scale length: 8
minimum number of wolves: 0
maximum number of wolves: 1
minimum interval between consecutive notes: 2
minimum interval between alternate notes: 5
bad cells: ((4 0 1 2))
maximum number of bad cells: 0
good cells: ()
minimum number of good cells: 0
require completeness: #t
bad intervals (between consecutive notes): ()
maximum number of bad intervals: 0
good intervals (between consecutive notes): ()
minimum number of good intervals: 0
allowed intervals between consecutive notes: ()
require all allowed intervals: #f
required notes: ()
forbidden notes: (1 13 15 23)
balance notes: (0 2 4 6 8 10 12 14 16 18 20 22)
minimum number of notes from balance: 1
minimum number of notes not from balance: 1
maximum number of scales to display: 100

finding scales....done
removing incomplete scales...done

number of scales found: 254

---------------------------------------------------------

Hope someone gets some use out of this. It's certainly useful for me.

I don't being the object of interest, so feel free to use this program *without* letting me know.

And, one tip: No commas in the data fields. Just numbers seperated by spaces.

Caleb Morgan

🔗richard duckworth <richduckworth@...>

8/19/2016 6:42:57 AM

Thanks Caleb!!

On Friday, 19 August 2016, 9:05, "calebmrgn@... [MakeMicroMusic]" <MakeMicroMusic@yahoogroups.com> wrote:

  Free, runs on (any? most?) platforms including PC, lists microtonal scales in any modulus within reason.
I'm hoping that someone can get some benefit from this, and that posting this won't take much of my time, nor embroil me in any disputes.
I'm using this program, already finding it helpful for scale practice and for composition problems.
It can generate scales, identify them within its purview, find complements, find supersets.  It can list the keyboard fingering for scales of the "N notes of X EDO" type.  (I use 118 EDO as a gamut, and 36 and 43 notes of that, and the program will list these keyboard fingerings.)
Link to source code of latest version.  Just copy this to a text file, put it on your desktop.http://www.internationalskeptics.com/forums/showthread.php?postid=11449762#post11449762

Download Dr. Racket system (free, any platform) here:https://racket-lang.org/download/

Start Racket, open the text file of source code you copied, and under the Racket pull-down menu, choose Create Executable.  Wait a minute, and the program should be up and running.  It should be easy.  If not, something is wrong.  Probably something I can't help you with.  The program shouldn't crash or malfunction in any way.  It behaves admirably on my system.
There's a sketchy tutorial here, although the program was expanded after I wrote this.http://www.internationalskeptics.com/forums/showthread.php?postid=11304395#post11304395

If anyone finds this useful, and -- *after aquiring some experience with the program* -- wishes that the program would do X or Y, I'd be interested to hear.  (He said, with some trepidation.)
And the same comment as above applies to the issue of naming.
Names are somewhat serious, somewhat arbitrary and humorous.   The program identifies modal groups, not particular scales.  The names are just a way to make identifying the data onscreen much faster, like attaching icons, or something.
One good thing the program will do is identify any scale in any EDO within N cents tolerance.  So it will identify the closest thing to the Lydian group in 27EDO, for example, without someone having to enter those intervals explicitly.
Here's a sample of the output header, which shows what parameters the program operates with.
                                    modulus: 24     wolf intervals (between any two notes): (13 15)                 display multiple spellings: #facceptable error when naming scales (cents): 0                                 sort order: (length rotation wolves packing)         abbreviated multiple-column output: #f                              output format: numbers                   number of output columns: 3                             keyboard notes: ()                        first note of scale: 0                       minimum scale length: 6                       maximum scale length: 8                   minimum number of wolves: 0                   maximum number of wolves: 1 minimum interval between consecutive notes: 2   minimum interval between alternate notes: 5                                  bad cells: ((4 0 1 2))                maximum number of bad cells: 0                                 good cells: ()               minimum number of good cells: 0                       require completeness: #t  bad intervals (between consecutive notes): ()            maximum number of bad intervals: 0 good intervals (between consecutive notes): ()           minimum number of good intervals: 0allowed intervals between consecutive notes: ()              require all allowed intervals: #f                             required notes: ()                            forbidden notes: (1 13 15 23)                              balance notes: (0 2 4 6 8 10 12 14 16 18 20 22)       minimum number of notes from balance: 1   minimum number of notes not from balance: 1        maximum number of scales to display: 100
finding scales....doneremoving incomplete scales...done
number of scales found: 254
---------------------------------------------------------
Hope someone gets some use out of this.  It's certainly useful for me.
I don't being the object of interest, so feel free to use this program *without* letting me know.
And, one tip:  No commas in the data fields.  Just numbers seperated by spaces.
Caleb Morgan

#yiv6877793870 #yiv6877793870 -- #yiv6877793870ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv6877793870 #yiv6877793870ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv6877793870 #yiv6877793870ygrp-mkp #yiv6877793870hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv6877793870 #yiv6877793870ygrp-mkp #yiv6877793870ads {margin-bottom:10px;}#yiv6877793870 #yiv6877793870ygrp-mkp .yiv6877793870ad {padding:0 0;}#yiv6877793870 #yiv6877793870ygrp-mkp .yiv6877793870ad p {margin:0;}#yiv6877793870 #yiv6877793870ygrp-mkp .yiv6877793870ad a {color:#0000ff;text-decoration:none;}#yiv6877793870 #yiv6877793870ygrp-sponsor #yiv6877793870ygrp-lc {font-family:Arial;}#yiv6877793870 #yiv6877793870ygrp-sponsor #yiv6877793870ygrp-lc #yiv6877793870hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv6877793870 #yiv6877793870ygrp-sponsor #yiv6877793870ygrp-lc .yiv6877793870ad {margin-bottom:10px;padding:0 0;}#yiv6877793870 #yiv6877793870actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv6877793870 #yiv6877793870activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv6877793870 #yiv6877793870activity span {font-weight:700;}#yiv6877793870 #yiv6877793870activity span:first-child {text-transform:uppercase;}#yiv6877793870 #yiv6877793870activity span a {color:#5085b6;text-decoration:none;}#yiv6877793870 #yiv6877793870activity span span {color:#ff7900;}#yiv6877793870 #yiv6877793870activity span .yiv6877793870underline {text-decoration:underline;}#yiv6877793870 .yiv6877793870attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv6877793870 .yiv6877793870attach div a {text-decoration:none;}#yiv6877793870 .yiv6877793870attach img {border:none;padding-right:5px;}#yiv6877793870 .yiv6877793870attach label {display:block;margin-bottom:5px;}#yiv6877793870 .yiv6877793870attach label a {text-decoration:none;}#yiv6877793870 blockquote {margin:0 0 0 4px;}#yiv6877793870 .yiv6877793870bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv6877793870 .yiv6877793870bold a {text-decoration:none;}#yiv6877793870 dd.yiv6877793870last p a {font-family:Verdana;font-weight:700;}#yiv6877793870 dd.yiv6877793870last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv6877793870 dd.yiv6877793870last p span.yiv6877793870yshortcuts {margin-right:0;}#yiv6877793870 div.yiv6877793870attach-table div div a {text-decoration:none;}#yiv6877793870 div.yiv6877793870attach-table {width:400px;}#yiv6877793870 div.yiv6877793870file-title a, #yiv6877793870 div.yiv6877793870file-title a:active, #yiv6877793870 div.yiv6877793870file-title a:hover, #yiv6877793870 div.yiv6877793870file-title a:visited {text-decoration:none;}#yiv6877793870 div.yiv6877793870photo-title a, #yiv6877793870 div.yiv6877793870photo-title a:active, #yiv6877793870 div.yiv6877793870photo-title a:hover, #yiv6877793870 div.yiv6877793870photo-title a:visited {text-decoration:none;}#yiv6877793870 div#yiv6877793870ygrp-mlmsg #yiv6877793870ygrp-msg p a span.yiv6877793870yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv6877793870 .yiv6877793870green {color:#628c2a;}#yiv6877793870 .yiv6877793870MsoNormal {margin:0 0 0 0;}#yiv6877793870 o {font-size:0;}#yiv6877793870 #yiv6877793870photos div {float:left;width:72px;}#yiv6877793870 #yiv6877793870photos div div {border:1px solid #666666;min-height:62px;overflow:hidden;width:62px;}#yiv6877793870 #yiv6877793870photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv6877793870 #yiv6877793870reco-category {font-size:77%;}#yiv6877793870 #yiv6877793870reco-desc {font-size:77%;}#yiv6877793870 .yiv6877793870replbq {margin:4px;}#yiv6877793870 #yiv6877793870ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv6877793870 #yiv6877793870ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv6877793870 #yiv6877793870ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv6877793870 #yiv6877793870ygrp-mlmsg select, #yiv6877793870 input, #yiv6877793870 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv6877793870 #yiv6877793870ygrp-mlmsg pre, #yiv6877793870 code {font:115% monospace;}#yiv6877793870 #yiv6877793870ygrp-mlmsg * {line-height:1.22em;}#yiv6877793870 #yiv6877793870ygrp-mlmsg #yiv6877793870logo {padding-bottom:10px;}#yiv6877793870 #yiv6877793870ygrp-msg p a {font-family:Verdana;}#yiv6877793870 #yiv6877793870ygrp-msg p#yiv6877793870attach-count span {color:#1E66AE;font-weight:700;}#yiv6877793870 #yiv6877793870ygrp-reco #yiv6877793870reco-head {color:#ff7900;font-weight:700;}#yiv6877793870 #yiv6877793870ygrp-reco {margin-bottom:20px;padding:0px;}#yiv6877793870 #yiv6877793870ygrp-sponsor #yiv6877793870ov li a {font-size:130%;text-decoration:none;}#yiv6877793870 #yiv6877793870ygrp-sponsor #yiv6877793870ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv6877793870 #yiv6877793870ygrp-sponsor #yiv6877793870ov ul {margin:0;padding:0 0 0 8px;}#yiv6877793870 #yiv6877793870ygrp-text {font-family:Georgia;}#yiv6877793870 #yiv6877793870ygrp-text p {margin:0 0 1em 0;}#yiv6877793870 #yiv6877793870ygrp-text tt {font-size:120%;}#yiv6877793870 #yiv6877793870ygrp-vital ul li:last-child {border-right:none !important;}#yiv6877793870