Jump to content


Photo
- - - - -

A question of speed


  • Please log in to reply
197 replies to this topic

#1 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 20 March 2003 - 13:00

As we're planning increased timing resolution in Renoise, some important questions come up. One possible and very flexible solution is this:

Tracks contain note events and command events that each have a timestamp attached to them. This timestamp might be (linenumber, delay) where delay is a value xx=00-ff (hexadecimal) or 0-255 (decimal) that means a part of a line, xx/256. The largest changes here are
1) Increased timing resolution of 256 timeticks per line. This will allow finer placement of notes and advanced edit operations like humanizing and groove quantizing.
2) An event has a line/delay position, not the other way around found today where a line has a note in it. This means that a line might contain more than one note on/off! To visualize this, zooming in/out in time in the patterneditor must be implemented, and some sort of color code or other marking must be applied where not all notes can be viewed. This will also allow very short notes (down to 1/256 of a line).

Pianoroll and midi import/export will take full advantage of this change of course.

Now we want some opinions from you:

What should happen with the current "speed" parameter? This parameter is here from the old days of FT2, and is good to have for compatibility. But it causes a lot of confusion, and with a change like this it will be IMHO obsolete. There are mainly two things this parameter is used for (any other?):

a) Getting a higher pattern resolution either by setting it high (more resolution within a line) or setting it low (more lines per beat). This will be obsolete, since the new resolution will exceed this by many times and zooming in/out will let users view more the pattern with or less lines per beat. It could be replaced by a "lines per beat" parameter though, to set the number of lines a beat should be in a song, or a "normal" zoom level.

b) Making a groove by using speed change commands in the pattern. This will need some replacement. One idea I have here is to introduce a new parameter to be changed as parameter commands in the master track, a tempo multiplier. This can be a value 00-ff where for instance 80 means normal tempo and lower/higher values means lower/higher tempo relative to the current tempo.


Any other comments and ideas for this are welcome here. Does this sound perfect? Or do you have an even better idea? Or will it ruin your way of composing?
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#2 Pysj

Pysj

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2225 posts
  • Gender:Male
  • Location:Norway

Posted 20 March 2003 - 18:36

Great ideas! With a lines per beat and a tempo multiplier I dont think anyone will miss the old speed parameter.
Go for it! :)
-pysj

#3 It-Alien

It-Alien

    Probably More God or Borg Than Human Member

  • Moderator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 9593 posts
  • Gender:Male
  • Location:Avellino, Italy
  • Interests:trackers, basketball, chess, tabletennis, programming, writing, drumming, burping

Posted 21 March 2003 - 10:42

MadTracker has a Line Per Beat value.

Actually, i've never felt accoustomed with this feature, but I've never felt accustomed with MT2 in a whole, so it could be just because of this.

there should not be problems in switching to this new way of thought: after all, is just like inverting a fraction.

I think that even with the lot of tempo/speed changes I do, everything should be ok.
my specs:
cpu:Intel Core2 Quad Q9550 (4x2.83Ghz, FSB 1333Mhz)
os:Win7 Home Premium 64bit - OSX 10.9.1 64bit
audio: M-Audio Audiophile 24/96 PCI


Unschemed, hypertechnical tracked music. Sounding different since 1993.

my latest song: Lavender Town Syndrome (11'33", Psychedelic Beast)


where to find more music by me: soundcloud , jamendo , last.fm , napodano.com , facebook

RTFM.gif

("Lavender Town Syndrome, 11'33" Psychedelic Beast)

#4 Johan

Johan

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1657 posts

Posted 21 March 2003 - 19:31

This seems like a perfect idea! Go for it! And it will be 100% compatible with the old Renoise... if you don't want to use it, simple don't zoom in.

The only tracker I've seen work like this is MidiTracker on the Amiga. I tried to find the homepage link (for ideas/inspiration) but it seems to not be up any longer :(

#5 Parsec

Parsec

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 771 posts
  • Gender:Male
  • Location:Zeta Reticulis

Posted 24 March 2003 - 12:01

:ph34r:
This future feature seems to scare me a bit... the whole conception of tracking could change... and I would be greatly sorry about this
:(
But the idea of a "zoom" seems to stick in my mind as there could be something usefull hidden in it... hmmm :huh:
Let's brainstorm a bit :)

I visualize it this way:
-You are working on your normal pattern
-You have to place a note somewhere between two lines..
-You click on the first line... (with some function key pressed)
-a new mini-pattern splits the current pattern between the line you clicked and the next one... showing what's hidden in the middle...
(Somewhere in the configs you are supposed to set some mini-pattern option like the numbers of lines our mini-patterns contains.)
-a new click puts the two half patterns back toghether
-The line you edited is shown in a slightly different way... like a color or a small dot in the beginning...

Every line would have that mini-pattern popping up... non-marked lines could contain just empty non-edited mini-patterns. this way playback will be linear as it is now...

Another way to get advantage from improved timing could be "The Slider".
when you function-click on a note a slider pops up under your pointer... You can select a delay value for the note you clicked by moving the slider up or down...
As soon as you release the mouse button the note delay value is set (with 256 timetick per line precision) where 001 means the note is played almost right after the the previous line... and 256 means it is played almost before the next line. Improving this might lead to suppress position 128 in the slider because it will mean "play the note exactly where it is"... :D

Another point to keep into consideration is the Groove settings.
I honestly wasn't able to juice out anything good from those sliders... (my fault?) so I wonder if improving timereso will somehow compell you developers to work on some new/better way to swing patterns...

Just brainstorming...
:)
Parsec
Feeding the masses with the right beat
Alien Sound Labs

#6 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 24 March 2003 - 15:51

:ph34r:
This future feature seems to scare me a bit... the whole conception of tracking could change... and I would be greatly sorry about this
:(

Of course unless it's to the better for everyone I assume :)

But the idea of a "zoom" seems to stick in my mind as there could be something usefull hidden in it... hmmm :huh:
Let's brainstorm a bit :)


Exactly the point of this thread. Sadly, it hasn't got a lot of response yet. Compared to the potentially large changes that might happen, that's strange IMO.

-a new mini-pattern splits the current pattern between the line you clicked and the next one... showing what's hidden in the middle...
(Somewhere in the configs you are supposed to set some mini-pattern option like the numbers of lines our mini-patterns contains.)
-a new click puts the two half patterns back toghether
-The line you edited is shown in a slightly different way... like a color or a small dot in the beginning...


Pretty much like what we've thought. Except that I haven't thought of it as a "mini-pattern".

Every line would have that mini-pattern popping up... non-marked lines could contain just empty non-edited mini-patterns. this way playback will be linear as it is now...


Yes. This is what will make it completely backwardscompatible.

Another way to get advantage from improved timing could be "The Slider".
when you function-click on a note a slider pops up under your pointer...


We were thinking more like a delaycolumn for each note (and effectcommand), with values 00-ff where 00 means exactly on the line and ff=255 means just before the next line. The column would be optional like todays vol/pan.

The delaycolumn alone will give higher resolution. For a lot of people, only using this will be enough. For instance, when just moving the start of a note slightly off-beat it's much quicker to just enter a delayvalue in the pattern than to do all the zooming in and out.

So what will be gained by the zooming? The point is to remove the biggest (IMHO) limitation of the normal tracker pattern and be able to (within one notecolumn):
* make notes shorter than one line
* put noteoffs and ons in the same line with a short delay between
* put more than one note and noteoff on one line

When zoomed out, some mark must be put next to some lines to show that there are more details not shown, since only the last note can be shown.

What I'm not sure about is how the zoomed in view will be like when it comes to the delaycolumn values. Any ideas?

Just brainstorming...
:)


Keep it coming :)
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#7 marc

marc

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 368 posts

Posted 24 March 2003 - 17:03

zooming would be a long-time wish come true... i was about to make that suggestion some time ago... i just wonder what you will do with the track effects, afaik they work for one line.. so what happens if you want to make a volslide or noteglide or arpegio...? i guess you have to zoom into highest detail for that and write a whole lot of commands?

#8 Vohaul

Vohaul

    Advanced Member

  • Normal Members
  • PipPipPip
  • 107 posts

Posted 24 March 2003 - 17:55

I probably wouldn't use this feature too much myself, but it would be useful. As long as it is 99.99% backwards compatible :D

BTW, when zoomed out, I think each line should show only the first note in that line, not the last one, as martinal said. For example, say the "normal" view is:


03 C-4
04 ---
05 ---


We zoom in on line 03:


03:00 C-4
03:01 ---
03:02 ---


Add a note:


03:00 C-4
03:01 ---
03:02 D-4


Zoom back out, I think it should still look like:


03(+) C-4
04( ) ---
05( ) ---


With maybe a (+) sign or something next to the line to indicate there is more.

Also I included an idea for the zoomed in look:

256x zoom in:


03:00 C-4
03:01 ---
03:02 ---


64x zoom in:


03:00 C-4
03:04 ---
03:08 ---


16x zoom in:


03:00 C-4
03:10 ---
03:20 ---


4x zoom in:


03:00 C-4
03:40 ---
03:80 ---
03:C0 ---
04:00 ---


:lol:

#9 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 24 March 2003 - 18:37

BTW, when zoomed out, I think each line should show only the first note in that line, not the last one, as martinal said.


I don't agree. Why? Using your example the note that will continue to play is the D-4. So that note is more relevant in the big picture than the short C-4 before it.

Also I included an idea for the zoomed in look:


I like it. B)
We could also make it possible to zoom in by numbers that are not powers of 2, but the zoomed in lines would have some quantization error:

3x zoom:

03:00 C-4
03:55 ---
03:aa ---
04:00 C-4


256*1/3 = 85.333 ~ 55 hex
256*2/3 = 170.666 ~ aa hex

this will allow easy input of triplets and other complex rythms.
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#10 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 24 March 2003 - 18:45

This new structure will allow much easier and better implementation of operations like humanizing and quantizing. I recently thought of one idea for a "groove quantize" commands. The operation can take a track as input, or a block which it repeats, and use the rythm there to quantize the wanted notes.
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#11 Vohaul

Vohaul

    Advanced Member

  • Normal Members
  • PipPipPip
  • 107 posts

Posted 24 March 2003 - 19:11

BTW, when zoomed out, I think each line should show only the first note in that line, not the last one, as martinal said.

I don't agree. Why? Using your example the note that will continue to play is the D-4. So that note is more relevant in the big picture than the short C-4 before it.


Yeah ok I can see that ... I just thought my suggestion made more sense from a programmatical / layout POV. ;)

So how would existing delayed notes be handled? Would they be "automagically" moved to the appropriate sub-line? Or would they stay on sub-line 00 and just keep the existing note delay command? What if you issued a note delay command on an already delayed note?

:blink:

#12 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 24 March 2003 - 20:03

I think the current delay command must be removed. The speed change commands will then be changed to tempo multipliers (or whatever we choose to replace them with) and delays will be translated to the new delay. A small quantization error will occur, but it won't be more than 1/256 of a line big.
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#13 Pysj

Pysj

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2225 posts
  • Gender:Male
  • Location:Norway

Posted 24 March 2003 - 20:14

Just an additional suggestion:
A function to spread the notes to unoccupied note columns.
So if you for some reason has 2 notes in the same line you could easily spread them to two different columns (thus making you able to see them both in 100% zoom)
-pysj

#14 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 24 March 2003 - 20:22

A nice idea, wouldn't be hard to do. Also, a better recording scheme would be nice. One way we've discussed is to store all the recorded notes in a hidden "recording track", and apply them to the pattern after the recording is finished. Then the notes and noteoffs can be much more intelligently placed than by choosing a free note column in realtime, since the notes not always can sound with the full intended length now. Then different recording modes like merge or replace will be a matter of applying the notes afterwards with different algorithms.
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#15 Pysj

Pysj

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2225 posts
  • Gender:Male
  • Location:Norway

Posted 24 March 2003 - 20:52

Thats not a bad idea.
More ideas (just brainstorming :))
For instance it could be nice to have the notes placed fram lowest to highest pitch (from left to right) when playing chords etc.
Or sometimes you would just split everything up to let say C3 to the first x columns and the rest over C3 to the last y columns. This way you could easily split left and right hand etc. This could be done after the recording by selecting pattern/track/block.
And another thing could be to select manually which columns it should write on during the recording. If you have planes to have that mute button on each column, then I guess you could have a rec button there too?
This way you could easily do several recordings on the same intrument(same track) (guess its not that important if you can use the same vsti on several tracks).
-pysj

#16 Vohaul

Vohaul

    Advanced Member

  • Normal Members
  • PipPipPip
  • 107 posts

Posted 24 March 2003 - 21:00

And another thing could be to select manually witch columns it should write on during the recording. If you have planes to have that mute button on each column, then I guess you could have a rec button there too?

I definitely second that. I hate it when I try to record on a track with multiple columns, where one column already has notes entered on it, and then I record into the track and my old notes get interfered with.

#17 Johan

Johan

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1657 posts

Posted 24 March 2003 - 21:14

03(+) C-4
04( ) ---
05( ) ---


With maybe a (+) sign or something next to the line to indicate there is more.



I would rather see a second text color marking there's hidden notes/effects/volume/panning. Then you would quickly see if it's notes or fx, and it wouldn't take up precious screen space.

#18 Guest_Guest_*

Guest_Guest_*
  • Guests

Posted 25 March 2003 - 10:56

zooming would be a long-time wish come true... i was about to make that suggestion some time ago... i just wonder what you will do with the track effects, afaik they work for one line.. so what happens if you want to make a volslide or noteglide or arpegio...? i guess you have to zoom into highest detail for that and write a whole lot of commands?

:D :angry: :unsure: :ph34r:

#19 splajn

splajn

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1417 posts
  • Gender:Male

Posted 26 March 2003 - 08:43

This might be a stupid question, but if you zoom you will only be able to delay one note? Would it not be nice if you could add several notes when you have zoomed?

#20 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 26 March 2003 - 09:28

Yes, and that is the main reason behind the zooming. Since one line (without zooming) can't show more than one note one will have to view it in a different way (zoomed in).
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#21 Cie

Cie

    Guruh Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 803 posts
  • Gender:Male

Posted 31 March 2003 - 10:10

03(+) C-4
04( ) ---
05( ) ---


With maybe a (+) sign or something next to the line to indicate there is more.

I would rather see a second text color marking there's hidden notes/effects/volume/panning. Then you would quickly see if it's notes or fx, and it wouldn't take up precious screen space.

First, I absolutly agree to a new resolution feature.

The above idea is a little bit too complex and circuitous. You have everytime to click on the (+) to edit it, zooming in and out all the time.
Eediting a track in this way is a horror, e.g. you can not use the edit-step function etc.

My suggestion:
Why not implement a zooming feature for the *whole* pattern? You could replace the speed-button with a resolution-zoom-button and mark each track (not each note) if there were notes editied on a higher resolution than the current selected one.

For example, you have set the resolution to "06" (default) which will be a pattern resolution of 64. When you want to edit in a higher resolution, you have to set it to "03" and the whole pattern "zooms" and you get a length of 128. "02" to "256" "01" to "512" and so on.
So you can switch fast and easy between different resolutions and edit the whole track at once instead of clicking on each note.
So you just could replace the speed-button with a resolution-button; It will allow to load old tracks with speed-settings as well; simply assign the speed settings to a higher resolution.


For example, the following sequences are the same (bpm)speed with different note-resolution:

resolution "06" = pattern length 64(dec)
00 d-4
01
02
03
04 d-4
05
06
07
08 d-4
09
10
11
12 d-4
13
14
15
16 d-4
...
60 d-4
61
62
63

and resolution="03" = pattern length 128
00 d-4
01
02
03
04
05
06
07
08 d-4
09
10
11
12
13
14
15
16 d-4
...
120 d-4
121
122
123
124
125
126
127

The benefit of the second preference is that you now can add 1/16 notes easyly (to achieve e.g. shuffle beats); and you can not add notes only, but also effects and midi-cc, to achieve e.g. great (midi-)delay-effects (which no efx-processor can provide).
This is for professional work essential.

As Jonas mentioned this method is implemented in the Amiga Miditracker.

I think this method is more user-friendly, because clear and easy to edit.
Furthermore I guess it is easier to implement.

#22 jiku

jiku

    Big Super Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPip
  • 637 posts
  • Gender:Male
  • Location:Bergen, Norway
  • Interests:(Synthetic and molecular) biology, science theory, ontology, music, illustration, ++

Posted 31 March 2003 - 14:43

Or you can merge the idea. Like threaded messages in your inbox folder.

So if total depth is 3, 3x shows everything:
Message from someone. (-x)
RE: Message from someone. (-x)
RE: RE: Message from someone.

2x:
Message from someone. (-x)
RE: Message from someone. (-x/+x)

1x:
Message from someone. (3x)



The symbols are optional, and there's probably a better way to indicate level depth, but this'd let you know it's total without zooming.

Pattern editor:

1x:
00 C-4 (3x)
01 C-4 (2x)
etc.

2x:
00 C-4 (-x)
..00 D#4 (-x/+x)
..01 F-4
..02 F#4
..03 G-4
..04 D-4
..05 G-4
..06 F-5
..07 D-5
01 C-4 (-x)
..00 D#4
..01 F-4
..02 F#4
..03 G-4
..04 D-4
..05 G-4
..06 F-5
..07 D-5
etc.

3x:
00 C-4 (-x)
..00 D#4 (-x)
....00 D#3
....01 ---
....02 D#2
....03 ---
....04 D#1
....05 ---
....06 D#0
....07 ---
..01 F-4
etc.



You could sort it with color, symbols, whatever. The idea isn't hard to grasp, but visualizing it without creating a disproportioned abomination might be. But everything can be contracted and expanded seperately, or with the use of the switch mentioned.

Mac Mini Late 2012, OS X 10.10.2, UAD Apollo Quad

Spoiler

#23 martinal

martinal

    Renoise Contributor

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1158 posts
  • Gender:Male

Posted 31 March 2003 - 15:01

The above idea is a little bit too complex and circuitous. You have everytime to click on the (+) to edit it, zooming in and out all the time.
Eediting a track in this way is a horror, e.g. you can not use the edit-step function etc.

My suggestion:
Why not implement a zooming feature for the *whole* pattern? You could replace the speed-button with a resolution-zoom-button and mark each track (not each note) if there were notes editied on a higher resolution than the current selected one.

Then I guess you'll be only pleased to hear that you've misunderstood. When zooming the whole pattern will be zoomed by the same amount, much like you suggested.
<span style='color:blue'><span style='font-family:Optima'><b>martin</b> at <i>renoise.com</i></span></span>

#24 Cie

Cie

    Guruh Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPip
  • 803 posts
  • Gender:Male

Posted 31 March 2003 - 19:15

When zooming the whole pattern will be zoomed by the same amount, much like you suggested.  

Oh, ok. Excellent, then. :)

So it is just a matter how to visualize a used higher resolution in a track in the best way.
Related to that, this idea

03(+) C-4
04( ) ---
05( ) ---

With maybe a (+) sign or something next to the line to indicate there is more.

I would rather see a second text color marking there's hidden notes/effects/volume/panning. Then you would quickly see if it's notes or fx, and it wouldn't take up precious screen space.


with different colors might be a good idea, but what colour you choose when 3 or 4 different efx were used in higher resolution.
Maybe the amount and kind of efx could be shown on the top of each track and not on the positions.

3x:
00 C-4 (-x)
..00 D#4 (-x)
....00 D#3
....01 ---
....02 D#2
....03 ---
....04 D#1
....05 ---
....06 D#0
....07 ---
..01 F-4
etc.


I think the most tracker user are accustomed to the usual illustration like
00
...
63
64
..
127

#25 It-Alien

It-Alien

    Probably More God or Borg Than Human Member

  • Moderator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 9593 posts
  • Gender:Male
  • Location:Avellino, Italy
  • Interests:trackers, basketball, chess, tabletennis, programming, writing, drumming, burping

Posted 01 April 2003 - 09:55

how do you want to support for patterns with changing speed values?

in my opinion, there should only be two options:
no zoom (normal view)
zoomed view in which you see each tick as a line.

Also, how to display commands in zoomed mode?

Assume you have this in normal view:
C-4 01 40 80 0104 0F04

the zoomed view should show this:
C-4 01 40 80 0104 0F04
--------------- 0104 -----
--------------- 0104 -----
--------------- 0104 -----
my specs:
cpu:Intel Core2 Quad Q9550 (4x2.83Ghz, FSB 1333Mhz)
os:Win7 Home Premium 64bit - OSX 10.9.1 64bit
audio: M-Audio Audiophile 24/96 PCI


Unschemed, hypertechnical tracked music. Sounding different since 1993.

my latest song: Lavender Town Syndrome (11'33", Psychedelic Beast)


where to find more music by me: soundcloud , jamendo , last.fm , napodano.com , facebook

RTFM.gif

("Lavender Town Syndrome, 11'33" Psychedelic Beast)