On Thu, Feb 25, 2010 at 01:00:34AM -0000, James Morris wrote:
On Wed, February 24, 2010 23:15, Harry Van Haaren
wrote:
1) MODEL:
jack_process callback - where midi data is output, timebase polled,
the model is a datastructure.
its the sequence or data that is your document.
2) VIEW:
the gui - where the user controls generation of notes and is shown notes
that play
additionally the process_thread could be considered a view too.
this view is a linear view, which only sees short parts of the model.
so generally you can get away with providing a copy of the model.
3) CONTROLLER:
i) time pattern: 1d - note position & duration
ii) pitch pattern: 2d - pitch & velocity
controllers modify your model.
if your model has a bit of complexity, you cant share your model in a
lockfree manner between the 2 views.
so basically both views must own a copy of the model. and you need to
figure out a way to apply controllers to both copies of the model.
or use rcu techniques, to modify one copy of the model. and then do
an atomic exchange.
--
torben Hohn