Hello,
I am considering becoming a fairly serious developer for rosegarden. My only fears (besides 3 other programming projects) are
(1) I never wrote anything using KDE/QT toolkits (or any other gui really except swing and j2me for mobile devices)
(2) Learning the code base could be a daunting and tedious task.
However, I have about 2 years of job related C++ coding experience and
have dabbled in linux audio development with a visualization plugin
(projectM: xmms-projectm.sourceforge.net).
I am still somewhat new to midi lingo so my terminology may be off
here. My primary goal is to create a more advanced "event" editor. In
particular, products like garage band and logic pro have this click and
drag interface to indicate a parameter (_expression_, pitch bend,
modulation, etc) changing over time. Each click creates a new line
segment. I'm sure you have seen these. However, my sequencer / midi
background stems from the yamaha rm1x. It has a crude interface to add
continuous parameter changes by specifying the interval, midi
parameter, start / end values, and a "curve" adjuster. Essentially it
modifies the parameters in linear segments but the curve value skews it
in some quadratic fashion.
I would like to implement in rosegarden something in the spirit of the
rm1x. The primary difference being I would like to *specify* a function
instead. A first order implementation would be you can choose from a
small set of builtin functions (trig functions, step functions,
polynomials, log, whatever) and then select the time interval, midi
paramater and initial values. A second order version is an equation
parser so the user can write any function they like. An even more
complex version is parameter covariance. I will give an example on how
this complexity may simplify a composer's life:
(1) Composer records a midi sequence track. It is 4 measures long.
(2) He wants the _expression_ to decrease proportional to modulation within the 4 measures.
Let E_0 and M_0 be the initial values for _expression_ / modulation.
Then if 't' is some time unit, 'm' the current modulation value, 'e' the current _expression_ value, he could write the equations:
f(m) = M_0 + 2t
f(e) = E_0 - m
to represent how he wants these parameters to change in relation to each other.
Thus, the composer punches these formulas into some integrated equation
editor and rosegarden will automatically apply the events
across that interval according to the whatever granularity 't' is
assumed to be. Ideally it will be shown visually much in the fashion
that
garage band does. That is, denote each parameter with a unique colored
line over a measure histogram. Finally, other interesting ideas
are to have covariance between parameters on separate midi tracks but that is a headache I'll avoid for now.
I know this is a very rough idea of my goals. Let me know what you guys
think. I am very serious about getting something like this implemented.
Thanks for a great opensource project,
Carmelo
- [Rosegarden-devel] Hello rosegarden dev team Carmelo Piccione
- Re: [Rosegarden-devel] Hello rosegarden ... D. Michael 'Silvan' McIntyre
- Re: [Rosegarden-devel] Hello rosegar... Nicholas Bailey
- Re: [Rosegarden-devel] Hello rosegarden ... carl . seleborg
- Re: [Rosegarden-devel] Hello rosegar... D. Michael 'Silvan' McIntyre
- Re: [Rosegarden-devel] Hello rosegar... Carmelo Piccione
- Re: [Rosegarden-devel] Hello ros... Carl Seleborg
- Re: [Rosegarden-devel] Hello rosegarden ... Guillaume Laurent
