Squinktronix Harmony discussion thread

This will be a good place for test feedback and stuff.

I would like to add some more features to this module. The manual mentions that ā€œit would be niceā€ to be able to set for a key besides CMaj :wink:

Some controls on what it does would be cool, although probably a bit subtle. An easy one would be to allow the ranges of the voices to be different. ATM they are limited to somoneā€™s version of the standard vocal ranges for bass, tenor, alto, soprano. The results might even be audible!

Changing some of the rules, like allowing more inversions is easy, and possible, but probably the results wouldnā€™t be easy to notice - but maybe?

Oh, and a black notes on white paper option might look nice, for traditional people.

Anyway, looking for cool ideas.

If someone didnā€™t see it where I started my own thread, some sample patches.

I put some replies over there, too. Hereā€™s a copy:

I think it would be ā€œbetterā€ If I made the quantizer on my input expose other scales.

I have to confess I havenā€™t tried Arpeggiator after Harmony. Even though thatā€™s why I made it. It might need some tweaks.

Some random thoughts:

In a case like this the mono gate (where you found the bug) should work. A monophonic gate should ā€œsampleā€ all the merged CV inputs. Note ā€œshouldā€ :wink:

In a case like this you could turn on ā€œholdā€, then set ā€œlengthā€ to like 8. Then it should hold onto the last two chords.

Yeah as they say in German ā€œEs wƤre nett!ā€ You might be able to use the CMaj generator and some offsetting to get it to work for the natural modes, since the other 7 modes are ā€˜all the white notesā€™ but starting at a different root key. If you want to mess with the minor scales other than Aeolian/Natural minor, that might be a bit wonkier. I only know the music theory I picked up on the street corner, and my 2 years as a Music major. I never got as far as the music theory class, though I do own a copy of Pistonā€™s ā€œHarmony.ā€ I own a copy of ā€œBeing & Timeā€ too but Iā€™m no philosopher.

Iā€™m actually running the version I compiled where I fixed that bug, so ĀÆ\(惄)/ĀÆ

does it not work? with a mono gate it should arpeggiate the four notes coming out of Harmony. Maybe a bugā€¦ ?

Well, several issues here. One is that the quantizer thatā€™s in Harmony alredy knows how to do all the modes in all the keys. Look in ScaleQuantizer and Scales

second, yes, you can make most quantizers work in any diatonic key/mode by shifting the input and the output.

third, year are right that Harmony uses the rules for major keys. As you probably remember, Piston gets more complicated when he starts to talk about minor.

My theory, however, Is that even with the rulse for Major harmony, the results will probably sounds ā€œgood enough for rock and roll (or modular)ā€.

For example, in major the leading tone really wants to resolve up to the tonic. In minor I donā€™t think it has to. But if Harmony really wants the Minor 7th to resolve to the tonic it will sounds fine. So, Iā€™ll try it, when it bubbles up to the top of the list.

Oh, also, if you look in testScaleQuantizer.cpp you will see that there are 6 tests, and two of them are for the keys of GMaj and GMin.

It seems to works differently depending on what Iā€™m doing:

  1. No gate, but Hold set ā€˜Onā€™
  2. Poly Gate, but Hold set ā€˜Offā€™
  3. Mono gate Hold ā€˜offā€™
  4. Mono gate Hold ā€˜Onā€™ A good test case would be to try each of those.

Hereā€™s a new iteration of the patch where Iā€™m trying to use quantizers to force it to natural minor harmony.

SquinkyTronix-Demo.vcv (17.0 KB)

Iā€™ll try a very basic patch with H and A and see whatā€™s up. Now I really must ā€œgo to workā€! (aka day job).

1 Like

Hey - I took your advice on harmony and added that feature you call "Polyphonic outputs channels 1-Nā€. That name is to me not super clear. But I guess it doesnā€™t matter - I donā€™t see a reason not to leave it on all the time.

Anyone have a better name for this feature? Edit - doh! I thought it was ā€œone minus Nā€, but of course itā€™s ā€œone through Nā€.

I have all this diatonic harmony working just fine in Seq++, so Iā€™m just borrowing that an putting in in Harmony. Other than a bug or two it works fine.

1 Like

Hope to have a new test up soon.

6 Likes

Got the GPU usage down to just about nothing: FPS seems fine:

3 Likes

How many threads did you have selected for this test? I ask because as I test the multi-instanced Meander, I find that I get better FPS with 1 thread. Would you expect GPU utilization and CPU utilization are both lowest with 1 thread?

For Meander with 4 threads, one instance achieves 60 FPS but 2 drops it almost in half and additional instances donā€™t change FPS much.

There is a lot I do not know about threading.

Probably a better question would be if you have any lessons learned for maximizing FPS in modules with procedural panel graphics?

I started a new thread to reply to this.

1 Like

A link is helpful

1 Like

tx!

New test release of Harmony 3/26/2020.

You can download build for all three platforms here: Release v2.0.0.b3: B2 (#1) Ā· squinkylabs/SqHarmony Ā· GitHub

I still need some people to use this thing so I can get more good feedback. I will say a certain well-known personality did a preview for his Patreons. He did mention that is pretty much impossible to get bad sounding music from Harmony. But Iā€™m sure itā€™s possible with some clever patching!

Bunch of new features now. From the changelog:

Added all the diatonic modes, and all 12 roots. Please read manual for caveats about this feature. Tweaked the panel layout to be slightly less bad. Poly outputs (1-N). Indicators below the port will tell how many channels are patched. Added controls for chord generation. Made score drawing in Harmony use less GPU resources. Added option for black notes on white paper in score section. Re-centered the score so it has less blank space at the top. Fixed pitches being generated outside correct bounds

3 Likes