[LAD] wanted: good online reading material for RT audio/midi software design?

torbenh 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.


-- 
torben Hohn



More information about the Linux-audio-dev mailing list