Microtonal scales

24 views
Skip to first unread message

sev...@gmail.com

unread,
Jun 1, 2017, 7:25:39 PM6/1/17
to SpectMorph
Hi, I have just learned about this synth today and I think the audio examples on the site are just great. I'm wondering if there is any chance that microtonal scales would be supported in the future?

Stefan Westerfeld

unread,
Jun 2, 2017, 12:08:48 PM6/2/17
to SpectMorph, sev...@gmail.com
   Hi!


On Friday, June 2, 2017 at 1:25:39 AM UTC+2, sev...@gmail.com wrote:
Hi, I have just learned about this synth today and I think the audio examples on the site are just great. I'm wondering if there is any chance that microtonal scales would be supported in the future?

As far as I can see, it should not be too hard to add, as the only change is the midi -> frequency mapping. So yes, I'd like to see it supported in the future, but for now I can't make a good prediction on when it will be added (unless you want to submit an implemantation yourself).

I wonder what you had in mind on how to configure the mapping. I found scala ,scl files - would that be you want to use, or what way of configuring microtonal midi frequency mappings would you prefer?

   Cu... Stefan

Stefan Westerfeld

unread,
Jun 10, 2017, 12:58:23 PM6/10/17
to Sevish, spect...@googlegroups.com
Hi!

(I re-added the spectmorph group to CC)

On Sat, Jun 03, 2017 at 05:13:18PM +0100, Sevish wrote:
> I greatly appreciate your response. Hope you're doing well today.
>
> There are a handful of popular formats for tuning. One of them - you've already
> discovered - is the scl/kbm format. The .scl part contains the scale data,
> while the .kbm part contains the keyboard mapping and base frequency tuning
> (e.g. A440Hz or something else).
>
> .scl spec: http://www.huygens-fokker.org/scala/scl_format.html
> .kbm spec:
>
> Another popular format is AnaMark TUN. This is supported by some powerful
> plugins/developers such as Serum, u-he, LinPlug etc. The creator of TUN has
> made the implementation open source, so it may be possible to include this in
> your implementation.
>
> .tun spec: http://www.mark-henning.de/files/am/Tuning_File_V2_Doc.pdf (PDF, ca.
> 330kB)
> .tun source code: http://www.mark-henning.de/files/am/TUN-Source_V200.zip (ZIP,
> 75kB)
>
> It's only necessary to support one format. Or in the easiest case, allow the
> user to enter a list of 128 frequencies!
>
> If you want to look at some of these formats for yourself, I wrote a very
> simple web app that generates them: http://sevish.com/scaleworkshop/

All right, thanks for the links. I think I now have some understanding of what
is necessary to add this. I looked at both, but I think I prefer scl/kbm. So
here is a tentative plan on what to do.

First of all, the contents of the scl/kbm file needs to be stored along with
the other properties (so that for instance saving/loading a song with the VST
plugin will have the same microtonal settings). Basically, like other global
settings, this should go into the MorphPlan MorphOutput properties as two
strings. To keep these small, comments can be stripped.

Once this is in place, the actual mapping to frequencies needs to be computed
from these strings. Once such a function is implemented, it should be used in
the MidiSynth class (ideally only if the tuning was changed, for perfomance
reasons).

Finally, we need UI support. In the simplest case it would just allow you to
load scl/kbm files, but I'd prefer if it worked somewhat like the ZynAddSubFX
UI, where you actually can see and edit the tuning. The UI should become part
of the MorphOutputView.

> I may be able to contribute somewhat to the implementation of this feature, but
> I'm not a C++ developer and I'm not familiar with audio plugin development.
> However I appreciate that you would consider adding such a feature to
> SpectMorph. It's great sounding software, and would be very useful if I could
> play microtonal music in it. I'm in the process of moving from Windows 7 over
> to KDE Neon, so I'm keen to explore all the virtual instruments on the Linux
> platform.

Yes, I think it should be added, but I have higher priority items on my TODO.
So it may take quite a while before I actually have time to implement this. In
terms of releases, it could be 0.3.4 or 0.3.5 until I've added it.

I tried to describe what needs to be done so you (or somebody else) can do it,
but of course this requires some C++ skills.

Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan

Stefan Westerfeld

unread,
Jun 26, 2017, 9:59:01 AM6/26/17
to Sevish, spect...@googlegroups.com
Hi!

On Sat, Jun 10, 2017 at 06:55:03PM +0200, Stefan Westerfeld wrote:
> (I re-added the spectmorph group to CC)
>
> On Sat, Jun 03, 2017 at 05:13:18PM +0100, Sevish wrote:
> > I greatly appreciate your response. Hope you're doing well today.
> >
> > There are a handful of popular formats for tuning. One of them - you've already
> > discovered - is the scl/kbm format. The .scl part contains the scale data,
> > while the .kbm part contains the keyboard mapping and base frequency tuning
> > (e.g. A440Hz or something else).
> > [...]
>
> All right, thanks for the links. I think I now have some understanding of what
> is necessary to add this. I looked at both, but I think I prefer scl/kbm. So
> here is a tentative plan on what to do.
> [...]
>
> Yes, I think it should be added, but I have higher priority items on my TODO.
> So it may take quite a while before I actually have time to implement this. In
> terms of releases, it could be 0.3.4 or 0.3.5 until I've added it.

Just as an update, I started a SpectMorph issue tracker, so your issue is now

https://github.com/swesterfeld/spectmorph/issues/2
Reply all
Reply to author
Forward
0 new messages