infojunkie / musicxml-player

A TypeScript component that loads and plays MusicXML files in the browser using Web Audio and Web MIDI.
https://blog.karimratib.me/demos/musicxml/
GNU General Public License v3.0
34 stars 6 forks source link

Export of chord files for Korg Pa5X #36

Closed pauljohnleonard closed 2 months ago

pauljohnleonard commented 2 months ago

Hi

I have a Korg Pa5X which can play the Korg .csc files (really just wrappers for midi with text events describing chords).

I wanted to create these files from ireal pro. files for play along fun!.

I found ireal-reader and mdi-file in the npm and after a bit of hacking I have something working.

But as I think you know the parsing is not that great and result was quite low quality with missing chords and alignment issues.

The I discovered your project which has some cool features so I think I can going to switch to using your code.

So I am just saying hello in case you are interested in this or prehaps someone has already done this ?

infojunkie commented 2 months ago

That's interesting! So the MIDI file has chord names in it... Can you share a few samples?

Happy to help you play them back here, but I think it will take a preprocessing step of converting those .csc files to MusicXML - otherwise the sheet display engine has nothing to show. I expect it would be simpler than parsing the iReal Pro format (see ireal-musicxml).

infojunkie commented 2 months ago

I could not find a lot of information about .csc files online - here's one attempt to reverse engineer the format: http://www.korgforums.com/forum/phpBB2/viewtopic.php?p=821727#821727

pauljohnleonard commented 2 months ago

HI Karim,

That link is also what I found. (after a lot of searching). I have in fact implemented something based on this. It is simple to extract the midi and convert it to musicXML. However my main goal is to be able to use ireal files to create files in this format.

I have functions that convert the parsed ireal output to midi and another function that creates the csc file. As I said this all works but the parser of ireal data is poor quality which was the first reason I looked at your stuff. And being able to see the output as a score is a great feature.

If you think this is something that would be good to integrate into your project I can do a fork and work that.

I usually use angular for my development (since that is what I use for work). But it might be easier to take your code base and integrate whatever I do directly into that.

On Mon, 24 Jun 2024 at 03:51, Karim Ratib @.***> wrote:

I could not find a lot of information about .csc files online - here's one attempt to reverse engineer the format: http://www.korgforums.com/forum/phpBB2/viewtopic.php?p=821727#821727

— Reply to this email directly, view it on GitHub https://github.com/infojunkie/musicxml-player/issues/36#issuecomment-2185488610, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZ3S3VFT3QJNIXT2M6ALS3ZI6CS7AVCNFSM6AAAAABJYZPE3CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBVGQ4DQNRRGA . You are receiving this because you authored the thread.Message ID: @.***>

pauljohnleonard commented 2 months ago

Here is an example of what I use to create the CSC files. I have 2 sections of raw data that stay the same (apart from injecting some sizes). The raw midi section is created from MidiData object.

Note that the deltatimes hare are not perfect. I think this is becuase I created this data directly on the Korg by playing the chords, It must keep my exact timing !!!

examp.txt

infojunkie commented 2 months ago

You can use the ireal-musicxml functions to do the parsing for you.

This project we're in, musicxml-player, is not meant as a converter, but rather as a Web-based score player - so it wouldn't make sense to add conversion functions here.

If you interested in a rudimentary example of a Web-based iReal Pro bulk converter, take a look at the terribly-named ChiRP. For easier maintainability of these small apps, I prefer to write them in vanilla JavaScript.

Hope this helps!

pauljohnleonard commented 2 months ago

Great thanks.

On Mon, 24 Jun 2024 at 17:22, Karim Ratib @.***> wrote:

You can use the ireal-musicxml functions https://github.com/infojunkie/ireal-musicxml?tab=readme-ov-file#usage to do the parsing for you.

This project we're in, musicxml-player, is not meant as a converter, but rather as a Web-based score player - so it wouldn't make sense to add conversion functions here.

If you interested in a rudimentary example of a Web-based iReal Pro bulk converter, take a look at the terribly-named ChiRP https://github.com/infojunkie/chirp.

Hope this helps!

— Reply to this email directly, view it on GitHub https://github.com/infojunkie/musicxml-player/issues/36#issuecomment-2186954639, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAZ3S3SSIEALWWI326KI5ETZJBBUZAVCNFSM6AAAAABJYZPE3CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOBWHE2TINRTHE . You are receiving this because you authored the thread.Message ID: @.***>