Hi Shannon,

> Moselle looks pretty interesting. I'm tempted to give it a test run.

Give it a shot, why not!



 > I assume you're looking for feedback on the software, however, just
looking at the website, a couple things spring to mind.

The software itself, the sound modules, website, anything, thanks!



> As a programmer, good documentation makes it easier to get started with a
new tool. Take Vuejs for example.
> There is a "Guide" which shows how to use Vue. (Great when you're a

Right.  When you fire up Moselle it loads a "default" patch and displays
it.  When shipped, the default patch is a patch telling you how to find the
first lesson of the tutorial series.  That is a set of 170+ patches, each
with a lot of explanation telling you how Moselle works, how that patch in
particular works, how to play it and hear the specific features it's meant
to illustrate, and so on.

If this is too in-depth and time-consuming, the website's "Overview" page
is in effect a "PowerPoint" presentation that should leave you
understanding very well what Moselle does and doesn't do, although it won't
leave you actually knowing the specifics of how to do it.



> There is a "API" which works as a reference once you know what you're
doing.

Yes, I'm working on such a document, which will be about half reference.
What I find though is that while developing it, I just turn to the Tutorial
section to see exactly how something works.

The doc also has a "reference sheet" which perhaps I should make available
now without waiting until the manual is done.  I should also probably put
that on the website, hot-linked to more detailed info..



>- There are "Examples" which provide a bit more information about how Vue
works in practice.

The tutorial series covers this, but min is not "a bit more info," it is, I
think, absolutely every detail.  (Again, if you see anything I've missed
let me know.)



> Can Moselle modules run at different sampling rates?

This version, Alpha 5, all runs at audio speed, which is a figure in a
config file, that is read once when the program starts.  It ships with
44100Hz, but can be changed.  (Extreme changes will probably require
changing buffer sizes etc)

Currently the entire patch runs at that speed.  I have a design for
multiple-speeds, but it's not implemented yet.  This is partly because all
components can run at audio speed.  It's hard to come up with a heuristic
to decide that an envelope should be evaluated, at, say, a 1/16th speed
"control" rate, as the envelope might be being used as an oscillator.  Of
course if its segment times are all constants, I could simply figure out
its speed, but in practice they'll probably be controlled by MIDI inputs or
other modules.  Similarly, audio oscillators and filters work fine at
control speeds.

Also, the interpreter/compiler is highly optimizing and notes where
variables can be updated only upon MIDI information receipt.  EG: saying
"Frequency = Global:FreqA + ( Voice:Note - 69 ) semis" won't bother
recalculating Frequency unless the MIDI note changes... (which happens, of
course, with legato mono playing)   (FreqA is in the config file but ships
as 440Hz.  69 is the MIDI note number of A4.)  Due to this optimization,
there may be less need to run patches at multiple speeds.



> For example, it could be beneficial to oversample the audio inside a
distortion module, and run the final mixer module at the lower project
sample rate.

I don't have a design allowing a module to oversample.  My workaround is to
just run the whole thing at the highest speed you want (currently), or
(soon) run the patch at the highest speed but then run most of the modules
in the patch at lower speeds.
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to