A question of speed

Let’s not make this complicated.
Try to visualize how you actually will be using this. And when you will use the zoom.
I dont think it will happend that often that you will have several notes in one line on the same column. And when it happends I’m pretty sure you will zoom in and take a closer look. And if this is a problem you could always separate them into several columns (a shortcut function that would do that automatically for you, seperating the notes in the block you mark)

When zoomed in I think you should handel all data as in ‘normal’ (1x) view. You can move up/down with insert/backspace etc. As martinal suggested you can only allow entering delay values within the delayrange of the current line when zoomed in. If you have to move a note outside the range you simply just move the note to next/prev line as you move notes in 1x zoom. At 1x zoom the note will be moved wherever you set the delay. If two notes are colliding I think it should just overwrite it (or if this will be more difficult with the pianoroll it could automatically seperate the colliding notes to available columns). Think of it. How often will that happend? I would have zoomed in if I was to move notes that was in the same line and column.
And remember even 4x zoom is pretty fast :)

some examples (or exSamples if you prefer :blink: :)) :

4x view of line 00-01:

00 — – -- –
40 — – -- –
80 c-2 – -- 84
C0 — – -- –
01 — – -- –
40
80
C0

If I wanna move the note to ‘tick’ 40 on line 00 I simply delete the note and enters it on the ‘40 tick line’ Then it will automatically get a 40 delay behind it.

00 — – -- –
40 c-2 – -- 40
80 — – -- –
C0 — – -- –
01 — – -- –
40
80
C0


4x view of line 00-01:

00 — – -- –
40 — – -- –
80 c-2 – -- 84
C0 — – -- –
01 — – -- –
40
80
C0

If I move the note one ‘tickline’ up by deleting a line above the note (using backspace) the note will be moved one tickline up and get 44 as delay:

00 — – -- –
40 c-2 – -- 44
80 — – -- –
C0 — – -- –
01 — – -- –
40
80
C0

So… all moving/inserting of notes will be just as in 1x view, but the notes will automatically get a delay value.

@It-alien: you have to stop thinking of the delay as a delay :) You are setting the note position. Not a delay. I think this will work just great. Its just one of those things you have to get used to . :P

just mho

BTW… what terminology should we use here?

1x Zoom: <-??

00
01 <= line?


4x zoom: <-??

00
00 <=subline? :)
00
00
01
01
01
01


Is ‘delay column’ the right word you think?

When a note is ‘delayed’ by let say 84. Is the note then placed on ‘tick’ 84

00 c-2 – -- 84
01
02

Should we use the word ‘tick’ at all?

any suggestions?
my english sux… :blink:

I don’t see the point with the delay column at all… From what I’ve understood there’s nothing more you can do with the delay column that you can’t do with zooming in. Seems only confusing to me.

Please correct me if I’m wrong here…?

Editing timings with a delay column can often be much more efficient to work with if you don’t need to zoom. A groove defined by a columnrange of delays can be copied and applied to other tracks. When zoomed out you can still see where the note is positioned. And I’m sure other reasons can be found.

I just got an idea of how sublines (good word Pysj) can be shown when zoomed in. As Pysj wrote above, but with different colors for line numbers and the starting delaytick of each subline:

4x view of line 00-01:

00 — – -- –
40 — – -- –
80 c-2 – -- 84
C0 — – -- –
01 — – -- –
40
80
C0

I think this should not be allowed. But you might be right that the delayvalue entered in a subline should be relative to the subline beginning. Or maybe we should make it an option :D

Actually, there is a similar issue today, entering a delay with a higher tickvalue than the current speed will make the note not play at all.

Ok… seems like a good idea. :) However I still think it’s a bit confusing to work with two different ways. But if we can find a good solution how the delay value relates to the note position I think it will work just fine.

There already is “highlight each x lines” which would do the trick I think. If zooming in, the highlight would be 2x lines, 4x lines etc instead.

Another thing is that everyone is speaking as if 1 x view is something obvious. I normally work with speed 03 which probably would be 2 x zoom for you if you’re used to work with speed 06. With this perspective I think marking the sublines with a different color is irrelevant, since 1 x zoom is something “made up”. I might even want to zoom to 1/2 or 1/4 at some time if that gives me a better view of the whole pattern.

What is really interesting to the user is what each line represents (1/16th of a beat, 1/8th of a beat etc), which can be derived from the current zoom level and BPM.

Ugh … ! :o

I don’t think color should be the difference between line numbers and sublines. Besides, think of our colorblind users :D

I would prefer something like:

00:00 — – – –
00:40 — – – –
00:80 C-2 – – 84
00:C0 — – – –
01:00 — – – –
01:40 — – – –

Maybe there could be an option for the user to decide.

If you want faster speed in 1x zoom you just set more Lines Per Beat (LPB).
Speed 6 = 4 LPB
Speed 3 = 8 LPB

You are not supposed to work in zoomed mode all the time.
And the colors are only on the linenumbers.

As I’ve understood it LPB is to be removed as it’s outdated with the new concept. And I don’t visualize it to be a “zoomed mode”… it’s something you have all the time. If you don’t want to use it, just don’t zoom.

I think it would be best to only allow the delay column to be used on the “main” line, but not on the “in between” lines… That would simplify it a lot.

Vohaul’s suggestion for the layout is a good one, but leave the delay column totally blank (not even the __) for the zoomed-in lines.

“1x view” == “not zoomed in” == “zoomed completely out”

How long time one line represents will depend on the Lines Per Beat (LPB) parameter, which I at the moment think should be a parameter in each pattern. So with your speed 3 will correspond to LPB=8 (32nd notes), and speed 6 to LPB=4 (16th notes).

It’s not “made up”. The LPB parameter will define how many lines there are per beat, while there will allways be a subdivision of 256 delayticks within one line. When zooming in, the sublines you see are the ones “made up”.

I need to find a better way to explain this, since in a sense a subline is not a line. A line is what is refered to by the LPB parameter, so LPB number of lines together make one beat (a beat is defined by the BPM). When “zoomed all out”, “not zoomed in” or using a “1x zoom” a line is represented by one row on screen. When zoomed in X times, the rows on screen will represent 1 line followed by X-1 sublines. So a subline is a row that represents 1/X of the time a whole line represents. Put otherwise, when zoomed in X times, there will be LPB*X rows on screen per beat.

Given the accuracy we have on a forum like this when discussing rows and columns, this terminology will not hold for explaining to anyone but a few people.

I have not planned to support that.

If you mostly only need 16th notes, then LPB=4 will be the best and you can zoom in when you need to work with details. And of course expand and shrink advancededit commands will still be available in case you wish to change this for a pattern.

Note: If you want an insanely high sampleaccurate timing resolution, you could use LPB=16 which will give you 16*256=4k ppq (I think Cubase has about 1500).

In the pianoroll, this will not be of any concern, since moving notes will automatically set the right delays and can be done continuously. Actually, you can zoom in the time so the screen covers one line only, and position notes as you wish.

Terminology:

BPM - Beats Per Minute, will not change in any way
speed - number of playerticks one line represent, will be obsolete and removed

LPB - Lines Per Beat, the number of lines (see below) that together form one beat
line - the basic time unit, is shown with one row when no zooming in is in effect
tick - one line is subdivided into 256 ticks
row - GUI term only, one horizontal visual line of text and numbers
Yx zoom - GUI term only, showing Y rows per line
subline - GUI term only, when zoomed in each row represents a subline. A subline covers 256/Y ticks of time with a Yx zoom.
1x zoom, no zooming, zoomed all out - All means the same thing. In this state one row on screen represents one line of time.

Ok, I completely understand if there is an LPB value. I thought the idea was to not have LPB which would have made zoom to not relate to anything. Personally I think there’s no need to set LPB which will only be another option complicating it all (ok I can leave it to default and not care about it but I still don’t like the idea…). The Sub-LPB (SLPB :) ) is really what is interesting IMO, but that could be a value shown, not an option. Working like that you could zoom out to only show one line or zoom in and show all 256 or whatever it may be.

To me it seems pointless to set an LPB value with only use to restrain the minimum (1 x) zoom. Why set any limits at all? … maybe I’m missing something here… kind of tired now :)

I dont get it. Why is LPB messing things up for you :) ?
And of course no matter what you set your LPB you can zoom in.
LPB is there to let you decide how fast you want it to scroll in 1x view.
As you said. Some ppl like using speed 3. Others use speed 6.
Instead of speed you now use LPB.
If you work in let say 120 BPM you could of course increase the resolution of lines by double the BPM to 240. But this is a bad idea if you wanna sync midi/vst. Instead you just increase the LPB. The current ‘speed’ function is far more confusing then a LPB.

Maybe you (Johan) was thinking of a constant LPB set to 1. Which means that one line is one beat… and then you zoom in and work on sublines constantly. If thats true I dont quite see the point of that. Then you could just leave the system the way it is now and make an extra ‘beat number column’ outside the linenumber column:

0000 <=beat 00 and line 00
– 01
– 02
– 03
0104
– 05
– 06
– 07
0208

Who need to have the count of beats anyway ;)
You learn pretty fast what linenumbers that has the different beat numbers in the current system.
Maybe I’m way off… or did you think of something like that?

Then back to sublines and delay values.
I think there is a lot of confusion in this thread now.

Remember that in the very most of the time you will be working in 1x view. Just the way you do now. There is no reason you should zoom in and stay there all the time. If you use 2x zoom constantly then you should just double the LPB instead.

And… 90% of the time you only have one action going on in each line.
like:
1x view

00 c-2 – – –
01
02 off – – –
03
…etc

Then there is no problem. If you wanna delay this note you just type the delay in the delay column like:

1x view

00 c-2 – – 84
01
02 off – – –
03
…etc

No need for zooming here… unless you find it more comfortable to zoom in and type or move the note around in the sublines.
But remember you have to zoom a hell of a lot to find a subline that starts on tick 84.
Anyways… I dont think many ppl will delay a note by 84 ticks :) This is more of an issue if you record with a midi keyboard (and maybe get such weird delay values if you move notes with the mouse in the pianoroll… dunno how this will be implanted).
I guess most ppl will manually type notedelay values like 80 (half line) 40 (1/4 line) 20 (1/8 line)…

So… when will you zoom in then?

Obviously when there are several events going on in the same line like:

4x zoom

00 C-2 – – 23
40 Off – – 47
80 — – – –
C0 D-2 – – e2
01 — – – –
40 Off – – 75
80
C0
02

This could be a typical recording made by a midi keyboard.
In 1x zoom this would look like:

00 D-2 – – e2 ← this line is hiding several events = other color
01 Off – – 75
02


You would also zoom if you just hate typing delays on notes.
If you wanna make a note ‘between’ line 61 and 62 you could just zoom in 2x and go to the subline and type in the note. (please note that you dont have to type in the delay value 80 in the subline. That will happend automatically when you type in the c-2):
2x zoom

61 — – – –
80 C-2 – – 80
62 — – – –
80 — – – –
63 — – – –


Sometimes it could be usefull to move all notes in a track/column a few ticks up or down. This is easily done by zooming in on the first line and then use the insert/backspace keys to move all notes one subline up or down. And an option to just move events inside the line only could also be usefull (shift+ insert/backspace maybe?)


@WeeTee:
You suggested to only have delaycolumn in the lines and not in the sublines.
Take a look at the next example and tell me how you would move the note-off that is on tick 47 to let say tick 75 on line 00 :). You would have to zoom all the way in and delete the note off and then find the subline on tick 75 and type a note-off there. And… what happends if you zoom out again? Should the note-off just dissapear between the lines then?

With the delay column you always know where the note is…
The delay column always tells you on what tick the note is placed.

4x zoom

00 C-2 – – 23
40 Off – – 47
80 — – – –
C0 D-2 – – e2
01 — – – –
40 Off – – 75
80
C0
02

My point by all this is to try to make ppl understand that you wont zoom that much. Maybe some 2x and some 4x. But I dont think you will play the pattern/song when zooming 4x or more… its fast!
So some heavy zooming wont happend that often.
So why bother if there is a delay column there with some strange numbers on it :)?
Just hide it if you dont use it.

LPB doesn’t mess up anything and I would probably feel quite comfortable working this way. But it feels utterly pointless to me. Why implement an option that we could live without and not miss. An example of the two solutions:

Your idea:

  • You set the LPB to your liking, most would set this to 4 (or 8) - representing speed 6 (or 3) in 1 x zoom.
  • You set the BPM to whatever you want.
  • You have 1 x zoom by default (on startup) and can start working right away. Everything works exactly like now.
  • You need a bit more detail and zoom in to 2 x or 4 x zoom and can zoom out to 1 x zoom again.
  • Everyone can save their default song with LPB, BPM and zoom as they want.

My idea:

  • You set the BPM to whatever you want.
  • You have 4 x zoom (just a guess) by default (on startup) which would be the same as 1 x zoom and LPB 6 by the above solution.
  • You need a bit more detail - zoom in and out exactly as above.
  • Everyone can save their default song with BPM and zoom as they like. If you’re used to work with speed 03 save a default song with 8 x zoom which would be exactly the same.

The two ideas work identical in practise, you just get rid of one option my way. Seriously, I can’t see the the downside with this?!

That would be LPB 4, not 6.

Ok… The advantage i see in your way of zooming is that you can zoom out more then your ‘main’ working resolution.
Is that to get a better overview or something? It would be pretty hard to (and not so useful) to enter data in patterns that show an eniter beat in each line.

You can however do that in ‘my’ system too.
If you set LPB to 1 and zoom in 4x.
If you want to zoom out even more like 1/2 beat per line you could have a problem. But I cant see what so practical about this. Why do you wanna zoom out so much?`
And btw some sort of patternsequencer will solve the ‘overview issue’ anyway.

Or did you just mean that the LPB and speed can be removed just becouse you can zoom?
If so… remember that a pattern’s resolution will be defined by lines*256ticks.
So if you zoom in just to get more LPB then you loose resolution.
How will you define a pattern at all if you just zoom in till you find the right scrolling speed? Should the number of lines in pattern change when you zoom then? :)
How will you define lines and sublines? Delay numbers? This will be more messy imho (if possible at all).

Also as martinal suggested you might set LPB to individual patterns. And you still has functions like shrink/expand.

No there’s no special reason. Just because it’s possible doesn’t mean you have to use it. It’s a flexible solution though. Maybe someone would apreciate it to get an overview of patterns.

I don’t :) That’s not the point with my solution.

Yep, you got it! That’s exactly the reason. Make it simple! This is no big deal for experienced tracker users like us, but as a newbie I guess you want an easy way of working.

As a user I don’t want to be concerned about ticks at all imo. My idea is to drop ticks, sublines, LPB and speed from the user point of view to make it easy. You say that lines*256ticks is something defined. I say that as long as you can zoom in very much to get an extremely high speed and resolution that could work for everyone.

Yes the number of lines should change (be doubled) when you zoom in. I make no difference between lines and sublines. The lines is simply what you see on the screen, in other words the same as sublines. So the term sublines would be obsolete then. Everything would work exactly the same for both solutions. You just don’t have the LPB setting and you would start with zoom x 4 instead of zoom x 1 with my idea.