Hi
I've just pushed initial microtonal support to Mamba.
supports now scales from 10 to 22-edo.
This works only when fluidsynth is active.
Moderators: MattKingUSA, khz
Hi
I've just pushed initial microtonal support to Mamba.
supports now scales from 10 to 22-edo.
This works only when fluidsynth is active.
I've implemented now the possibility to setup a custom keymap in relation to the edo. Next step will be to allow multiple custom keymaps, say one for each edo, and load the one for the selected edo automatically. After that we need a MIDI mapper, so that you could map your MIDI keyboard to match the selected edo keymapper.
However, I've a lot of fun already with microtonal setups as it is now.
So I've ditched all the edo's and implemented Scala tuning file support. Now you could load what ever tuning you wish into Mamba (via drag n' drop or via the file menu). The Keyboard will reflect the tuning ratios from the Scala files (as shown above with the edo selector).
I keep 3 modes in the selector, its 12-Just intonation, 12 edo and Scala. You could create a custom keymap file for each of them.
Tunings will be loaded into the selected channel, when you select "--" in the channel selector and load a new tuning it will be loaded into all channels.
beside scl files I've implemented now as well support for *.kbm (Keyboard mapping) files, so you could map your MIDI keyboard to match the loaded scala file. This works for jack and alsa input.
this is great news
I was wondering, did you implement the Surge Synth Team's Tuning Library to implement this?
https://surge-synth-team.org/tuning-library/
I was also wondering if you had any plans to integrate MTS-ESP?
oddy.o.lynx wrote: ↑Thu May 18, 2023 5:19 pmI was wondering, did you implement the Surge Synth Team's Tuning Library to implement this?
No, I use this one:
https://github.com/MarkCWirt/libscala-file
to read the Scala files and implemented a algorithm to convert the files to fluidsynth tuning pitches.
Same for reading kbm files, I read the kbm files with the help of libscala-file and then convert those to a mapping matrix.
oddy.o.lynx wrote: ↑Thu May 18, 2023 5:19 pmI was also wondering if you had any plans to integrate MTS-ESP?
Not really, as this is not a plugin.
No. But there is Fluida.lv2
https://github.com/brummer10/Fluida.lv2
I would implement microtonal support there as well.
I look forward to that. As an aside, I am on Debian 11 and had to make these adjustments to be able to build Fluida.lv2
Code: Select all
diff --git a/Fluida/fluida.h b/Fluida/fluida.h
index 2c960e5..7edf9b8 100644
--- a/Fluida/fluida.h
+++ b/Fluida/fluida.h
@@ -22,16 +22,16 @@
#ifndef FLUIDA_H_
#define FLUIDA_H_
-#include <lv2.h>
-#include <lv2/lv2plug.in/ns/ext/atom/atom.h>
-#include <lv2/lv2plug.in/ns/ext/atom/util.h>
-#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
-#include <lv2/lv2plug.in/ns/ext/midi/midi.h>
-#include <lv2/lv2plug.in/ns/ext/urid/urid.h>
-#include "lv2/lv2plug.in/ns/ext/patch/patch.h"
-#include "lv2/lv2plug.in/ns/ext/options/options.h"
-#include "lv2/lv2plug.in/ns/ext/state/state.h"
-#include "lv2/lv2plug.in/ns/ext/worker/worker.h"
+#include <lv2/core/lv2.h>
+#include <lv2/atom/atom.h>
+#include <lv2/atom/util.h>
+#include "lv2/atom/forge.h"
+#include <lv2/midi/midi.h>
+#include <lv2/urid/urid.h>
+#include "lv2/patch/patch.h"
+#include "lv2/options/options.h"
+#include "lv2/state/state.h"
+#include "lv2/worker/worker.h"
#define PLUGIN_URI "https://github.com/brummer10/Fluida.lv2"
#define PLUGIN_UI_URI "https://github.com/brummer10/Fluida_gui"
diff --git a/Fluida/lv2_plugin.h b/Fluida/lv2_plugin.h
index d44383f..5845d4a 100644
--- a/Fluida/lv2_plugin.h
+++ b/Fluida/lv2_plugin.h
@@ -19,8 +19,8 @@
*/
-#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
-#include "lv2/lv2plug.in/ns/extensions/ui/ui.h"
+#include "lv2/core/lv2.h"
+#include "lv2/ui/ui.h"
// xwidgets.h includes xputty.h and all defined widgets from Xputty
#include "xwidgets.h"
diff --git a/libxputty b/libxputty
--- a/libxputty
+++ b/libxputty
@@ -1 +1 @@
-Subproject commit 10aac63b6d3fde177ef0cf07d014c3bff3d72688
+Subproject commit 10aac63b6d3fde177ef0cf07d014c3bff3d72688-dirty
So scala *.scl support is implemented in Fluida now. Keyboard mapping is still missing for now.
I've switched the LV2 include path as well to match the ones used in debian 11. There was a version of LV2-dev released (was it last year?) which didn't work with the short include path, hope that this is now gone to archive.