[LAD] wanted: good online reading material for RT audio/midi software design?
torbenh at gmx.de
Thu Feb 25 01:59:35 UTC 2010
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.
More information about the Linux-audio-dev