Microtone and Monitor

I had some strange problems with Microtone (unrelated to this post) and decided to test them with the Monitor. So I made a test scale (attached), then monitored the MIDI output element directly after Microtone.

As it turns out, all pitch bend values tested so far were shown by the Monitor as negative and sometimes did not make sense. For example, with the settings:
Base note: G#4, Base frequency: 400, Microtone transforms two example notes as follows:
B3 → D4 -487
C4 → D4 -684
However, C4 should sound higher than B3 and it is actually the case. Also, the attached scale is strictly increasing. But looking at the pitch bend values, it seems as if C4 produced a lower sound.

test.scl (1.9 KB)

Edit: I modify this post, as some bugs were my fault, and some problems are new.

So I changed to Scala files which span not one, but several octaves, but I did not modify the base note accordingly. It should be C#1. If it is G#4, Midihub wraps the scale around and also, the cent values exceed the 127 Midi notes. But in theory, it is still a valid scale.

In test2.scl, every 19th note in that scale has a cent value of 3000 just for tests. However, Midihub changes all 3000 cent values to 0 as if it had problems with either abrupt cent changes or a tuning which is not strictly increasing. It seems contrary to the scala format which says nothing about cent differences, nor about monotonicity.

Anyway, if base note = g#3, f3 (midi value 33) is translated to c1 -1365. This low sound is probably what Midihub understands by 0 cents which it has put in place of every 3000 cents (not the “normal” 0 cents, which should not be as low). There are also few other notes out of tune as expected, not at distances of 19 because of the wrap-around. Yet, these other notes are not as low as f3, even if they also have cent values of zero.

To sum it up:

  • strange pitch bend values in Monitor;
  • does not support rapidly changing and/or non-monotonic scales (small problem, as I need such a tuning only for tests, but someone other may need it);
  • occasionally, Microtune produces whatever (a scale read from a random place in memory?), requires a power cycle. Did not happen yet for the scale with base note=c#1.

A new small problem, related to the interface: changing the base note disables “always send pitch bend”.

The problem with Microtune requiring a power cycle is different from the one I had with previous versions of firmware. Previously, channels became confused. Now, there is a problem with frequencies. Maybe the channel problem has been fixed already, but the frequency problem is triggered only by the scale with base note=g#3?

test2.scl (1.8 KB)

Hey, thank you for looking into the Microtune pipe so deeply. :slight_smile:

Indeed, the value display in the monitor is incorrect, we’ll get that fixed. (in the mean time, the raw display of hex values is correct)

Your test file uses 3000, I think you meant to use 3000.0 - 3000 is supposed to be treated the same way as a 3000/1 line (a ratio, not cents value). Though the Scala parser in the Editor handles this case of just a single integer number incorrectly - we’ll get that fixed too. A workaround at the moment would be to explicitly type out 3000/1.

I couldn’t reproduce this at all, if you find specific steps, let us know!

We’ll get it fixed. :slight_smile:

The above issues were fixed. I didn’t encounter the possible memory issues you described though during my testing.

I wrote about this probably in a separate thread… There was some issue with my Scala files which might have caused the erratic behaviour. Once I fixed it, I had no more problems. If there is something to do on the Midihub side, it would rather be a more involved verification of the Scala files.

1 Like

I think it was lines that were just an integer, like 3000 (which is supposed to be interpreted as 3000/1, meaning a very high note/frequency) instead of a real number like 3000.0.