Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > What do you look for in a music-routine?
2017-04-21 04:18
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
2017-04-21 04:24
Flavioweb

Registered: Nov 2011
Posts: 463
Should avoid to modify zp or other locations outside the player code...
2017-04-21 04:24
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.
2017-04-21 05:46
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.
2017-04-21 05:49
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 :)
2017-04-21 06:39
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.
2017-04-21 06:39
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.
2017-04-21 06:45
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)
2017-04-21 06:55
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.
2017-04-21 07:19
Karmic

Registered: Apr 2015
Posts: 66
Quoting Bitbreaker
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.

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
2017-04-21 08:01
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.
2017-04-21 08:07
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 :)
2017-04-21 15:36
Hein

Registered: Apr 2004
Posts: 954
Quote: Quoting Bitbreaker
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.

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
2017-04-21 21:20
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.
2017-04-21 22:24
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
2017-04-22 06:03
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.
2017-04-22 11:41
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
2017-04-22 13:19
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?
2017-04-22 14:55
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 :)
2017-04-22 14:57
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.
2017-04-22 17:56
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. :)
2017-04-22 20:37
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

2017-04-23 11:57
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.
2017-04-23 13:08
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.
2017-04-23 18:00
Soren

Registered: Dec 2001
Posts: 547
Just include whatever you need and that will be fine for you. :)
2017-04-23 19:19
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.
2017-04-23 21:01
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 :)
2017-04-24 08:10
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.
2017-04-24 10:05
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... ;)
2017-04-24 12:46
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)
2017-04-24 16:20
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 :)
2017-04-27 09:19
Isildur

Registered: Sep 2006
Posts: 275
What about additional (5th?) track for 4bit samples?
2017-04-27 11:44
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! ;-)
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
csabanw
Freeze/Blazon
Steffan/BOOM!
E$G/HF ⭐ 7
El Gato
AArt1256/MoonShine
slimeysmine
t0m3000/hf^boom!^ibx
Guests online: 98
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Fullscreen Graphicians
1 Joe  (9.7)
2 Sulevi  (9.6)
3 The Sarge  (9.6)
4 Veto  (9.6)
5 Facet  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.076 sec.