Welcome to our latest new user
Harvey
! (Registered 2024-11-25)
You are not logged in -
nap
CSDb User Forums
Forums
>
C64 Productions
>
Music Trackers - what should a new one be able to handle?
2003-07-06
16:34
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....
2003-11-22
17:06
Akira
Registered: Oct 2003
Posts: 52
CyberTracker lets you save instruments. I think it's handy, because I don't use to remember all the shit I experiment with, and you can tweak them later on transforming them into new stuff.
2003-11-26
09:14
Twoflower
Registered: Jan 2002
Posts: 434
I laid sleepless the other night, and suddenly my mind slipped into some more or less comfortable thoughts. I remembered this thread, and an earlier discussion with Dane concerning what the JCH'ed lacked.
In my opinion - the one thing the JCH'ed really lacks is a decent effect-table. Just like on Amiga or PC-trackers. And I want it on every single note so that I might be able to switch both vibrato/speed/sound/macropointers and whatever I feel like - on every single note. "Well, it isn't possible", you say. "The C-64 char layout is only 40 chars wide!". Well, then don't do it 40 chars wide. Do it 54 or sth equally dividable. Should work out fine. And why in the heck do you need 7 digits for entering a vibrato (f.ex S03 -> 60 32) when only 2 really is needed (entering V0 for 60 30 and V2 for 60 32). If you have dedicated places for these, you wouldn't even have to care for the "V", but I think keeping that makes it more flexible. Look at my example;
A#3 01S4U2
--- ------
C#4 01S3V2
The above example should slide up the note A#3 with speed 2 so it reaches C#4 when it's played (=U2). Furthermore, the general speed of 4 for the entire tune is activated (=S4) while playing the note with the instrument 01 (=01 - first row dedicated to sound). Changing the macropointers for the current sound should be done with entering any value in effectcolumn one or two. This leaves any single parameter save for A-F available for describing effects to the player/editor. F.ex "P" for portamento, G for gate on/off, M for adding that cheap kind of arpeggio you have in PC-trackers, etc...
This leads med into the second issue. Splitspeeds. I find it annoying not to be able to make music splitted in the speeds like f.ex 6/4/2 (three different speedmarkers or more). This might also make it able to individually slow down the tune, without having to spread over more than one or two patterns for a slower passage. Many tracked tunes have used this option.
Third issue. Rastertime. I think there are two needs today. One for making tunes with low r-time, fitted to Grahams, Crossbows, Krills and HCL's purposes, and one for making quality sounds fitting for all music compos, etc. So, why aim for low rastertime? People don't to extremely timed spritemultiplexers anylonger, and in the case they do, there are plenty of players able to achieve what you need. Nah, make a player which takes some r-time and/or make use of $01-$50 or sth similar. :-) And who updates all the sounds and all the effects every frame. Then we're talking nice stuff. Think this over!
2003-11-26
10:52
Dane
Account closed
Registered: May 2002
Posts: 421
Hopefully, I'll be able to release a relatively userfriendly version of the JCH-editor/packer/player in the future. In the meantime, keep stacking these suggestions.
2003-11-26
11:11
Stryyker
Registered: Dec 2001
Posts: 468
Or use a jump to a table sort of like SYNC but more like SDI, a program. For the effects that are either on or off, combine upto 8, sort of like DMC 4 did for instrument effects.
If screen space is limited, use you 3 columns as usual but add a 4ths for extra data that can be jumped to from current voice. Sort of like the old sector editor in DMC/FC. Although you can't see all 3 voices at once, you can see 1.
I guess these ramblings make it obvious I don't handle trackers well :(
ADD:
I'm with Twoflower about raster time. 99% of the time sound quality will make 0 difference code quality in the demo or production. Someone can always make raster restricted player version later.
2003-11-26
12:30
St0fF
Registered: Oct 2002
Posts: 40
Twoflower:
cool vibrato with more usability than 'just' vibrato needs 5 nybbles. starting direction(1 bit), strenth(3 bits), width(one byte), delay_till_start(one byte)
This is a vibrato able to do cool d&b-FX and even more. Variable slides via vibrator and so on.
So don't tell wrong things some ppl have made up their minds ages ago!
Regarding rastertime: some of the most sophisticated players still need more RT than neccessary. It's a compromise between playersize, zeropage-usage, how direct you use your data, and work-scheduling inside the player!
There are two basic ways to minimize Rastertime: do a cut on FX / player-possibilities OR c0de a simple work-scheduler like atmds 3.2 has (look at rastertimes of my tunes - atmds 3.2 is a full function player with an average RTM of less than $10, max i ever seen $1a)
And a last question for twoflower: have you ever thought about how the music with all your FX will look in memory and be managed by the player? From your post it looks like NOT.
cadaver: ATMDS 3.2 has an instrument-save option, but the c0de is so hairy, that it is even hard to find the left over bugs (which appearently are there).
St0fF ... starting to ignore akira and twoflower because of lameness (sry, but i'm just honest)
2003-11-26
16:03
Twoflower
Registered: Jan 2002
Posts: 434
Yeah, sure. Ignore me and call me lame.
I'm just the guy that is convinced that there are ways to do a player suitable for musicians, and i'm aware it'll take quite some rastertime. From your description, your player sounds just like a run-of-the-mill player with some nice code, although with functions fitted to make drum'n bass music. Just about the same as the other 200 available players - save for the d'n b that is. Although I agree with you on the case of the vibrato, the necessary values could be easily stored in another table and the "V1" might just be a pointer to that table. But for my needs - a precalculated vibrato fits just fine.
Concidering most of the other stuff, I think you're way out. What i'm saying is that you SHOULD'T compromise with usage of zeropages, nor rastertime, nor how much memory it'll use. I'm not interested in if a routine takes 10 lines or 50. There are plenty of compromise players with "intelligent" routines cutting r-time, made to impress, so why make another? What's lacking in this scene is a routine which gives the best sound and usability for the musician, at any cost! Just compare the amount of tunes released in musiccollections, musiccompos or directly in HVSC with the actual amount of tunes used in productions. It's about time that the music will have a chance to stand for itself. Have you, btw, ever taken a peek at the playercode for last routine the brothers Follin used? Ste Ruddy's using a staggering amount of zeropages there, and still the r-time usage is quite heavy. Noone still matched that one, and it still worked just fine along with Ghouls&Ghosts.
And sure - the result in memory would probably be quite annoying, although nothing unable to handle. Just reserve about the double memory for the patterns, reading the effects as a separate pattern linked to the notepattern. To make it use less mem, do it like in JCH's and use a packer in the end to remove the spaces and change the pointers. Managing it with a routine that updates the filter, pulse, vibrato and sound every frame would most probably take a hell of rastertime, but concidering that - look above. And hey - Amigamod's have a great structure which you could rely on. There's plenty of documentation of the structure of f.ex the .mod format and it's followers if you want to learn how to handle this.
But who am I to describe this? I mean, i'm just a visionary answering your question "what a new player should be able to handle". And since you're obviously not going to code the player anywhere near what i'm aiming at - I better keep still, keeping on wishing that some other coder would make something which would bring something new to the scene.
I mean, I have understood you right, haven't I? You really didn't want a serious answer to your question, nor serious comments? You wanted a load of puppets applausing your ideas, telling you that your ideas are great while you keep bragging.
Well. I'm not going to give you that.
2003-11-26
17:47
Hate Bush
Registered: Jul 2002
Posts: 462
I agree with Twoflower on that. There aren't many occassions on which I'm forced to cut down the rastertime my tune uses. And if I am, there is GT 1.01, there is JCH v19, there is Ninjatracker.
What I need is flexibility, tweakability (nice word eh?), loads of features and user-friendliness (which means: as close to general tracker standard as possible - GT is unbeatable so far). Perhaps even in reverse order. :)
BTW., there is a new player/editor, coded by Asterion/Samar. Hasn't been released yet, but it is FULL of features. I talked about it with the author, and each question of mine starting with "Does it allow me to... Does it have..." Asterion replied in positive. I can't wait to see and try that tracker.
2003-11-26
19:43
Akira
Registered: Oct 2003
Posts: 52
Quote:
Twoflower:
cool vibrato with more usability than 'just' vibrato needs 5 nybbles. starting direction(1 bit), strenth(3 bits), width(one byte), delay_till_start(one byte)
This is a vibrato able to do cool d&b-FX and even more. Variable slides via vibrator and so on.
So don't tell wrong things some ppl have made up their minds ages ago!
Regarding rastertime: some of the most sophisticated players still need more RT than neccessary. It's a compromise between playersize, zeropage-usage, how direct you use your data, and work-scheduling inside the player!
There are two basic ways to minimize Rastertime: do a cut on FX / player-possibilities OR c0de a simple work-scheduler like atmds 3.2 has (look at rastertimes of my tunes - atmds 3.2 is a full function player with an average RTM of less than $10, max i ever seen $1a)
And a last question for twoflower: have you ever thought about how the music with all your FX will look in memory and be managed by the player? From your post it looks like NOT.
cadaver: ATMDS 3.2 has an instrument-save option, but the c0de is so hairy, that it is even hard to find the left over bugs (which appearently are there).
St0fF ... starting to ignore akira and twoflower because of lameness (sry, but i'm just honest)
Dear mr l33tn3ss, I am very sorry that my opinion has offended your superior knowledge of all things "C64 tracker"
2003-11-27
09:59
Dane
Account closed
Registered: May 2002
Posts: 421
Stoff, a simple click in CSDB should give you the information that Twoflower is not a coder. He does music, however, and he knows what sort of commands are useful while tracking. Therefore, he might be wrong on how to do things technically. So what? I've listened a lot to him over the years, and trust me when I say that his opinion will be of high value when I (finally) sit down to put together my userfriendly hack of JCH's player.
You might have a different view on how to solve vibrato and such things - as do I - but his post on why we should have a player that doesn't bother with r-time was inspiring and should be read as such. Isn't it time we got a player that doesn't compromise and simply allows for basically anything, no matter the amount of mem or r-time used?
And finally, try as I may, I can't really find the parts where neither Twoflower nor Akira were offensive in this thread. I might be biased having talked a lot with the latter over the years, but right now, you're the only one who comes off in a bad way.
I wish you good luck with your player, but please don't ask for general advice or inspiration if you're not prepared to listen, ok?
2003-11-28
15:04
dalezy
Registered: Apr 2002
Posts:
twoflower, i'd be in heaven if something like that could be realized for jch. i always wanted to be jch at least capable of letting one effect run through while another one gets added after it, like vibrato__ -> sustain/release -> __vibrato (if that made sense now =).
then, a command where i could actually change the attack and decay would also be sweet, since i tend not to waste too much instruments just for different ad-settings ..
Previous
-
1
|
2
|
3
| 4 |
5
|
6
-
Next
Refresh
Subscribe to this thread:
You need to be logged in to post in the forum.
Search the forum:
Search
All forums
C64 Coding
C64 Composing
C64 Pixeling
C64 Productions
CSDb Bug Reports
CSDb Development
CSDb Discussions
CSDb Entries
CSDb Feedback
CSDb Info
CSDb moderators
CSDb Questions
Messages to moderators
Requests
for
in
Writer & text
Text
Writer
All times are CET.
Search CSDb
All
Releases
Groups
Sceners
Events
BBS
SIDs
-------
Forum
Comments
Advanced
Users Online
grip
Scooby/G★P/Light
kbs/Pht/Lxt
fegolhuzz
Shake/Role
celticdesign/G★P/M..
Alakran_64
Mythus/Delysid
Bob/Censor Design
jmagic
rexbeng
Holy Moses/Role
Guests online: 126
Top Demos
1
Next Level
(9.7)
2
13:37
(9.7)
3
Coma Light 13
(9.7)
4
Edge of Disgrace
(9.6)
5
Mojo
(9.6)
6
The Demo Coder
(9.6)
7
What Is The Matrix 2
(9.6)
8
Uncensored
(9.6)
9
Wonderland XIV
(9.6)
10
Comaland 100%
(9.6)
Top onefile Demos
1
Layers
(9.6)
2
Party Elk 2
(9.6)
3
Cubic Dream
(9.6)
4
Copper Booze
(9.6)
5
Libertongo
(9.5)
6
Rainbow Connection
(9.5)
7
Onscreen 5k
(9.5)
8
Morph
(9.5)
9
Dawnfall V1.1
(9.5)
10
It's More Fun to Com..
(9.5)
Top Groups
1
Performers
(9.3)
2
Booze Design
(9.3)
3
Oxyron
(9.3)
4
Nostalgia
(9.3)
5
Triad
(9.2)
Top Coders
1
Axis
(9.8)
2
Graham
(9.8)
3
Crossbow
(9.8)
4
Lft
(9.8)
5
HCL
(9.8)
Home
-
Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.063 sec.