Difference between revisions of "SideTracker"

From Jeskola Buzz Wiki
Jump to: navigation, search
(Nice to have features)
(de-clicking thoughts)
Line 13: Line 13:
 
* Virtual Channels and intelligent Global and Track handling
 
* Virtual Channels and intelligent Global and Track handling
 
* take care that 1 sample can be active with the same note on multiple voices..
 
* take care that 1 sample can be active with the same note on multiple voices..
* An intelligent method of avoiding clicks. When switching to or from audio that has lots of treble, no de-clicking needs to take place at all.
+
* An intelligent method of avoiding clicks. When switching to or from audio that has lots of treble, no de-clicking needs to take place at all. (Maybe the tracker can decide? If not, give the user an easy way to enable/disable declicking.) Also, declicking can be done by fading the previously playing sound to silence over 0.5 to 5 ms, before the new sample even starts playing, if we can predict when that happens.
 
* All commands should exist in two versions placed at adjacent numbers so that it is easy to remember both: Sticky and temporary. Temporary commands (even command numbers) affect the tick or local area they're applied to. Sticky commands (same number but +1) are active until you specifically stop it. An example of this could be "vibrato": Let's say this command is called "14", then the permanent way to enable vibrato would be 14+1 = the "15" command.
 
* All commands should exist in two versions placed at adjacent numbers so that it is easy to remember both: Sticky and temporary. Temporary commands (even command numbers) affect the tick or local area they're applied to. Sticky commands (same number but +1) are active until you specifically stop it. An example of this could be "vibrato": Let's say this command is called "14", then the permanent way to enable vibrato would be 14+1 = the "15" command.
 
* This tracker must be able to handle sample offset and positive/negative note-delay on the same note.
 
* This tracker must be able to handle sample offset and positive/negative note-delay on the same note.

Revision as of 17:33, 7 October 2009

This machine does not exist yet, but I have decided to write a design document on it, in order to highlight some of my thoughts. It's an attempt to get a tracker that doesn't click, doesn't kill the attack of percussion and resamples properly unlike MTrk and UTrk.

Over-all goals

  • High quality output with no sound artifacts
  • Easy to use
  • Fairly decent performance overhead
  • Works in the current version of Buzz (with clone compatibility as an added bonus)
  • Once the project has taken shape and has matured, it will become open-souce
Adjusting the decay curve shape parameter produces various logaritmic slopes.

Need to have features

  • Support for ALL WAV formats
  • Virtual Channels and intelligent Global and Track handling
  • take care that 1 sample can be active with the same note on multiple voices..
  • An intelligent method of avoiding clicks. When switching to or from audio that has lots of treble, no de-clicking needs to take place at all. (Maybe the tracker can decide? If not, give the user an easy way to enable/disable declicking.) Also, declicking can be done by fading the previously playing sound to silence over 0.5 to 5 ms, before the new sample even starts playing, if we can predict when that happens.
  • All commands should exist in two versions placed at adjacent numbers so that it is easy to remember both: Sticky and temporary. Temporary commands (even command numbers) affect the tick or local area they're applied to. Sticky commands (same number but +1) are active until you specifically stop it. An example of this could be "vibrato": Let's say this command is called "14", then the permanent way to enable vibrato would be 14+1 = the "15" command.
  • This tracker must be able to handle sample offset and positive/negative note-delay on the same note.
  • Different resampling algorithms: Fast, Medium, Good (aliasing free). This setting must be stored in a global way, so that if you move Buzz to a new PC, you can easily change this setting for all songs at once.
  • Better envelope controls. I want a "volume decay" command where you can change both the length (in milliseconds) and the decay curve (see graphics).

Nice to have features

  • Being able to handle any combination of commands.
  • MIDI support
  • Support for Wavetable features like multisample (currently broken..) and Envelopes (currently not really user friendly..)
  • Rudimentary Sample Editing functionality in some GUI
  • High Quality Pitch-Shifting and Time-Streching (in addition to the high quality resampler that is a must)

Up for discussions