Topic: abc2midi -- peppermint.snt file

1 scales

File Description Notes Period (ยข)
peprmintA Peppermint 24 with A as 1/1 (KEY 18 of C version) 24 1200.0

Thread (2 messages)

From: Margo Schulter (2006-07-09)
Subject: abc2midi -- peppermint.snt file

Hello Hudson and all.

Please let me thank you for your enthusiasm about the
documentation project, and check as to whether I may have
solved one problem in the process of using Peppermint 24 as
a tuning to generate both Sagittal notation and retuned midi
files.

As you point out, I might generate a midi file without pitch
bends and then retune it with Scala, or use a Timidity
tuning table with the -Z option to generate an ogg file from
the midi. However, to generate a retuned midi using an snt
file seems an attractive option to me also, and I therefore
looked at pythagorean.snt.

Realizing that the notation looked quite logical, I
concluded that although I didn't yet know how to use the
'scl' command in microabc to generate an snt file, I might
be able to do it simply by taking pythagorean.snt as a
template and editing it with GNU Emacs to substitute the
correct values for Peppermint 24.

First, here's a Scala file for Peppermint 24 with C as the
1/1:

! peprmint.scl
!
Peppermint 24: Wilson/Pepper apotome/limma=Phi, 2 chains spaced for pure 7:6
 24
!
 58.679693 cents
 128.669246 cents
 187.348938 cents
 208.191213 cents
 7/6
 287.713180 cents
 346.392873 cents
 416.382426 cents
 475.062119 cents
 495.904393 cents
 554.584086 cents
 624.573639 cents
 683.253332 cents
 704.095607 cents
 762.775299 cents
 832.764852 cents
 891.444545 cents
 912.286820 cents
 970.966512 cents
 991.808787 cents
 1050.488479 cents
 1120.478033 cents
 1179.157725 cents
 2/1

Note that while Peppermint has two 12-note chains in the
same linear temperament (fifth = 704.0956 cents), it is not
itself a linear temperament, so an snt mapping is indeed
necessary. My decision was to use this mapping for midi (for
occasions when I chose not to use the timidity -Z option),
and a modification of the 121-EDO Sagittal set for the
PostScript notation (more in another post).

To get a convenient listing for an snt file, with A as the
1/1, we can simply use the Scala command 'KEY 18', which
produces this convenient data for use in editing the snt
file:

! peprmintA.scl
!
Peppermint 24 with A as 1/1 (KEY 18 of C version)
 24
!
 58.67969
 79.52197
 138.20166
 208.19121
 266.87090
 287.71318
 346.39287
 416.38243
 475.06212
 495.90439
 554.58409
 575.42636
 634.10605
 704.09561
 762.77530
 783.61757
 842.29727
 912.28682
 970.96651
 991.80879
 1050.48848
 1120.47803
 1179.15772
 2/1

Now taking note 60 as middle C or C.0 in microabc terms if
I'm right, we find that A.0 (A440 in one modern standard
pitch) is note 78 (18 scale steps or a regular major sixth
higher than middle C), with a value of 69.000000. Each 24
notes up or down will raise or lower the value by 12.000000.
thus we have:

%   6 = 33.000000   A.-3
%  30 = 45.000000   A.-2
%  54 = 57.000000   A.-1
%  78 = 69.000000   A.0
% 102 = 81.000000   A.1
% 126 = 93.000000   A.2

From here it is just a matter of filling in each 24-note
octave of A-A in the snt template, taking the value of
A at the beginning of the octave (e.g. 69.000000) as a
reference and adding for each note its distance from this A
in midi semitones of 100 cents each.

Thus for note 79, A/|\ in Sagittal, we have a distance of
about 58.6797 cents or 0.586797 semitones (using the
template of pythagorean.snt with six decimal places,
rounding to the nearest millionth (10^-6) of a semitone or
1/10,000 (10^-4) of a cent. This produces:

%%MIDI snt 78 69.000000
%%MIDI snt 79 69.586797

Before posting my peppermint.snt file, maybe I should have
it checked for bugs -- not the fault of either microabc or
GNU Emacs, of course, but my own fallibility. Thus I'll
e-mail you a copy, Hudson, and ask if some debugging is in
order.

Peace and love,

Margo
From: Hudson Lacerda (2006-07-09)
Subject: Re: [MMM] abc2midi -- peppermint.snt file

Margo Schulter escreveu:
> Hello Hudson and all.

Hi.

> 
> Please let me thank you for your enthusiasm about the
> documentation project,

Yes. I think that user cases (like this PepperMint-24 instance) are a 
good way to carry out the documentation project.

> and check as to whether I may have
> solved one problem in the process of using Peppermint 24 as
> a tuning to generate both Sagittal notation and retuned midi
> files.

I think so.

Now I am wondering about the notation (3rd column of microabc input).

> 
> As you point out, I might generate a midi file without pitch
> bends and then retune it with Scala, or use a Timidity
> tuning table with the -Z option to generate an ogg file from
> the midi. However, to generate a retuned midi using an snt
> file seems an attractive option to me also, and I therefore
> looked at pythagorean.snt.

All these ways -- Scala, Timidity, SMT -- are very similar, concerning 
to microabc usage; you can use them all. The basic difference is that 
for Timidity and SMT you need to import the .scl file to microabc, while 
to retune with Scala you import the .scl to Scala.

> 
> Realizing that the notation looked quite logical, I
> concluded that although I didn't yet know how to use the
> 'scl' command in microabc to generate an snt file, I might
> be able to do it simply by taking pythagorean.snt as a
> template and editing it with GNU Emacs to substitute the
> correct values for Peppermint 24.

A few helpful microabc commands:

inputscl:<filename>       import a .scl file
snt:<filename>            export a .snt file
timidity:<filename>       export frequency table for timidity
basefreq:<cps> <pitchnum> set the frequency for a given pitch
center:<MIDIpitch>        map central pitch 0 to a given MIDI pitch

> 
> First, here's a Scala file for Peppermint 24 with C as the
> 1/1:
> 
> ! peprmint.scl

If middle C is the standard MIDI 60, this command line will do the job:

microabc -i- \
	inputscl:peprmint.scl \
	snt:peprmint.snt \
	timitidy:peprmint.tbl

> To get a convenient listing for an snt file, with A as the
> 1/1, we can simply use the Scala command 'KEY 18', which
> produces this convenient data for use in editing the snt
> file:
> 
> ! peprmintA.scl

You can do:

microabc -i- \
	inputscl:peprmintA.scl \
	snt:peprmintA.snt \
	timitidy:peprmintA.tbl \
	basefreq:440.00\ 78 \
	centre:0

Of course, for convenience you can put the commands inside the microabc 
setup file:

{----------------------}
inputscl:peprmintA.scl
snt:peprmintA.snt
timitidy:peprmintA.tbl
basefreq:440.00 78
centre:0
alias:1
0 A    ^/144A
1 A>   ^/168A
{...}
{...}
{...}
{----------------------}

You can add more aliases:

alias: 1 3 4
0 A  ^/144A Ae A|//|
1 A> ^/168A A^ A/|\
{etc.}

(I think the things will become easier when I implement the mapping of 
Sagittal pitches to arbitrary scales.)

Regards,
Hudson



		
_______________________________________________________ 
Novidade no Yahoo! Mail: receba alertas de novas mensagens no seu celular. Registre seu aparelho agora! 
http://br.mobile.yahoo.com/mailalertas/