Midi input across two staves...

• Mar 12, 2022 - 06:42

So, music beginner here. I have a midi keyboard and want to play across a grand staff. I have added two unlinked staves to my score. (treble and bass) But, when I play on the keyboard, everything just gets added to the stave that's selected. On one hand that makes sense, but seemingly despite Musescore's 5 billion options, no one I can find seems to ever have wanted to do that, so it doesn't seem possible.

Have I missed something?


Comments

You've missed nothing.
There is simply no information in the MIDI protocol to indicate which hand played which note (nor is there a way for the average keyboard to detect this as it doesn't have vision).

If your hands are far enough apart in range, then you can enter into a single staffed instrument and afterwards right-click (Ctrl+click on Mac) the staff to choose "Split Staff". This'll allow you to select a split point and add a new bass staff to the same instrument.

In reply to by jeetee

That’s pretty cool, thanks jeetee!

I do think Musecsore needs the option to recognise notes being played across a grand staff. That’s a pretty normal thing for piano playing. I mean, it’s easy to detect which key is designated C3 in midi (unless you’re on a Yamaha keyboard, which I believe is C4). It just has to set notes to staves based on which ones are above or below middle c.

In reply to by SteveBlower

As I said in the first post - music beginner here (well, I know about a few things, but new to piano for sure). So, that is true. I had forgotten you sometimes need to.

I guess what I'm getting at is that there are ways of making this work. There are simple ways of noticing which notes generally should fall into one stave or the other. For example, an option that puts chords with their lowest note lower than middle c in the bass stave, or visa-versa. It wouldn't be perfect, but it'd make a lot more sense than having every note appear in the stave you select.

It just needs a few minutes of thought...

In reply to by SteveBlower

I don't want to seem ungrateful for the thoughts, so I'll say thanks! I do appreciate them.

That all said, saying this is AI is like saying playing midi in via a keyboard is AI. My suggestion is so far from AI it's not even funny. Just because there's a manual way of splitting up notes after the fact, doesn't mean there isn't value in having a realtime option like the one I'm suggesting. After all, Musecore is filled with tons of similar time savers.

If the people developing it had stopped at saying people should just do things with the options it had in version 1, we'd still all be using version 1 with no progress whatsoever. I get that on forums there are developers and users. Users generally just point out how things can be done. So, it's not a surprise that's what I'm getting here.

It's a shame there doesn't seem be a way to bring suggestions directly to those who are contributing coders.

In reply to by reactor10k

You wrote:
It's a shame there doesn't seem be a way to bring suggestions directly to those who are contributing coders.

For suggestions, there is this forum:
https://musescore.org/en/forum/7
to discuss and "flesh out" ideas for new features

Earlier you wrote:
I guess what I'm getting at is that there are ways of making this work. There are simple ways of noticing which notes generally should fall into one stave or the other.
and:
It just needs a few minutes of thought...

Bingo!
New features don't just happen. Those "simple ways" need to be fully thought out, coded, and tested -- requiring more than a few minutes of thought.
So, please use the feature request forum to explain exactly the "simple ways of noticing which notes generally should fall into one stave or the other" and, by comparison, the shortcomings of the existing "Split Staff" feature .

Regards

In reply to by Jm6stringer

I like how your post makes me sound like I'm an ignorant schmuck when it comes to software development. I'm quite familiar with it. My point was - a small amount of thought can go a long way, not that a few minutes is going to result in a fully coded addition to Musecore.

I might make the suggestion on that forum (definitely appreciate the heads up there is a forum for suggestions!), but so far this forum has demonstrated the people here are more happy to defend the way that things are, than what's possible. Me suggesting things could be (and probably will be) a giant waste of time.

In reply to by reactor10k

I (dis)like how you read personal insults in a mostly factual reply. Pointing out a way things currently are (and how the end result you're looking for can be achieved using those ways) is not the same as defending them.

So let's walk through the Pro's and Con's of your suggestion.
As you mentioned, it could make sense for a certain percentage of Piano music to use a split point during chord MIDI entry. The counter question then would be whether it would be counter-productive for those other scenarios: Cross staffed Piano music, multi voices piano music, other grand staff music (marimba, accordion, harp, organ,...). My gut feeling says that in most cases that indeed will be so.

The follow-up question then becomes, for most of those other scenarios; what is the effort/cost of fixing the input which might now be broken due to the split point. Moving notes between staves after the fact means cut and pasting them.

Your argument was:
"For example, an option that puts chords with their lowest note lower than middle c in the bass stave, or visa-versa. It wouldn't be perfect, but it'd make a lot more sense than having every note appear in the stave you select."
Except thus that fixing a wrong placed note due to this setting is more involved and harder than using the split point after the fact.

So what if we'd then make it optional? A setting somewhere to affect grand staff note input (or perhaps even just grand staff piano?) with a configurable split point. It'd give you what you wanted and other can just turn the setting off. My immediate response then is to wonder how much added value such a setting would generate you? And how it balances out compared to maintaining a special setting for it (and special casing note input for it). At this point, I'm less convinced about that tradeoff.
Because instead of getting a fairly short sequence of commands to split a staff (currently via the context menu) it'd now likely mean having to navigate through the gazillion settings to find that one (or two) setting(s) to en-/disable the feature and provide the split point. It also means I'd have to go there for every piece that uses a different split point. Or still use the current split command to fix things afterwards.

But that's just my view as one of the occasional contributors. Feel free to write out your "few minutes" of thinking this through to see how you'd evaluate the/those different possible use cases.

EDIT: RE "It's a shame there doesn't seem be a way to bring suggestions directly to those who are contributing coders."
There is, you're doing it currently. Here in the forum in the open. This is how you bring your suggestions to the coders and contributors. But then in addition you get the benefit (and so do the contributors) of the hive mind of users comparing use cases, possible pitfalls and/or voicing support for proposals.

In reply to by jeetee

I don't know how to quote or get italics working here so... sorry if this isn't too easy to read.

I didn't read personal insults into a reply. The guy was being mocking. End of story.

"Pointing out a way things currently are (and how the end result you're looking for can be achieved using those ways) is not the same as defending them."

You're not wrong there, but the end results being put forward were not what I was after (although helpful). I was after a realtime solution. What people were writing sounded defensive when I reiterated what I was after.

"There is, you're doing it currently. Here in the forum in the open. This is how you bring your suggestions to the coders and contributors. But then in addition you get the benefit (and so do the contributors) of the hive mind of users comparing use cases, possible pitfalls and/or voicing support for proposals."

Yeah, thanks, but you didn't have to write that. That I realise.

So I got those few statements out of the way, because I wanted to say I appreciated your thoughts. I don't know what to do about them. If I have a great solution but your sticking point is the accessibility of the option in the settings, then... the solutions thinking rests on me, a beginner to both music and Musecore. At this point I'm sure I'd be putting in a ton of of hours on here for an issue only I seem to care about.

Again, I'll just say I was not literally talking about exactly five minutes of thinking. I was saying this kind of problem doesn't seem to require the equivalent amount of problem solving as someone trying to bend space time. My words could've been better chosen, but I would've hoped people would get the point.

Again, cheers for the genuine thoughts and contributions to the app, but life unfortunately doesn't afford me the time to focus on this small thing :)

In reply to by reactor10k

Recognize rhythms played in real-time is AI. So is guessing which hand is playing which note. For extraordinary simple music - the sort of music one could enter by hand normally in a few seconds just as easily - it's possible to guess pretty well. For music of any complexity at all - the sort of music one might be tempted to want to play in via MIDI rather than enter by other means - it's quite impossible to guess correctly, at least not with today's AI technology. Somewhere they're might be a research paper with a proposed algorithm that can do better than others, but I think you underestimate the difficulty of this.

From a practical perspective, the AI built into MuseScore works best when it doesn't need to be real-time. So instead of trying to play directly into MuseScore, instead, record your playing into a sequencer (be sure to keep to the metronome), quantize the result, then save as a standard MIDI file. Now import that, Musescore will then do the best job it can of making those guesses.

As for making suggestions, MuseScore is open source the people who develop it (including me and quite a few others here on the forums) are the ones who are reading and responding here. If you have expertise in this area - both in music and in AI programming - and wish to volunteer your services to help develop a new algorithm that would perform better, your contributions would be most welcome! But as it is, please accept that this really is a very hard technical problem, and we d the best we can while also balancing the need to honor the many other request from many other users.

In reply to by Marc Sabatella

Thanks Marc. Seemingly people are imagining I'm asking for a complex algorithm to accurately place everything where I imagine it should go. I wasn't. I was asking for something that'd save some of the time getting things about right, instead of having to shift things 100% by hand, every time I play something in. There are simple methods of implementing this kind of thing that don't require complex algorithms. Obviously that could still be difficult to develop. But, that's what I'm talking about.

I unfortunately don't have the skills to assist with contributing to the app.

In reply to by reactor10k

As mentioned, there are such ways. Either enter the music then use the split staff function, or record the MIDI file then import that. But modifying the input functions to split automatically during input is complex, as i have tried to explain. Complex isn't the same as impossible, but realize only a very small percentage of users are inputting notes via real-time MIDI. So more effort is spent on areas of the program that benefit all users. And there are only so many people working on the program, and only so many hours in the day, Thus, so far, it hasn't become a high enough priority. But if one of the users ho does value real-time input were to volunteer to implement a good algorithm for this, no reason it couldn't happen someday.

In reply to by reactor10k

What this video shows is much more limited than what we assumed you were talking about. It isn't real-time, for one thing - it's still step-time. And thus it wouldn't handle the vast majority of piano music in which there are multiple rhythms happening at once. It would indeed be relatively simple to implement and could occasionally be useful for basic chorales, but actually, it was the entry into ensemble scores where it's much more likely to be useful. On the other hand, as mentioned, the existing split and explode functions handle this in just a few extra seconds.

Do you still have an unanswered question? Please log in first to post your question.