Squinktronix Development Blog

I am loving Harmony II with PES scale input. But, I wish I could control the preset menu selection via CV while playing. I’m playing with some jazz progressions, but somewhat limited by being stuck with the triad preset (for example). Of course, dynamically changing presets has to be done with care on nice clock counts, but just a manual change sounds smooth and continuous, to me. Looks like Harmony II may be enqueuing preset change since the KSO scale output does not change immediately upon manual preset change. Probably synced to CVI change, which seems like a “good” clock count on which to change things :wink:

We all never came up with a module that could change menu options in another module, did we?

1 Like

Ah, docB Preset allows this. I am playing with it now.

docB Preset works, more or less. I do have to manually select the factory preset menu. There are a few strange notes when sequencing through the presets, perhaps due to channel count on the different types of chords. This opens all sorts of ideas for me on what else I might control in other modules that is not CV controllable.

1 Like

Playing weird notes sounds like something that may be a bug in Harmony II. Maybe when you change a bunch of things at the same time that the CVI is changing something bad happens. On maybe as you suggest switching from a 4 note chord to a smaller one leaves something odd in an unused output channel. Of course I don’t know what patch you are using here - would it shut off voices that aren’t used?

Anyway, let’s keep our eyes open for this - sounds like a bug.

btw, a somewhat strange thing about the presets. those “blank” lines that are grouping the preset in the menu… The presets feature of VCV doesn’t let you do that, so I put actual presets in there with blank names so that they look like separators. I think they are all fairly benign, but I’m happy co change any of them to make them behave better for you.

1 Like

I’m sending the Harmony II chords to FM-OP. It seems to be correctly changing the polyphony to not play invalid notes.

When I map out the eigenvalues for your presets via Presets, I skip the blank lines, so they are fine for this use case. Thanks for mentioning.

If my SWITCH 16-1 clock is the same as the gate that is changing chords in Harmony II, I do not hear those strange notes now, so I think it was probably a timing issue. It could have been a cable sample delay issue.

Some very interesting chord changes are coming out of this II-V-I jazz progression in F-major.

2 Likes

Note, there are issues with using docB Preset module to change the Harmony II presets dynamically.

1 Like

Well, it would be quite easy to add a CV to pick chord. There’s room for another jack. It would of course be nice then to display the “preset” name somewhere, but if you use the module like you are “supposed to” and make your own chords the UI won’t know what to call them… I will ponder.

Anyway, let’s say there is a CV for “chord type”. and let’s say I make it so it always matches the user presets. A couple of questions:

  • Should the CV skip the blank presets? Presumably so.
  • It’s like the “Mode” CV. all of my CV roll over - like they pick a new thing every 1/12 of a volt, then go back to the first and start again. Is that OK for this?
  • Most of the presets ATM are diatonic. But the “fourths” ones are chromatic, and set the scale to chromatic. I guess it would still sounds “ok-ish” if you set to a diatonic scale. I could skip over ones like that if the the “Mode CV Diatonic” thing is on (that’s what I renamed the thing that was “use only diatonic scales” or something…
  • It’s very easy to add more presets, just tell me what they are.

I requested that three posts here of mine be deleted as I intended the posts to go in a PM with @Squinky and I don’t want to clutter this public topic. They would not make any sense here without context.

2 Likes

I posted a new build. mostly bug fixes and CPU usage improvements.

Feature highlights:

  • Phase Patterns has new option for “expert UI”.
  • Harmony gets a PES input.
  • Manuals for Harmony and Apreggiator now link to information about the community patch challenge.
  • Manuals much better.
  • Lots of bug fixes.

test build are at the usual place

7 Likes

Cool! My first test with one of my Harmony and Meander patches where I was using BASICally scripts to map Meander mode and root to Harmony mode and key root using uMap works great with PES. Sounds great, so I can assume that the Harmony PES input is working correctly, even though there is no PES output on Harmony to confirm that, but, that was really mostly needed in Harmony II for development testing, in my opinion.

This is a very good addition to Harmony in my opinion. Thanks for adding it.

Note: BASICally works great for this type of mapping, but having direct support in Harmony is a lot cleaner in the patch.

Should be the same code as Harmony II, but good to get confirm. Btw, the ui on my modules will change to reflect the PES input, so you can always verify that way if you want.

Good point. But, yes, I am confirming on the UI that mode and root are tracking Meander mode and root. I suppose that you have the same PES scale sanity checks in Harmony as in Harmony II such that there will be a red light on the panel if the PES scale is unrecognized?

I actually did not put in the red light, but I might :wink: But, yes, it does have the same logic, so it will ignore things it doesn’t recognize. Oh, I better make sure it doesn’t try to recognize non-diatonic stuff, since it won’t understand that…

1 Like

btw, If you run PES into Harmony, and the PES is carrying a scale that Harmony II knows, but Harmony doesn’t, it will crash.

1 Like

I just posted another test update. If there are no issues with this it may become the library version. All planned features are in there.

The release has:

  • fixed the crash bug in Harmony when PES was sent pentatonic scales.
  • added PES error LED to Harmony, just like Harmony II.
  • Tweaked the panel layout to look a little better.
  • Enhanced the Phase Patterns Expert UI to allow durations up to 128 clocks.
  • Many enhancements to the manual.

The release is here.

3 Likes

I installed the latest and now have a Rack crash when I enter the browser, even on a new patch. I’m going to uninstall the newest and install the previous and see if I can get back to functional.

I am back up with the 2.2.3 4/11 release. You did not change any slugs did you?

Confirmed Win10 rack 241

[3.344 fatal adapters/standalone.cpp:49 fatalSignalHandler] Fatal signal 11. Stack trace:
31:  0x0
30:  0x0
29: _C_specific_handler 0x7fff52c77f60
28: _chkstk 0x7fff540d2290
27: RtlRaiseException 0x7fff54081030
26: KiUserExceptionDispatcher 0x7fff540d0e90
25: ZN19PhasePatternsWidget16_addRibsControlsEv 0x7ffeca2c89b0
24: ZZN4rack11createModelI19PhasePatternsModule19PhasePatternsWidgetEEPNS_6plugin5ModelENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEN6TModel18createModuleWidgetEPNS_6engine6ModuleE 0x7ffeca33e9c0
23: ZN4rack3app7browser8ModelBox4drawERKNS_6widget6Widget8DrawArgsE 0x7fff1dea1d60
22: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
21: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
20: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
19: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
18: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
17: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
16: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
15: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
14: ZN4rack2ui12ScrollWidget4drawERKNS_6widget6Widget8DrawArgsE 0x7fff1da400b0
13: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
12: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
11: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
10: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
9: ZN4rack6widget6Widget9drawChildEPS1_RKNS1_8DrawArgsEi 0x7fff1da47e70
8: ZN4rack6widget6Widget4drawERKNS1_8DrawArgsE 0x7fff1da47fe0
7: ZN4rack6window6Window4stepEv 0x7fff1da49eb0
6: ZN4rack6window6Window3runEv 0x7fff1da4a8b0
5: ZN4rack6window6Window3runEv 0x7fff1da4a8b0
4: ZN4rack6window6Window3runEv 0x7fff1da4a8b0
3: ZN4rack6window6Window3runEv 0x7fff1da4a8b0
2: ZN4rack6window6Window3runEv 0x7fff1da4a8b0
1: BaseThreadInitThunk 0x7fff53177330
0: RtlUserThreadStart 0x7fff54082690

no I didn’t change any slugs, but I probably made a dumb mistake. Will check now…

1 Like

yep, fix comming…

1 Like