• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Some requests/suggestions
#1
Lightbulb 
Hi Mike,

Big fan of MSP and your continuous improvements, support, and approachability.

I know you're busy with the IOS app and the versioning update, but a few things I'd like to add to your (long) list of further improvements:

Regarding ChordPro

When I include complex/irregular slash-chords, the transpose function fails to transpose what's after the slash or makes a mess or ignores uncapitalized letters.
As an example, some gibberish chords:
[Cdim7no5/A]This [Gsus2add#9/B]is [D sowhatchord/G]some [/F#]test [/c]lyrics [Cadd7(#9)/C]line
I think it'd be best to just transpose every capitalized letter between square brackets, as well as every first letter after the opening square bracket.

Regarding the metronome

There's a slight delay when starting the metronome, making it hard to initiate it during the playing of a song. It'd be great if it'd start instantly after pressing.

Could there be an option to sync the metronome playback across connected devices? So that everyone can see it on their screens simultaneously?

Thanks and keep up the great work!
Reply
#2
Regarding ChordPro:

ChordPro is a standard that is not only used in MSP. MSP should stay close to the standard.
How chords should be handled is specified here: https://www.chordpro.org/chordpro/chordpro-chords/

To cross-check compatibility there's a reference application: https://github.com/ChordPro/chordpro/releases/
THE pretty active forum for ChordPro specific topics: https://groups.io/g/ChordPro/topics
first language: German
Acer A1-830, Android 4.4.2 - HP x2 210 G2 Detachable, Win 10 22H2 - Huawei Media Pad T5, Android 8.0 - Boox Tab Ultra C, Android 11
www.moonlightcrisis.de - www.basdjo.de - www.frankenbaend.de


Reply
#3
Thanks. I've used a couple of chordpro apps on my mac and one or two on my tablet. Never encountered one that implemented the strict chordpro rules. The relaxed mode seems much more useful and I don't see any drawbacks in implementing that in MSP. Perhaps a toggle could be added to switch between strict and relaxed modes?
Reply
#4
I will consider adding an option to used a more relaxed mode for processing chords. Right now, the code has some rules about what is a valid chord, so I would have change that to only requiring a valid first letter for the chord, and anything after that would be allowed, and as you said, it would just transpose any capital letter that is between A and H. 

As far as synchronizing metronome playback, that is a very complex feature due to a couple of issues. First, if the leader tablet is just notifying the other tablets to start their metronome playback, any delay on the network would cause them to be slightly off. So that means the leader tablet would have to be constantly sending a message indicating it's timing so that the other tablets could synchronize to the same "clock" (very similar to the MIDI timing clock). The network latency could still potentially be an issue with that, but in theory just the first beat has to be aligned which simplifies it a bit. I can consider looking into this when time allows, but due to the complexity, it's going to be a little lower on the priority list.

Mike
Reply
#5
(01-09-2022, 10:35 PM)pianistslogic Wrote: I think it'd be best to just transpose every capitalized letter between square brackets, as well as every first letter after the opening square bracket.

Following the opening bracket is a note name, conventionally written with an uppercase letter. The chord quality and extension are written in lowercase. It is the note that gets transposed, the rest remains unmodified. So `Aglibberish` becomes `Bglibberish` and `Astronomical` becomes `Bbtronomical`.

When a chord has a bass part, indicated by the slash, the slash is followed by another note name that is transposed accordingly. `G/B` becomes `A/C#`.

AFAIK there is no reason to include uppercase letters in the chord name except for the note names.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#6
(01-12-2022, 07:24 PM)sciurius Wrote:
(01-09-2022, 10:35 PM)pianistslogic Wrote: I think it'd be best to just transpose every capitalized letter between square brackets, as well as every first letter after the opening square bracket.

Following the opening bracket is a note name, conventionally written with an uppercase letter. The chord quality and extension are written in lowercase. It is the note that gets transposed, the rest remains unmodified. So `Aglibberish` becomes `Bglibberish` and `Astronomical` becomes `Bbtronomical`.

When a chord has a bass part, indicated by the slash, the slash is followed by another note name that is transposed accordingly. `G/B` becomes `A/C#`.

AFAIK there is no reason to include uppercase letters in the chord name except for the note names.


There is, though. In your example, try transposing [Astronomical/C]. It'll fail to transpose the C.
Reply
#7
That's a small bug in MSPro that Mike will fix.

My point was to make clear that just transposing all uppercase letters is wrong and unneccessary.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#8
What would the problem be with transposing all uppercase letters? Extensions are lowercase, and any comments such as "Break" can be added with an asterisk: [*Break] and won't be transposed.
Reply
#9
Why would you transpose uppercase letters if they are not there, except for at the start and after a slash?

Do you have a use case for this?
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#10
It's just how every other chordpro app seems to work. [Break] +1 becomes "Creak", except when you use the *.

Possible use case would be alternate/easier chords for novice guitarists. Say [F#dim7 (D7)]
Reply
#11
* is not supported by MSP and by no other app that I came across so far

Text in square brackets is commonly used as a workaround for text that is intended to be shown above the lyrics.
[Astronomical/C] is a pretty theoretical example but [D.C. al Fine], [Break] or [Coda] might be in practical use and are not wanted to be transposed.

I know of at least two cases where note names in lowercase should be transposed:
1.) In very traditional folk music or in classical music, sometimes minor chords are written in lowercase [cm] at least in Germany. This looks a bit outdated for me and might be irrelevant for MSP or ChordPro, but who knows...
2.) It is common to use lowercase characters for a few single notes to notate small intros or fills. It is pretty confusing if they are not transposed. The reference implementation allows lowercase when      
"notenames" : true,
is set.
MSP doesn't support that by now

There are more possible improvements for MSP's ChordPro implementation. Maybe Mike could think about a ChordPro rework after finishing the current big tasks MSP for iPad and song versioning.
first language: German
Acer A1-830, Android 4.4.2 - HP x2 210 G2 Detachable, Win 10 22H2 - Huawei Media Pad T5, Android 8.0 - Boox Tab Ultra C, Android 11
www.moonlightcrisis.de - www.basdjo.de - www.frankenbaend.de


Reply
#12
https://www.chordpro.org/chordpro/chordpro-chords/ states:

In general, ChordPro will try to interpret what is between the brackets as a valid chord name, unless the first character is an asterisk, *. In that case ChordPro will remove the asterisk and treat everything else as a text that will be printed just like the chord names. This can be used to add small annotations, e.g. [*Coda] and [*Rit.].

To me that makes sense, as it implies that anything else should be considered chords/notes and can thus be transposed.
Reply
#13
I've the code to always process the split chord regardless of what comes before it, so long as the chord starts with a valid first letter. I also added support for [*text] so that the * is stripped from what is displayed. If you try to transpose [Astronomical/C] now, the C will transpose correctly. I still do not support multiple capital letters in a chord where each capital letter will be transposed. That would require much more complex logic for determining when multiple valid chords are present in the middle of a chord definition, and unless the specification requires that in the future, I don't see a strong need for it.

Mike
Reply
#14
Sounds great, Mike! Indeed no need to transpose every capital letter. I assumed that'd be the easier to implement, shows how little I understand about programming. Looking forward to the update! Thanks!
Reply
#15
Thanks a lot, Mike, for implementing the /root-note and *chordprocomments this quickly. 

Truely grateful for that!

Still curious, though, about the metronome delay.
Tried a few BPM/Metronome apps, they all seemed to initiate the metronome instantly after the respective button was let go. Any chance MSP will behave similarly?
Reply




Users browsing this thread:
1 Guest(s)


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2024 MyBB Group.