Synth Forum

Notifications
Clear all

How do I output for pulse input (time)=127?

5 Posts
2 Users
0 Reactions
1,503 Views
Jason
Posts: 8260
Illustrious Member
Topic starter
 

I am wondering if the pulse clock has a problem with the formula using "divide by 127" ("/127") instead of "divide by 128" ("/128") for every time-slice within one cycle.

I say this because when I use super knob automation, I can never get to input=127. I can only get to input=0 through input=126. Pulse inputs are time controlled. I setup different source clocks (tempo, different master tempo settings - some multiples of 8 or 16, some between, different internal clock settings w/sync=off, etc). I do not think this is a source clock issue since I varied the source clock enough and got the same result.

Each cycle is made up of 128 let me call them "pulse beats". A pulse beat is either set as an internal clock, or relative to the tempo with various multipliers or divider options. There are other options - but I'll stick with those two "run of the mill" options. After the multiplying or dividing (or both) the source clock as tempo or internal - I am calling this a "pulse beat" or the time it takes to get from Cycle(n) pulse input=0 (includes 0-127) to the next Cycle(n+1) pulse input=0.

Now in the period (time) of one pulse beat, there are 128 input "time slices" in a pulse. 0-127 (zero as 1st, 1 as 2nd, up to 127 as 128th - thank the Myans for 0).

What I see on SuperKnob is that it always goes from 0-126 (not 127) then goes back to 0.

If I only have a pulse waveform that has all 0, but input=127 I have an output of 127 - I will never see 127 as an output.

You may say - well - it's going by too fast for you to see. Not so. If I change the user curve so there is only one single time-slice input #7=126, output #7=127, input#8=127, output#8=0 (and everything else output=0) then this is the same setup, only shifted back by one "fast clock" (aka input "time slice" = one pulse beat/128 - or it should be /128).

Is the output for input=127 on pulse lost?

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 06/10/2016 4:30 pm
Jason
Posts: 8260
Illustrious Member
Topic starter
 

I like BM's comment on another thread about the forum being best for "how do I ...?" type questions rather than "why is this ...?" type questions. Seeing how the original question may fit in either category, I'll rephrase:

How do I make a user curve input=127 level (output=0-127) control the superknob? Currently I see that any other input (0-126) can control the superknob, but input 127 does not appear to do so. Could there be something I am doing which is wrong?

To, most easily, get a configuration which demonstrates the issue I need help to fix is to:

(Can load up the AWM2 init performance first so we start with defaults - assuming that is done):
1) [PERFORMANCE] (HOME)
2) Touchscreen (TS): "Motion Control" -> "Knob Auto"
==> Top left of screen label "Performance"
3) Set/confirm some tempo settings
a) TS: "Arp/MS Grid" should be 120
b) TS: "Sync" should be "Off" - this is to use an internal clock vs. tempo or anything external
c) TS: "Speed" - set to 5 so we can "see" the knob change (slows down the clock)
d) TS: "Cycle" - set to 1 to make editing the cycle parameters easier in subsequent screens
4) TS: "Edit Sequence"
==> Top left of screen label "Edit - Knob Automation - Sequence 1"
5) Set/confirm some curve settings
a) TS: set "Amplitude" to 127
b) Where the green curve is shown for the cycle - there should (going from top of this area to bottom) "1" for cycle 1, the green picture of the curve, "64" or the current pulse scaling factor, finally the letter "A" for pulse A. If this was "B" then the green picture of the curve would be blue. Having explained the terms I will use: TS: change the scaling factor from "64" to 127. This can be done by clicking on the green picture of the curve then using the DATA DIAL or double tap the green curve under cycle 1 and enter the value manually.
c) Ensure "Polarity" is "Unipolar"
6) TS: "Pulse A" change from "Standard" To "User 1" (or some unused user curve)
7) TS: "Edit User Curve"
==> Top left of screen label "Edit User Curve"
8) TS: Change curve type from "Linear" to "Step"
9) Change all outputs (except #8) of user curve to 0 - quick way to do this is to move all faders #1-#7 from bottom-to-top then top-to-bottom
10) Change output #8 to 127 by moving fader from all the way down to all the way up.
11) Double check input #8 is set to 127 - should be, but is important for this setup. Change if needed by using touchscreen and DATA DIAL or double-press and enter value manually
12) Press [EXIT] button - should return you to the "Knob Auto" screen
==> Top left of screen label "Performance"
13) TS: Press "MS Master" and "Super Knob MS" buttons until both are hilighted green (turned on)
14) Press any key on the keyboard in case key needs to trigger sequence.

Expecting to see the superknob go to 127 - but do not. How do I do this for input=127 of a user pulse?

Demonstrating what I expect to happen, but using input=126 on user pulse:

13) TS: Press "Edit Sequence"
==> Top left of screen label "Edit - Knob Automation - Sequence 1"
14) TS: Press "Edit User Curve"
==> Top left of screen label "Edit User Curve"
15) TS: Press INPUT #7 and change from 108 to 126 using DATA DIAL (or double press INPUT #7 value and enter manually to set to 126)
16) TS (or faders): Set OUTPUT #7 (which currently should be 0) to 127 and OUTPUT #8 (which currently should be 127) to 0
17) Press [EXIT] to save the changes to the user curve.

I now see that the superknob is being set to 127 (LED flashes for superknob position) for input=126 on the user curve. How do I get this to work with input=127 on the user curve?

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 10/10/2016 12:55 am
Bad Mister
Posts: 12303
 

Yikes! Needless to say, I need to be in front of a Montage to duplicate this. But a few things come to mind just reading through this (several times)...

First, sounds like it is completely devoid of a real musical application. (And perhaps applying it to music would help) but perhaps that will come later. It falls under the category what seems to be a "science experiment" ...testing the resolution of our eyes or the smallest impulse that causes the LEDs to flicker.

Having read through it, the first red flag that I see is the "1 cycle" setting. Right there I say to myself one Cycle (one time segment), to me, (always thinking musically), this could represent a single 16th note (whether or not in actual application). Here's why:

CYCLE can be 16 Steps, Referencing Unit Multiply 100% - each Cycle segment would represent a 16th note. Musically speaking.
1 CYCLE segment would be a single sixteenth note.
Now take that single segment and sub-divide it into 128 divisions (INPUT). Well, I know it does not let you set each individually, but you can set 8 points along this single CYCLE's segment - which is the INPUT value setting.

Okay we've officially crossed over into the realm of: yikes, it's definitely a 'science experiment!' 🙂

Okay, sitting at my Montage, now here's what I've found:
I'm not going to do the math because I'm a musician (I use math intuitively), a 64th note is a grace note 🙂 beyond that...
I don't know how many flags this single impulse would be on the note's stem, but if a composer handed me a chart with that on it, I'd hand it right back. (Although had you used SYNC = TEMPO, and set a specific tempo you could figure out exactly the resolution of each sliver). You are dividing a 16th note into much smaller segments, and only setting the output for the very, very last possible sub-division.

Each of the 8 segments of the CURVE you are making within this single Cycle, has an OUTPUT that goes 0-127
You can select LINEAR - to connect the dots between segments, or you can set it to STEP - which you have chosen (?)
Selecting STEP gives you the thinnest time slice possible. No ramp up, just the shortest blip possible.
Your CURVE Output settings read:

OUTPUT = 0-0-0-0-0-0-0-127
So we are testing how one impulse, a single 1/128th of a sixteenth note, how it affects the lights. (Frankly, this may fall into the realm of too small - although it's nice to know it can get that tiny).

Instead of making the very, very last sliver 127 try any of the following:
_ Set the CURVE TYPE to "Linear" so instead of a "peak meter" type response, you get more of "VU meter" response where it ramps up to the value. It may help you "see" the 'meter' move. You can then adjust the slope of the ramp. Doing this allows you see exactly what you are dealing with. INPUT Step #7 currently 108 causes the sweep of Knobs. The lower you set this INPUT value slower the sweep; The higher you make this INPUT value the shorter the impulse, and the faster the sweep. As you get to beyond a certain point it's too fast to register. This will show you what you are dealing with

---or---

If you want use CURVE TYPE "Step", set INPUT #7 = 126, and OUTPUT #7 = 127
This gives to an impulse twice as wide 2/128th divisions of sixteenth note. This is enough to flash all the LEDs.
Although I plan never to go down this particular rabbit hole, nice to know it can do this!

Or---
_ Set the PULSE to "Reverse" placing the timing sliver first, rather than last.

_ with CYCLE = 1, simply set the Curve OUTPUT of sliver #1 to 127
So your eight Output values are: 127-0-0-0-0-0-0-127 (again two slivers triggers the LEDs)

This will give you two slivers of 127 value, enough to flash the light (that is what you are trying to achieve, right? It's not about a musical application, correct?)

No human at that timing resolution can tell if two or one impulse went by. (It goes one step beyond.. Infinity+1)

Anyway, I don't think it's an issue, (at all). The value is sent, It may just be too fast to see, it maybe too fast for the LEDs to respond, it might even be too fast to hear when applied to a musical parameter. I certainly could not play a staccato note that fast. Either way it's a BIG non-issue.

At normal musical tempos that's not even the width of a razor blade when splicing analog tape. 🙂

Hope that helps.

If there is any interest in this, I can post screenshots... I recommend moving on!
🙂

 
Posted : 11/10/2016 6:48 pm
Jason
Posts: 8260
Illustrious Member
Topic starter
 

Thanks for taking a cursory look - I look forward to your review while in front of the keyboard as it does need this.

Other responses you've used what the engineers at Yamaha have provided as a barometer if it makes sense or not. I'm not asking for more resolution - I'm just trying to work with the resolution provided. Each of those 128 input (time) steps provides an opportunity to create an output that is 1/128th of the overall clock rate - and I am wondering if I am doing something wrong with the 128th slot (input=127) as I do not see its output. I am using superknob as an easy way to "see" the result, although superknob or other pulse configurations can do much more than flash an LED. Also, if there truely is a limitation in only the 128th slot (input=127) - it's good to know to prevent from relying on its output at outlined for perhaps resetting the resting state of a user curve pulse with loop=off. I'd rather not have to justify my "why" although dismissing the question as non-musical may make things easier. Certainly this can be appreciated although I am aware of one response that could be made. Ultimately the customer defines what is musical or not - and it is good to use the hardware not only between the limits - but at the limits. And if there is something at the "edges" which does not perform as documentation/interface claims - it is good to understand this is so on all sides.

As mentioned,

INPUT (1-8) = {0,X,X,X,X,X,126,127} (X=anything valid between 1 and 125 for the given slot)
OUTPUT (1-8) = {0,0,0, 0,0, 0, 0, 127}

Shows the problem (true - a tiny slice) but the slice size itself is not a problem since

INPUT (1-8) = {0,X,X,X,X,X,126,127} (X=anything valid between 1 and 125 for the given slot)
OUTPUT (1-8) = {0,0,0, 0,0, 0,127, 0}

Also one slice (but in the input=126 position) does generate an output that can be seen.

This is addressing your "issua (at all) ... too fast to see" comment. I have adjusted the settings to ensure this is not the case (one slice is not too fast to see)

Regarding the cycle and units - this depends on the settings. I'm not framing this "how" question at all possible single-unit settings - although I have to pick something to communicate. The unit can be set to quarter note instead of 16th and reference the tempo. Using a single cycle is a way to minimize the extraneous and "boil down" to a simpler case - although I could add more steps and take a look if (hypothesis is that every cycle is affected equally) all cycles from 2-16 demonstrate the same behavior at their individual input=127 times. Musically speaking, I always break down my "composition" of keyboard settings into smaller pieces and refine those before adding more "beats" or "measures" (more cycles). If there's a "sour note" in a composition - it's easiest to narrow down the field to a single measure - or beat - so this is the approach here.

Thanks again for your help in digging into the input=127 "how" question.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 11/10/2016 7:56 pm
Jason
Posts: 8260
Illustrious Member
Topic starter
 

I'm not sure an answer has been presented which demonstrates how pulse input=127 can be utilized to do anything (musical or not).

Like the pulse curve: amplitude or frequency, or var send or any other parameters are not, themselves, inherently musical. What is "musical" is the application of these by the performer to produce something in the frequency spectrum (audible, or even non-audible for low-frequency vibrations that can be felt).

If I came to you with something common, like volume. The documentation shows 0-127. And I was having a problem making volume=127 make any sound because 127 made no sound, then we would agree there is a problem and just because the "sliver" of volume difference between 126 and 127 is "hair thin" - that would be irrelevant to the issue. If this was not going to be fixed, then the workaround would be to only use values 0-126 and rewrite the documentation (even informally) to this new modified range. Since volume is such a widely used parameter, Yamaha and the rest of the community would be on-board with the facts - the limitation would be communicated - and problem rectified if indeed it made sense to do so (or was possible).

I'm not asking for anything change - I'm just trying to arrive at the conclusion that my hypothetical "volume" example could arrive at. Maybe a change will happen, maybe not. I'd like to know if this is something that is a known limitation and if this limitation is "just how it is". Then I can informally write my rules for pulses to include this caveat. If I do run across a programming "composition" that needs t=127 to do something, I'll have the proper understanding and will work with the limitation understanding what's going on.

Of course lights cannot be musical. But it is the best way of displaying the issue as a) light travels faster than sound and b) it's easier to demonstrate with the superknob position which has a "scaled down" programming interface. The musical use, much like volume, is how the pulse curve will be used in a greater context.

A parameter or feature does not have to be musical in order to have "irrational"/"quirky"/"buggy"/"unexpected"/"results counter to the documentation"/etc. Pulse curves are part of the automation, so they are a framework for launching other things. I do understand it may be more relatable (for some) to place within the context of a musical application, but that can cut both ways as noise outside of the root issue.

It is not helpful to the "how" question to be dismissive.

"You can't, because input = 127 produces no output" is an acceptable answer - but I haven't seen that communicated.

Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R

 
Posted : 15/10/2016 10:50 pm
Share:

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