[fomus-devel] ongoing improvements....

David Psenicka dpsenick at uiuc.edu
Mon Apr 17 16:51:51 UTC 2006



Mika Kuuskankare wrote:

>
> On 11.4.2006, at 21.12, David Psenicka wrote:
>
>> I found a few large numbers in some of the slur/text spanner marks  
>> (they look more like addresses or indexes)--I'm not sure if that's  
>> what you want in there.  Originally fomus was supposed to accept  any 
>> "level" numbers and sort it all out (so the numbers that go  into 
>> these marks could actually be treated like IDs for each mark),  but I 
>> think that creates problems and confusion--
>
>
> I actually thought these *were* IDs, which I considered to be a good  
> idea. I use a similar idea in ENP and when converting to FOMUS I  
> simply used the (unique) address of the slur instances (in my  
> program), for example, to distinguish between different simultaneous  
> slurs. I, for one, think that this id approach should fit the spirit  
> of your program rather nicely. After all, FOMUS seems to sort  out  
> much more difficult things for the user (such as voice distribution)  
> as it is. I guess the main idea is to distinguish between  
> "instances". BTW, I tried the v0.1.65 and got no errors but instead  
> different results with my bignums and the "small" numbers.
>
>> so now I've changed it so slurs (and any other spanner mark that  
>> gets a "level" number) should only use one of several unique  numbers 
>> (such as 1 & 2 for two levels of slurs).  Within each  "level" fomus 
>> tries to complete missing start and end marks and  other problems it 
>> finds, so I think this will be less confusing.
>
>
> Does the "level" then (being "1" or "2", etc) affect the output of  
> the backend, i.e., does it make a given slur with some "level" number  
> to be above another with a smaller "level" number? Does this mean  
> that you have to start with "1" and do some book keeping on your own?
>

Actually, I'll have fomus accommodate both approaches (so the user can 
treat the numbers as either levels or ids)--it almost works this way 
now...  So if you use the numbers like IDs you'll have to supply all 
:starts and :ends for every slur but if you only use "1" and "2" you can 
be lazy and omit the :starts or :ends within each "level".  In all cases 
when there are overlapping slurs, the lower numbered slurs or marks will 
end up being closest to the staff.  I think I've rewritten this 
algorithm more than any other in the program (I've gone through several 
slightly different ways of handling this), though this seems like the 
right way to do it now--so once I implement these changes I think it 
will finally be set.

> BTW, have you ever considered :div being an attribute to voice  
> instead of part? For example, in case of 5/8, where the first voice  
> is beamed 3 + 2 and the second voice is beamed 2 + 3?
>
Actually, this might already be possible :) ...  If you create two 
timesig objects that are identical but with different :div slot values 
and assign these to the appropriate parts, fomus should give you 
different groupings in different parts.  I have to test this--I've been 
saving this feature (multiple simultaneous timesigs) to finish later but 
as long as polymeters aren't involved it should work.

-David



More information about the Fomus-devel mailing list