MobileSheets Forums

Full Version: ChordPro and MIDI combination
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I would like to put most of my songs into ChordPro format because I usually only need lyrics with chords with only few text comments. But sometimes I need to add a short score (just a few bars) with riff I need to play, important solo etc. I know I can add image to ChordPro files but it's clear I can't transpose them with rest of ChordPro files if I need to. So an idea came to my mind - Would it be possible to add support for (short) MIDI files and render/transpose them with ChordPro files? Maybe only support for 1 or 2 tracks in MIDI files (left and right hands for piano players) with let's say 16 bar limitation?
That's certainly something I can look into in the future, but rendering a MIDI file as sheet music is fairly complex. It's less complex than supporting MusicXML, but I still have to write all of the code to draw the staves, place the notes correctly, draw the correct note type depending upon the timing, etc. It definitely will not be a trivial task.

I understand that it's not that simple. I just want to share this idea and maybe there are more users interested in this. It's not something I need ASAP, but it would still be a good feature to have...
I know that and I'm struggling with similar topics. But I think rendering MIDI to standard notation is not a promising idea.

I could imagine integrating a subset of ABC format ( into the ChordPro standard could become a relatively easy and sufficient solution. It can be rendered easily to standard notation and even the pure ASCII notation can be used for small melody fragments.
Let's discuss that with "Mr. ChordPro" Sciurius.
Great suggestion, itsme. For my needs the ABC format is sufficient enough and if it is easier to implement than MIDI (and I think it is), I vote for ABC format.
Itsme beat me to suggesting ABC. 

It's something I have discovered only recently, but I'm very enthusiastic about the possibilities.

@NeoCZ, I was going to suggest Opensongapp

which is a nice Android app which can display chordpro and has a feature for ABC snippets exactly as you requested. Then I saw your footer that indicates that 
you are on W10.

There is a Win version as well though

but I don't know if the ABC snippet feature is in it.

The primer is great info for ABC as is But I found another resource I really like and helped me at lot (not only because it's in German). Maybe you don't know it yet and you're interested:

I mentioned before how much I like ABC and suggested it for implementation into MSP. I think it would be much easier to implement than MusicXML (which would be great also since you can export from that from almost all notation apps) since AFAICS you don't need much programming and developing for the rendering. You could use the existing abcm2ps or abc2svg for that (like EasyABC does) which are freely available. AFAIK they are also used in paid apps for ABC so there shouldn't be license problems. Also one could edit ABC files (like Chordpro files) within MSP with simple text editing which certainly wouldn't be possible with XML.
Thanks for the Schacherl link. I know of many good explanations for ABC format, but this one was new to me.

Reading the ASCII representation is not a strange idea of mine, it seems to be used regularly by experienced ABC users (what I am not yet).
The "incipit" column in that index shows the first few measures of the tunes in "Paul Hardy's Session Tunebook".

If someone is interested: I have converted Paul Hardy's Session Tunebook 2016 to MuseScore and added links to the MSCZ files into the PDF.
Anyway: ABC support should in my opinion better be integrated into ChordPro.
Maybe a kind of Plugin support in MSP might be a good idea so that special formats could be maintained by other developers.
I studied abcm2ps and AndroidSVG, and I do believe with some work I could not only support ABC notation in Chord Pro files, but I could also support standalone ABC notation files (*.abc). In order for this to work on Android, Windows 10 and in the companion app, I'm going to have to modify abcm2ps for each application/platform. Windows 10 (C# UWP) already has support for rendering SVG files, but I'd have to use something like for the companion app. To get all of this working I'd need at least a month or two given the current amount of time I have for MobileSheetsPro. I'm currently focused on trying to finish other big changes, but I'll come back to this once those changes are finished.

As for a plugin architecture - that would be a nightmare to integrate, would cause potential issues with certification on the various app stores and would lead to situations where the app could crash due to a plugin, making user support much more difficult.

No need to hury, Mike. Both ABC notation in Chord Pro files and standalone support would be great to have in MS. I know this would save a lot of space if I don't have to use PDFs that much. I know lack of free memory for saving files is not that big issue as it was a while back, but I still like possibility to keep files/backups as small as possible. Also it's far easier to edit Chord Pro/ABC files.
Well, I don't know how and to which extent ABC should be worked into chordpro. After all chordpro is for "stringers" who mostly don't really want/need melodies in notation. And ABC in its most common use is for melody only (for all those jig/folk/traditional music players). But I leave that gladly to Sciurius and other cpro specialists.

And for those simple ABC tunes (like in the tunebook) it indeed is really easy to read the melody from the ASCII text.

What I really find interesting is the development of the ABC standard which now allows the rendering of really complex quality scores with relatively small ASCII files which are near the quality of the output of dedicated notation programs like MuseScore, Sibelius, Finale. (Though the extra information for such rendering which is still not too hard to understand makes it more difficult to read melodies directly from the ASCII ABC file).

I for one am looking very much forward for native ABC support in MSP. Mike, in case it hasn't occurred to you, you could even implement a "pseudo MusicXML" support into MSP without coding for rendering MusicXML directly, since you could use xml2abc for an import/conversion to abc and render that. xml2abc gives quite good results.

I have a request for a future ABC implementation. It would be great if there would be a direct editing functionality of the ABC file (you probably planned that) but even better if it would be with a split screen with a WYSIWYG rendering (like in EasyABC). Just dreaming.
Just a short question - what version of ABC standard do you plan tu support, Mike? 2.1 of 2.2 (draft)?
abcm2ps states that it supports the 2.2 draft (or at least a subset of it), so MobileSheetsPro would support that as well. I'm going to be relying on that library to be doing the majority of the processing, so whatever it supports, I will support.

Here's another vote for abc support. There are loads of tunes available in that format now and for a folkie like me it would be great to have in MobileSheets without having to go through the intermediate step of generating an image file to import.

Oh, I just posted about ABC in another thread. Nice to have another supporter here.

For the time being you might want to look at the (free) Tradmusician and the (paid but better) À la mode in the playstore. I use the later as viewer for ABC files starting them with a smartbutton if I need transposing or something else.