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

Add support for all quarter tone accidentals #318

Closed
Huji opened this Issue Dec 7, 2015 · 93 comments

Comments

Projects
None yet
9 participants
@Huji
Contributor

Huji commented Dec 7, 2015

Please consider adding support for quarter tone accidentals.

These include the Western notation for half-sharp, half-flat, sharp-and-a-half and flat-and-a-half, all of which are explained on https://en.wikipedia.org/wiki/Accidental_%28music%29#Microtonal_notation (and a picture us also available).

These also include the Iranian notation for half-sharp and half-flat, which are depicted in Persian Wikipedia's pages on sori and koron, respectively.

Ideally, a different identifier should be used for the western and eastern half-notes, so they can coexist in the same sheet if need be. An example of when this is needed is when sheet music is being written for many instruments (as is used by conductors) some of which are oriental instruments and some western instruments but all can play quarter tones.

-- UPDATE --

As shown below, vexflow already supports the Western quarter tone accidentals. There is need for support of Iranian accidentals though.

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Dec 7, 2015

Owner

VexFlow already supports microtonal accidentals. Are these not sufficient?

screen shot 2015-12-07 at 2 19 40 pm

Owner

0xfe commented Dec 7, 2015

VexFlow already supports microtonal accidentals. Are these not sufficient?

screen shot 2015-12-07 at 2 19 40 pm

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 7, 2015

Contributor

Oh I didn't find hat in the documentation. It would be great if you would direct me to where these are explained (this can benefit those who find this thread in the future too).

I am going to modify the title of this issue and amend the original request; the only thing that is left to done is to add support for the oriental signs (links to which were provided above).

Contributor

Huji commented Dec 7, 2015

Oh I didn't find hat in the documentation. It would be great if you would direct me to where these are explained (this can benefit those who find this thread in the future too).

I am going to modify the title of this issue and amend the original request; the only thing that is left to done is to add support for the oriental signs (links to which were provided above).

@Huji Huji changed the title from Add support for quarter tone accidentals to Add support for oriental quarter tone accidentals Dec 7, 2015

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Dec 7, 2015

Owner

Documentation is way behind. Best place to learn about how to use the API is the tests/ directory, which is always current.

It looks like the Oriental accidentals links you provided are in Arabic. Do you have any english text that I can read?

Owner

0xfe commented Dec 7, 2015

Documentation is way behind. Best place to learn about how to use the API is the tests/ directory, which is always current.

It looks like the Oriental accidentals links you provided are in Arabic. Do you have any english text that I can read?

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 7, 2015

Contributor

That page is not in Arabic, it is in Persian. But both languages use similar scripts!

You can ready more about it on this web page: https://sites.google.com/site/240edo/about24-edo

The person who invented this notation, Ali-Naghi Vaziri, was an influential musocologist from Iran. Iranian music system very frequently uses quarter tones (in its Dastagh's). My intention, to be honest, is to use VoxFlow to create notations for each of these Dastgah's, based on Vaziri's book and other books (such as this one published by Hormoz Farhat in English) and upload to English Wikipedia to expand those relevant articles.

Contributor

Huji commented Dec 7, 2015

That page is not in Arabic, it is in Persian. But both languages use similar scripts!

You can ready more about it on this web page: https://sites.google.com/site/240edo/about24-edo

The person who invented this notation, Ali-Naghi Vaziri, was an influential musocologist from Iran. Iranian music system very frequently uses quarter tones (in its Dastagh's). My intention, to be honest, is to use VoxFlow to create notations for each of these Dastgah's, based on Vaziri's book and other books (such as this one published by Hormoz Farhat in English) and upload to English Wikipedia to expand those relevant articles.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 7, 2015

I have the same question for arabic and turkish maqam and i want help with it, use the same symbols that Mus2.

SalahAdDin commented Dec 7, 2015

I have the same question for arabic and turkish maqam and i want help with it, use the same symbols that Mus2.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 8, 2015

Contributor

@SalahAdDin you are absolutely correct. The maqam's are shared between Arabic, Turkish, and Persian music, and have had influences on other Mediterranean music too. The notation requested above can be essential for notation of these music genres.

Contributor

Huji commented Dec 8, 2015

@SalahAdDin you are absolutely correct. The maqam's are shared between Arabic, Turkish, and Persian music, and have had influences on other Mediterranean music too. The notation requested above can be essential for notation of these music genres.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 9, 2015

Yes, i have a two papers about it, we need six accidentals more i think, if you want i can put here.

SalahAdDin commented Dec 9, 2015

Yes, i have a two papers about it, we need six accidentals more i think, if you want i can put here.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 11, 2015

Contributor

@SalahAdDin please provide a link to the papers and/or a screenshot that shows and explains the six accidentals.

Contributor

Huji commented Dec 11, 2015

@SalahAdDin please provide a link to the papers and/or a screenshot that shows and explains the six accidentals.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 12, 2015

I hope that this aren't bad, you can see a example here: http://www.mus2.com.tr/explore/
And here are the papers:
223_ISMIR_2012.pdf
Abjad_JIMS_071203.pdf

SalahAdDin commented Dec 12, 2015

I hope that this aren't bad, you can see a example here: http://www.mus2.com.tr/explore/
And here are the papers:
223_ISMIR_2012.pdf
Abjad_JIMS_071203.pdf

@ozanyarman

This comment has been minimized.

Show comment
Hide comment
@ozanyarman

ozanyarman Dec 12, 2015

Hello! This is Assoc. Prof. Dr. Ozan Yarman from Istanbul specializing in maqam music theory (tunings/tone-systems) and music technology applications (DAW pitch bends, scale tuning files and the like). I had communicated along the same lines with Mohit Muhanna in a personal e-mail correspondance dated 27 March 2013. The official tone-systems for the Arabic, Persian and Turkish main branches of Maqam music, while purporting to represent the needed microtonal pitches on paper and in practice, will undoubtedly fail in several critical/problematic scales or modes when played in exact by computer software.

For a synposis of the intonation situation, please refer to the intro section of our publication:

http://www.ozanyarman.com/files/Yarman36.pdf

where we say: "... it is impossible to perform authentic music in such modes based on the standardized 24 pitches to the octave systems of the diametrically opposed cultures of the geography, without detuning the strings, adding or shifting frets as required, or employing an ad hoc (e.g., unmethodical) mandal configuration."

The article above highlights one of the tuning solutions I proposed, with the pertinent accidentals font downloadable here:

http://www.ozanyarman.com/files/Yarman36.ttf

Calculations and videos are accessible below (in Turkish, with Google Translate to English option):

http://www.ozanyarman.com/yarman36.html

Other solutions by me include a 79-tone qanun tuning I expounded in my doctorate dissertation and explained in the links below:

http://www.ozanyarman.com/files/doctorate_thesis.pdf
http://www.ozanyarman.com/79toneqanun.html
https://www.youtube.com/watch?v=y4XuVBuGa08

My latest alternative tuning suggestion is a light-weight replacement of the official Arel-Ezgi-Uzdilek (AEU) 24-tone Pythagorean tone-system for Turkish Art music, while relying on the same array of accustomed accidentals. Yarman-24a, which was the first variant as an AEU substitute was compared to histogram measurements of live recordings and came out to be the best match:

http://www.ozanyarman.com/files/theoryVSpractice.pdf

An improved Yarman-24c variant is demonstrated in these youtube videos:

https://www.youtube.com/watch?v=fP1elrsk5QM (on bowed tanbur)
https://www.youtube.com/watch?v=qZXAv8GyHQg (on acoustic guitar)
https://www.youtube.com/watch?v=-QcYgslHq9k (on TouchKeys)
https://www.youtube.com/playlist?list=PLAs4xTDckBEw4gVFwypqaZwKW6Ih9KtJ6 (on my TouchKeys)

Notice that, Andrew McPherson, the designer and inventor of TouchKeys, has already incorporated Yarman-24c among the experimental tuning mapping options in his control software.

Should there be any need to expand the microtonal capabilities of VexFlow with results that would more-or-less satisfy Maqam music enthusiasts intonation-wise, do please get in contact with me personally or in group e-mail correspondence:

ozanyarman@ozanyarman.com

May VexFlow,
around the world spread and grow. :)

Cordially,
Dr. Oz.

ozanyarman commented Dec 12, 2015

Hello! This is Assoc. Prof. Dr. Ozan Yarman from Istanbul specializing in maqam music theory (tunings/tone-systems) and music technology applications (DAW pitch bends, scale tuning files and the like). I had communicated along the same lines with Mohit Muhanna in a personal e-mail correspondance dated 27 March 2013. The official tone-systems for the Arabic, Persian and Turkish main branches of Maqam music, while purporting to represent the needed microtonal pitches on paper and in practice, will undoubtedly fail in several critical/problematic scales or modes when played in exact by computer software.

For a synposis of the intonation situation, please refer to the intro section of our publication:

http://www.ozanyarman.com/files/Yarman36.pdf

where we say: "... it is impossible to perform authentic music in such modes based on the standardized 24 pitches to the octave systems of the diametrically opposed cultures of the geography, without detuning the strings, adding or shifting frets as required, or employing an ad hoc (e.g., unmethodical) mandal configuration."

The article above highlights one of the tuning solutions I proposed, with the pertinent accidentals font downloadable here:

http://www.ozanyarman.com/files/Yarman36.ttf

Calculations and videos are accessible below (in Turkish, with Google Translate to English option):

http://www.ozanyarman.com/yarman36.html

Other solutions by me include a 79-tone qanun tuning I expounded in my doctorate dissertation and explained in the links below:

http://www.ozanyarman.com/files/doctorate_thesis.pdf
http://www.ozanyarman.com/79toneqanun.html
https://www.youtube.com/watch?v=y4XuVBuGa08

My latest alternative tuning suggestion is a light-weight replacement of the official Arel-Ezgi-Uzdilek (AEU) 24-tone Pythagorean tone-system for Turkish Art music, while relying on the same array of accustomed accidentals. Yarman-24a, which was the first variant as an AEU substitute was compared to histogram measurements of live recordings and came out to be the best match:

http://www.ozanyarman.com/files/theoryVSpractice.pdf

An improved Yarman-24c variant is demonstrated in these youtube videos:

https://www.youtube.com/watch?v=fP1elrsk5QM (on bowed tanbur)
https://www.youtube.com/watch?v=qZXAv8GyHQg (on acoustic guitar)
https://www.youtube.com/watch?v=-QcYgslHq9k (on TouchKeys)
https://www.youtube.com/playlist?list=PLAs4xTDckBEw4gVFwypqaZwKW6Ih9KtJ6 (on my TouchKeys)

Notice that, Andrew McPherson, the designer and inventor of TouchKeys, has already incorporated Yarman-24c among the experimental tuning mapping options in his control software.

Should there be any need to expand the microtonal capabilities of VexFlow with results that would more-or-less satisfy Maqam music enthusiasts intonation-wise, do please get in contact with me personally or in group e-mail correspondence:

ozanyarman@ozanyarman.com

May VexFlow,
around the world spread and grow. :)

Cordially,
Dr. Oz.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 12, 2015

Contributor

@SalahAdDin Thanks for the articles; really good reads. However, in both those articles, the Western notation for quarter-tones is used. VexFlow already supports those accidentals (which include half-sharp, sharpt-and-a-half, half-flat, and flat-and-a-half). See the first comment from @0xfe above.

@ozanyarman Thanks for your comment as well. Very informative. But what you focus on here is about issues relating to microtonal music "when played in exact by computer software". VexFlow is not a tool for playing music in computers, it is a tool for annotation of music. Imagine if you want to write a online book (or an article like those posted by @SalahAdDin); you need a way to write the musical annotation for the Maqams. VexFlow allows you to do that (and just that) in HTML5.

@0xfe it is becoming apparant to me that the Turkish music may be using the western quarter-tone accidentals for notation. Therefore I am going to, yet again, change the request here and specify the need for Iranian accidentals.

Contributor

Huji commented Dec 12, 2015

@SalahAdDin Thanks for the articles; really good reads. However, in both those articles, the Western notation for quarter-tones is used. VexFlow already supports those accidentals (which include half-sharp, sharpt-and-a-half, half-flat, and flat-and-a-half). See the first comment from @0xfe above.

@ozanyarman Thanks for your comment as well. Very informative. But what you focus on here is about issues relating to microtonal music "when played in exact by computer software". VexFlow is not a tool for playing music in computers, it is a tool for annotation of music. Imagine if you want to write a online book (or an article like those posted by @SalahAdDin); you need a way to write the musical annotation for the Maqams. VexFlow allows you to do that (and just that) in HTML5.

@0xfe it is becoming apparant to me that the Turkish music may be using the western quarter-tone accidentals for notation. Therefore I am going to, yet again, change the request here and specify the need for Iranian accidentals.

@Huji Huji changed the title from Add support for oriental quarter tone accidentals to Add support for Persian quarter tone accidentals Dec 12, 2015

@Huji Huji changed the title from Add support for Persian quarter tone accidentals to Add support for Iranian quarter tone accidentals Dec 12, 2015

@ozanyarman

This comment has been minimized.

Show comment
Hide comment
@ozanyarman

ozanyarman Dec 13, 2015

@Huji

You're welcome. Please note that Arel-Ezgi-Uzdilek tone-system utilizes the array of accidentals given in page 39, Fig. 3.6 of my doctoral dissertation:

http://www.ozanyarman.com/files/doctorate_thesis.pdf

Compare with the older Rauf Yekta notation in the table on the same page. Pages 33 and 36 delineate AEU and Yekta-24 notations in full respectively.

Page 80, Fig. 4.13 demonstrates the 20th Century contender tone-system by Ekrem Karadeniz, which encapsulates 41 pitches per octave out of 106 equal divisions of the octave.

There are a significant number of scores written in each of the tone-systems mentioned above, while AEU is the official notation system in circulation today.

Dr. Oz.

ozanyarman commented Dec 13, 2015

@Huji

You're welcome. Please note that Arel-Ezgi-Uzdilek tone-system utilizes the array of accidentals given in page 39, Fig. 3.6 of my doctoral dissertation:

http://www.ozanyarman.com/files/doctorate_thesis.pdf

Compare with the older Rauf Yekta notation in the table on the same page. Pages 33 and 36 delineate AEU and Yekta-24 notations in full respectively.

Page 80, Fig. 4.13 demonstrates the 20th Century contender tone-system by Ekrem Karadeniz, which encapsulates 41 pitches per octave out of 106 equal divisions of the octave.

There are a significant number of scores written in each of the tone-systems mentioned above, while AEU is the official notation system in circulation today.

Dr. Oz.

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Dec 14, 2015

Owner

Hi Folks,

I'm open to adding new accidentals if that will help.

I don't know a lot about microtonal music, so what I will need is some agreement on what is missing and what should be added. In particular:

  • What specific accidentals should be added?
  • What should they be called (in English)?
  • What VexFlow accidental symbol should they use?
  • Vector data for each of the accidentals.

If someone wants to take this on and send me a PR, that would be great too. Thanks.

Owner

0xfe commented Dec 14, 2015

Hi Folks,

I'm open to adding new accidentals if that will help.

I don't know a lot about microtonal music, so what I will need is some agreement on what is missing and what should be added. In particular:

  • What specific accidentals should be added?
  • What should they be called (in English)?
  • What VexFlow accidental symbol should they use?
  • Vector data for each of the accidentals.

If someone wants to take this on and send me a PR, that would be great too. Thanks.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 14, 2015

Contributor

The scope of this issue has been narrowed down to Iranian quarter tone accidentals. In that context, the answers are:

  • Two accidentals are needed: sori and koron.
  • The can be called exactly that: sori and koron.
  • To the best of my knowledge, VexFlow's font doesn't have glyphs for those accidentals.
  • If you would show me what tool you use to edit the vector fonts to create new glyphs, I will happily create the accidentals for you.

And I will happily fork and create a PR (once I know how to deal with the fonts).

Contributor

Huji commented Dec 14, 2015

The scope of this issue has been narrowed down to Iranian quarter tone accidentals. In that context, the answers are:

  • Two accidentals are needed: sori and koron.
  • The can be called exactly that: sori and koron.
  • To the best of my knowledge, VexFlow's font doesn't have glyphs for those accidentals.
  • If you would show me what tool you use to edit the vector fonts to create new glyphs, I will happily create the accidentals for you.

And I will happily fork and create a PR (once I know how to deal with the fonts).

@ozanyarman

This comment has been minimized.

Show comment
Hide comment
@ozanyarman

ozanyarman Dec 14, 2015

The most commonly used AEU accidentals in Classical Turkish music notation are:

+1 comma = irha / komma diyezi (comma sharp)
+4 comma = bakiyye diyezi (limma sharp)
+5 comma = küçük mücenneb diyezi (apotome sharp)

-1 comma = irha / komma bemolü (comma flat)
-4 comma = bakiyye bemolü (limma flat)
-5 comma = küçük mücenneb bemolü (apotome flat)

(where "irha" actually signifies more accurately quarter-tone alterations as seen in various Arabic maqams.)

Please refer to page 39, Fig. 3.6 of my doctoral dissertation:
http://www.ozanyarman.com/files/doctorate_thesis.pdf

Dr. Oz.

ozanyarman commented Dec 14, 2015

The most commonly used AEU accidentals in Classical Turkish music notation are:

+1 comma = irha / komma diyezi (comma sharp)
+4 comma = bakiyye diyezi (limma sharp)
+5 comma = küçük mücenneb diyezi (apotome sharp)

-1 comma = irha / komma bemolü (comma flat)
-4 comma = bakiyye bemolü (limma flat)
-5 comma = küçük mücenneb bemolü (apotome flat)

(where "irha" actually signifies more accurately quarter-tone alterations as seen in various Arabic maqams.)

Please refer to page 39, Fig. 3.6 of my doctoral dissertation:
http://www.ozanyarman.com/files/doctorate_thesis.pdf

Dr. Oz.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 15, 2015

Doktor, Selam
I want to do a full completly app for notation and play oriental music open source. I hope do this in Turkey in a master, but i don't know i which university.

At future i hope begin with this and all help in this library will be more useful.

Thanks :D

SalahAdDin commented Dec 15, 2015

Doktor, Selam
I want to do a full completly app for notation and play oriental music open source. I hope do this in Turkey in a master, but i don't know i which university.

At future i hope begin with this and all help in this library will be more useful.

Thanks :D

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Dec 15, 2015

Owner

@Huji Unfortunately I lost the tool that I used about five years ago to create the vectors from the fonts. But I could write one up again. If you can create a TTF or OTF file with the new glyphs, I can convert them to the vexflow JS font format.

Owner

0xfe commented Dec 15, 2015

@Huji Unfortunately I lost the tool that I used about five years ago to create the vectors from the fonts. But I could write one up again. If you can create a TTF or OTF file with the new glyphs, I can convert them to the vexflow JS font format.

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Dec 15, 2015

Owner

Also, here are some instructions if you want to create new entries in the font file yourself:

Each character in the font is indexed by it's code (e.g., v0). The structure consists of the following fields:

"x_min": left-most x value 
"x_max": right-most x value
"o": a long string consisting of repeated commands followed by coordinates.

You can get the width of the character by x_max - x_min.

The repeated commands in "o" are:

m: MoveTo(x,y)
l: LineTo(x,y)
q: QuadraticCurveTo(cpx, cpy, x, y)
b: BeizerCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

The cp* parameters are coordinates to control points for the curves. All coordinates are scaled (multiplied) by the factor point_size * 72 / (Vex.Flow.Font.resolution * 100).

You can look up the implementation in Vex.Flow.Glyph.renderOutline() for how the parameters are used on a HTM5 Canvas.

Owner

0xfe commented Dec 15, 2015

Also, here are some instructions if you want to create new entries in the font file yourself:

Each character in the font is indexed by it's code (e.g., v0). The structure consists of the following fields:

"x_min": left-most x value 
"x_max": right-most x value
"o": a long string consisting of repeated commands followed by coordinates.

You can get the width of the character by x_max - x_min.

The repeated commands in "o" are:

m: MoveTo(x,y)
l: LineTo(x,y)
q: QuadraticCurveTo(cpx, cpy, x, y)
b: BeizerCurveTo(cp1x, cp1y, cp2x, cp2y, x, y)

The cp* parameters are coordinates to control points for the curves. All coordinates are scaled (multiplied) by the factor point_size * 72 / (Vex.Flow.Font.resolution * 100).

You can look up the implementation in Vex.Flow.Glyph.renderOutline() for how the parameters are used on a HTM5 Canvas.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 15, 2015

Doktor, Selam
I want to do a full completly app for notation and play oriental music open source. I hope do this in Turkey in a master, but i don't know i which university.

At future i hope begin with this and all help in this library will be more useful.

Thanks :D

SalahAdDin commented Dec 15, 2015

Doktor, Selam
I want to do a full completly app for notation and play oriental music open source. I hope do this in Turkey in a master, but i don't know i which university.

At future i hope begin with this and all help in this library will be more useful.

Thanks :D

@ozanyarman

This comment has been minimized.

Show comment
Hide comment
@ozanyarman

ozanyarman Dec 16, 2015

Dear SalahAdDin,

Why don't you take a look at the marvelous Mus2:

http://www.mus2.com.tr/en/

You may like to get in touch with Utku Uzmen and M. Kemal Karaosmanoglu to give Mus2 a shoulder boost. It's been neglected for quite some while, and I would like to have the programmers implement some major improvements that they already have been informed about.

Mus2 is very economical and can do a lot of things microtonally. If you can familiarize yourself with the program and wish to proceed upon it, write to me privately.

Cordially,
Dr. Oz.

ozanyarman commented Dec 16, 2015

Dear SalahAdDin,

Why don't you take a look at the marvelous Mus2:

http://www.mus2.com.tr/en/

You may like to get in touch with Utku Uzmen and M. Kemal Karaosmanoglu to give Mus2 a shoulder boost. It's been neglected for quite some while, and I would like to have the programmers implement some major improvements that they already have been informed about.

Mus2 is very economical and can do a lot of things microtonally. If you can familiarize yourself with the program and wish to proceed upon it, write to me privately.

Cordially,
Dr. Oz.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 17, 2015

Abi, which programming language use mus2? i'll want to do like it but open source.

SalahAdDin commented Dec 17, 2015

Abi, which programming language use mus2? i'll want to do like it but open source.

@ozanyarman

This comment has been minimized.

Show comment
Hide comment
@ozanyarman

ozanyarman Dec 17, 2015

SalahAdDin, Halil Kirazlı already made quite a headway with his Suzidil project before he sort of abandoned it. Maybe you should proceed on that trail:

http://sourceforge.net/projects/suzidil/

Dr. Oz.

P.S. I think Mus2 is based on Qt framework.

ozanyarman commented Dec 17, 2015

SalahAdDin, Halil Kirazlı already made quite a headway with his Suzidil project before he sort of abandoned it. Maybe you should proceed on that trail:

http://sourceforge.net/projects/suzidil/

Dr. Oz.

P.S. I think Mus2 is based on Qt framework.

@ozanyarman

This comment has been minimized.

Show comment
Hide comment

ozanyarman commented Dec 17, 2015

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Dec 17, 2015

Thanks abi, i want make something like this, and this library it's very useful. Now i'm learning play Ney.

Which programming language it's the base for Mus2?

SalahAdDin commented Dec 17, 2015

Thanks abi, i want make something like this, and this library it's very useful. Now i'm learning play Ney.

Which programming language it's the base for Mus2?

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Dec 21, 2015

Contributor

@0xfe thank you for the response. I figured you are using Gonville Glyphs. I will create the vector versions for you and will even make an effort to add them back to Gonville itself!

Contributor

Huji commented Dec 21, 2015

@0xfe thank you for the response. I figured you are using Gonville Glyphs. I will create the vector versions for you and will even make an effort to add them back to Gonville itself!

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin commented Dec 22, 2015

Please.

@alejandroiglesias

This comment has been minimized.

Show comment
Hide comment
@alejandroiglesias

alejandroiglesias Feb 28, 2016

Hi, I would like to chime in, help, and see this feature grow. I'm a student of all the traditions mentioned so far (Arabic, Turkish and Persian). All the traditions use different symbols as accidental, even though some symbols are shared between Arabic and Turkish traditions but with a different meaning:

Arabic accidentals

Arabic accidentals

Turkish accidentals

Turkish accidentals

(Source: http://www.oud.eclipse.co.uk/notation.html)

You can see the symbols shared but for different pitches (an Arabic "one quarter" is in between Turkish 1 comma and 4 comma accidentals). In the case of just providing the symbol for the user to write it, it doesn't matter, but there has to be awareness of that and the fact that the Turkish system has more symbols while adding and naming them into the library.

As somebody mentioned, some symbols are rarely found, like the Arabic "three quarter" and the Turkish 8 comma, but there may be cases where somebody needs them.

Persian accidentals

Persian accidentals

(Source: http://96edo.com)

A thing to notice in the case of Persian music is the compound symbols for "flat koron" and "sori sharp", which I've not yet found in a sheet (though I have lesser experience in Persian Classical Music), but those could be written with a combination of flat+koron and sharp+sori, respectively.

Finally, even though you can find many resources pointing the quarter tones of Arabic and Persian music tempered exactly the middle (50 cents up/down) of two semi-tones (like in the Persian accidentals chart I referenced above), that's not actually what happens on practice. Those pitches are not tempered to 24 TET in practice as far as I'm concerned. In some cases you can realise it by just listening some recordings. Something similar happens with the theorisation of Turkish music trying to map the pitches to 53 TET intervals. Again, that is a theorization for a very rich and complex tradition, and there's no single answer about a single pitch, depending on many factors (being geographical location one of them).

As you can read on the first paragraph of @ozanyarman's thesis' summary:

The long-standing conflict between the “Arel-Ezgi-Uzdilek” System
and Turkish Maqam Music practice has been established through computer
analyses of audio recordings by master musicians such as Neyzen Niyazi
Sayın and Tanburi Necdet Yaşar. Results incontrovertibly manifest the
delibarate employment of multifarious middle second intervals peculiar to
the genre, yet evaded by the current model. These middle seconds are
roughly expressible as 2/3, 3/4, and 4/5 tones, and often referred to by the
protagonists of the Music Reformation in Türkiye during the early 20th
century as “quarter-tones”.

Again, this is my understanding being a student on those traditions and I hope something with more experience can correct me if I'm wrong.

So, what is the status of this feature? Is there any progress made? Any help needed?
I'm currently starting to draft an app to help people tune microtones and would need to render a staff with all the accidentals in a given tradition.

Thanks and have a good time.

alejandroiglesias commented Feb 28, 2016

Hi, I would like to chime in, help, and see this feature grow. I'm a student of all the traditions mentioned so far (Arabic, Turkish and Persian). All the traditions use different symbols as accidental, even though some symbols are shared between Arabic and Turkish traditions but with a different meaning:

Arabic accidentals

Arabic accidentals

Turkish accidentals

Turkish accidentals

(Source: http://www.oud.eclipse.co.uk/notation.html)

You can see the symbols shared but for different pitches (an Arabic "one quarter" is in between Turkish 1 comma and 4 comma accidentals). In the case of just providing the symbol for the user to write it, it doesn't matter, but there has to be awareness of that and the fact that the Turkish system has more symbols while adding and naming them into the library.

As somebody mentioned, some symbols are rarely found, like the Arabic "three quarter" and the Turkish 8 comma, but there may be cases where somebody needs them.

Persian accidentals

Persian accidentals

(Source: http://96edo.com)

A thing to notice in the case of Persian music is the compound symbols for "flat koron" and "sori sharp", which I've not yet found in a sheet (though I have lesser experience in Persian Classical Music), but those could be written with a combination of flat+koron and sharp+sori, respectively.

Finally, even though you can find many resources pointing the quarter tones of Arabic and Persian music tempered exactly the middle (50 cents up/down) of two semi-tones (like in the Persian accidentals chart I referenced above), that's not actually what happens on practice. Those pitches are not tempered to 24 TET in practice as far as I'm concerned. In some cases you can realise it by just listening some recordings. Something similar happens with the theorisation of Turkish music trying to map the pitches to 53 TET intervals. Again, that is a theorization for a very rich and complex tradition, and there's no single answer about a single pitch, depending on many factors (being geographical location one of them).

As you can read on the first paragraph of @ozanyarman's thesis' summary:

The long-standing conflict between the “Arel-Ezgi-Uzdilek” System
and Turkish Maqam Music practice has been established through computer
analyses of audio recordings by master musicians such as Neyzen Niyazi
Sayın and Tanburi Necdet Yaşar. Results incontrovertibly manifest the
delibarate employment of multifarious middle second intervals peculiar to
the genre, yet evaded by the current model. These middle seconds are
roughly expressible as 2/3, 3/4, and 4/5 tones, and often referred to by the
protagonists of the Music Reformation in Türkiye during the early 20th
century as “quarter-tones”.

Again, this is my understanding being a student on those traditions and I hope something with more experience can correct me if I'm wrong.

So, what is the status of this feature? Is there any progress made? Any help needed?
I'm currently starting to draft an app to help people tune microtones and would need to render a staff with all the accidentals in a given tradition.

Thanks and have a good time.

@mscuthbert

This comment has been minimized.

Show comment
Hide comment
@mscuthbert

mscuthbert Feb 28, 2016

Collaborator

Are all of these accidentals in the SMuFL agenda / Bravura Font? (www.smufl.org) If they are then perhaps this could be listed as a subset of the "support SMuFL" ticket?

Collaborator

mscuthbert commented Feb 28, 2016

Are all of these accidentals in the SMuFL agenda / Bravura Font? (www.smufl.org) If they are then perhaps this could be listed as a subset of the "support SMuFL" ticket?

@alejandroiglesias

This comment has been minimized.

Show comment
Hide comment
@alejandroiglesias

alejandroiglesias Feb 29, 2016

@mscuthbert i haven't looked at Bravura, but i could find a PDF presentation for November 2.0 which is a SMuFL-compliant font, with all its symbols, and has all the accidentals needed for the three aforementioned traditions. It is my guess that Bravura will also have those.

alejandroiglesias commented Feb 29, 2016

@mscuthbert i haven't looked at Bravura, but i could find a PDF presentation for November 2.0 which is a SMuFL-compliant font, with all its symbols, and has all the accidentals needed for the three aforementioned traditions. It is my guess that Bravura will also have those.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Mar 10, 2016

Contributor

Thanks @alejandroiglesias for listings the accidentals (for these music cultures). For reference, one can view the Gonville glyphs used by Vexflow by browsing the page src/glyphs.html. This page and the source file src/tables.js show the currently available accidentals:

  • one quarter sharp / one comma sharp: glyph code v4f/v78, Vex.Flow.accidentalCodes.accidentals "+"
  • one quarter flat / 4 commas flat: glyph code vb7, NO VEX ENTRY
  • 3 quarters sharp: glyph code v51/v13, Vex.Flow.accidentalCodes.accidentals "++"
  • 3 quarters flat: NO GLYPH, NO VEX ENTRY
  • 1 comma flat: glyph code v57/vab, Vex.Flow.accidentalCodes.accidentals "d"
  • 5 commas sharp: glyph code v8d, NO VEX ENTRY
  • 8 commas sharp: glyph code v7a, NO VEX ENTRY
  • 8 commas flat: glyph code v39, NO VEX ENTRY
  • koron: NO GLYPH, NO VEX ENTRY
  • sori: NO GLYPH, NO VEX ENTRY

Adding missing Vex.Flow.accidentalCodes entries for which glyphs exist is trivial, and just requires inventing new mnemonics.

Adding missing glyphs is much more challenging and would require fixing Gonville itself as per @Huji's comment above.

Note: I had to hack the file src/glyphs which did not show the entirety of the glyphs. I had to change the canvas_height calculation to:

var canvas_height = ((counter + 1) / (800 / (60 * 2))) * 60;

I will open another ticket for that if there isn't one already.

Contributor

infojunkie commented Mar 10, 2016

Thanks @alejandroiglesias for listings the accidentals (for these music cultures). For reference, one can view the Gonville glyphs used by Vexflow by browsing the page src/glyphs.html. This page and the source file src/tables.js show the currently available accidentals:

  • one quarter sharp / one comma sharp: glyph code v4f/v78, Vex.Flow.accidentalCodes.accidentals "+"
  • one quarter flat / 4 commas flat: glyph code vb7, NO VEX ENTRY
  • 3 quarters sharp: glyph code v51/v13, Vex.Flow.accidentalCodes.accidentals "++"
  • 3 quarters flat: NO GLYPH, NO VEX ENTRY
  • 1 comma flat: glyph code v57/vab, Vex.Flow.accidentalCodes.accidentals "d"
  • 5 commas sharp: glyph code v8d, NO VEX ENTRY
  • 8 commas sharp: glyph code v7a, NO VEX ENTRY
  • 8 commas flat: glyph code v39, NO VEX ENTRY
  • koron: NO GLYPH, NO VEX ENTRY
  • sori: NO GLYPH, NO VEX ENTRY

Adding missing Vex.Flow.accidentalCodes entries for which glyphs exist is trivial, and just requires inventing new mnemonics.

Adding missing glyphs is much more challenging and would require fixing Gonville itself as per @Huji's comment above.

Note: I had to hack the file src/glyphs which did not show the entirety of the glyphs. I had to change the canvas_height calculation to:

var canvas_height = ((counter + 1) / (800 / (60 * 2))) * 60;

I will open another ticket for that if there isn't one already.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Mar 10, 2016

Wow, will be great!

SalahAdDin commented Mar 10, 2016

Wow, will be great!

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Mar 10, 2016

Contributor

If I'm not mistaken, even Steinberg's Standard Music Font Layout (SMuFL) does NOT support all Arabic accidentals listed above. I found the following:

Contributor

infojunkie commented Mar 10, 2016

If I'm not mistaken, even Steinberg's Standard Music Font Layout (SMuFL) does NOT support all Arabic accidentals listed above. I found the following:

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Mar 10, 2016

Contributor

I forked vexflow and added support for accidentals that are present in the Gonville font. These are:

  • one quarter flat / 4 commas flat: glyph code vb7, Vex.Flow.accidentalCodes.accidentals "bs"
  • 5 commas sharp: glyph code v8d, Vex.Flow.accidentalCodes.accidentals "+-"
  • 8 commas sharp: glyph code v7a, Vex.Flow.accidentalCodes.accidentals "++-"
  • 8 commas flat: glyph code v39, Vex.Flow.accidentalCodes.accidentals "bss"

Updated the tests, you can check the page tests/flow.html under Accidental > Microtonal.

For some reason, the file src/fonts/vexflow_font.js did not contain all the glyphs from src/fonts/gonville_all.js, so I updated it.

Contributor

infojunkie commented Mar 10, 2016

I forked vexflow and added support for accidentals that are present in the Gonville font. These are:

  • one quarter flat / 4 commas flat: glyph code vb7, Vex.Flow.accidentalCodes.accidentals "bs"
  • 5 commas sharp: glyph code v8d, Vex.Flow.accidentalCodes.accidentals "+-"
  • 8 commas sharp: glyph code v7a, Vex.Flow.accidentalCodes.accidentals "++-"
  • 8 commas flat: glyph code v39, Vex.Flow.accidentalCodes.accidentals "bss"

Updated the tests, you can check the page tests/flow.html under Accidental > Microtonal.

For some reason, the file src/fonts/vexflow_font.js did not contain all the glyphs from src/fonts/gonville_all.js, so I updated it.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Mar 10, 2016

Contributor

@0xfe should I submit a pull request with this?

Contributor

infojunkie commented Mar 10, 2016

@0xfe should I submit a pull request with this?

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Apr 13, 2016

Contributor

FYI, the fonts listed here contain sori and koron (look for the Downloads section) and can be used to extend Gonville.

Contributor

Huji commented Apr 13, 2016

FYI, the fonts listed here contain sori and koron (look for the Downloads section) and can be used to extend Gonville.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Apr 27, 2016

Contributor

In a related development, SMuFL now includes the full set of Arabic quarter tone accidentals: w3c/smufl#44

Contributor

infojunkie commented Apr 27, 2016

In a related development, SMuFL now includes the full set of Arabic quarter tone accidentals: w3c/smufl#44

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Jun 13, 2016

Owner

@infojunkie Would you mind creating a brief wiki page here about VexFlow's microtonal support?

Owner

0xfe commented Jun 13, 2016

@infojunkie Would you mind creating a brief wiki page here about VexFlow's microtonal support?

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Jun 13, 2016

Contributor

Sure, will get to it shortly.

Contributor

infojunkie commented Jun 13, 2016

Sure, will get to it shortly.

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Jun 13, 2016

Owner

Thanks! 👍

Owner

0xfe commented Jun 13, 2016

Thanks! 👍

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Jun 13, 2016

Wow, what's about this?

SalahAdDin commented Jun 13, 2016

Wow, what's about this?

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie
Contributor

infojunkie commented Jun 16, 2016

https://github.com/0xfe/vexflow/wiki/Microtonal-Support, let me know how I can improve it.

@0xfe

This comment has been minimized.

Show comment
Hide comment
@0xfe

0xfe Jun 16, 2016

Owner

Looks good. Thanks very much!

On Thu, Jun 16, 2016 at 3:39 AM, Karim Ratib notifications@github.com
wrote:

https://github.com/0xfe/vexflow/wiki/Microtonal-Support, let me know how
I can improve it.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAOuk0R_jMAJrUbg4xNN40XLVkqQ-kmUks5qMP2wgaJpZM4GwaLb
.

Mohit Muthanna [mohit (at) muthanna (uhuh) com]

Owner

0xfe commented Jun 16, 2016

Looks good. Thanks very much!

On Thu, Jun 16, 2016 at 3:39 AM, Karim Ratib notifications@github.com
wrote:

https://github.com/0xfe/vexflow/wiki/Microtonal-Support, let me know how
I can improve it.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAOuk0R_jMAJrUbg4xNN40XLVkqQ-kmUks5qMP2wgaJpZM4GwaLb
.

Mohit Muthanna [mohit (at) muthanna (uhuh) com]

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Aug 29, 2016

Contributor

@0xfe what does the ha parameter do?

Contributor

Huji commented Aug 29, 2016

@0xfe what does the ha parameter do?

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 1, 2016

Contributor

@infojunkie I just checked SMuFL and even that doesn't have the Iranian microtonal accidentals. See all SMuFL glyphs here (you need to have the Bravura Text font installed, and go to the Result tab). So switching to SMuFL will not allow us to close this issue, as of yet.

Contributor

Huji commented Sep 1, 2016

@infojunkie I just checked SMuFL and even that doesn't have the Iranian microtonal accidentals. See all SMuFL glyphs here (you need to have the Bravura Text font installed, and go to the Result tab). So switching to SMuFL will not allow us to close this issue, as of yet.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 1, 2016

Contributor

@Huji : If you mean koron and sori, then SMuFL does specify support for them: https://w3c.github.io/smufl/gitbook/tables/persian-accidentals.html - and since this link renders the actual character with the Bravura font, I have to assume that it is present.

Contributor

infojunkie commented Sep 1, 2016

@Huji : If you mean koron and sori, then SMuFL does specify support for them: https://w3c.github.io/smufl/gitbook/tables/persian-accidentals.html - and since this link renders the actual character with the Bravura font, I have to assume that it is present.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 2, 2016

Contributor

Oh, I was looking at the wrong range of Unicode characters (after U10000).

Contributor

Huji commented Sep 2, 2016

Oh, I was looking at the wrong range of Unicode characters (after U10000).

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 2, 2016

Contributor

@0xfe just to make sure my question doesn't go unnoticed: what does the ha parameter in the font definitions do?

Contributor

Huji commented Sep 2, 2016

@0xfe just to make sure my question doesn't go unnoticed: what does the ha parameter in the font definitions do?

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 2, 2016

Contributor

@0xfe @infojunkie also, I have created the sori glyph:

'vd0':{'x_min':-10.890625,'x_max':299.4375,'ha':294,'o':'m 44 174 b 51 174 47 174 49 174 b 68 173 55 174 61 174 l 287 112 l 551 40 b 615 20 617 22 609 23 b 626 0 622 16 626 8 b 615 -22 626 -9 622 -18 b 613 -23 613 -23 613 -23 b 613 -23 613 -23 613 -23 b 287 -113 613 -24 597 -29 l 68 -174 b 53 -176 61 -176 57 -176 b 39 -172 47 -176 43 -174 b 27 -151 31 -167 27 -159 b 39 -129 27 -141 31 -133 b 230 -74 43 -124 20 -131 l 370 -36 l 468 -9 b 498 0 484 -4 498 -1 b 468 8 498 0 484 2 l 370 34 l 230 73 b 40 126 28 129 43 124 b 27 149 31 131 27 140 b 44 174 27 161 34 170 m 205 110 l 205 300 b 205 330 245 330 245 300 l 245 300 l 245 -300 b 245 -330 205 -330 205 -300 l 205 -300 l 205 110 l 345 90 m 345 90 l 345 330 b 345 360 385 360 385 330 l 385 330 l 385 -270 b 385 -300 345 -300 345 -270 l 345 -270 l 345 90'}

You can add it to the glyphs.html by hand to test it,it'll look like this:

capture

Would it be okay if I create a pull request and have it added to vexflow_font.js? If so, I will also create the koron glyph and create a pull request for that too.

Contributor

Huji commented Sep 2, 2016

@0xfe @infojunkie also, I have created the sori glyph:

'vd0':{'x_min':-10.890625,'x_max':299.4375,'ha':294,'o':'m 44 174 b 51 174 47 174 49 174 b 68 173 55 174 61 174 l 287 112 l 551 40 b 615 20 617 22 609 23 b 626 0 622 16 626 8 b 615 -22 626 -9 622 -18 b 613 -23 613 -23 613 -23 b 613 -23 613 -23 613 -23 b 287 -113 613 -24 597 -29 l 68 -174 b 53 -176 61 -176 57 -176 b 39 -172 47 -176 43 -174 b 27 -151 31 -167 27 -159 b 39 -129 27 -141 31 -133 b 230 -74 43 -124 20 -131 l 370 -36 l 468 -9 b 498 0 484 -4 498 -1 b 468 8 498 0 484 2 l 370 34 l 230 73 b 40 126 28 129 43 124 b 27 149 31 131 27 140 b 44 174 27 161 34 170 m 205 110 l 205 300 b 205 330 245 330 245 300 l 245 300 l 245 -300 b 245 -330 205 -330 205 -300 l 205 -300 l 205 110 l 345 90 m 345 90 l 345 330 b 345 360 385 360 385 330 l 385 330 l 385 -270 b 385 -300 345 -300 345 -270 l 345 -270 l 345 90'}

You can add it to the glyphs.html by hand to test it,it'll look like this:

capture

Would it be okay if I create a pull request and have it added to vexflow_font.js? If so, I will also create the koron glyph and create a pull request for that too.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 2, 2016

Contributor

And here is the glyph for koron:

'vd1':{'x_min':-20,'x_max':320,'ha':257,'o':'m -8 200 b -8 210 8 200 16 200 l 20 148 -199 l 23 -615 b 0 -629 9 -629 6 -629 l -21 -612 l -21 -201 l -21 216 l -20 200 m 16 200 l 310 0 l 240 0 l 16 140 l 16 -120 l 240 0 l 310 0 l 16 -200'}

capture

Contributor

Huji commented Sep 2, 2016

And here is the glyph for koron:

'vd1':{'x_min':-20,'x_max':320,'ha':257,'o':'m -8 200 b -8 210 8 200 16 200 l 20 148 -199 l 23 -615 b 0 -629 9 -629 6 -629 l -21 -612 l -21 -201 l -21 216 l -20 200 m 16 200 l 310 0 l 240 0 l 16 140 l 16 -120 l 240 0 l 310 0 l 16 -200'}

capture

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 2, 2016

Contributor

Fantastic stuff! PR plz!!

Contributor

infojunkie commented Sep 2, 2016

Fantastic stuff! PR plz!!

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 2, 2016

Contributor

I will wait for #446 to be merged, then I will submit a PR. The advantage is that the addition of new glyphs using the new tidier format is easier to follow in diffs.

Contributor

Huji commented Sep 2, 2016

I will wait for #446 to be merged, then I will submit a PR. The advantage is that the addition of new glyphs using the new tidier format is easier to follow in diffs.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 3, 2016

Contributor

I also submitted a PR to support all accidentals in EasyScore: #451

Contributor

infojunkie commented Sep 3, 2016

I also submitted a PR to support all accidentals in EasyScore: #451

@Silverwolf90

This comment has been minimized.

Show comment
Hide comment
@Silverwolf90

Silverwolf90 Sep 3, 2016

Collaborator

@Huji I'm not sure ha serves any purpose anymore -- I always figured it must be some acronym related to the height of the glyph, but it's very cryptic and didn't seem to produce expected results when used for glyph dimensions. But now we are analyzing the path itself to extract more accurate glyph dimensions. I can't find an instance of this property being used.

Collaborator

Silverwolf90 commented Sep 3, 2016

@Huji I'm not sure ha serves any purpose anymore -- I always figured it must be some acronym related to the height of the glyph, but it's very cryptic and didn't seem to produce expected results when used for glyph dimensions. But now we are analyzing the path itself to extract more accurate glyph dimensions. I can't find an instance of this property being used.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 4, 2016

Contributor

I figured it has to do with height too (and guessed that "ha" means "height
adjustment") but when I wrote my own code
https://jsfiddle.net/629myn9f/38/ to edit glyphs by trial and error I
realized that the "ha" parameter is effectively never used and I can write
code that ignores it completely yet generates similar output as VexFlow.

Thanks for the email though!

On Sat, Sep 3, 2016 at 3:46 PM, Cyril Silverman notifications@github.com
wrote:

@Huji https://github.com/Huji I'm not sure ha serves any purpose
anymore -- I always figured it must be some acronym related to the height
of the glyph, but it's very cryptic and didn't seem to produce expected
results when used for glyph dimensions. But now we are analyzing the path
itself to extract more accurate glyph dimensions. I can't find an instance
of this property being used.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFKLg2zdciPj7gpD0t2VkojaIGdILPNks5qmXocgaJpZM4GwaLb
.

Contributor

Huji commented Sep 4, 2016

I figured it has to do with height too (and guessed that "ha" means "height
adjustment") but when I wrote my own code
https://jsfiddle.net/629myn9f/38/ to edit glyphs by trial and error I
realized that the "ha" parameter is effectively never used and I can write
code that ignores it completely yet generates similar output as VexFlow.

Thanks for the email though!

On Sat, Sep 3, 2016 at 3:46 PM, Cyril Silverman notifications@github.com
wrote:

@Huji https://github.com/Huji I'm not sure ha serves any purpose
anymore -- I always figured it must be some acronym related to the height
of the glyph, but it's very cryptic and didn't seem to produce expected
results when used for glyph dimensions. But now we are analyzing the path
itself to extract more accurate glyph dimensions. I can't find an instance
of this property being used.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFKLg2zdciPj7gpD0t2VkojaIGdILPNks5qmXocgaJpZM4GwaLb
.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 4, 2016

Contributor

That is great Karim!

I am thinking for sori and koron we should also define new acronyms for
VexTab. I suggest "s" and "k". So for instance C sori becomes "Cs" and D
koron becomes "Dk". That way they would not be confused with other quater
note accidentals.

What are your thoughts?

On Sat, Sep 3, 2016 at 8:50 AM, Karim Ratib notifications@github.com
wrote:

I also submitted a PR to support all accidentals in EasyScore: #451
#451


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFKLo1xD6862AR-azEizcMaviFoO1bRks5qmRisgaJpZM4GwaLb
.

Contributor

Huji commented Sep 4, 2016

That is great Karim!

I am thinking for sori and koron we should also define new acronyms for
VexTab. I suggest "s" and "k". So for instance C sori becomes "Cs" and D
koron becomes "Dk". That way they would not be confused with other quater
note accidentals.

What are your thoughts?

On Sat, Sep 3, 2016 at 8:50 AM, Karim Ratib notifications@github.com
wrote:

I also submitted a PR to support all accidentals in EasyScore: #451
#451


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFKLo1xD6862AR-azEizcMaviFoO1bRks5qmRisgaJpZM4GwaLb
.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 5, 2016

Contributor

"s" and "k" sound good to me. I can add these to the relevant places once your PR for the glyphs is merged.

Contributor

infojunkie commented Sep 5, 2016

"s" and "k" sound good to me. I can add these to the relevant places once your PR for the glyphs is merged.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 5, 2016

Contributor

Actually, @Huji, it would fantastic if you could also add the 3/4-flat accidental to the new glyphs: https://w3c.github.io/smufl/gitbook/tables/arabic-accidentals.html (U+ED31)

Contributor

infojunkie commented Sep 5, 2016

Actually, @Huji, it would fantastic if you could also add the 3/4-flat accidental to the new glyphs: https://w3c.github.io/smufl/gitbook/tables/arabic-accidentals.html (U+ED31)

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 5, 2016

Contributor

I will gradually work on all quarter note accidentals; I started with sori
and koron only because they are the easiest to create.

stay tuned!

On Mon, Sep 5, 2016 at 7:19 AM, Karim Ratib notifications@github.com
wrote:

Actually, @Huji https://github.com/Huji, it would fantastic if you
could also add the 3/4-flat accidental to the new glyphs:
https://w3c.github.io/smufl/gitbook/tables/arabic-accidentals.html
(U+ED31)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFKLkJafTRikFivBEwRXe0BHTnDMLcYks5qm6ZQgaJpZM4GwaLb
.

Contributor

Huji commented Sep 5, 2016

I will gradually work on all quarter note accidentals; I started with sori
and koron only because they are the easiest to create.

stay tuned!

On Mon, Sep 5, 2016 at 7:19 AM, Karim Ratib notifications@github.com
wrote:

Actually, @Huji https://github.com/Huji, it would fantastic if you
could also add the 3/4-flat accidental to the new glyphs:
https://w3c.github.io/smufl/gitbook/tables/arabic-accidentals.html
(U+ED31)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#318 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFKLkJafTRikFivBEwRXe0BHTnDMLcYks5qm6ZQgaJpZM4GwaLb
.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 5, 2016

Contributor

I also edited the Microtonal Support wiki page https://github.com/0xfe/vexflow/wiki/Microtonal-Support - if anyone has a good suggestion on how to embed the accidental glyphs without creating a separate image for each one, please let me know :-)

Contributor

infojunkie commented Sep 5, 2016

I also edited the Microtonal Support wiki page https://github.com/0xfe/vexflow/wiki/Microtonal-Support - if anyone has a good suggestion on how to embed the accidental glyphs without creating a separate image for each one, please let me know :-)

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 5, 2016

Contributor

@infojunkie the problem there is that d is mentioned both for "1 comma flat" and for "1 quarter-tone flat" in two separate rows; if the glyph is the same then we should collapse them together somehow.

Contributor

Huji commented Sep 5, 2016

@infojunkie the problem there is that d is mentioned both for "1 comma flat" and for "1 quarter-tone flat" in two separate rows; if the glyph is the same then we should collapse them together somehow.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 5, 2016

Contributor

Thanks - yes they are on two different rows because they mean two different things in Arabic vs Turkish systems... Feel free to change the layout if you have a better idea.

Contributor

infojunkie commented Sep 5, 2016

Thanks - yes they are on two different rows because they mean two different things in Arabic vs Turkish systems... Feel free to change the layout if you have a better idea.

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 6, 2016

Contributor

I think the minimum to do was to sort them, which I just did.

Contributor

Huji commented Sep 6, 2016

I think the minimum to do was to sort them, which I just did.

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin Sep 8, 2016

👍 for arabic and turkish and iranian quarter tone accidentals!

SalahAdDin commented Sep 8, 2016

👍 for arabic and turkish and iranian quarter tone accidentals!

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Sep 12, 2016

Contributor

Alright, I created #461 but I need your help with it. I beautified the gonville_all font so you can better see the differences. In a second commit, I added the vd0 and vd1 glyphs. But when I build the project, they don't get added to build/vexflow-debug.js and I am not sure why. I am not familiar with grunt so I don't know how it decides which glyphs to take from gonville_all.js and which ones not to take. Any advice?

Contributor

Huji commented Sep 12, 2016

Alright, I created #461 but I need your help with it. I beautified the gonville_all font so you can better see the differences. In a second commit, I added the vd0 and vd1 glyphs. But when I build the project, they don't get added to build/vexflow-debug.js and I am not sure why. I am not familiar with grunt so I don't know how it decides which glyphs to take from gonville_all.js and which ones not to take. Any advice?

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Sep 12, 2016

Contributor

Thanks @Huji will review and attempt to fix as soon as I get some time.

Contributor

infojunkie commented Sep 12, 2016

Thanks @Huji will review and attempt to fix as soon as I get some time.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie Dec 31, 2016

Contributor

@Huji: it would be great to update the microtonal wiki to reflect the sori and koron additions https://github.com/0xfe/vexflow/wiki/Microtonal-Support

Contributor

infojunkie commented Dec 31, 2016

@Huji: it would be great to update the microtonal wiki to reflect the sori and koron additions https://github.com/0xfe/vexflow/wiki/Microtonal-Support

@Huji

This comment has been minimized.

Show comment
Hide comment
@Huji

Huji Jan 2, 2017

Contributor

Just updated it. Since Wiki is updated and #461 has been merged, I am going to close this issue.

Contributor

Huji commented Jan 2, 2017

Just updated it. Since Wiki is updated and #461 has been merged, I am going to close this issue.

@Huji Huji closed this Jan 2, 2017

@eeskikoy

This comment has been minimized.

Show comment
Hide comment
@eeskikoy

eeskikoy May 6, 2017

Hi @infojunkie, I need microtonal accidentals and key signatures for Turkish Folks music. Here is the link to the SMuFL glyphs page. http://www.smufl.org/version/latest/range/turkishFolkMusicAccidentals . Actually, I only need just two of them. (The others are not used, at least for the song notation of instrument Baglama). What I need #3 (3 comma sharp) and b2 (2 comma flat). But until SMuFL support provided, I need to find a way to render these Turkish folks music accidentals using VexFlow. Note that the existing provided Turkish Microtonal Accidentals are used by Turkish -Classical- Music not by Turkish -Folks- Music. May be there are pitch overlapping but symbols (glyphs) and names are referred differently. Would you provide some help please?

eeskikoy commented May 6, 2017

Hi @infojunkie, I need microtonal accidentals and key signatures for Turkish Folks music. Here is the link to the SMuFL glyphs page. http://www.smufl.org/version/latest/range/turkishFolkMusicAccidentals . Actually, I only need just two of them. (The others are not used, at least for the song notation of instrument Baglama). What I need #3 (3 comma sharp) and b2 (2 comma flat). But until SMuFL support provided, I need to find a way to render these Turkish folks music accidentals using VexFlow. Note that the existing provided Turkish Microtonal Accidentals are used by Turkish -Classical- Music not by Turkish -Folks- Music. May be there are pitch overlapping but symbols (glyphs) and names are referred differently. Would you provide some help please?

@SalahAdDin

This comment has been minimized.

Show comment
Hide comment
@SalahAdDin

SalahAdDin May 6, 2017

I need also because i play Ney, so, i'm playing turkish folk music.

SalahAdDin commented May 6, 2017

I need also because i play Ney, so, i'm playing turkish folk music.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie May 7, 2017

Contributor

@eeskikoy I'm currently trying to use the structure of the Gonville JS font format to add the Arabic 3/4-flat glyph. So far, I understand that a glyph is made of basic 2D operations, namely moveTo, lineTo, bezierCurveTo and quadraticCurveTo. Now I need to assemble these to make a glyph. Rereading this thread, I found that @Huji's fiddle is still online: https://jsfiddle.net/629myn9f/38/ - sounds like a great environment to make new glyphs.

Contributor

infojunkie commented May 7, 2017

@eeskikoy I'm currently trying to use the structure of the Gonville JS font format to add the Arabic 3/4-flat glyph. So far, I understand that a glyph is made of basic 2D operations, namely moveTo, lineTo, bezierCurveTo and quadraticCurveTo. Now I need to assemble these to make a glyph. Rereading this thread, I found that @Huji's fiddle is still online: https://jsfiddle.net/629myn9f/38/ - sounds like a great environment to make new glyphs.

@infojunkie

This comment has been minimized.

Show comment
Hide comment
@infojunkie

infojunkie May 7, 2017

Contributor

I also updated the Wiki with images of each supported accidental. Looks much better 😄

Contributor

infojunkie commented May 7, 2017

I also updated the Wiki with images of each supported accidental. Looks much better 😄

@eeskikoy

This comment has been minimized.

Show comment
Hide comment
@eeskikoy

eeskikoy May 8, 2017

Thanks @infojunkie, SMuFL (bravura) has already SVG, OTF glyph files which contains the accidentals that I need. I just need to convert the SVG path of them to the glyph meta data definitions of vexflow_font.js.

eeskikoy commented May 8, 2017

Thanks @infojunkie, SMuFL (bravura) has already SVG, OTF glyph files which contains the accidentals that I need. I just need to convert the SVG path of them to the glyph meta data definitions of vexflow_font.js.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment