On Monday, September 26, 2011, Niek van den Berg wrote:

> on a staff we will use this notation-pitch instead of the MIDI pitch.

It's the same idea as what I was getting at.  I always thought the Clef would 
be the place to make this work, since that's what's already used for making 
height-on-staff determinations for the vertical layout code.  It looks left 
for the nearest clef to figure out what to do.

> If a segment belongs to a percussion track 

That concept isn't as easy as it sounds on the surface.  A "percussion track" 
would be a Track that happens to be playing through a percussion Instrument 
(Track, Segment, etc. with capital letters referring to Rosegarden classes, 
not generic English words) at this moment, but it's really the Instrument, 
rather than the Track, that's making this happen.

We never did it, but at one point we talked about being able to change the 
Instrument on a Segment per segment basis, rather than setting it once at the 
Track level.  It seems less likely that this will ever happen, but if it did, 
there would no longer be anything like a "percussion track" concept left at 
all.

A Clef, on the other hand, as a physical Event entity contained in the 
Segment, would always follow the Segment it accompanied, wherever it happened 
to go, and whatever else happened around it.  This would be a more robust way 
to handle the matter, I think.

> Another attribute we require is a note head. A snare drum is usually noted
> using a normal note, a high-hat uses a X as a notehead.

Getting the glyphs into play is complicated and nasty, but if I knew what 
glyphs were needed, I could take care of the business end of drawing them 
fairly easily.  Hook that up to some new properties or something, I don't know 
quite how, and this is done.  Consider it the part of this whole business I'm 
most likely to be able to accomplish in a few evenings on my own.
 
> Percussion is noted on a 5-line staff (drumset) or a 1-line staff so maybe
> another attribute will tell how to handle a certain percussion instrument
> (= a MIDI pitch) on a 5- or 1-line staff.

This is indeed another issue, since we currently only have one staff concept, 
and it has five lines.  I'm thinking about the most reasonable way to handle 
this is to a) make it possible to have different kinds of staffs, and b) 
control this selection in Track Parameters, rather than on a per Segment 
basis.  (If we end up arguing ourselves out of using Clef as I suggested 
above, then we could conceivably create a "percussion track" through some 
toggle in Track Paramters too, it occurs to me just now.)

The concepts _should_ be modular enough that it's possible to build a new kind 
of staff with its own layout engine, but this is probably going to require a 
dramatic amount of effort to implement; possibly a whole new set of parallel 
classes, or maybe not quite that much effort.  I've never fooled with any of 
that, and Cannam's your man there, wherever he is.
 
> We can provide a default setting but using a simple dialog a user can
> modify the setting. Mscore uses already such a dialog.

Mscore is also a notation editor, don't forget.  Never lose sight of how much 
more ridiculously complicated it can be to get all of this done inside a 
sequencer, and never forget that we have a sizable faction of users who think 
notation is just a lot of useless dead weight.
 
> By letting any user define him/her own mapping will solve this problem,
> isn't it?

Yes, it just represents the largest amount of work in terms of making some new 
extension to the bank editor and all that.  That code has always been a real 
horror show.  You get into it far enough to do what you have to do, then you 
slam the lid and sit on it, and try to keep the monsters from flying out of 
there.  It really is a beast.
 
> Percussion notation isn't that simple, I agree. But a 15.000-page treatise,
> I think I would ignore it. I'm certainly not capable of implementing a
> percussion notation for all kind of advanced percussion. However a
> "normal" drumset part should be feasible.

Anything is better than nothing.  I'd like to be able to write parts targeted 
at something like a high school symphonic band or thereabouts.  Of course, 
even if I had the features there, I wouldn't know how to write the notation.

That's where Rosegarden _could_ come in handy, in the same way I can 
potentially do a credible job of writing a part for your alto saxophone by 
letting Rosegarden inform me what notes to avoid writing for you, and how to 
transpose for you.
 
> I don't think that's required. Just one preset will do, "Percussion" which
> will set the percussion clef and will force the notation editor to use the
> notation-pitch instead of the MIDI pitch.

They already exist though.  The "create segments with" parameters govern what 
clef a segment is created with, and some huge number of them in the database 
specify a "two bar" clef that doesn't exist yet.  Most of these would probably 
want to go on a one-line staff.

It's something else to think about, so all of Rosegarden's features tie in 
together neatly.
 
> To conclude, an approach as implement by mscore should be feasible and I'm
> willing to sepnt some time on this.

I am too, if I'm not going at this alone.  It's too much for me to think about 
on my own, but I can certainly help.

I don't know what my work situation is going to look like though.  At the 
moment, I've changed jobs again, and I've been in training for a month.  The 
glorious thing about being in training is that I'm on day shift, and I'm 
working fairly short 40-50 hour weeks.

I have no idea what I'm looking at when I get cut loose until it happens, but 
I could end up working 70 hours on night shift again, like the job I left.  
I'm gambling that won't be the case, which is why I changed jobs in the first 
place, but it's all up in the air until I get my assignment at the end of 
training.

I drive a gasoline (petrol) tanker now, incidentally.
-- 
D. Michael McIntyre

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to