|>>I think a swing knob that influences on-the-fly calculations without changing |
>>any hard data is unlikely. Surely given the level of interest in this over
>>the years, there must be a pretty stiff reason why this never materialized.
>>I don't know what the reason might be though.
Rather than a swing knob, how about a "swing factor" which could be a simple variable held in a supporting file. The calculations would not have to be done on the fly or in "real time" (although I see it as an option), rather they could be performed "just in time", either when the file is opened by the program or when the swing factor is change by the user.
Ok now perhaps I should look at the code, any pointers on how to get orientated to the project? Actually I would love to contribute some code to rosegarden (which I
guess would involve quite a learning curve for me).
--- On Mon, 20/4/09, D. Michael McIntyre <firstname.lastname@example.org> wrote:
From: D. Michael McIntyre <email@example.com>
Subject: Re: [Rosegarden-user] add a little swing
Date: Monday, 20 April, 2009, 7:08 PM
On Monday 20 April 2009, GARY SEVIOUR wrote:
> rosegarden can do it. I guess you can do it manually but the notation is
> going to look wrong.
We have two durations for everything, and it's definitely possible to have
clean looking notation mated to a human recording that swings. Depending on
how much swing there is, a little or a lot of hand working of the notation
might be required to clean it up.
We have a "swing" setting on the
grid quantizer, but I'm not sure
this is, or, honestly, quite what it does.
I only see three feature requests for this, which surprises me somewhat.
Swing comes up fairly often, and it's something we've never been able
address adequately. Chris would have to offer any further details on the
technical reasons for this, as MIDI timing and quantization related issues
are definitely his department.
I think a swing knob that influences on-the-fly calculations without changing
any hard data is unlikely. Surely given the level of interest in this over
the years, there must be a pretty stiff reason why this never materialized.
I don't know what the reason might be though.
Thinking about solutions that do involve making hard changes to the data, this
is all more of a math problem than I'd want to try to solve myself, but it
definitely seems like something that could be done
either through internal
code to manipulate events as objects, or through external code to manipulate
XML, rewrite it, and save the results. Regardless of how the data wound up
in that state, Rosegarden could handle a file with swing in it pretty well.
As proof of that, I got some hands on, and found all of this to be completely
MISERABLE to do by hand, even manipulating the XML manually. Definitely a
job for a computer to do. I didn't produce the nice swung scale I set out
whip up, because it was just too much work, but I did at least confirm that
all of this should work fine when you plug right right numbers into the data
As far as obstacles to scripting, we apparently don't write out an
absoluteTime property for events that aren't notation quantized, and newly
created events are not notation quantized until you do this explicitly in one
of several ways. This means there are no
tags in the file to edit, and you
have to insert your own tags at appropriate places. It adds to the
complexity of scripting this externally.
Doing it on the inside of the code would be less complex in some ways, but
harder in others. Either way you slice it, it's an undertaking for sure.
D. Michael McIntyre
Stay on top of everything new and different, both inside and
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today.
Use priority code J9JMT32. http://p.sf.net/sfu/p
Rosegarden-user mailing list
Rosegardenfirstname.lastname@example.org - use the link below to