Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wanted a simpler how-to for Arabic/Turkish score transcriptions #115

Open
topchyan opened this issue Nov 18, 2023 · 9 comments
Open

Wanted a simpler how-to for Arabic/Turkish score transcriptions #115

topchyan opened this issue Nov 18, 2023 · 9 comments

Comments

@topchyan
Copy link

I am working with transcriptions of classic ottoman music, which makes heavy use of microtone notation using EasyABC/abcm2ps in Linux. The problem I encounter is complexity of mapping accidentals to play properly in abc2midi as well. So far I found only what's mentioned on in abcmidi documentation. However when I reference this configuration even though notes may be displaying okay, they don't sound properly in MIDI. I am looking for a more simple how-to on how to use configuration settings. A cheat-sheet I found for microtones looks like this.

microtones

At least I would like to configure my scores to properly show and play my most common notes like what's shown there as g4+50, a4-50, g4+33, gs4-33, gs4+33,a4-33,a4+33, bb4+33

Thanks for any help.

@moinejf
Copy link
Collaborator

moinejf commented Nov 18, 2023

Some years ago (2020), we, Seymour Shlien (abcMIDI), Hudson Lacerda
(well-known musician in Brazil) and I (abcm2ps, abc2svg), had long
exchanges about the Turkish Makams Scales. Finally, we agreed in
common definitions. Here are the ones for abcMIDI and abcm2ps:

%--------------- header ---------------
I:abc-charset utf-8

% accidentals Arel - Ezgel
%%beginps
/sbar {M -4.0 6 RM 5.0 2 RL 1 SLW stroke}!
/hbar {M -3.0 -1.5 RM 7.0 3 RL 1.6 SLW stroke}!

/ft15156 {ft0}! % _60/53 - b5
/ft12084 {2 copy ft0 sbar}! % _48/53 - b4
/ft9012 {2 copy ft0 sbar}! % _36/53 - b3
/ft5940 {ft1}! % _24/53 - b2
/ft2868 {ft1}! % _12/53 - b1

/sh2868 {sh1}! % ^12/53 - #1
/sh5940 {sh1}! % ^24/53 - #2
/sh9012 {sh0}! % ^36/53 - #3
/sh12084 {sh0}! % ^48/53 - #4
/sh15156 {2 copy gsave T 0 0 1.2 dup scale sh1 grestore hbar}! % ^60/53 - #5
%%endps

%%MIDI temperamentequal 53 // 53-TET Turkish scale

%--------------- end header ---------------

Otherwise, abc2svg includes natively the Arel - Ezgel accidentals when
using

%%MIDI temperamentequal 53

In the ABC source, the accidentals are (as written in the PS
definitions):

_60/53 for b5
_48/53 for b4
_36/53 for b3
_24/53 for b2
_12/53 for b1
^12/53 for #1
^24/53 for #2
^36/53 for #3
^48/53 for #4

Here is a source example with abc2svg

http://moinejf.free.fr/abc/sipihr_pesrev.html

@topchyan
Copy link
Author

topchyan commented Nov 18, 2023 via email

@topchyan
Copy link
Author

I am trying to understand how the header code you mention co-relates with the individual accidentals from the score.

image

So far I have been using another set of codes for accidentals

image

My sample scale now looks like this

image

and it only starts showing up correctly when I disable this MIDI directive

%%MIDI temperamentequal 53 // 53-TET Turkish scale

image

All in all, I would like to stick with one modern and consistent markup for the music which is expected to last for a while.

Thanks for your replies and help!

@moinejf
Copy link
Collaborator

moinejf commented Nov 19, 2023

I added the correct PostScript definition of the turkish accidentals
in the %%MIDI documentation. In fact, all about the microtone
accidentals is in this page.

There are two ways for writing microtone accidentals in ABC (at least in
abcm2ps, abc2svg and txtmus).

The common way is to specify a fraction of a semi-tone before the
accidental, as "_23/44B". In this case, there is no notion of scale or
temperament.

The command "%%MIDI temperamentequal " divides the octave into
intervals. These intervals are mapped to the 12 notes of the
octave for the scale to be the closest to a well tempered scale.
In this case, as the microtone divider is known, only the numerator
appears in the accidentals like "_2B".

Mixing both ways is not a good idea! You may also note that, with
temperamentequal, an accidental without a numerator as "_B" is
ambiguous.

@topchyan
Copy link
Author

topchyan commented Nov 19, 2023 via email

@timmbo9
Copy link

timmbo9 commented Nov 19, 2023 via email

@moinejf
Copy link
Collaborator

moinejf commented Nov 20, 2023

You are right, in the documentation index, %%MIDI does not appear as being a abcm2ps parameter.
   http://moinejf.free.fr/abcm2ps-doc/MIDI.html

@topchyan
Copy link
Author

Jef could you please add an abc2svg equivalent of this? I am not sure how to define these in %%beginsvg..%%endsvg.
Thanks!

% abcm2ps PostScript definition of the Arel - Ezgel accidentals

%%beginps
/sbar {M -4 6 RM 5 2 RL 1 SLW stroke}!
/hbar {M -3 -1.5 RM 7 3 RL 1.6 SLW stroke}!
/num2 {M 2.0 6.0 RM /Times-Roman 10 selectfont (2) show}!
/num3 {M 4.0 6.0 RM /Times-Roman 10 selectfont (3) show}!

/ft15156 {ft0}! % _60/53 - _5
/ft12084 {2 copy ft0 sbar}! % _48/53 - _4
/ft9012 {2 copy ft0 2 copy num3 sbar}! % _36/53 - _3
/ft5940 {2 copy ft1 num2}! % _24/53 - _2
/ft2868 {ft1}! % _12/53 - _1

/sh2868 {sh1}! % ^12/53 - ^1
/sh5940 {2 copy sh1 num2}! % ^24/53 - ^2
/sh9012 {2 copy sh0 num3}! % ^36/53 - ^3
/sh12084 {sh0}! % ^48/53 - ^4
/sh15156 {2 copy gsave T 0 0 1.2 dup scale sh1 grestore hbar}! % ^60/53 - ^5
%%endps

X:3
%%MIDI temperamentequal 53
M:none
L:1/4
K:C
_B _5B _4B _3B _2B _1B =B | =c ^1c ^2c ^3c ^4c ^5c ^c |

@moinejf
Copy link
Collaborator

moinejf commented Dec 15, 2023

That's simple: just remove the %%beginps..%%endps sequence!
(the definition of the Arel - Ezgel accidentals are included by the command "%%MIDI temperamentequal 53" - I updated the documentation)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants