| |
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 |
|
| |
Flavioweb
Registered: Nov 2011 Posts: 463 |
Should avoid to modify zp or other locations outside the player code... |
| |
Karmic
Registered: Apr 2015 Posts: 66 |
Quote: Should avoid to modify zp or other locations outside the player code...
Right, and let's add this:
- Only modifies 2 bytes of the precious zeropage. |
| |
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 |
| |
Mixer
Registered: Apr 2008 Posts: 452 |
Create LFO and other signal generators and have them modulate frq, pwm, cutoff, resonance and volume. Then have tables or pattern data for controlling wveform, amplitude and frequency of the generators. |
| |
GH
Registered: Sep 2014 Posts: 77 |
Thank you for using the Karmic music Editor.
Would you like to use:
<Viruose> <GT> <DMC> or <JCH> Filter/Pulse WF/WV tables today?
:D |
| |
Hein
Registered: Apr 2004 Posts: 954 |
Quote: Create LFO and other signal generators and have them modulate frq, pwm, cutoff, resonance and volume. Then have tables or pattern data for controlling wveform, amplitude and frequency of the generators.
I've played with this idea as well, to have generic LFO generators for all. But the on-the-fly conversion to 16, 12, 11, 8 or 4 (high/low) bits would make the player slow, I think. But if rastertime is not an issue, it's very user-friendly and flexible, it can be used for BPM as well or for selecting waveforms depending on amplitude thresholds. |
| |
Isildur
Registered: Sep 2006 Posts: 275 |
Automatic filter freq/resonance slide up/down (sin/square/saw etc.) would be nice. Also clear non overloaded UI.
Use 100% rasterlines if needed :D |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Quote: I've played with this idea as well, to have generic LFO generators for all. But the on-the-fly conversion to 16, 12, 11, 8 or 4 (high/low) bits would make the player slow, I think. But if rastertime is not an issue, it's very user-friendly and flexible, it can be used for BPM as well or for selecting waveforms depending on amplitude thresholds.
LFO for BPM? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
i tried that generic LFO thing in a player years ago...... not well suited for a generic player ppl should use in demo/game imho :) |
| |
Scarzix
Registered: Aug 2010 Posts: 143 |
I use CheeseCutter, but I am sad to see how much CPU time the current player utilizes - when thinking of high CPU demo parts.
I also know that Abaddon is working on an optimized player, so it will change in the future of course.
So for me, whats a great music player:
Something that has multiple "versions/functionality" which in return gives me either awesome functionality OR low CPU usage OR low memory usage.
I wouldn't mind if the exporter/cruncher whatever handled the actual feature selection, like assembling the best possible output based on my tune - or if I could set some switches in my tune file that "enabled/disabled" certain parts of the players functionality aka reaching the above purpose.
Another purpose of a great music player would be to be able to have a low memory impact and still allow for SFX routine - or at least have a "functionality" where its able to pick up the sound in a channel after the SFX releases the channel.
So some sort of "extra API" where I can dynamically "allocate" a channel/voice for myself - handling it using my own SFX routine and once I am done, just de-allocate the channel or re-enable it for the player by setting a bit or something.
....
The breaking point though would also be, the editor itself.
I actually prefer composing on crossplatform editors as I can much faster save and backup my tunes + the editor is not confined in a 320x200 resolution + bordersprites.
I know that hardcore composers needs the "metal" to really push the SID to its maximum, but I still find the ease of working on more modern platforms as source to be much efficient and that enables me to be able to deliver more.
Lastly, support for dual SID composing.. 6 channels...
The key here would be "modularity" of the player. Either let me load the player version I need (and its functionality) - as we did with JCH editor back then.
or let me somehow enable/disable functionality for a tune and the only export the parts in use...
CheeseCutter actually assembles the player based on which effects you used in your tune when you export it for SID. |
| |
Hein
Registered: Apr 2004 Posts: 954 |
Quote: LFO for BPM?
Well, maybe it's not strictly an LFO anymore, dunno. But it could add a bit of swing to the music. :) |
| |
Digger
Registered: Mar 2005 Posts: 437 |
Hi Karmic, finally my teenage dreams are going to materialise ;-D
My 2 questions:
1. Are you planning the editor for the hardware (C64) or perhaps web or native Win/OSX?
2. If it's not for C64, I'd love to finally see an editor with parameter graphical automation, piano roll (why not), track grouping etc.
Have you seen Renoise? It's like FT2 but on steroids.
https://www.renoise.com/products/renoise
|
| |
Isildur
Registered: Sep 2006 Posts: 275 |
@Scarzix, so SidWizard is best for you (but it's not crossplatform). Personally I can't use SidWizard because it's overloaded UI. |
| |
obliterator918
Registered: Aug 2013 Posts: 10 |
Not about the routine, but: please, let me play with the instruments in an interactive/realtime fashion. It is very tedious to have to constantly re-start the pattern to hear changes to the filter settings, for example. I want to be able to click-drag the filter settings and go up and down while the sound plays so I can hear it, like I am twisting a knob. This is basic functionality in any modern editor but I don't see it in the current available x-plat editors for sid tunes. |
| |
Soren
Registered: Dec 2001 Posts: 547 |
Just include whatever you need and that will be fine for you. :) |
| |
spider-j
Registered: Oct 2004 Posts: 498 |
Quote: Just include whatever you need and that will be fine for you. :)
this. For me -personally- Cadaver did already provide the best raster saving routines and Hermit did deliver the best "all features for musicians" routines. If you want to do your own routines just do what is important for you. I.e. on my to-do list is a tracker that has a 4th channel for filter programs only. But this is only what I'd like to see in a tracker. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Quote:4th channel for filter programs only
if you are crazy enough, you could try my Tracker Preview 0f :) |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Quote: this. For me -personally- Cadaver did already provide the best raster saving routines and Hermit did deliver the best "all features for musicians" routines. If you want to do your own routines just do what is important for you. I.e. on my to-do list is a tracker that has a 4th channel for filter programs only. But this is only what I'd like to see in a tracker.
I may be wrong because I never used it much, but doesn't SDI offer the possibility of trigging filter stuff in a "fourth" channel? defMON doesn't support a fourth channel like that, but at least it is possible to control the filter from any channel, so you could e.g. have a filter enabled sound in voice 1, but control the filter cutoff/resonance from the track corresponding to voice 2 or 3. |
| |
Soren
Registered: Dec 2001 Posts: 547 |
What do you look for in a music routine?
Usually I would look for SID registers - but also freq tables can be somewhat easy to find.
etc... ;) |
| |
4mat
Registered: May 2010 Posts: 66 |
If you're adding multisid support, being able to change their addresses in the exported file easily would be useful. (say from altering a couple of zero page locations)
For multispeed tracks being able to choose update speed per instrument would be good. Say a 4x song where you've got 4x drums but you don't want to waste table space for a bass or lead which is only really needed to update 1x a frame. You could set those to only update on the first frame call. (also would affect pitch/pw updates) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Quote:so you could e.g. have a filter enabled sound in voice 1, but control the filter cutoff/resonance from the track corresponding to voice 2 or 3.
thats how it works in most editors in one way or another :) the idea of having a fourth "channel" for filters is to remove this dependency :) |
| |
Isildur
Registered: Sep 2006 Posts: 275 |
What about additional (5th?) track for 4bit samples? |
| |
celticdesign
Registered: Oct 2005 Posts: 149 |
Wish new tools\editors would come with an alternative for bar/track handling/editing and not only with that typical tracker style...
I am completely stuck with editing/puzzeling as with our old editor Cyberlogic Sound Studio V4.0 Preview which is a bit similar to the soundmaster... Thx! ;-) |