For those interested in Persian music, I've customed some freewares in order to handle Persian music, i.e. using the two specific notations "koron" and "sori".
For creating partition and midi files, there are two great tools
that are freely available :
- Abcm2ps : create professional
looking partitions in postscript format
- Abc2midi
: create midi files
Both use the abc music notation, so if you want (and dare) trying this, you'd better check the homepage of ABC.
My additions are :
- For Abcm2ps : I've created the two symbols (glyphs) for Koron and Sori, and
a definition for using them in abc
Here is this file. You just have to edit it and run abcm2ps.
- Abc2midi : I've changed the code sources and recompiled it in order to play
quartertones.
Here is the new program.
If you want to recompile it yourself, or improve it, you just have to get the original sources of Abc2midi (see link above) and change this :
store.c
(seek for example the part with if (strcmp(p, "fff") == 0) and add after it, this code :
if (strcmp(p, "koron")
== 0) { event_specific("MIDI", "pitchbend 0 48"); done = 1; }; if (strcmp(p, "sori") == 0) { event_specific("MIDI", "pitchbend 0 80"); done = 1; }; if (strcmp(p, "normal") == 0) { event_specific("MIDI", "pitchbend 0 64"); done = 1; }; if (strcmp(p, "b") == 0) { event_specific("MIDI", "pitchbend 0 48"); done = 1; }; if (strcmp(p, "_") == 0) { event_specific("MIDI", "pitchbend 0 48"); done = 1; }; if (strcmp(p, "#") == 0) { event_specific("MIDI", "pitchbend 0 80"); done = 1; }; if (strcmp(p, "=") == 0) { event_specific("MIDI", "pitchbend 0 64"); done = 1; }; |
Yet the Abc2midi part is far from being perfect : it's not real quartertones but it uses the pitch bend definition to achieve this so it sounds a bit strange. The music won't be really nice, but it can give at least an idea of how the original sound should be.
In addition, in Persian music the quartertone may vary, it's not strictly 1/4
of a tone (it can be 1/3 and such). I don't know how to make this better because
I don't have more knowledge in programming. If you're interested to help, let
me know.
I don't know either how to use koron in the key definition, so it's annoying
to enter them for each note.
For using those symbols, you just have to download this file
Once processed, you can get this pdf file, but you need also ghostscript in order to read postscript file.
Then, edit it as you wish, and had more tunes to it.
For adding a specific symbol, you just have to use this, ex "A" with koron :
!b!A!=!
The !=! is for telling Abc2midi that it has to come back to the normal pitch bend (you must to always "close" a note with this otherwise the rest will be detuned)
Example of use :
You just have to use this code :
X:1
T:Daramad of Shur
L:1/8
Q:1/4=135
M:no
K:C
%%MIDI program 111
d !koron!e !=! g f !koron!e !=! d c _B A G A d2 {c}_B2 {A}G2 |
G A c _B A G F !koron! E !=! D !koron! E !=! F G A c {_B} A2 {G} F4 |
FFF A2 G2 {F}!koron! EEE !=!G2 F2 {!koron! E !=!} DDDF2 !koron! E2 !=! |
and it will display :
example of play :
mp3 (original)