Meow is talking about using the suggestion to use the entire alphabet. However, this wouldn’t actually change the base system if it was only used for selecting effects. We could still keep all of the parameter values pure hexidecimal. I’ve seen this done in a few trackers. (LSDJ, for one.)
Yeah… or FastTracker II, or ImpulseTracker…
Yeah, forgot about that one. Thanks for the heads up.
As phate understood me, using the entire alphabet (as apposed to a-f) would complicate things severly. Like for example, if you would put in a command of “7R” into the volume column, what would that translate to?
On the other hand, keeping the hex everywhere else and just using it as effect commands might be nice.
Well, nobody ever suggested anything else, at least I’m pretty sure I didn’t…
“In summmary, keep the effect command values up to FF (until graphical icons come along maybe), but for the effect commands themselves, we need more than 16 (0-F) definitely! If anything it’s clearer because then people will see the effect type and effect value are two seperate entities. Otherwise they’re thinking “Oh, so both types go up to F”, and thus they’re more likely to conflate the two.”
Thats is very logical and would improve the useability.
I think the, keep it to only F to not confuse is not right.
Rather have b for backwards, r for retrigg, l for loop etc. m for markers, t for tempo etc. Would make it more userfriendly because that gives each letter a more logical connection.
Though Icons would be even more user friendly, however that would requrie a whole new design, which is not worth it right now.
Hallelujah! Finally there’s someone who sees this the way I see it! Thank you! And NO graphical icons FFS! That is just stupid, who benefits from them if that cripples powerful usage of the program, even if it is made more obivous? Renoise is not a baby toy GODDAMMIT! We already understand latin alphabet and arabic number symbols, why woud we need icons?
Impulse Tracker example, some of these wouldn’t be neccessary but all of them could be used in Renoise:
Axx Set Speed.
I prefer to think of this command as "Set Frames per Row".
Normally, the tracker operates at around 50 frames a
second. If the rows were played at this speed, then a huge
amount of space would be required to enter the pattern data.
Instead, setting the 'speed' of the song will cause the
tracker to wait on the current row for 'xx' frames. Hence,
setting the speed at 50 (decimal = 32hex) will cause each
row to last about a second - quite a long time! The default
is A06. The initial speed can be set in the variables
screen on F12.
If two Axx commands are given in the same row, then the
command in the higher channel (by number) will take effect.
Bxx Jump to order.
Causes the song to jump to order xx (hex). This is often
used to create looping songs.
If two Bxx commands are given, then the command in the
higher channel will take effect.
Cxx Break to row.
The Command Cxx signifies the end of the current pattern,
and also that the next pattern should be played from row
xx (hex)
If two Cxx commands are given... you know ![:)](https://files.renoise.com/forum/emoticons/default/smile.gif)
D0x Volume slide down
The volume slide down command causes the volume of the
note to be reduced by x for each frame after (for that
row). ie. If you have a note at volume 64, with command
D01 and speed A06, then the final volume will be 64-5=59.
A note at volume 32 with command D02 at speed A05 will
result in a volume of 24.
For greater S3M compatibility, D0F will cause the volume
to drop by 15 EVERY frame, instead of just off-note frames.
Here's a full frame-by-frame description which should provide
greater understanding:
At 'speed' 4:
C-4 01 .. D04
What this does is:
Frame 1: Plays C-4 with instrument 1
Frame 2: Lowers the volume by 4
Frame 3: Lowers the volume by 4
Frame 4: Lowers the volume by 4
The next frame will be controlled by the next row of
information.
Dx0 Volume slide up.
Operates exactly the same way as D0x, but slides the
volume up by 'x'. Volumes cannot exceed 64 (checked
and limited internally).
For greater S3M compatibility, DF0 will cause the volume
to rise by 15 EVERY frame, instead of just off-note frames.
DFx Fine volume slide down.
Takes the volume down by x at the start of the row.
DxF Fine volume slide up.
Takes the volume up by x at the start of the row.
Exx Pitch slide down
The pitch will slide down with speed xx (hex). In linear
frequency mode, a pitch slide down by a particular value
will always cause the same "pitch interval" - this does
not occur in Amiga frequency mode. Valid ranges for xx
are between 0 and 0DFh (as > 0E0h will be interpreted as
fine slides)
EFx Fine pitch slide down
Slides the pitch down by x at the start of the row.
EEx Extra fine pitch slide down
Same as EFx, but 4 times finer. (ie. EE4 is equivalent to
EF1)
Fxx Pitch Slide up
FFx Fine Pitch slide up
FEx Extra fine pitch slide up
Operates in the same manner as the Exx commands, but
slides the pitch up. If the pitch gets 'too high', then
the channel is turned off.
Gxx Portamento to note.
This command requires 2 parameters: A note to slide to
and a speed. Example:
C-4 01 ùù .00
G-4 01 ùù G08
ùùù ùù ùù G00
ùùù ùù ùù G00
This will cause the note C-4 to slide to G-4 with speed 8.
You *CAN* change the sample that the note is sliding to.
It is a good idea to make sure that the C5Speed of the
samples is similar, if you want to try this! The new sample
will play from it's beginning.
Hxy Vibrato with speed x, depth y
Causes the frequency to osciallte with depth 'y' at speed
'x' which causes an interesting effect. Don't get carried
away with it though! If you specify EITHER x or y as 0, then
the previous value will be used.
Ixy Tremor with ontime x, offtime y.
Causes the volume of the instrument to remain normal for
x frames, then sets the volume to 0 for y frames.
Jxy Arpeggio with halftones x, y.
This causes the note to quickly cycle through three notes -
the note playing, a note x halftones above, and a note y
halftones above. This causes an effect similar to old
C-64 chords.
Example: C-4 01 ùù J47 will cause the notes C-4, E-4 and
G-4 to be cycled.
Kxx Dual command: Vibrato + Dxx (Volume slide)
Note: The vibrato could have been set with either Hxx or
Uxx
Lxx Dual Command: G00 + Dxx (Portamento to and Volume slide)
Mxx Set channel volume
Each channel has a volume range from 0->40h. The lower
the value, the softer the notes in the channel. This
command is convenient for making 'echoes'... you won't have
to modify the echoing channel from the original, except
for placing a M20 at the top of it!
Values greater than 40h are ignored at playtime.
N0x, Nx0, NFx, NxF Slide channel volume commands
These commands work in the same manner as the slide
volume commands, but operate on the channel volume,
rather than directly on the note volume.
Oxx Set sample offset.
This will cause a sample to be played from offset yxx00h.
This is useful to skip past the first part of a sample
which may have a loud hit, or to start a speech sample
half way through.
If you specify a value PAST the end of a sample, then the
command is ignored.
The "y" part of yxx00h is set with command "SAy"
Example:
... .. .. SA5
C-4 01 .. O10
This will play note C-4, instrument 1 at offset 51000hex
Note to programmers: Oxx for 16-bit samples will move
to the xx00h*2 position in the sample - ie. the 'xx00th'
sample.
P0x, Px0, PFx, PxF Slide panning commands.
These work in the same maner as the slide volume
commands, but operate on the channel panning. P0x slides
the panning right, while Px0 slides the panning left.
Qxy Retriggers a note after y frames with volume modifier x.
This will cause a sample to be replayed from it's
beginning after every y frames. 'x' can be any of the
following:
Value Effect on volume each retrig.
0 No change
1 -1
2 -2
3 -4
4 -8
5 -16
6 *2/3
7 *1/2
8 No change
9 +1
A +2
B +4
C +8
D +16
E *3/2
F *2
Rxy Tremelo with speed x, depth y
This command acts similarly to the vibrato command, but
affects the note volume, instead of the pitch. If you specify
EITHER x or y as 0, then the previous value will be used.
S3x Sets vibrato waveform to x
S4x Sets tremelo waveform to x
S5x Sets panbrello waveform to x
Values for x: 0 = sine wave
1 = square wave
2 = Ramp down
3 = Random!
S70 Past note cut
S71 Past note off
S72 Past note fade
With the loss of 1-1 correspondence of editing channels
to internal playing channels, these commands provide
control over notes that have already been played by a
channel.
Example:
Consider the following situation, where instrument
1, notes C-4 & D-4 map to a looped sample, and the
New Note Action is set to continue.
C-4 01 64 .ùù
D-4 01 64 .ùù
E-4 01 64 .ùù <--- Use S70 here!
Ordinarily, control would be lost over C-4 and D-4, but
using command S70 at the point indicated, the notes C-4
and D-4 would be stopped immediately when the note E-4
plays.
Similarly, note off commands and Fadeout commands can
also be issued.
Note: You *MUST* be in instrument mode for these
to have any significance.
S6x Pattern delay for x ticks.
S73 Set NNA to note cut
S74 Set NNA to continue
S75 Set NNA to note off
S76 Set NNA to note fade
These options allow you to override the default NNA for a
particular NOTE (ie. it does not affect the instrument)
See section 2.5 for an explanation of NNAs.
Note: You *MUST* be in instrument mode for these to have
any effect.
S77 Turn Volume envelope off.
Stops the processing of the volume envelope. This is for the
times that you don't want to use the volume envelope that
you've created.
S78 Turn volume envelope on.
Sometimes, you'll decide that it's better not to use the
volume envelope for most cases, but you may just want to
use it a few times - this is the command that lets you
do that!
Note: You *MUST* be in instrument mode for this to work.
S8x Set panning position
Set panning position, S80 is leftmost, S8F is rightmost.
This is an obsolete command, provided only for ST3
compatibility. Use command Xxx instead.
S91 Set surround sound!
For those of you who are lucky enough to have a dolby
surround sound decoder (myself not included - so if ya
wanna send me something.....), this *should* cause the
sound to come from the surround speaker. This is a
pseudo-panning command, and issuing either Xxx or S8x
will cause the surround sound to be reset.
If you try and play Surround Sound on a GUS, Interwave
or AWE32, it will be played as a central pan.
SAy Set high-offset. Check Oxx for an example.
SB0 Set loopback point
SBx Loop x times.
This pattern space-saving feature will cause the pattern
to be looped x times back to the last SB0. Note that you
can only loop within the pattern! Also, each channel has
it's own loop-back information... so you HAVE to have the
SB0 and SBx in the same channel for it to operate.
SCx Note cut after x frames
This will cause a note to be immediately stopped after x
frames. It is similar to issuing a "^^^" in the note column,
just that it has a finer control over timing.
SDx Note delay for x frames
Actually, this command works like "interpretation" delay
for x frames. Any data - note, sample/instrument or volume
in the channel will not be interpreted until x frames into
the row.
SEx Pattern delay for x rows
This will cause a "pause" on the row for effectively x rows
longer.
Note that if TWO pattern delay commands are issued, then
the only the command in the higher channel will be considered.
Txx Set tempo to xx
Valid ranges are between 20h and 0FFh. The higher the
value, the faster the playback. This essentially
determines the time length of each frame, by the following
formulas:
Frames per minute = 24*Tempo
equivalently:
Frames per second = 0.4*Tempo
T0x Tempo slide down
T1x Tempo slide up
Tempo slides up and down are used to smoothly modify the
speed of the song. The tempo is modified by ñx every
non-row frame.
Uxy Fine vibrato with speed x, depth y
Same as vibrato, but 4 times finer in depth.
Vxx Set Global volume
Valid ranges are between 0 and 80h. All notes playing are
affected by this change.
Values greater than 80h are ignored at playtime.
W0x, Wx0, WFx, WxF Slide global volume
Similar to the Dxx commands, but operate on the global
volume. Useful when fading out songs.
Xxx Set panning position
Sets the panning position anywhere from left to right (X00
is left, XFF is right).
Yxy Panbrello with speed x, depth y.
What the hell is panbrello? Well, it's a word that I coined
late one night after a friend suggested that there should
be a random pan position command. I decided.. why not - I'll
make the vibrato/tremelo equivalent of panning! And so you
have here, 'panbrello.' What this does is instead of
oscillating frequency (pitch) or volume, it oscillates the
panning position about the 'set' panning position for a
channel. This is for you techno freaks out there who want
another function to stuff around with! ![:)](https://files.renoise.com/forum/emoticons/default/smile.gif)
The random pan position can be achieved by setting the
waveform to 3 (ie. a S53 command). In this case *ONLY*, the
speed actually is interpreted as a delay in frames before
another random value is found. so S14 will be a very QUICK
panbrello, and S44 will be a slower panbrello. With any
other waveform, the higher the value for x, the faster the
panbrello, like vibrato and tremelo. If you don't know what
I'm talking about, check out the stereo-indicators on the
info page (don't forget that you have to be in stereo mode!)
If you specify EITHER x or y as 0, then the previous value
will be used.
Back to the topic: Why would it not be possible to make 09xx command to respond to markers if they are set in sample editor and offset samples if not? Or would the idea be to offset from marker if commands are separated? I guess the use would be for drum loop hits, so could dual function (9xy), marker(y) and offset(x) if defined, be sufficient since it would be faster to use? Or would it limit too much the use of granular command line time stretch?
Because in theory, you then have more than 26 available commands in contrast to using the alphabet.
This supplies space to also allow controlling instrument envelopes for instance or control features that are currently not yet implemented.
Using figures or characters is all a personal choice, but when it comes to crippling, characters have more limits. Using the alphabet is only a temporary solution until we again walk against a limitation.
I don’t think anyone said it would be impossible to link the xx values to markers.
Another thing i would fancy as well is attaching keys to offset positions instead of samples… this is then the solution to the lacking beatslicer as well.
I has a simple solution guys
When “user defined sample offsets” (an sample property) is turned on, 09xx will automatically switch to representing user defined sample offsets instead of the typical slices, and slices you can move around will automagically appear in the sample editor. Therefore, there’s no need for a change in the codes used to represent effects. We’ll just use the same one we’ve been using all along.
And hex codes rule, mmmkay?
Dude, that’s the least work of all. Just add M. Heh.
Yeah, but it’s not really a hex code when it’s just one digit/letter… and FT2 and Impulse Tracker also rule
Yeah well - FIRST THINGS FIRST.
(for the purposes of this post, UDO = User Defined Offsets)
I’d rather be able to assign my offsets rather than having to determine which fine resolution offset a hit resides at, and then remember that number, and then type that undoubtedly long number every time I want to trigger the offset. At least with UDO I could do this:
0900
0900
0901
0900
0903
0902
0900
0904
0902
0900
0903
0900
0901
… and so on
And then, if I decide that the offset at 0902 is slightly off, all I have to do is drag a marker instead of recoding my entire effect column. There’s no need to keep the old 09xx functionality when user defined offsets are turned on, because why would you ever use both at the same time? We could even make UDO* allow for markers to use whichever hex code you want, so that your old tracks already using 09xx commands could have a finer control, while not needing a massive change to adopt the new system.
Well, the reason behind using alphabets and numbers for command symbols is that they can be accessed directly from keyboard. Icons could be binded into alphabets so they could be entered with standard computer keyboard, but that would be just unneccessary. Getting rid of tracker-style commands is a big no-no for me because of the intuitiveness and fastness of it. I rather just hit M for marker than click-select anything.
Yes there is. Some people might want to do offset-timestretch for a marker range (then 9xx would offset inside marker range) or want to offset some of the drum hit away from a loop for example. There would have to be also settings, maybe automatable , that would control what happens when playback reaches next marker. (for example Mxy, where x=SliceEndAction and y=number of marker, decoupled with note plays sample from marker y)
Offset command has more usages than plain beat slicing, lets keep that in mind. Also vV has a point about binding keys and markers, although then ability to play different pitches is lost.
You’re misunderstanding entirely… I’m proposing that you place your markers once, then use keyboard effect commands to place them in the pattern. I tell the sample editor that 0901 should be my kick and 0902 should be my snare … etc. Placing drum hits on the pattern with Point-and-click would suck ass.
Think “just like 09xx, except with the ability to customize where the offset is”
That sounds like a logistical nightmare from a developer’s point of view. Does that mean if I have user defined offsets turned on, that 09xx only works inside the last triggered slice? Seriously? You have to be kidding me.
Yes, lets restrict it to 16 slices. Wonderful reasoning. How about we keep using note-off instead, mmkay?
I’m well aware.
Read: Optional.
Now we are speaking of totally different things, so lets quit this discussion here.
Think “just like 09xx, except with the ability to customize where the offset is”
hm this is correct, it would be impossible because many slices could be playing at same time on same channel. Of course if it would be restricted to one slice per channel, using only effects column for slice triggering, I don’t see why this would be so hard to do. It would be like offsetting the offset beginning, same thing but in predefined range. You have to be kidding me in that you really don’t get it.
Note offs have completely different function than determing what will sample playback do when it reaches slice end. One option could be “note off”. Restricting to 16 slices would also allow triggering slices from volume/panning columns, which would allow layering them inside one channel. I think it is a rare situation where more would be neccessary or at least practical.
Try harder.
What are the options? To bind or not? Not exclusive to command-triggering? Then why not. Would be the same than to slice it up into samples.
That was farily obvious to me in the first place… that’s why I felt the need to clarify my position.
My view of user defined sample offsets is quite simply adding functionality to 09xx that allows you do adjust where the offset starts from, instead of being forced to use the offsets that Renoise assigns, which is currently based on 256 uniform slices. I don’t think it needs to get any more complex than that to be amazingly useful.
there is something like markers in the .wav format already. it would be cool if Renoise could import those.
so… I really think it’s something different from 9xx, and I’d rather see a new effect than being restricted to one method per sample.
Huh? It’s just a matter of subtraction and division, what does “logistics” have to do with it?
If you supply the slice AND the 9xx, applying it to the slice would rock IMHO – using M00 could mean “keep using the last marker”, so using only 9xx would apply to the whole sample, and MXX + 9xx would apply to the slice. This way you could get great resolution for freaky stuff without having to chop something up into separate samples. You’d get best of all imaginable worlds. And it perfectly fits into the “paradigm” of tracking, see ghost notes.
Ok… I concede that 09xx would work well inside of slices… WE NEED MOAR PATTERN EFFECTS!!!
Why can’t we just introduce another 2 characters to the pattern effect column?
00xxyy = Oldschool Renoise pattern effects
xxxyyy = New, higher resolution pattern effects
That would rock! Maybe even a little dot, like xxx.yyy? or just a pixel of space, a different color or something…
The leading zeroes could be faded out (when zero).
Seriously… playing (9xx) with individual hits of a drumloop, or individual words/sentences of a speech sample, without having to worry where one slice begins or ends (once you set the markers in the sample editor)… aww yeah! I’m just frustrated I didn’t come up with that… I guess I’m a big fand of non-destructive “editing”.
.wav markers! with labels even, which could get flaunted shamelessly wherever appropriate.
boy oh boy.
Excellent idea!!! I support that idea as well. Great one BYTE!
Now I understand xxx would represent the effect name, therefore giving the possibility of 256 different effects (I would’ve said 4096, but then remembered that the first letter goes to the DSP commands). But still, 256 possible effects should be sufficient.
But, with the yyy option, sample offsets would be accurate to 4096 markers. Which would result in not needing a precise marker command.
I’m guessing other commands could look like:
0B0001 (rev, for)
0E0062 (retrig)
02006C (pitch dwn)
1f0001 (dsp fx1 on)
and so on?
Please don’t add icons. I like the idea of having numbers and letters scrolling instead of icons. I thought when FLStudio added the ability to label the mixer tracks with little icons that it’s looked silly and unnecessary (go see for yourself). If I’d want to see icons move vertically, I can just scroll up and down in one of my folders.
I still want user defined offsets, as with my earlier mentioned example.
I’m all about Byte’s UDO idea. Hell, the standard 09xx effect would basically be the same as 256 evenly spaced UDOs. This would be great too, because you could turn the functionality on and off for individual instruments.
How could this possibly be a bad idea? In practice, it doesn’t change anything at all for those who still want to use the old 09xx command.