ChordSheetJS icon indicating copy to clipboard operation
ChordSheetJS copied to clipboard

European notation support

Open mgiacopu opened this issue 3 years ago • 5 comments

Hi! Thanks for your work.

I was wondering if you were planning to introduce support to the European notation (DO, RE, MI, FA, SOL, LA, SI). To my knowledge this isn't yet a feature of this library.

Do you think this is feasible?

I could make a pull request and implement it myself if needed, but I think I'm going to require some tips on which files to modify.

mgiacopu avatar Nov 11 '21 21:11 mgiacopu

Hey @mgiacopu

Thanks for submitting your issue and for offering your help!

I'm currently finishing quite a thorough refactor that should make this feature easier to implement: #391. When that PR is merged, changes are required in the Chord and Key classes to make this work. You may want to watch that PR in order to be notified when it's merged.

Please reach out if you need more info at that time.

martijnversluis avatar Nov 14 '21 21:11 martijnversluis

Hi @martijnversluis

I've seen that #391 has been merged. I was trying to setup the repo on my machine in order to start developing this feature, but I'm having quite an hard time getting it up and running.

What should the setup look like?

mgiacopu avatar Nov 29 '21 22:11 mgiacopu

Hey @mgiacopu. Thanks for asking, I realised there is no contribution guide in the README. The requirements to get started are as follows:

  • you need NodeJS running on your system, version 14 or higher. If assume you already have that running, but if you don't installation instructions are here
  • you need to have Yarn installed, this is an alternative to NPM. Instructions are here
  • you need to have Git installed. If you don't, you can download it here
  • download the source code using git clone https://github.com/martijnversluis/ChordSheetJS.git or git clone [email protected]:martijnversluis/ChordSheetJS.git (more info on which one to use)
  • the src/ folder contains the actual code, the test/ folder contains the tests that check the working of the code
  • if you have made changes you can run yarn test to check.

Please reach out with more info about your system if you need more details, because installation differs greatly among operating systems, version managers etc.

martijnversluis avatar Dec 03 '21 10:12 martijnversluis

Hi @martijnversluis

I think I explained myself wrongly. What i meant was like having a local installation of the package: I know something similar can be achieved using npm link but as I said I'm finding it tricky.

Besides that, I've started watching the code. In addition to changing Chord and Key I think also Note should be modified.

Maybe adding another constant other than SYMBOL and NUMERIC (something like LATIN) and then adding specific behavior to the new type of note or perhaps leveraging on the logic behind NUMERIC?

mgiacopu avatar Dec 03 '21 11:12 mgiacopu

Sorry for the late follow-up. I guess having the extra constant makes sense. I recently merged in support for numerals. I think that PR will be a great guide in implementing european notation: https://github.com/martijnversluis/ChordSheetJS/pull/459

martijnversluis avatar Feb 17 '22 14:02 martijnversluis

I'm coming late and maybe I did not understand all of the discussion but here are some thoughts:

  • To my knowledge there is no such thing as "European notation". "Do ré (or re) mi fa sol la si" are the latin notation of the notes. I speak french and I know that we use this notation in France, Italy, Spain,... I would not name this as "solfege" because the word "solfège" is used to describe a specific way to learn music.
  • There is also the german notation with a H instead of B. But I don't think is a good idea to go there. Even in french I force my students to learn to read the english notation because that's what you will see everywhere. And for what I saw on some forums, it seems to be the same for german teachers that are using the english notation instead of the german notation.
  • About the movable Do, I'm not sure a lot of people are using this. It also always needs the key of the song to work.

edwinzap avatar Feb 07 '24 21:02 edwinzap