Hi Jacob,
I don't know too much about concurrency or the details of BP2's internal
algorithms. (The grammar, polymetric expr, and time-setting algs are all
quite complex and I have never been able to look at them in depth). I do
wonder if parallel evaluation of polymetric expressions could work but I
don't really know that it couldn't and perhaps you already have some ideas
about how to do that.
I do believe that BP2's algorithms are rather unique, so there are not other
examples to work from. I'm sure that these algs are rather linear. Perhaps
finding some unrelated examples of how to take some standard "linear"
algorithms and transform them to take advantage of Erlang would be useful.
But if you need help navigating the BP code, please ask and I will do my
best to answer. There are a lot of globals and stuff that I have slowly
come to understand the purposes of. Also, a lot of the main data structures
are obscured a little by the fact that Mac Classic programming used handles
instead of pointers when allocating memory (eg. char** instead of char*).
So, you will see a lot of expressions like (*((*foo)[i].bar))[j] which would
be similar to foo[i].bar[j] if regular pointers were used.
I do have a question. Are the articles you mentioned available online? I'd
like to read them myself.
Best,
Anthony
Jacob Glenn wrote on 11/12/08 10:28 AM:
> I'm just getting started on an Erlang application that incorporates some
> ideas from Bol Processor. The goal is to have true concurrent polyphony,
> where every concurrent sound object runs in its own process and musical
> events are messages passed between processes and timestamped using a logical
> clock algorithm. I'm not necessarily interested in grammars, but I am hoping
> to take BP2's polymetric expressions, the time-setting algorithm, etc. and
> adapt them to Erlang's concurrency model. This will require reworking those
> algorithms to use timestamped messages rather than the arrays, tables, and
> other C data structures that BP2 uses.
>
> Unfortunately I don't have a lot of guidance as I haven't seen another
> application that does anything remotely similar to what I'm trying to do.
> I've done a limited amount of spelunking in the BP2 source code, but I am
> not much of a C programmer. I've read all of Bernard Bel's English
> publications (unfortunately I don't read French). The articles that have
> been especially helpful so far have been "Two algorithms for the
> instantiation of structures of musical objects" and "Time and musical
> structures."
>
> Can anyone recommend other literature or software I should look at?
|