-
Notifications
You must be signed in to change notification settings - Fork 31
Microtonality #141
Comments
Hey, thanks for checking out Axiom! |
@suhr Yes, all numeric values (including notes) are fractional, so you could add/multiply to change tuning.
Alternatively, you can configure tuning in the host application that Axiom is running in. Thanks for providing references to those file formats. I'll have a look at them, however at least at the moment please keep in mind that it's semi-out of scope (since, at least from what I can tell, it's something that would be handled by the host). |
Hey @suhr, are you able to let us know if what I described above is a suitable solution to the feature request? If so, feel free to close this (or we will in a few days), if not, can you elaborate further so we can work out how to implement it? |
For some cases it is. But in general case you want to have a map MIDI note → Pitch. It is reasonable to just load |
Yeah, fair enough. From my perspective at the moment though, it looks like something that should/would be handled by whatever host Axiom is running in (is this a correct assumption?). While it'd definitely be nice to have as a feature at some point, it's not much of a priority for us at the moment for that reason (and since this is entirely a free-time project, unfortunately I'm not able to get everything that I'd like to done :/). Of course, you're free to implement it and make a PR if you're willing to try your hand at it. If you do want to, let me know and I can walk you through the process :) |
Sure. Can I implement it in Rust? |
Awesome! Unfortunately most of it would be in C++ since that's what the actual editor/GUI app is written in - at the moment the compiler (bit that sits between the editor and LLVM) is written in Rust. I'm open to introducing Rust to more components though :) The first step here of course would be to figure out how this should look from a user perspective. I'm not sure how familiar you are with how Axiom actually works, but basically the modules you see are just pre-built sets of nodes which were made in the editor with the scripting language (called Maxim). If you drag one in and double-click it, it'll open up the code panel and you can see or edit how it's implemented. You can also make a fresh, empty node by right clicking somewhere and clicking "New Node". So basically we need a way for a Along those lines I guess we'd also need a way to package those files into the save file as well (which the sampler would also need), which could integrate with #68. Does that make sense at all? What do you think? |
I'll take a look at Maxim modules. |
For tunings, it may be reasonable to just have types for multi-line text. Then you have just use two modules for kbd+scl. Btw, I have written a module for equal temperaments in maxim. How do I make it look like built-in modules? And how do I add it to the global palette? |
Just to clear up some terminology, nodes are the things that appear in the main area and have controls on them. A module is one or several nodes together, in the library. The distinction is pretty important, since modules can contain several nodes (e.g. see the But anyway - you can save nodes as a module by selecting the ones you want, then right clicking and picking "Save As Module...". The library is persistent, so any modules you save are always accessible. I'm not that much of a fan of passing things around in plain text in the editor (if that's what you're referring to?), since it means we suddenly have the possibility of runtime errors which can happen at any time, e.g. due to text that isn't in the format that's expected. In general Axiom is designed so that any action you can perform in the editor is valid, or an error is shown when you perform the modification in rare cases (like syntax/compile errors). Unfortunately passing text around can't guarantee that anymore, since it's always possible to change the text to something else dynamically causing an error. |
All right, can we have a list of values instead (though it is less convenient than just text)? |
No description provided.
The text was updated successfully, but these errors were encountered: