• Adaptive retuning (JI) synthesizer

    From Andrew T.@and4y2@turnquist.name.invalid to rec.music.experimental,rec.music.makers.synth on Tue Sep 23 01:38:15 2025
    From Newsgroup: rec.music.experimental

    Hi all,

    I've been interested for a while now in Just Intonation tunings and the resultant harmonies, such as the pure fifth frequency ratio of 3:2.
    The main problem this has always presented (from what I understand)
    is that a series of 12 pure fifths doesn't bring you back to an octave,
    leaving a wolf interval somewhere to close the circle.

    With most acoustic instruments (certainly pianos and organs) we are
    restricted to 12 fixed pitches per octave. I thought, what if we
    could adjust those pitches in real-time, relative to what notes were
    already played? Difficult to impossible in the acoustic world, but
    wouldn't be too hard with a computer synth.

    So I've created a (fairly simple) Linux synthesizer program to allow me to
    play with such adaptive tuning. This synth translates each MIDI note to
    a frequency based on the interval between it and a reference note (either
    the last, lowest, or loudest note played/playing). So any time you play
    a fifth above the last note (or bass note) it plays a frequency of the
    3:2 ratio. (There are a few more details, but that's the basic idea)

    If anyone is interested in playing with it, I put it up for
    download on my website:

    https://www.turnquist.name/software/synth/

    The current version is 1.2.0 (MIT license). It's still a bit crufty, as
    there is no autoconf or similar, but it should work on most Linux systems.

    There's a sample of it's output (a rather imperfect performance of mine)
    there as well. It's perhaps anachronistic in that I use the vintage
    X Toolkit/Athena Widgets for the interface. Other than that, the only dependency is JACK for MIDI/audio I/O.

    I'd be interested in feedback on both the program and the general
    idea of adaptive retuning.

    Followup to either rec.music.experimental or rec.music.makers.synth,
    whichever is more appropriate.

    --Andrew
    --
    Andrew Turnquist, Short Tract, New York, USA
    ... wandering the streets of Usenet ...
    (Remove numbers and .invalid for email address)
    "Do what you can with what you have where you are." -T Roosevelt
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Dmitri Volkov@dmitri@dmitrivolkov.com to rec.music.experimental,rec.music.makers.synth on Fri Sep 26 18:48:53 2025
    From Newsgroup: rec.music.experimental

    On 9/22/25 9:38 PM, Andrew T. wrote:

    I'd be interested in feedback on both the program and the general
    idea of adaptive retuning.

    Cool stuff! Haven't had a chance to play around with it yet, but it's nice to see more work in this area.

    I spent some time looking into adaptive retuning software a few years ago, here's some other projects which you might find interesting, if you haven't encountered them yet:
    - Hermode tuning: http://hermode.com/index_en.html
    - Groven piano: https://legacy.wmich.edu/mus-theo/groven/index.html
    - Alt-tuner: https://www.tallkite.com/alt-tuner.html
    - Mutabor: https://github.com/keinstein/mutabor
    - Just Intonation: http://download.just-intonation.org/Resources/Public/ (their main website is down but most of the interesting stuff is here)

    And my own project Pivotuner which I think works similarly to yours: https://www.dmitrivolkov.com/pivotuner

    I wrote a small paper comparing some of the approaches, and detailing how Pivotuner works here: https://arxiv.org/pdf/2306.03873

    My issue with most of these softwares (including Pivotuner) is that it's hard to intuitively control the tuning/reference note in real-time/improvisatory scenarios. Wondering if you have any thoughts about this and how synth-aw fares?

    Given that you're not just at the note level but also the audio level, you might also be interested in https://newtonality.net/ which generates a synth sound that sounds "pure" regardless of the tuning. The associated YouTube videos are quite good.

    There's my tuning info dump for the day, hopefully some of it is interesting.

    Best,
    ~Dmitri
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Andrew T.@and4y2@turnquist.name.invalid to rec.music.experimental,rec.music.makers.synth on Wed Oct 8 03:32:56 2025
    From Newsgroup: rec.music.experimental

    Thanks for the reply and the links. There's a lot there to digest,
    but it's great to know there are others out there working on this
    obscure but, IMHO, important topic.

    On 2025-09-26, Dmitri Volkov <dmitri@dmitrivolkov.com> wrote:

    My issue with most of these softwares (including Pivotuner) is
    that it's hard to intuitively control the tuning/reference note in real-time/improvisatory scenarios. Wondering if you have any thoughts
    about this and how synth-aw fares?

    That is always a challenge, as there's no obvious way for the software
    to know what note should be the reference. I could see an extension
    to MIDI or notation software like lilypond that could include a
    back-reference for each note that indicates what note it should be
    referenced to, but that's pretty useless for performance.

    synth-aw is strictly algorhithmic as far as the reference note. The
    first versions simply used whatever was the last note played. I've
    since added options for using a currently sounding bass note as well
    as the current loudest note (both fall back to last if there are no
    notes sounding). This could theoretically be changed via a MIDI pedal
    or similar.

    One possibility for real-time control would be using a keyboard with
    aftertouch and using aftertouch to indicate a desired reference note.
    I don't have a keyboard with aftertouch though, so I couldn't test
    this.

    Given that you're not just at the note level but also the audio level,
    you might also be interested in https://newtonality.net/ which generates
    a synth sound that sounds "pure" regardless of the tuning. The associated YouTube videos are quite good.

    I'll have to look at that one. Most of what I've done at the audio
    level has been strictly out of (assumed) necessity, as I didn't know
    of any way of passing frequencies to existing synths (at least under
    Linux). Though reading through your Pivotuner Guide, I should
    probably read up on MPE and MTS-ESP, as they may be the glue between
    what I'm working on and other sound generators, which would be more
    flexible.

    There's my tuning info dump for the day, hopefully some of it is interesting.

    Very interesting. Thanks for the thoughts (and links).

    ~~ Andrew
    --
    Andrew Turnquist, Short Tract, New York, USA
    ... wandering the streets of Usenet ...
    (Remove numbers and .invalid for email address)
    "Do what you can with what you have where you are." -T Roosevelt
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From John Ames@commodorejohn@gmail.com to rec.music.experimental,rec.music.makers.synth on Wed Oct 8 07:58:30 2025
    From Newsgroup: rec.music.experimental

    On Wed, 8 Oct 2025 03:32:56 -0000 (UTC)
    "Andrew T." <and4y2@turnquist.name.invalid> wrote:

    That is always a challenge, as there's no obvious way for the software
    to know what note should be the reference. I could see an extension
    to MIDI or notation software like lilypond that could include a back-reference for each note that indicates what note it should be
    referenced to, but that's pretty useless for performance.

    synth-aw is strictly algorhithmic as far as the reference note. The
    first versions simply used whatever was the last note played. I've
    since added options for using a currently sounding bass note as well
    as the current loudest note (both fall back to last if there are no
    notes sounding). This could theoretically be changed via a MIDI pedal
    or similar.

    While the algorithmic solution is definitely a good thing to have, you
    could add support for a secondary MIDI channel (from a pedalboard or
    split keyboard) which could be used for direct control of the reference.

    --- Synchronet 3.21a-Linux NewsLink 1.2