voxglitch
voxglitch copied to clipboard
ArpSeq: Tooltip Displays "Perfect Fifth Up" at fourth
As title says. Did not check all the other positions.
Thanks for reporting this. I'll try to get a patch out in a week or two with both of your bugs patched!
If you want to wait a day, I can try to go through every inch of it. (Just a hobbyist, no skills, but can be thorough in an amateur way.)
On Sat, 6 Jan 2024 at 18:33, Bret Truchan @.***> wrote:
Thanks for reporting this. I'll try to get a patch out in a week or two with both of your bugs patched!
— Reply to this email directly, view it on GitHub https://github.com/clone45/voxglitch/issues/234#issuecomment-1879777322, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT3D2WULG6KSE4BBMWOHLVDYNGKIRAVCNFSM6AAAAABBOVHVGCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZG43TOMZSGI . You are receiving this because you authored the thread.Message ID: @.***>
That's way to kind of you! If it would bring you happiness, by all means!!
Just to check I'm understanding how things work, please consider this setup (screen shot attached) that appears to reveal incorrect quantisation for keys other than C-Major:
- top (set to C MAJ) appears to correctly quantize 12 tones into C maj
- middle (set to A MIN) appears to incorrectly quantize 12 tones into F# min
- bottom (set to A MAJ) appears to incorrectly quantize 12 tones into Eb maj
If this is done with tables/arrays, maybe it's just a copy/paste error.
I just want to make sure I am not fundamentally misunderstanding your module, VCV Rack in general, math, music, the world...
Very respectfully, Brett
On Sat, Jan 6, 2024 at 7:21 PM Bret Truchan @.***> wrote:
That's way to kind of you! If it would bring you happiness, by all means!!
— Reply to this email directly, view it on GitHub https://github.com/clone45/voxglitch/issues/234#issuecomment-1879792453, or unsubscribe https://github.com/notifications/unsubscribe-auth/AT3D2WR3TLJJCJ7VMAWCZA3YNGP35AVCNFSM6AAAAABBOVHVGCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZG44TENBVGM . You are receiving this because you authored the thread.Message ID: @.***>
Hi Brett!
Your screenshot didn't come through. Could you send it to my email at [email protected]?
It's highly likely that there are some bugs that need addressing. I trusted ChatGPT to generate my scale arrays, and I'm finding some discrepancies. However, I haven't located the ones that you're talking about just yet.
My first place that I looked was my scale definitions:
const bool Quantizer::chromaticScale[12] = { true, true, true, true, true, true, true, true, true, true, true, true };
const bool Quantizer::majorScale[12] = { true, false, true, false, true, true, false, true, false, true, false, true };
const bool Quantizer::minorScale[12] = { true, false, true, true, false, true, false, true, true, false, true, false };
const bool Quantizer::pentatonicScale[12] = { true, false, true, false, false, true, false, true, false, false, true, false }; // Possibly incorrect
const bool Quantizer::dorianScale[12] = { true, false, true, true, false, true, false, true, false, true, true, false };
const bool Quantizer::phrygianScale[12] = { true, true, false, true, false, true, false, true, true, false, true, false };
const bool Quantizer::lydianScale[12] = { true, false, true, false, true, false, true, true, false, true, false, true };
const bool Quantizer::mixolydianScale[12] = { true, false, true, false, true, true, false, true, false, true, true, false };
const bool Quantizer::harmonicMinorScale[12] = { true, false, true, true, false, true, false, true, true, false, false, true };
const bool Quantizer::melodicMinorScale[12] = { true, false, true, true, false, true, false, true, false, true, false, true };
const bool Quantizer::bluesScale[12] = { true, false, true, true, true, true, false, true, false, true, true, false }; // possibly incorrect
const bool Quantizer::wholeToneScale[12] = { true, false, true, false, true, false, true, false, true, false, true, false }; // possibly incorrect
const bool Quantizer::diminishedScale[12] = { true, true, false, true, true, false, true, true, false, true, true, false }; // possibly incorrect
In order to test them, I wrote a python script that, given a string in the format "C, D, Eb, F, G, A, B", creates an array of booleans. Using that script, I fed all of the scales in the compared the output to my current arrays. I found that 4 scales don't seem to match up and may need updating: pentatonic, blues, whole tone, and dimished.
However, if you're seeing issue with the major and minor scales, the I definitely need to dig in deeper.
Here's my python script:
import re
def scale_to_booleans(scale_string):
# Map of notes to their positions in a 12-note octave starting with C
note_map = {
'C': 0,
'C#': 1, 'Db': 1,
'D': 2,
'D#': 3, 'Eb': 3,
'E': 4,
'F': 5,
'F#': 6, 'Gb': 6,
'G': 7,
'G#': 8, 'Ab': 8,
'A': 9,
'A#': 10, 'Bb': 10,
'B': 11
}
# Initialize an array of 12 booleans, all set to False
notes = [False] * 12
# Split the input string into individual notes
scale_notes = re.split(r'[,\s]\s*', scale_string)
# Process each note
for note in scale_notes:
if note in note_map:
notes[note_map[note]] = True
# Convert boolean values to 'true'/'false' strings
bool_strings = ['true' if note else 'false' for note in notes]
return '{ ' + ', '.join(bool_strings) + ' }'
# Example usage
scale_string = input("Enter a scale string (e.g., 'C D Eb E G A'): ")
print(scale_to_booleans(scale_string))
I'll try to take a deeper look at this later tonight. Thanks!