Archie3d / aeolus_plugin

Pipe organ synthesizer (VST plugin)
https://archie3d.github.io/aeolus_plugin/
GNU General Public License v3.0
95 stars 7 forks source link

further scale(s) / temperament features #26

Open elpeh opened 1 year ago

elpeh commented 1 year ago

Hello,

missing a suitable electronic instrument for rehearsal, I'd like to use Aeolus (standalone on Mac) with 1/6 comma meantone temperament instead of 1/4 comma as implemented.

I took data from https://www.huygens-fokker.org/docs/scalesdir.txt, converted meansixth.scl into the frequency ratio format aeolus uses (and double checked meanquar.scl to fit the existing MeanQuart). Attached is a untested patch to scale.cpp.

I don't know how exactly to build an extended version on Mac M1. Instructions somewhere? Could you build it for me (as I try to test as soon as possible).

Regarding temperament: Base is C fixed. It would be nice to be able to change that for non-equal temperament (my instrument has only 1/4 comma for meantone, but allows any semintone as base). Should be not too complicated to implement.

More extensive feature would be adding temperament definitions from e.g. files.

Thanks for your work on Aeolus, regards, Lutz aeolus_MeanSixth.patch

lewisalexander2020 commented 1 year ago

Not that I’m dismissing Aeolus at all, it’s a good app and with improvements could be better, I can officially recommend / endorse Modartt’s Organteq 2 for professional use. Sorry if this suggestion upsets people here but if you seriously need a pro level organ suite but can’t justify hauptwerk and the stress of buying sample libraries, Organteq 2 is the way forward. I’ve worked with the developers to make it blind friendly and as so it earns accreditation from me and my endorsement.

lew

On 24 Oct 2023, at 10:33, elpeh @.***> wrote:

Hello,

missing a suitable electronic instrument for rehearsal, I'd like to use Aeolus (standalone on Mac) with 1/6 comma meantone temperament instead of 1/4 comma as implemented.

I took data from https://www.huygens-fokker.org/docs/scalesdir.txt, converted meansixth.scl into the frequency ratio format aeolus uses (and double checked meanquar.scl to fit the existing MeanQuart). Attached is a untested patch to scale.cpp.

I don't know how exactly to build an extended version on Mac M1. Instructions somewhere? Could you build it for me (as I try to test as soon as possible).

Regarding temperament: Base is C fixed. It would be nice to be able to change that for non-equal temperament (my instrument has only 1/4 comma for meantone, but allows any semintone as base). Should be not too complicated to implement.

More extensive feature would be adding temperament definitions from e.g. files.

Thanks for your work on Aeolus, regards, Lutz aeolus_MeanSixth.patch https://github.com/Archie3d/aeolus_plugin/files/13113084/aeolus_MeanSixth.patch — Reply to this email directly, view it on GitHub https://github.com/Archie3d/aeolus_plugin/issues/26, or unsubscribe https://github.com/notifications/unsubscribe-auth/ATQDNKOERG5Y4MAWFR5XN5DYA6DPLAVCNFSM6AAAAAA6NMRXGCVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE2TQOBWGY2TKMQ. You are receiving this because you are subscribed to this thread.

Archie3d commented 1 year ago

Hi Lutz, thanks for the contribution, Here is a precompiled macOS standalone build with your changes applied.

Aeolus_macOS_standalone_issue26_8d58081f.zip

The non-C-based scaling - I'd need to think how to show this nicely in the UI, because having a long list of scales does not look nice to me.

elpeh commented 1 year ago

Great, thanks for the very fast action. Seems to work correctly (at least some frequencies tested with a tuner app are as expected).

Regarding base note: a further selector for semitones (maybe inactive for equal temp.)? This is necessary as additional parameter for Rankwave::createPipes / retunePipes, too, I think.

elpeh commented 2 weeks ago

Hello again,

saw #38 proposal and thoughts. If work in this direction will be done (or before :-): please consider to allow flexible temperament support within the plugin/standalone nonetheless by directly importing scala scl files, maybe simply all from some subdirectory. I found the MIT-licensed C++-library [https://github.com/MarkCWirt/libscala-file]() which yields the necessary frequency ratios. Purely constant based handling should be changed, of course - but it should be quite easy to implement (The lib as it stands doesn't parse the description though, but even only using the file names could be enough). Regarding UI for selecting non-C-based scaling.. maybe I miss the point: a drop down with 12 semi tones, inactive when equal temp. is selected, is not appropriate?

Lutz

Archie3d commented 2 weeks ago

Hi, I am exploring the MTS-ESP, since this fits better for the plugin use case, because it must be synchronized with other instances and other instruments within a DAW session. The "master" tuning plugin will allow then to import *.scl files and propagate the tuning to all the plugins that respond to the MTS. This probably will not work in a standalone version, perhaps an alternative implementation will be required.

elpeh commented 2 weeks ago

Yes - usage of non-equal and especially "more special ones" with the standalone version is probably very niche... that's why a think a file based "UI" might be enough. (Maybe I would find time to propose an implementation. No build process setup on Mac yet, though.)

Archie3d commented 1 week ago

38 (merged) Implements MTS tuning now. Standalone plugin will also respond to the MTS master tuning (since the tuning is global). However the master tuner must run in a DAW or any VST host in fact, it will still affect a standalone plugin instance.