Mitola is a new quark I made to experiment with microtonal music. It is close in spirit to Panola, a quark for more traditional music composition.
Pretty much like in Panola, you write a score (but using integer scale degrees instead of notenames) and you can attach all kinds of properties to the notes (a pitch modifier (think: accidental), an equave (think: octave), a duration, and basically any property you can think of like “amp” or “legato” or whatever you fancy - all these properties end up in the Pbind pattern that is derived from the score.
When it’s time to realize the score as a pattern, you need to pass in a tuning (i.e. the contents of a scala file, or a filename pointing to a valid .scl file) and a root frequency (since that is not part of the scala definition). Mitola comes with a RootFrequencyCalculator utility which calculates the root frequency to pin a given mitola note in a given equave (possibly with pitch modifier) to any desired frequency.
Here’s a wacky chip tune I quickly gobbled together using Mitola and some tuning dividing the octave in 10 steps I took from the scl tuning archive (code in the mitola examples): Vocaroo | Online voice recorder
The Mitola quark has documentation and some examples for you to play with.
but sclang returns the following error (I sucssesfully installed Panola and Scparco):
Installing mitola
ERROR: Message 'version' not understood.
RECEIVER:
Instance of String { (0x12aa76248, gc=2C, fmt=07, flg=10, set=02)
indexed slots [32]
0 : M
1 : i
2 : c
3 : r
4 : o
5 : t
6 : o
7 : n
8 : a
9 : l
10 :
11 : c
12 : o
13 : u
14 : n
15 : t
16 : e
17 : r
18 : p
19 : a
20 : r
21 : t
22 :
23 : t
24 : o
25 :
26 : P
27 : a
28 : n
29 : o
30 : l
31 : a
}
ARGS:
Instance of String { (0x12aa76ca8, gc=2C, fmt=07, flg=10, set=02)
indexed slots [5]
0 : 0
1 : .
2 : 0
3 : .
4 : 1
}
CALL STACK:
DoesNotUnderstandError:reportError
arg this = <instance of DoesNotUnderstandError>
Nil:handleError
arg this = nil
arg error = <instance of DoesNotUnderstandError>
Thread:handleError
arg this = <instance of Thread>
arg error = <instance of DoesNotUnderstandError>
Object:throw
arg this = <instance of DoesNotUnderstandError>
Object:doesNotUnderstand
arg this = "Microtonal counterpart to Pa..."
arg selector = 'version'
arg args = [*1]
< closed FunctionDef > (no arguments or variables)
Quark:parseQuarkFile
arg this = <instance of Quark>
var qfp = "/Users/prko/Library/Applicat..."
var result = nil
Quark:data
arg this = <instance of Quark>
Quark:isCompatible
arg this = <instance of Quark>
var isCompatible = true
Meta_Quarks:installQuark
arg this = <instance of Meta_Quarks>
arg quark = <instance of Quark>
var deps = nil
var incompatible = <instance of Function>
var prev = nil
Meta_Quarks:install
arg this = <instance of Meta_Quarks>
arg name = "https://github.com/shimpe/mi..."
arg refspec = nil
var path = nil
var quark = <instance of Quark>
Interpreter:interpretPrintCmdLine
arg this = <instance of Interpreter>
var res = nil
var func = <instance of Function>
var code = "Quarks.install("https://gith..."
var doc = nil
var ideClass = <instance of Meta_ScIDE>
Process:interpretPrintCmdLine
arg this = <instance of Main>
^^ ERROR: Message 'version' not understood.
RECEIVER: Microtonal counterpart to Panola
You are right, there was a missing comma in the .quark file. I fixed it now (and tried it out ). I’m sorry for the inconvencience (oh, and you don’t need Panola for Mitola to work - both look and feel very similar but as it stands they don’t share any code.)
Aaarrgh I changed something last night without testing because I fell asleep
Please remove the downloaded quarks and try again. It should work now.
Note that upgrading will not work because of a bug in the quarks system where the “master” branch name is hardcoded, whereas github nowadays uses “main” as default branch name. (It’s logged as bug #6071 already).
Hi, you were right, the brackets were wrong.
I just cannot understand why I didn’t get any errors…
Anyway, it should be really fixed now.
Thanks for the bug report!