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
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ā
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:
- No gate, but Hold set āOnā
- Poly Gate, but Hold set āOffā
- Mono gate Hold āoffā
- 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).
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.
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.
A link is helpful
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