Alpha-09 proj 30something of 56: Channel and Adder

Details of features as they're being worked on or discussed internally.
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
forum
Site Admin
Posts: 74
Joined: Fri Jun 17, 2016 3:39 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Alpha-09 proj 30something of 56: Channel and Adder

Postby forum » Tue May 02, 2017 5:55 pm

OK, I now have a demo patch showing that Moselle is now capable of doing a Hammond organ simulation.

This simulation is the new Adder module, which is built for additive synthesis. However, the patch has just one copy of this module, and it's per-PATCH. The actual voices have literally zero sound. The Adder has 91 sine waves, at the historic Hammond frequencies, which weren't quite proper mathematical harmonics. The Adder's gain for the various tone-wheels are instead turned on and off with the new Channel:NoteDownXxN variables (e.g.: NoteDownA4, NoteDownC#1, NoteDownF-1, etc.). Press a key and it turns on the proper oscillators based on where 9 MIDI controls are set such that they work like drawbars.

One odd thing about this is that the CPU doesn't really depend on the number of voices. You can hold down all the keys at once and it works fine.

------------------

It turns out I had a subtle performance bug for years, that would affect any patch that had a huge number of formulas for per-patch modules that depended solely on MIDI controls.

For most patches, fixing this bug is less than 1% improvement, but I found the bug thanks to the Hammond Organ patch I made to test the new Adder module and the addition of NoteDownA4 etc. outputs of the Channel module. Fixing the bug got about a 5x speedup in this patch. The important thing is that without this fix... my PC couldn't run the patch. Now it can!

The result is that I have a Hammond Organ emulator now, that generates the exact frequencies of the Hammond tone wheels. This makes it VERY different from trying to get an Hammond-type tone simply by using a Stored-Waveform Oscillator with the Hammond harmonics. And weirdly... this Hammond patch has no per-voice modules. It only has a per-patch module: one copy of the Adder, driven by the new NoteDownXxN variables on the channel.

I have a pretty good Leslie simulation that I could put in this patch, but the Leslie is still mono (I did it several years ago and only had stereo since a few months ago).

[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Return to “Developer's Blog”

Who is online

Users browsing this forum: No registered users and 10 guests