Alpha #10 making progress
Posted: Tue Jun 20, 2017 6:10 pm
The short version: Moselle will be at least 2x faster than before, based on my initial results in speeding it up. I need maybe 3-4 weeks.
The long version:
Alpha #10 is basically turning Moselle from an "interpreter" into a "compiler." Up until now, Moselle was slow because Moselle itself is always running, figuring out what your patch should output next. In the next release Moselle is turning the patch into something the computer itself can run, then turning control over to that and letting it work. You can picture an "interpreter" as controlling an industrial robot with a joystick, while you read an instruction for what it's supposed to do. The "compiler" in effect teaches the robot to do the job itself and it can do it much faster than you could.
So: yesterday and today I finally got compilation working! Except not really. No matter what your patch is, the result is as if it was just a one-osc voice playing a sinewave. So: proof of concept is done. And it's twice as fast (twice the polyphony) as before.
Tonight I've done most of the coding for getting the first module type (Oscillator) to actually compile. I have some other subprojects that need to be done (eg, compiling formulas) but it's moving along. I can't quite see the entire solution in my head, but right now it looks, well, a lot easier than I was expecting.
The long version:
Alpha #10 is basically turning Moselle from an "interpreter" into a "compiler." Up until now, Moselle was slow because Moselle itself is always running, figuring out what your patch should output next. In the next release Moselle is turning the patch into something the computer itself can run, then turning control over to that and letting it work. You can picture an "interpreter" as controlling an industrial robot with a joystick, while you read an instruction for what it's supposed to do. The "compiler" in effect teaches the robot to do the job itself and it can do it much faster than you could.
So: yesterday and today I finally got compilation working! Except not really. No matter what your patch is, the result is as if it was just a one-osc voice playing a sinewave. So: proof of concept is done. And it's twice as fast (twice the polyphony) as before.
Tonight I've done most of the coding for getting the first module type (Oscillator) to actually compile. I have some other subprojects that need to be done (eg, compiling formulas) but it's moving along. I can't quite see the entire solution in my head, but right now it looks, well, a lot easier than I was expecting.