This thread is intended to gather the feedback of Orba tinkerers.
seekerUuid comparison from Tilt Lead, based on matching the GestureUuid from the utility presets:
bump / tap (as above, shake note missing)
tilt (move missing, matches vibrato above)
spin / radiate / shake cc (matches move / tilt above)
press (as above)
I haven't had the Orba long enough, nor have I followed this thread long enough, nor have I had a chance to experiment with any of the hacks, so I can't give you a very satisfactory answer straight away, but I can tell you how I would approach this problem with just an out-of-the-box Orba and no hacking tools.
There are two parts to your problem. First, you want dominant sevenths and currently there is only one CHORD preset that gives you 7ths. Even worse, the 7ths that you get are the diatonic sevenths - Cmaj7, Dm7, Em7, Fmaj7, G7, Am7, G7/B, and C6. That C6 is interesting, but that's another story. I actually like this preset a lot, but it doesn't help you.
The second part to your problem is that you want a D7 (dominant) which has a major third, not a minor third.
So, let's talk about the first part of the problem first. I know this is unsatisfactory, and hopefully Artiphon will address this soon, but you can always substitute a major chord for a dominant 7th chord and it sounds OK if you're playing with others. So having a C and a C7 is redundant if you're willing to live with a chord substitute. That means that you could cover your C7 with a C, your G7 with a G, and your D7 with a D. That means that the only problematic chord given the default out-of-the-box CHORD preset would be the D which is a Dm instead of a D which is what you need.
It looks like you're basically wanting to cover G blues. If you are willing to deal with "major for 7th" chord substitutes until Artiphon get's their stuff together, you could instead switch to the key of G. That would give you G, Am, Bm, C, D, Em, D/F#, G'. Substituting your C for a C7, your G for a G7, and your D for a D7, that gives you all of the substitutes that you need.
So...after all that, I just tried the following experiment. Tilt lead does bend on Tilt, and some other filtery effect on Radiate.
First make a copy of the preset with a Modifier/Seeker list for just Tap, Tilt and Radiate. Then:
1) Swap the values of gestureUuid between the Tilt and Radiate gestures
2) Swap the values of seekerUuid
3) Swap the values of seekerData
4) Combine 1 and 2
5) Combine 1 and 3
6) Combine 2 and 3
I tried this with and without editing uuid to force a "refresh", and used new file names each time. None of it made any difference.
The ModifierData and ModifierUuid values for these two are the same anyway, so I'm out of ideas. I'm starting to think maybe we're not playing with a full deck, and some of the values aren't going to do anything when changed in the Preset XML, like that intervals list.
"None of it made any difference."
I do not understand what you do but it looks like you do a lot. Keep it up :-)
"I'm trying to see if I can convert a Bass or Lead sound to a Chord sound. I guess the real question is what makes a preset start using the ModifierData?"
@Subskybox, that's an interesting experiment. I've been comparing the Lead and Chord versions of the Cartridge patch, and I've found that just copying the first ModifierEntry and the first SeekerEntry across from the chord XML to the lead is enough to get chords out of the lead...but not the ones you'd expect. You can then adjust them by also copying that "intervals" string, eg
intervals="P1, M2, M3, P4, P5, M6, M7, P8"
It's the first time I've heard any result from changing those values.
...correction...looking at the TuningEntry section...
<TuningEntry key="C" name="Major" intervals="P1, M2, M3, P4, P5, M6, M7, P8"
midiOctave="2" transpositionType="RetainNotes" type="tonal" tuning="48, 50, 52, 53, 55, 57, 59, 60"/>
...I've realised it was changing "Major Pentatonic" (the original setting in the lead file) to "Major" (like the chord file) that altered the chords as described above. I still don't know what the intervals do if anything.
Yay, I've finally obtained a useful new result from editing a Seeker...changing pitchbend range for "Tilt Lead" on the built-in sound. :-)
I've been using the "experimental fiddler" on the seekerData for the Tilt Lead ("pitchbend") entry, and found that the 23rd value in the decoded string changes the pitchbend range, although the way it changes it is slightly strange.
The usual value is 32, allowing you to bend up two semitones by tilting the Orba from horizontal to vertical in either direction when "Pitchbend scaling" is set to 100% in the App settings. At 50% this drops to a semitone; at 25% to something like a quarter-tone.
The widest range I've got is four semitones with a value of 0 instead of 32, with Pitchbend scaling set to 100%.
As you increase the value to a maximum of 127 the pitchbend range gradually reduces. The change in pitchbend range is continuous and non-linear. At 20 you get around three semitones; at 32 the standard two semitones, at 40 just under two semitones, and by 60 less than a semitone.
By using negative values you get a slightly odd "snap" effect. As you tilt the Orba you get a gradual pitch bend with a sudden jump to the starting note when you reach the furthest position.
I found this parameter by working along the lines described previously, by swapping a value in the seekerData string with an alternative from the set of values seen across the table shown above (in this case, changing the final 32 to a 0).
It's useful to have discovered that certain values in the seekerData string can change the effects of gestures, and the experimental chord fiddler has been invaluable here. I wish I could figure out the mapping, to get effects like the rotate-pitchbend shown in the promotional video posted earlier, if that's possible. But for now I'll carry on fiddling the seekerData strings. I haven't given up hope of tuning the Bump note.
As a simple example, here's "Tilt Lead Wider" with a value of 20 for a three-semitone bend when the App settings are at 100% scaling, and "Tilt Lead Snap" which lets you hear the result of -20.
I'm enjoying your posts! I have found a few things as well, but have been too busy to document them. I found a really wacky behavior as well which I believe was index 24. What I found was that when you first press your finger down, you get the expected note but as soon as you move your finger left or right on the same pad (not up/down radiate) that it would change to a second note?! I could make the second note go up or down based on the offset value from the 32 value. I'm busy today but might get a chance to play with it more tonight.
@BJG145 Also I know how long and tedious this is (trial & error, copy/paste, reset device) So THANKS for the hard work. I spent a long time to figure out how the chords worked and if we are going to explore lots of Base64 strings, I might start thinking about a more generic daemon where you can specify the file and the string you want to modify.. In this way you could just make a change and DEPLOY like version 1.. I need to think that out before I commit but that would accelerate the pace of discovery
Cool - could you post that preset up...? :-)
If you set the Orba to a whole-tone scale with a semitone pitchbend, you can play an extended chromatic scale.
(This preset needs to be set to Major with 100% pitchbend scaling.)
Perhaps your latest discovery relates to the sensor design...
...maybe the sensor can detect finger position on the individual peaks, or at least can return multiple discrete values around the edge.
Sure here's the patch. On another note, I think I can confirm that Spin Pitchbend will never work. I've been monitoring the midi output from the spin gesture. It sends spin velocity not spin position. I think that video was built before the product was done. You can tell the sound is overdubbed. I think they wanted it to work like that but the esp32 likely did have the "spin" they imagined. It would need a compass to be position, instead it outputs how fast its spinning. Still, it could be useful for changing key or something useful like effect levels.
Did anyone tinkered yes with the "orba.properties" file?
If you've added some custom scales (e.g. Hang Drum + Whole Tone) can you share up the orba-scales.json file? I can merge it in later... I have a few scales I'd like to add but too interested in figuring out the gesture mapping. How does the SeekerData bind a gesture with a control? I'm thinking index 1 because its unique across all seekerData. Index 0 seems to be gestureType (0 or 1) but one (or more) of those values must link the gesture to the midi message or control #