VCVRack / AudibleInstruments

VCV Rack plugin based on Mutable Instruments Eurorack modules
https://vcvrack.com/AudibleInstruments.html
Other
388 stars 83 forks source link

Marbles: minor scale wrong #109

Open jpnielsen opened 3 years ago

jpnielsen commented 3 years ago

https://community.vcvrack.com/t/will-marbles-ever-get-fixed/13800/10

There indeed appears to be a discrepancy in the code between the original hardware and the Audible Instruments versions.

The Mutable Instruments code defines the minor scale as following in settings.cc :

// C minor
  {
    1.0f,
    12,
    {
      { 0.0000f, 255 },  // C
      { 0.0833f, 16 },   // C#
      { 0.1667f, 96 },   // D
      { 0.2500f, 128 },  // Eb
      { 0.3333f, 8 },    // E
      { 0.4167f, 64 },   // F
      { 0.5000f, 4 },    // F#
      { 0.5833f, 192 },  // G
      { 0.6667f, 96 },   // G#
      { 0.7500f, 16 },   // A
      { 0.8333f, 128 },  // Bb
      { 0.9167f, 16 },   // B
    }
  },

While the Audible Instruments code has this in Marbles.cpp :

// C minor
    {
        1.0f,
        12,
        {
            { 0.0000f, 255 },  // C
            { 0.0833f, 16 },   // C#
            { 0.1667f, 96 },   // D
            { 0.2500f, 128 },  // Eb
            { 0.3333f, 8 },    // E
            { 0.4167f, 64 },   // F
            { 0.5000f, 4 },    // F#
            { 0.5833f, 192 },  // G
            { 0.6667f, 16 },   // G#
            { 0.7500f, 96 },   // A
            { 0.8333f, 128 },  // Bb
            { 0.9167f, 16 },   // B
        }
    },

The note A has the weight 96 that can make it happen occasionally, while the weight 16 in the Mutable Instruments code probably makes it almost never happen. It looks like the weights of G# and A have been swapped in the Audible Instruments code.

cschol commented 2 years ago

Confirmed issue in 3363887706d5350911df2b0ca580e06edeb1ae35.

jpnielsen commented 2 years ago
$ diff marbles.cpp marbles.cpp.fix

46,47c46,47
<                       { 0.6667f, 16 },   // G#
<                       { 0.7500f, 96 },   // A
---
>                       { 0.6667f, 96 },   // G#
>                       { 0.7500f, 16 },   // A