Synth Forum

Notifications
Clear all

Motion Sequence Test Case: Pitch

9 Posts
4 Users
0 Likes
2,773 Views
Jason
Posts: 7912
Illustrious Member
Topic starter
 

Since the easiest parameter for me to hear in terms of absolute value - I selected to affect pitch with a custom motion control sequence. There's a few destinations which affect pitch and I've tried both Element->Coarse and Part Param->Pitch as destinations. Although I can setup a motion sequence curve which does affect the pitch - I do not seem to have very step-wise control. My goal is to setup a curve which plays a scale within a one octave range. Instead, the "jumps" between pitches seems to be much more than a semitone.

I thought some of the ratio or amplitude settings (when applied to pitch) may have been affecting the "scale" of the pitch change - so I dialed those back and forth. At some point I dial them back so there's no change in pitch - once there is a change it's much more drastic than a semitone.

As I "mess" with the settings, I'm able to get a few semitones out - but run into walls where I can't get more than about 3 different notes and the next "steps" do not seem to help when I try ascending steps. I have headroom in the limits because I can adjust a step and get a several octave "jump" - bringing it down may produce the desired note or just combine with another step and keep playing the same note without adding a new one.

I'm using the user curve set to step and I think getting a scale out of the motion sequence would help me relate to how parameters would be affected for other custom MS constructs.

I do have the tempo down so I can hear each transition within the curve.

I can play with the graph and get different intervals - but the result isn't what I'd expect and there hasn't been a eureka moment yet trying to setup a curve which results in one note (pitch) per step and then the expected intervals.

Any ideas? BTW: the performance I'm editing was an initialized performance with a single element under a single part.

Under Part 1 - Common, I'm bouncing between Mod/Ctrl->Control Assign, Motion Seq->Lane1 (main), Motion Seq->Lane1(Edit Sequence), and same edit sequence (edit user curve).

Because I don't relate to how the "formula" is interacting - I keep feeling like there's a rounding/overflow type error which doesn't allow me to get the desired result - but it's more likely to be an issue between the seat and the keyboard.

 
Posted : 03/09/2016 6:31 am
Jason
Posts: 7912
Illustrious Member
Topic starter
 

Back with a eureka.

Under "Edit - Part1 - Lane1 - Sequence" there's a screen where you can assign a "pulse a" (green) or "pulse b" (blue). Here I had created my user curve using "edit user curve" and setup steps which initially I had as 0, 2, 4, 5, 7, 9, 11, 12 (WWHWWWH) for a major scale using step sequence. I've got all pulses as my user step sequence. Then, and this is the major area where I went wrong, there's a screen "Edit - Part1 - Common" side menu "Mod/Control->Control Assign". Here's where I had a bit of a disconnect. There's a curve here too that can be assigned to the same user curve as the other screen (pulses). This is what I did. And that's wrong.

What I gather is that the pulse curve is a mapping which says if the control assign curve fits within a certain range, then apply a value. Currently I'm thinking of it as the pulse curve in the sequence screen is a lookup table and the control assign curve feeds the input value into the lookup table.

For the scale, I had bars that went up the scale sequentially. Therefore, the proper input value would be an increasing value to step to the next bar in the sequence. Once I changed the "control assign" curve to a standard ramp (type 5 uni-directional), I started to hear all the notes.

The values of 0, 2, 4, 5, 7, 9, 11, 12 didn't work - I had to fiddle around until I came up with the right "mix" of values. Still do not understand the very lowest level math applied here - but I do have a scale that sounds mostly in tune - now at +6 per semitone instead of +1 (0, 12, 24, prev. value *6 ...) and I had to set the slope of the curve (ratio) to +30. Ascending parallel motion in 8 parts (keys) of ionian sounds like success.

There weren't many other gotchas once I realized one curve fed another.

I'd be interested in finding out more about the math and how to have more precision - but this is far enough for now.

Maybe there's already a demo of it in one of the presets - but the fact that my scale could be off made me think an interesting possibility for motion control sequences would be to setup a pattern which simulates an old analog keyboard which would never get quite in tune due to the unstable nature of the design. Alice Coltrane is featured in a solo album (live, I believe) where the analog sounds are all over the place tuning wise.

Edit:

I went ahead and recorded what I threw together as just learning curve experiments

Demo of first experiment: scale with motion sequence
https://clyp.it/sbsaav2n

Demo of second experiment: older analog tuning issue simulation (no time spent on this)
https://clyp.it/zvskxzls

 
Posted : 03/09/2016 8:27 am
natalini
Posts: 0
Estimable Member
 

Jason quoted

"I'd be interested in finding out more about the math and how to have more precision -....."

Yes, me too. Manuals are really insufficient , at least for me. In this regard Badmister tutorials are precious, and.....pleasant.

 
Posted : 03/09/2016 8:41 am
Jason
Posts: 7912
Illustrious Member
Topic starter
 

I was not complete about my rationale for doing a pitch-based motion sequence. My original rationale for this (before more recently becoming a platform to learn about the process) was to generate a user arp using motion sequence. The scale shows this can be done and I have a limit of 16 unique notes to the "MS-arp".

I know user arp editing is on the way - so the need to mimic a limited user arp with MS is short-lived.

The tutorials are great - I usually end up reading them AFTER I've spent some time learning the concepts on my own -- which is not the best since his tutorials are setup as a great launching point. Check out the blog for a great series which covers many bases including Motion Sequence, Motion Control, and more.

 
Posted : 03/09/2016 6:46 pm
Jason
Posts: 7912
Illustrious Member
Topic starter
 

I still do not have the math down - and rounding "errors" with my setup cheats a few notes which are slightly off within the scale. I thought coarse would only move in integer (whole number) increments since that's all you can adjust with coarse - but it seems to do floating point math and maybe there's some other issues. I haven't looked at the MIDI output to see what the absolute values are in terms of pitches I'm getting. That'd help me come up with how the result is accomplished.

My demo only used the "A" since a scale fit within the "A" curve. I extended it with the "B" curve and ran out of room due to having to arrive at note amplitude by using large step values. I increased the amplitude to apply an external multiplier (allowing for smaller steps) - which also increases my note error - but I was able to accomplish the 16-steps worth of notes. It's strange because some starting points like "F" (in any octave) will play all the notes - but most notes will leave off the last few notes (1-4) or leave out notes and play some of the last ones more out of tune than starting on "F". This is all due to the scaling and not really knowing exactly how the result is generated.

I also tried to extend past just 16 notes (A and B of lane 1) by using a second lane. There's some issues because "do nothing" is not an option. Nor can I string motion sequences together to execute sequentially (Lane 1 then Lane 2). What I have is Lane 1 is a cycle of 2 (A and B which are different = 2 octaves of a scale) and lane 3 is a cycle of 3. I "burn" a curve (A) and made a user curve with all zero. This is what I am using to try to NOT play a note in lane 2 for the first two cycles of lane 1. However, since there's no option to "do nothing" - I end up with a drone of the root note under the rest of the sequence from lane 2. It, however, mostly works out and lane 2 is able to add 8 more unique notes.

If the droning root is OK - then the max different notes in the "MS-Arp" is 40 which should cover an arp I need to reproduce. It will be slightly out of tune - but the notes of the arp fly by fast (harp part).

The other concern is range since for some reason, as mentioned, some notes cut off depending on the root note. I haven't quite sorted this out yet since "F" seems to play any note 0-127 I can throw at it. I changed the scale so each step is around 7 for a whole step and around 3 for a semitone.

Also, since the part I'm using the "MS-Arp" on is a harp - the note is not held (decays quickly) and therefore will not "drone" even though lanes 2-4 will hold the root until their timeslice.

 
Posted : 04/09/2016 8:16 am
Blake Angelos
Posts: 191
Member Admin
 

Jason: Wow! You certainly took a trip on the Motion Sequence train. Two things:

1. It seems that 1.20 should actually help you GREATLY in creating the musical effect you are looking for with the ability to create your own Arps. I think this, coupled with experimenting with the Motion Sequencer should greatly assist your creative endeavors!
2. Motion Sequences are very deep and, because there are SO many parameters that interact with one other in the entire Motion Control System (SK assignments, Motion Sequences, parameters assignments, different things modulating things, effect parameters that are being controlled, etc). Sometimes its just really difficult to nail down what, exactly, is going on...I racked my brain once just trying to figure out why something was happening in a Performance and figured out that there was a Control Arp assigned to a Part that was BARELY affecting it but it was there...I looked everywhere: LFO, SK assignment, Motion Sequence, Control Assignments...NOTHING until I realized that there was a control arp assigned to a parameter (I can't recall exactly what it was, I just remember being vexed by it happening).

Your post is like an epic Greek heroic story... "Jason, the Argonauts and MONTAGE"! Do you have some questions I can grok a bit more fully that can be whittled down to something like "Why, when I set this curve in the MS, does this behavior happen when it seems it shouldn't". That would help me to help you (If indeed you need any help, which from your posts appears that you are pretty smart and inquisitive and can definitely figure out on your own given time).

BTW: When I have my regular chats with the Jedi Master himself, Bad Mister, there is almost always some point where we both go "Man...THIS THING IS DEEP...In a good way...and it sounds so good...".

 
Posted : 08/09/2016 9:54 pm
Jason
Posts: 7912
Illustrious Member
Topic starter
 

Thanks for your response - I missed it earlier. You're right that there can be lots of things interacting and this can get confusing.

However, I'm working at this in isolation. Just trying to modify one parameter with one source and a user curve I've entered in - so there are no unknowns from the setup side and no extraneous interactions. A fairly single dimensional test case.

Within this vertical - I do not have visibility to the result - so I use pitch as a means of "hearing" what's going on. There are limits and some unexpected responses.

In another thread - I suggested perhaps if a destination could be assigned to "screen" - one would be able to see the value which is fed to the parameter(s) they are targeting. Since "coarse" is moving in less-than-one-semitone steps, I would assume the screen output would show some fractional (floating point) value rather than whole number (integer).

I also wonder if there's a way to resolve the math of these curves on paper. To do so, I'd have to know the formula or how to derive a formula so I can calculate what I am going to end up with and also understand what's happening when things go "haywire" (I can more easily see the overflow).

The documentation is very good and complete for previous gen paradigm programmable stuff. But I have not found a reasonable guide to be more surgical in motion sequence.

I'm holding off on using pitch and a MIDI analyzer to try to resolve what the formula is for a given setup (or formulas are for different curves and settings).

The new arp feature will solve some of the original intent to start the journey of motion sequence to arp. However, understanding motion sequence itself is still a goal apart from the arp-workaround.

I can understand the need to refine the question to something more actionable. I'll try to start with an unexpected result - construct a simple user curve to make this happen - send all the information necessary to reproduce - then ask why the result is this way vs. another collection of settings that are close but do something more in the expected realm.

 
Posted : 19/09/2016 12:48 pm
Posts: 1717
Member Admin
 

Jason

Did you ever figure this out? I thought I had it but have lost how to do it. I had something where every 2 digits from 1-127 equally a semitone but I cannot remember the exact settings for curve ration and motion sequence amplitude. I think the curve ration is 32 and the motion sequencing amplitude is 64. So using only even numbers in the motion sequencer should give proper tones.

Also how can we silent a step in the motion sequence? I tried hold but there is still a value with an arp like up oct 1 to trigger each step. .

 
Posted : 31/03/2019 3:38 pm
Jason
Posts: 7912
Illustrious Member
Topic starter
 

Pitch and note values are different - so it's not an exact science. It's always a compromise. The pitch in motion sequence would be more useful for this purpose if integer steps were MIDI notes. That's not the case - you're giving essentially a pitch bend amount - so you no longer have a tempered tuning. So the end result will always be a little different from playing keys in both pitch and, at least for AWM2, timbre. I think I have notes somewhere of how to get a close enough approximation. The thing is that the offsets will be different depending on how wide your lowest target note to highest target note is. So you cannot apply the same formula for all note ranges unless you compromise the sequences where you want less pitch range.

In order to get silence what I do is have part of the range of pitch include notes low enough that they do not sound. I believe the sound also cuts out when you add an offset above 24 semitones from the root of that keybank (in AWM2). So if you're on the note which starts the series - you can add 24. If you're on the next chromatic note up - then you can add 23 before it cuts off. The cutting off business can be to your advantage if you want silence. But in order to get that far (large adder or large subtraction) - you need to have your curve cover that much range - which may reduce the precision in your steps. User curves can help since you can define an area of a large adder while the rest has more precision. That you only get a finite number of regions is limiting for using the "step" type curve - so the linear one is "better". Another compromise, though. Since step you can just "dial it in". Would prefer to be able to edit all 128 points of the user curves (and pulses) with an offline editor. Then math of a standard curve would be irrelevant. I would just plot my points at will.

 
Posted : 01/04/2019 10:02 am
Share:

© 2024 Yamaha Corporation of America and Yamaha Corporation. All rights reserved.    Terms of Use | Privacy Policy | Contact Us