| |
St0fF
Registered: Oct 2002 Posts: 40 |
Music Trackers - what should a new one be able to handle?
Hi All!
As I'm working on a new tracker and have some sort of concept done, I guess it's best to ask for some comments.
Basic Concept:
-tracking of up to 32 tunes
-> out of memory error included!
->consisting of 4 tracks - one for each voice and one for the filter
- completely reconfigurable speed, two speed-steps
- up to 128 sectors for voices 1..3
- up to 128 filter-sectors
- duration-dependant player, duration independent editor (evry note occupies 1 tick while editing)
- up to 128 instruments (defined by adsr, wave-pointer, pulse-pointer)
- up to 256 Wave-effects
- up to 255 Pulse-effects
- up to 128 Filter-effects
- multispeed-capabilities, handled by the player, you just have to supply the right music-calls ;)
- Player-Calls:
JMP PLAYER ... Akku = tune_num: initialise tune
JMP PLAYER+3 ... standard play_call
JMP PLAYER+6 ... set Global volume to #Akku (for fadein/fadeout purposes)
Tracks: normally point to sectors
Commands: Transpose up/down -$1f..+$1f Halftones
loop track
end track
set global volume (D418)
play song X (so you can make a song out of subtunes ;)
repeat following sector N times
Sectors: do play Notes with Instruments ;)
one tick can consist of the following parts:
- Instrument selection
- ADSR - tuning
- wavepointer - tuning
- pulsepointer - tuning
- global tickspeed - tuning
- Note - Description:
can B: pure Note - just play note using the settings above
glide Note - glides from one note to another with a precalculated glide-add-value
tied Note - just play without restarting the Instrument ... like a freq-change
slide Note - slides from the actual playing frequency to the new note's frequency without restarting the Instrument using a precalculated slide-add
wait tick - just waits
switch gate - switches the gate's status
voice off - turns off the Instrument, resets $d404+(voice_offset) to (09 & gate_status)
huh ... and that was just the upper level ...
Instruments: consist of ADSR, Wavepointer, Pulsepointer
- the Pointers point to Effect numbers.
Wave-effects:
consist of lines ...
which consist of:
- Commands:
- change instrument update speed
- tremor (halftone offset,speed)
- vibrate -> with a given vibrato-width, vibrato-speed, vibrato-delay, and vibrato-direction
- slideaway -> a function dedicated to drum'n'bass music, using vibrato parameters
- off -> works like voice_off, but from inside the instrument
- loop -> loops to another line of the waveeffect
- a Waveform prepared for $d404+(voice_offs), with the Drum-Mode coded into the reset bit (bit3), #8
- a transpose value to be added to the played note to gain the actual frequency __or__ the HIbyte of the frequency if the drum mode was specified
PulseEffects:
also consist of lines
consisting of:
- pulse_set (adjusts $d402/3+(voice_offs))
- pulse_add (sets an 8bit adder and an 8 bit counter)
- pulse_fine_add (16bit adder, 8 bit counter)
- set_delay (sets a 4 bit value of playcalls to wait until the next pulsemodification takes place; none of the following commands are possible if set_delay is specified
- end_pulse
- loop_pulse
Filter-stuff ... it's better to show this on its own
Filter-Tracks ... equal to normal tracks
Filter-Sectors ... do play Notes with Filters ;)
one tick can consist of the following parts:
- Filtereffect selection
- Filterinput selection (which voices 2 filter)
- Note - Description:
can B: pure Note - just play note using the settings above
wait tick - just waits
NOTICE: due to the fact, that the filter itself is regarded as a voice, we supply the basic filter cutoff frequency with the note we play. We can now do Filter-Arpeggios instead of just making some linear motions. We can also do logarithmic motions thru filter-arpeggios ;)
Filtereffects:
consist of lines ...
consisting of any of the following functions combined:
- frq-mode selection (how to translate freqs - as notes or linear)
- Filtertype & -Resonance set
- Frequency set (depending on the frq-mode this is either a halftone_steps_to_add_to_actual_note or a hibyte of a cutoff-freq.)
- set Add - supplying an adder and a counter, some motion is established (for linear: you supply a 16bit addvalue (i know only 11 bits are used for cutoff-freq.); for note_mode: you supply an 8bit adder of how many halftones to add each step)
- set Delay: number of calls to deleay the next filterchange (none of the following commands can be used if this one is used!)
- set freq Fine - sets the 16bit value supplied as filtercutoff, regardless of actual freq-mode
- end filter - stops working on this filtereffect
- loop filter - jumps to another line in the fltfx
Well, this was a damn lot of stuff regarding the structure of 'upcoming' musicdata. A few things left:
The editor manages music memory dynamically, so a sector only takes what it needs while it is not edited. This way we should be able to manage even 32 songs.
Ok, any comments are welcome,
St0fF/Neoplasia
. |
|
... 43 posts hidden. Click here to view all posts.... |
| |
LordNikon
Registered: Dec 2001 Posts: 42 |
I would say it should have have the same edditing like protracker on amiga or odin tracker on the C64... and it would be too bad if you could save your instruments.. |
| |
Pater Pi Account closed
Registered: Jan 2002 Posts: 121 |
hm. did you mean it the way you wrote or would you like to have the possibility to save instruments? i'd like the last one . |
| |
dalezy
Registered: Apr 2002 Posts: 476 |
saving instruments? why for?
it's not that it's hard to do new instruments from scratch or remember how to do a certain sound. tweaking is the key, you know. =)
and unless you're going to do a 40 rows long drum sound for a 12-speed tune that you want to use more than one time, i don't really see a reason to save instruments. |
| |
Stryyker
Registered: Dec 2001 Posts: 468 |
One of the DMC 5's saves them I think. future Composer does too. |
| |
cadaver
Registered: Feb 2002 Posts: 1160 |
When instruments share common tables for wave,pulse etc. the code to load/save them might become quite hairy. :) Especially when same table entries can be re-used between multiple instruments and you're loading over an existing instrument.. |
| |
Pater Pi Account closed
Registered: Jan 2002 Posts: 121 |
Well the reason could be described in one single word: lazyness.
Why to make a new basedrum etc. for every tune? And you can also use the instrument as a basic for a new one.
I somehow do miss this in SDI for example (: |
| |
Dane Account closed
Registered: May 2002 Posts: 421 |
Pah. Don't recycle your instruments. |
| |
dalezy
Registered: Apr 2002 Posts: 476 |
paterpi, but laziness doesn't get you anywhere, imho. always the same sounds make your tunes boring, whatever different melody/bassline the whole thing is based on.
i think so far i've recycled exactly one bassdrum, because i was excited that it turned out that way, but other than that all my sounds are beeing done from scratch, which maybe makes the tunes unique in a certain way (plus the production way always turns out different =). |
| |
6R6
Registered: Feb 2002 Posts: 245 |
Pater pi: Free Memory left in SDI is around $0300 bytes, I'd rather use that for other things than a save-instrument routine. |
| |
LordNikon
Registered: Dec 2001 Posts: 42 |
@ParterPI: Hehe, right. I wanted to say "it would(N´T) be to bad.... "
|
Previous - 1 | 2 | 3 | 4 | 5 | 6 - Next |