kometbomb / klystrack

A chiptune tracker
http://kometbomb.github.io/klystrack/
Other
480 stars 29 forks source link

Biig list of suggestions #197

Open bryc opened 8 years ago

bryc commented 8 years ago

Apologies if this isn't the right place for this, but here is a bunch of stuff I have came up with after using klystrack for a bit.

Suggestions

Modify the Step Offset Digit (Sequence Editor)

image

Each pattern sequence has this label: 00+0 +00. I assume that +00 is some sort of step offset digit, so that is what I call it. It seems to allow a pattern sequence at any step, which is very useful, but the only way to utilize it is to set Step=1. It would be great if there was a way to set this value without changing Step.

One idea for this would be a toolbar which shows editable boxes for all attributes of the selected sequence (Pattern ID, Semitone modifier, Step offset).

Better UI for Pattern Lengths

Changing the number of steps (or rows) of individual patterns is a great feature, but can be very confusing. It can only be modified using ALT+[Ins/Del]. This works fine, but it is possible to increase a pattern's size and not see or know it, because of overlapping patterns in the sequence.

It would be much nicer to display the selected pattern's length value in a number box: image

Even better: An isolated pattern edit mode, kinda like ProTracker, where patterns can be created and edited without being existing in the song sequence, directly editable by choosing a number 0-255. A toolbar at the top with pattern length and other attributes (like color, etc).

While on the subject of toolbars... I think some good options are missing from toolbars:

  1. Octave changer on Pattern Edit mode and Instrument Edit mode
  2. SPD/RATE/TIME changer in Pattern Edit mode

    Make the Play buttons toggle

Pressing F5 and F6 when a song is already playing will just restart playback. I am used to this being handled as a pause or stop, and often catch myself doing it in klystrack. I suggest allowing the option for the play buttons to stop playback if already playing. It can be useful to stop or pause playback by pressing the play button if already playing.

Channel soloing and Instrument mute/solo

An important missing feature is channel soloing. For example, to isolate channel 3, one has to mute all the other channels first. It would be much easier to right-click on the mute button and mute all channels except that one. Then right-click again to unmute all channels to get back to normal. Having to painstakingly mute and unmute each channel is annoying, and also causes problems for keyjazz (less voices to work with).

The ability to mute or solo instruments in the same fashion would also be very useful, however there is no option for this.

Import note sequences from MIDI

I often draft music beforehand in a DAW/MIDI sequencer, because I work far faster that way. I can save my sequences as MIDI. It would save much time if I could import MIDI instead of transcribing notes one by one. You can already import MOD/AHX.

Update the Wiki!

klystrack's documentation is lacking.. and the wiki is outdated and needs updating.

Shortcut to Increase/decrease pattern ID of sequence

Maybe this is just complaining, but a way to increase or decrease patterns would be nice instead of having to type a number.

Make AHX-style sequence edit default?

The default of using letters such as j=0x13, J=0x2D can be confusing. I can't remember them, and you're limited to just letters and numbers. Q=0,W=1 .. would be nicer, or just displaying the letters themselves like SoundBox does. Or make AHX-style the default (which I use anyway).

kometbomb commented 8 years ago

Some of these requests are in there already, but I haven't updated the binary download. I will go through this list and make separate issues from each thing. Thanks for this (huge) list :)

kometbomb commented 8 years ago

Oh and it's actually a tradition from certain klystrack users that once a year there is a huge list of things which first makes me depressed and later makes me feel guilty and I gather strength and update the software before Christmastime. So it's not the wrong place or method for these things. :)

kometbomb commented 7 years ago

I just updated this issue and separated some into their own issues.

n00bstar commented 7 years ago

"Certain klystrack users"

I feel a certain finger pointed at me ;)

kometbomb commented 7 years ago

I left a bit of plausible deniability for your convenience.

bryc commented 4 years ago

More suggestions:

In this song I made with only 3 melodic patterns, I was able to cut off patterns early using an empty pattern, which enabled some interesting sequencing. But I think there's more that can be done that klystrack can't do, that maybe it should.

Specify start step of pattern in sequencer

Being able to shift the starting step of the pattern with a shift digit would be useful. Entire new melodies and rhythms can be explored this way that wouldn't otherwise be apparent.

Maybe also the ability to stop a pattern early, without the need for an empty pattern to be used.

Patchwork for C64 has a similar concept: https://twitter.com/maakmusic/status/1107286319430983681.

Essentially what I'm asking here is a way to shift a pattern within the sequence editor, so that a pattern can start at different offsets, which can be extremely useful for pattern reuse in Klystrack.

Also, a more native and efficient way to 'cut' a pattern early in the sequence editor would be great (if it reduces the size of the sequence data). It has to be done by interrupting a pattern with an empty pattern. Damn, am I just repeating myself? Oh well, consider it doubling down!

Play a pattern in reverse

The ability to reverse a pattern. Some things can sound strangely pleasant in reverse and offer new insight to a composition.

I was first thinking a flag for the sequencer to interpret existing pattern data in reverse would be interesting (as a cool reuse optimization, as transposing is) - but I think the user would want to edit or rearrange the reversed pattern further. So maybe just a function to reverse a selection and the user can just copy to a new pattern.

On second thought, reversing is not really the most useful pattern transformation.

bryc commented 2 years ago

New feature suggestion: Wavetable morphing/modulators.

I'm assuming klystrack can already work with single cycle waveforms, but never explored that yet (soon to be remedied). But this MSX2 SCC tracker came to light recently: https://www.youtube.com/watch?v=-3qqzBQ903U https://www.youtube.com/watch?v=vjmoqpIbwkI

It's basically an 8-bit wave morpher / shaper, and it sounds glorious. It can interpolate and modulate between 8-bit 32-cycle waveforms. Something like this would be a great addition to klystrack. It can also achieve a sort of pseudo FM/phase distortion.

Completely makes you rethink wavetable chiptunes, and makes you think of the old 80s PPG Wave synthesizer.

AHX on the Amiga might do something similar, particularly how it generates the filtered samples.

There was also a recent hardware unit called Sonicware ELZ_1 with 8-bit wavetable morphing, so it's catching on!

LTVA1 commented 2 years ago

Can similar results be achieved with fm and filter sweeps? IMO in most cases you can get away with these

kometbomb commented 2 years ago

Morphing is fundamentally different because you have more control.

LTVA1 commented 2 years ago

Hmm... Are there any chips... Anyway, I'll probably study it. I suppose it is implemented through accumulator as is wave playback in klystrack, so maybe I'll add it in my fork... somewhen.