| |
Karmic
Registered: Apr 2015 Posts: 66 |
What do you look for in a music-routine?
Not sure if this should go in C64 Composing subforum.
So, I'm working on a player-routine for a new music editor I'll make. What I ask you (coders & musicians) is, what would you like changed or added to it?
Currently I've got:
- Standard wave/arp/pulse/filtertable functions.
- Frequency-slides and vibrato that can be enabled in pattern as well as in arp-table. Also toneportamentos and tied notes in pattern.
- There's no limit to the number of patterns. The only thing limiting you is C64's memory :) Also about 85 max subtunes possible.
- Multiple effects are possible on one pattern-line.
- Transposing patterns, to save memory.
- Coders, the player used $16 max rasterlines in my testing. Of course if the musician uses a whole ton of effects on one pattern-line it will increase...
Thanks,
-karmic |
|
... 22 posts hidden. Click here to view all posts.... |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
I both as coder and musician would like arguments for why this player would be better than other players. Of course I am not saying that there would be anything wrong if you code this just for fun, but as a "customer" I'd like to know.. :)
As a customer i would also like to know if you have thoughts on how to make the *editor* (you only mention the player) better than others? For the musician the editors is of course a crucial part of why one would choose one "player" over another, given that many players out there are relatively capable. |
| |
Karmic
Registered: Apr 2015 Posts: 66 |
Quote: I both as coder and musician would like arguments for why this player would be better than other players. Of course I am not saying that there would be anything wrong if you code this just for fun, but as a "customer" I'd like to know.. :)
As a customer i would also like to know if you have thoughts on how to make the *editor* (you only mention the player) better than others? For the musician the editors is of course a crucial part of why one would choose one "player" over another, given that many players out there are relatively capable.
Interesting questions. :)
Well, I suppose you're right. I can only really think of the multiple effects on a pattern-line and the (almost) unlimited amount of patterns. But of course this thread is to suggest anything else people would like :) |
| |
Bitbreaker
Registered: Oct 2002 Posts: 508 |
Just claim that it uses $10 rasterlines (better less) an you have the coders on your side, pushing the musicians into using it. Other interesting features would be to be able to resort the patterns by time of usage, so the music can be split into several parts loaded one after another and by that overwriting old patterns not used anymore. This is a good thing if you have a long music but restricted space like in demos. |
| |
Soren
Registered: Dec 2001 Posts: 547 |
What I have learned from coding players+editors, is to keep things as simple as possible.
Forexample if you have to remember too many keys/keycombinations in the editor, that can get annoying.
Simplicity of playroutine: The format that you want to work with - if it's too complex THAT can also kill the joy of composing.
All in all, for me that means to do it all in a way that I like - Some things may be different from other people's players and editors. |
| |
Hein
Registered: Apr 2004 Posts: 954 |
- Multiple effects per tick: In practice I think 2 at most is enough. This is something I'd like to change for my own player/editor. The GT approach is nice: 1 effect per tick, but in the tables you can add extra effect commands. Which makes it possible to have multiple effects per tick, I think.
You're missing:
- Finetune
- Different tuning tables
- 11 bit filter settings
- Rhythm function (preferably BPM)
- Buffered SID writes
- Hard-restart settings
- Step-programming (maybe you have it in there)
- Multi-speed support
- Pattern repeat
- Effects table repeat function
- Routing (output of d41b/d41c into the effects tables or other registers)
- Low memory footprint (my own player scores badly here)
- Arpeggio speed function
- Continuous effects (skipping a retrigger by instruments) |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1409 |
Yes, I was going to say, having a play routine of under a dozen rasters would definitely help.
31 cycles per register per frame's pretty generous these days IMO. |
| |
Karmic
Registered: Apr 2015 Posts: 66 |
Quoting BitbreakerOther interesting features would be to be able to resort the patterns by time of usage, so the music can be split into several parts loaded one after another and by that overwriting old patterns not used anymore. This is a good thing if you have a long music but restricted space like in demos.
Good idea. Seems not very hard to implement with the way I'm structuring the data :)
Quoting Hein- Different tuning tables
- Multi-speed support
- Pattern repeat
All of these I have already. I guess I just thought they went without saying :p
Quoting Hein- Arpeggio speed function
There's a "delay" command in the arp & wavetables, designed to allow this.
Quoting Hein- Hard-restart settings
OK, I agree with this. At the moment I'm just zero-ing waveform and ADSR, I guess I should implement the modern hardrestart :)
Quoting Hein- Rhythm function (preferably BPM)
So, using the CIA-timers to get flexible playback speed?
Quoting Hein- Step-programming (maybe you have it in there)
- Effects table repeat function
Not entirely sure what you mean by these. Please explain.
Thanks for all your opinions so far! Thanks for helping to make it better :)
And don't worry too much about extra rastertime, I'll make sure to have conditional assembling as well :p |
| |
oziphantom
Registered: Oct 2014 Posts: 490 |
SFX engine, that lets me pause play any given SFX on any channel. Ability to switch to sfx but carry on with the music on the channel in the background so when the SFX stops the music channel can come back as if it never stopped. |
| |
Karmic
Registered: Apr 2015 Posts: 66 |
Quote: SFX engine, that lets me pause play any given SFX on any channel. Ability to switch to sfx but carry on with the music on the channel in the background so when the SFX stops the music channel can come back as if it never stopped.
I've actually coded this on another system before, so this is likely to be done :) |
| |
Hein
Registered: Apr 2004 Posts: 954 |
Quote: Quoting BitbreakerOther interesting features would be to be able to resort the patterns by time of usage, so the music can be split into several parts loaded one after another and by that overwriting old patterns not used anymore. This is a good thing if you have a long music but restricted space like in demos.
Good idea. Seems not very hard to implement with the way I'm structuring the data :)
Quoting Hein- Different tuning tables
- Multi-speed support
- Pattern repeat
All of these I have already. I guess I just thought they went without saying :p
Quoting Hein- Arpeggio speed function
There's a "delay" command in the arp & wavetables, designed to allow this.
Quoting Hein- Hard-restart settings
OK, I agree with this. At the moment I'm just zero-ing waveform and ADSR, I guess I should implement the modern hardrestart :)
Quoting Hein- Rhythm function (preferably BPM)
So, using the CIA-timers to get flexible playback speed?
Quoting Hein- Step-programming (maybe you have it in there)
- Effects table repeat function
Not entirely sure what you mean by these. Please explain.
Thanks for all your opinions so far! Thanks for helping to make it better :)
And don't worry too much about extra rastertime, I'll make sure to have conditional assembling as well :p
-BPM speeds require CIA timed playback, indeed.
-Step-programming is just a fancy way of saying effect table values that are played each frame.
Effect table repeat function would mean repeating a segment of the step-programm for x times.
for instance for arps:
01 rep 04
02 __ 00
03 __ 04
04 __ 07
05 rep end
06 __ 0c
07 __ 00
08 loop 06
or:
02 __ 00
03 __ 04
04 __ 07
05 lo04 02 ;loop 4x, pointer = 2
06 __ 0c
07 __ 00
08 loop 06 ;loop infinite, pointer = 6
or:
02 rp04 arp01
03 infi arp02 |
Previous - 1 | 2 | 3 | 4 - Next |