593

(32 replies, posted in Nintendo Consoles)

ant1 wrote:

Maybe you can make an effects table which runs behind the note table, and then pressing a button or button-combo would flip it over to show just effects or just notes?

Not as intuitive as standard tracker layout but would save all the screen space and screen refresh issues.

Not easy to explain, even though I just tried to in a PM to akira.

It's not just the screen real-estate that is the issue. Currently the whole 8kb of the battery RAM is used, every single byte. So even if I could display another effect column, there's no space in the data file for that data.

Planned future features will include some kind of compression of the data which may/may not happen and may/may not enable stuff like extra command columns but not right now.

smile

594

(32 replies, posted in Nintendo Consoles)

akira^8GB wrote:

I see, the. I cannot help with the memory but I could with the interface, let me know!

I'll bear it in mind, thanks for the offer. smile

The problem cannot be isolated though to just the interface though.

Putting in another Pattern column would require 10 more text columns (5 tracks x 2 digits per column) which absolutely will not fit on the NES screen. I had to redesign my original layout to move all the text in away from the edges of the screen as you cannot guarantee (on NTSC) that you'll be able to read the outermost rows and columns sad

If anything I also need to be updating *less* information as the screen refresh is already slower than I'd like. Adding more data will mean less can be update per frame which will slow down the screen refresh even more.

I have no room at all where the Song Arranger is - one column at most. I'd need 4 to add an effect per Song Track.

Then there's the memory issue. If I start adding more columns to the patterns they will take 50% more space in the 8Kb of RAM I have (which is totally used up). If I add an effect column per Song Track, that will take up another 50% more space for the Song data.

In future releases I plan to compress the Pattern and Song data and decompress them on-the-fly but a) that's the future and b) it might not be possible.

595

(32 replies, posted in Nintendo Consoles)

akira^8GB wrote:

Is this a memory/procesor limitation or a graphic interface limitation?

Memory and interface limitations.

596

(32 replies, posted in Nintendo Consoles)

akira^8GB wrote:

Can't you add the pattern volume to the Song commands? This is why I suggested a "transpose" or extra effect column per pattern in song arrangement section.

I can't add any extra columns anywhere really, I can only afford one effect column in the song arrangement.
Check the videos. sad

597

(32 replies, posted in Nintendo Consoles)

Heh.....I just figured out a really cheap way to do it.

Gave it a quick rough test and it seems pretty good.

So, anyway, back to the poll: "Pattern Master Volume Fade Command" or "Pattern Speed Table Command"? Which is better?

smile

598

(32 replies, posted in Nintendo Consoles)

That all makes sense. I'm having a serious look at how to implement it smile

I've "run out of bits" because I only have one command/effects byte per pattern step. Currently;

NOTE ENCODING
------------------------

00 - 57 = note A1 to B8
58 = KEY OFF
60 - 7F = *unused*
80 - D7 = tie note A1 to B8
E0 - EF =  *unused*
F0 = stop pattern early
F1 = set pattern speed
FF = NOP

NOTE COMMAND (effect) ENCODING
------------------------------------------------

00-1F = instrument
20-3F = slide
40-5F = vibrato
60-9F = pitch table index
A0-AF = change velocity for Pattern
B0-BF = change velocity for single note
C0-DF = set duty table index
E0-F3 = set speed table index
F4-FE = *unused*
FF    = NOP

As you can see in the command/effect list, I only have from $F4 to $FE to play with. I could make it so $F4 to $FD = delay (0 to 9). Would 9 ticks be enough as a maximum delay?

But then I'm left with no room at all for any other commands. Certainly no room for Pattern Volume Fade. Detune, I think, would have to go in the Pitch Table.

The Pitch Slide is a "slide to" function, always. To avoid restarting the note I have "tie notes" so you set these in the note column. Same effect as your slide-to-same-note trick.

599

(32 replies, posted in Nintendo Consoles)

Oh, and all those that have contributed to this addition to my task list: what about my original question?!

smile

600

(32 replies, posted in Nintendo Consoles)

tRasH cAn maN wrote:
neilbaldwin wrote:

If I have this correct, you can set a delay "x" and when a new note is triggered it triggers on the next step + "x" ticks?

No, same step + x ticks.

Yes, sorry, I worded that badly. smile

601

(32 replies, posted in Nintendo Consoles)

If you want the delay command just to add a swing/groove feel, that's what the speed table is designed for. Using multiple speeds like;

00: 04 01        ;set speed 4, jump to step 1
01: 04 02        ;set speed 4, jump to step 2
02: 02 00        ;set speed 2, jump back to step 0

In a 3/4 song would make the 3rd note play twice as fast as notes 1 and 2, giving you a swing feel.

I'm still looking into Delay (and Detune!) though. smile

602

(32 replies, posted in Nintendo Consoles)

I wish I hadn't asked wink

Right. Delay command. If I have this correct, you can set a delay "x" and when a new note is triggered it triggers on the next step + "x" ticks?

If so I'll have a look at how I might be able to do it. It's definitely a tricky one because I only call the pattern update routines every step. Have to think of a different approach to achieve the same results. Leave it with me smile

603

(32 replies, posted in Nintendo Consoles)

Hey Random! Nice to see you around here (though perfectly natural I guess) smile

Yes, Pattern Commands = effects column.

There is a "Key Off" command which currently has no parameters. It actually goes in the note column as opposed to being in the command/effect column.

I'll have a think about your suggestions. I hadn't thought about a delay command. What would you use that for? Phase effects with two unison voices and detune? (Actually, fuck, I don't have detune!)

It would be tricky in NTRQ because I have "dual speed methods" i.e. you can opt for either the usual frame (tick) count method or the more-resolution-but-less-accuracy counter overflow method (see my other posts). In fact you can dynamically change between them at any time in a song.

At the moment, the command doesn't totally KILL the sound (well it does on triangle and DPCM) - it actually forces the ADSR into the release phase. If you want it to kill the sound immediately you can have 0 release on your ADSR. There's certainly scope for a parameter on the "key off" command if required.

604

(32 replies, posted in Nintendo Consoles)

Currently you can only do a volume fade from the Song Editor but I thought it might be cool if you could do it from the Patterns too.

Problem is I've pretty much run out of bits to implement pattern commands.

Here's what you can do in Patterns:

- Select instrument
- Pitch slide
- Vibrato
- Pitch Table index (for arpeggios etc.)
- override volume for single note
- set Pattern volume
- override Duty Table index
- override Speed Table index

Of all those, you can also set the Speed Table index in the Song so personally I'd favour scrapping that function in the Patterns to make room for a "Fade Pattern Volume" command.

Any opinions?

I suppose for completeness, here's what you can do in the Song Master Track;

- jump to song step
- repeat current song step (1 to 32 times)
- set master (Song) volume
- set master volume fade
- set Speed Table index

Neil

Nice work dude. Vintage!

smile

I've just got NTRQ making sound again after I deemed it necessary to rewrite the player code.

I'm my own worst enemy at times smile

@ Bucky: hah hah, that's amazing! big_smile

tRasH cAn maN wrote:

Theoretically speaking. would this be the case also if the clock would be an external one? Say a sync signal via the expansion port.

I'd say no, to a certain extent.

A clock-source for the refresh can come from anywhere really. It's just common to refresh at the same speed the screen is refreshed at which, if you want stable tempos, means your limited to multiples of (on NTSC) 60hz.

Of course, in reality it's probably fucking difficult to do the external clock source but I'd be willing to give it a try (later)...

smile