Author Topic: Huzak - Yet another music driver  (Read 14021 times)

Michirin9801

  • Hero Member
  • *****
  • Posts: 589
Re: Huzak - Yet another music driver
« Reply #105 on: February 08, 2017, 02:40:07 PM »
What!!! That's crazy!!! Why do it in the Fixed Arp, but not in the Relative Arp???  ](*,)
I know it makes no sense if you're just thinking about it, but when you're actually using the arpeggio macros it's actually quite convenient to have only the Fixed arpeggio do it, because you know, sometimes you want to put in a kick in the beginning of a bass instrument, but you want that kick to play the same notes every time without affecting the note of the bass, so you use the Fixed arp to do the kick, only without adding a loop, and when that kick finishes playing the bass plays like normal! I've never really used this for PC engine because the system has enough channels to accommodate for the percussion and the bass being each on their own channels, but this has been a god-send for my Game Boy music! And heck, maybe someday I might actually want to put the bass and the percussion on the same channel in a PCE song so that I can free up a channel to do a triad and a lead melody at the same time and still have a channel left for delay/reverb and sound effects! Who knows?

It's not as useful on the relative arpeggio though because when you're using it you can just set the last tick to 00 in order to play the note you're actually putting in the note column, so it doesn't really need to do that...
« Last Edit: February 08, 2017, 02:42:44 PM by Michirin9801 »

elmer

  • Hero Member
  • *****
  • Posts: 2154
Re: Huzak - Yet another music driver
« Reply #106 on: February 09, 2017, 04:51:48 PM »
I know it makes no sense if you're just thinking about it, but when you're actually using the arpeggio macros it's actually quite convenient to have only the Fixed arpeggio do it, because you know, sometimes you want to put in a kick in the beginning of a bass instrument, but you want that kick to play the same notes every time without affecting the note of the bass, so you use the Fixed arp to do the kick, only without adding a loop, and when that kick finishes playing the bass plays like normal!
...

Thanks, that makes sense.  :)

It's not difficult to implement, so no worries.

Things have been a bit slow with all of the Xanadu Script stuff going on, but I've done another tweak to the detune code to make it a tiny bit more accurate in the Detune $80-$FF range, and I've implemented the $E3xx Vibrato Mode effect.

I've also made the change to the Portamento so that I can handle the large step values that you're using in Quartet ... but the track still sounds "off".

I need to do some investigating to find out what's going wrong.

fragmare

  • Hero Member
  • *****
  • Posts: 676
Re: Huzak - Yet another music driver
« Reply #107 on: February 09, 2017, 08:55:09 PM »
Sooooo, Elmer, about that Tremololololo!!!!`1 function in Deflemask.  I'm currently stripping out all the volume slides and replacing them with manual volume fades (which i like better anyway, gives way more options/control) as part of a final "everybody better f*ckin be happy" revision on the Castlevania tune, and also make it Huzak friendly.  But doing the tremolo effect manually PLUS manual volume slide is much, MUCH trickier than a simple fade/slide.  The "set it and forget it" feature that Deflemask provides really does come in handy... at least in this particular instance.

I mean, I could create new instruments with the tremolo built-in to the volume envelope, but the problem is the tremolo pace itself changes in the song.  And I don't want to create three all new instruments for just one small part of the song... seems wasteful, if you know what i mean.

Definitely something to look into adding.

P.S., i didn't say I wasn't still doing it.  I just said it was tricky.  ;)
« Last Edit: February 09, 2017, 09:15:00 PM by fragmare »

elmer

  • Hero Member
  • *****
  • Posts: 2154
Re: Huzak - Yet another music driver
« Reply #108 on: February 10, 2017, 04:15:44 AM »
Definitely something to look into adding.

P.S., i didn't say I wasn't still doing it.  I just said it was tricky.  ;)

Yep, I can imagine it being an absolute PITA to do it all manually.

I definitely want to add both the Tremolo and Volume Slide effects, they shouldn't be too horrible to add.

But, just like the mess that I'm going through with the Detune and Vibrato ... it's less about implementing the basic effect, and more about implementing it in a way that gives identical, or nearly-identical results to DefleMask so that it *sounds* the same.

As I said earlier ... it's "finicky" work.  ](*,)

Gredler

  • Guest
Re: Huzak - Yet another music driver
« Reply #109 on: February 10, 2017, 04:54:05 AM »

As I said earlier ... it's "finicky" work.  ](*,)


I can only imagine how arduous it must be, thanks for dealing with it for us. I keep having dreams where suddenly there are a lot of people willing to make music like artists willing to make sprites and tilemaps.

Elemer the bridge builder, thank you sir and hope all is well!

Michirin9801

  • Hero Member
  • *****
  • Posts: 589
Re: Huzak - Yet another music driver
« Reply #110 on: February 10, 2017, 08:59:26 AM »
Elemer the bridge builder, thank you sir and hope all is well!
You've said it all mate!

elmer

  • Hero Member
  • *****
  • Posts: 2154
Re: Huzak - Yet another music driver
« Reply #111 on: February 11, 2017, 10:05:28 AM »
I keep having dreams where suddenly there are a lot of people willing to make music like artists willing to make sprites and tilemaps.

Thanks! Me, too.  :pray:

Things are looking really good with Michirin9801 and now Fragmare both having fun cranking out tunes, and I know that there are one or two others on the DefleMask forum that have done PCE chiptunes.

When I've finally implemented sample-support, and can play back JIR-O's "Noroi No Fuuin" cover, and TobiKomi's "Area Completed", I'll have to go on a fishing expedition and try to reel in a few more folks from over there!  :wink:

*******************


I'm also looking forward to any progress on the other songs, but no rush mate, take your time and make sure they're working well okay? ;3

OK, here's a new batch to test, with the following changes ...

Using DefleMask's Note2Period tables instead of Hudon's.
Detune math tweaked to give the same results as DefleMask (in my testing).
Vibrato tweaked to have a depth equivalent to DefleMask's.
Portamento Speed now allows +/- 255, just like DefleMask.
Portamento-to-Note now starts immediately that it is enabled (there was a 1 frame delay).
Vibrato Mode implemented (for Guitar slide/vibrato).



I tried "breaking" Vibrato in the same way that it seems to be going "wrong" on DefleMask, and while I can actually replicate that, very accurately, doing so would mess up the math for the different Vibrato Modes, so I'd prefer not to do it.

Instead, I've tweaked the math for the Vibrato Depth a little in order to get as-close-as-reasonable to the results that DefleMask gets, but just shifted on the axis by a bit.

The result sounds good to me, but now it needs the musician's critical-ear to give it the OK, or request further changes.

Here are the latest versions, including Battle Xtasy now that I've got my hands on the latest version of that.  :wink:

http://www.dropbox.com/s/xrhwf8jkuhgfygg/Huzak3rdWIP3rdTry.zip?dl=0


Michirin9801: How are these?  8-[


As for the portamento ... no rush. I'll take another look at the code and see what the cost is of implementing the full 8-bit range.

That would be very nice ^^

Well, now that the 8-bit range is implemented, the Quartet intro plays fine, but just letting you know, it's not *identical* to the .hes.

There's a bug in DefleMask's .hes output where it sometimes just fails to update one channel's frequency on a frame during the portamento, and then doesn't-quite-catch-up with where it is supposed to be on the next frame.

This causes a *tiny* drift between the channels in the Quartet intro that shouldn't be there.

I hope that the result that you hear in the Huzak version of the track sounds good to you ... there's no way that I can replicate whatever random screwup is going on inside DefleMask to produce its output!

I've gone through the intro frame-by-frame, and I'm producing *exactly* the same values that DefleMask does, right up until it glitches ... and then in perfect lock-step afterwards, except for the tiny offset that DefleMask's glitch produces.


- Poka Poka Island is pretty much A-OK, the only issue I can hear is when the song loops one of the channels seems to be turned off for a good chunk of the song ...

I just can't seem to repeat this problem with the current code.

All channels *appear* to keep on playing fine (except for the note-cut on loop-back that I implemented).

Can you still hear something wrong with this version?  :-k


<edit>

Whoops ... forgot to mention earlier ... Quartet starts the first note in Channel 2, Matrix Row 00, without actually setting an instrument.

That's a no-no in Huzak, so I now bail-out with an error message during the conversion if that happens. Thanks for providing an example that showed-up a bug that I needed to fix!  :wink:
« Last Edit: February 11, 2017, 12:26:53 PM by elmer »

Michirin9801

  • Hero Member
  • *****
  • Posts: 589
Re: Huzak - Yet another music driver
« Reply #112 on: February 11, 2017, 01:07:20 PM »
I keep having dreams where suddenly there are a lot of people willing to make music like artists willing to make sprites and tilemaps.

Thanks! Me, too.  :pray:

Things are looking really good with Michirin9801 and now Fragmare both having fun cranking out tunes, and I know that there are one or two others on the DefleMask forum that have done PCE chiptunes.

When I've finally implemented sample-support, and can play back JIR-O's "Noroi No Fuuin" cover, and TobiKomi's "Area Completed", I'll have to go on a fishing expedition and try to reel in a few more folks from over there!  :wink:

That's the result of a good tracker making PCE music really easy and fun to make ;3
I mean seriously, you just mash your head against the keyboard for a couple of hours and you've got Devil's Crush! (Okay, maybe not something THAT good but still)

Oh and, make sure to talk to SpoonyBard when you're on that 'fishing expedition', he's really good and he does PCE sometimes! (And doesn't use samples very often so that's a bonus!)

Here are the latest versions, including Battle Xtasy now that I've got my hands on the latest version of that.  :wink:

http://www.dropbox.com/s/xrhwf8jkuhgfygg/Huzak3rdWIP3rdTry.zip?dl=0


Michirin9801: How are these?  8-[

- I've noticed something weird when listening to Sidecrawler's dance, I don't remember whether or not it was in the previous version but... When the song loops the delay/reverb (channel 5) seems to be a little louder than it should...
- Quartet's intro actually sounds better than it sounds in Deflemask now! No complaints.
- No complaints with Pressure either, it's spot-on!
- Poka Poka Island is 100% perfect now
- In Misty Blue there seems to be a tiny problem with the bass on channel 1 Pattern 02, the instrument's volume isn't exactly obeying the volume macro while the portamento-to-note is happening, but somehow it sounds better on the second loop... Maybe it's because by the time the 2nd loop is playing I'm already zoning out >w> (It's a long song after all)
- Fighting Back is perfect!
- Battle Xtasy is also perfect!

Well, this has been the best attempt thus far, most of the songs are on-point, and the only issues I could spot were very minor...
Great job mate ^^

elmer

  • Hero Member
  • *****
  • Posts: 2154
Re: Huzak - Yet another music driver
« Reply #113 on: February 11, 2017, 02:09:03 PM »
Oh and, make sure to talk to SpoonyBard when you're on that 'fishing expedition', he's really good and he does PCE sometimes! (And doesn't use samples very often so that's a bonus!)

Definitely!

He comes-and-goes there, but his tracks are already on my list of test-tracks.  :wink:

He's been very keen on using a 1:5/6/7 timing in order to switch from tone to noise for his drums, and then using Note Cut everywhere!

He also like 96-row patterns.

His tracks will definitely be a test of how well the Huzak driver and dmf2huz converter actually work with "difficult" data.  :-k


- I've noticed something weird when listening to Sidecrawler's dance, I don't remember whether or not it was in the previous version but... When the song loops the delay/reverb (channel 5) seems to be a little louder than it should...

Awwww ... cr*p ... you caught me being a lazy programmer!  :oops:

I was doing some tests to try to find/fix the Poka-Poka Island track, and was resetting a few extra things like the Volume and Panning, and was too lazy to rebuild Sidecrawler's Dance after I figured out that those things weren't causing the problem.

Yep ... I've checked in Mednafen (thanks for letting me know the track to look for) ... and resetting the volume was causing the track to sound too loud on the loop.

I've rebuilt Sidecrawler's Dance with the "current" code (i.e. the same as Poka-Poka Island), and have updated the zip file that I linked to in the last message.

You can download that and try it again, if you wish.

Sorry for wasting your time ... pure laziness on my part.  :oops:


- In Misty Blue there seems to be a tiny problem with the bass on channel 1 Pattern 02, the instrument's volume isn't exactly obeying the volume macro while the portamento-to-note is happening, but somehow it sounds better on the second loop... Maybe it's because by the time the 2nd loop is playing I'm already zoning out >w> (It's a long song after all)

Now this one is something that I'll need to investigate.

An active Portamento will override and active Vibrato ... but the Macros should be processed in either/all cases.  :-k

I'll have to get back to you on that.
« Last Edit: February 11, 2017, 02:10:34 PM by elmer »

Michirin9801

  • Hero Member
  • *****
  • Posts: 589
Re: Huzak - Yet another music driver
« Reply #114 on: February 11, 2017, 02:19:38 PM »
I've rebuilt Sidecrawler's Dance with the "current" code (i.e. the same as Poka-Poka Island), and have updated the zip file that I linked to in the last message.

You can download that and try it again, if you wish.

Sorry for wasting your time ... pure laziness on my part.  :oops:
Sounds on-point now ^^
Oh and, don't worry about that!

elmer

  • Hero Member
  • *****
  • Posts: 2154
Re: Huzak - Yet another music driver
« Reply #115 on: February 12, 2017, 06:09:22 PM »
OK ... HELPPPPP!!!  ](*,)

I've generated and dissected a lot of .hes files, and have figured out exactly how the Volume Slide and Tremolo effects are processed so that I can re-create them.

But something is making me scratch my head and go ... WTF???

DefleMask has the following effects ...

0Axy : Volume Slide
05xy : Volume Slide + continue existing Portamento-to-Note
06xy : Volume Slide + continue existing Vibrato

07xy : Tremolo


Now, I can see that the 07xy Tremolo overrides an 0Axy Slide on the same row.

0Axy will stop a previously-triggered 07xy, and continue on from their last volume.
07xy will stop a previously-triggered 0Axy, and continue on from their last volume.

But what is the point of 05xy and 06xy????

They don't make any sense, because even with 0Axy ... an existing Vibrato or Portamento-to-Note is continued anyway.

So why do they exist???

What are they supposed to do???

fragmare

  • Hero Member
  • *****
  • Posts: 676
Re: Huzak - Yet another music driver
« Reply #116 on: February 12, 2017, 06:35:30 PM »
Never messed with the 05 or 06, but one thing of note is that the 07 Tremolo command OVERRIDES the normal "green" 0-1F volume commands, while it's working, in Deflemask.  The only volume commands that have any overall effect while the 07 is active are the 08 volume/panning commands.  Something you might need to know.

I suspect other commands exhibit this behavior as well.

And, I believe, from my understanding of the manual... the 05 and 06 are for if you've ALREADY got a portamento or vibrato effect going, and want to KEEP it going (without resetting it), but also want to add a volume slide into the mix.  I could be wrong, but that was my crude take on it.  Seems like the logical usage, and useful if you ever run into a scenario where you need/want to use both at once, but don't want the porta/vibrato effect to be reset.

I'm sure Michirin could offer some more insight into this.
« Last Edit: February 12, 2017, 06:42:00 PM by fragmare »

Michirin9801

  • Hero Member
  • *****
  • Posts: 589
Re: Huzak - Yet another music driver
« Reply #117 on: February 13, 2017, 05:01:09 AM »
I'm sure Michirin could offer some more insight into this.

Sorry but no >w>
I've never used those effects, or even seen them being used in a song, like, at all...
Heck, I've only used the tremolo effect once, I much prefer to use the volume macro to control my tremolo, whenever that is necessary...

I tried using the effects and they appear to do the same thing as the 0Axy effects, the exact same thing regardless of tremolo, portamento or vibrato, so these effects are pretty much redundant...
http://sta.sh/02asxg172nx9
^Here's a test DMF using those effects and as you can see, they all behave the exact same...
If you can notice any difference in their behaviour that I'm not seeing let me know, maybe they just behave the same in the outdated version of Deflemask I'm using, but as far as I'm concerned these effects are useless...

elmer

  • Hero Member
  • *****
  • Posts: 2154
Re: Huzak - Yet another music driver
« Reply #118 on: February 13, 2017, 03:24:19 PM »
Never messed with the 05 or 06, but one thing of note is that the 07 Tremolo command OVERRIDES the normal "green" 0-1F volume commands, while it's working, in Deflemask.  The only volume commands that have any overall effect while the 07 is active are the 08 volume/panning commands.  Something you might need to know.

Thanks, got it!  :wink:

Both the Tremolo and the main Volume command obviously use the same internal DefleMask "register".

An interesting thing (to me) that I'm NOT going to replicate, is that you can use one of the green Volume commands to reset a Volume Slide Down *while* it's in-progress, but once the Volume Slide hits 0, then subsequent green Volume commands are ignored. Weird!  ](*,)

That just seems like a bug to me.

Quote
And, I believe, from my understanding of the manual... the 05 and 06 are for if you've ALREADY got a portamento or vibrato effect going, and want to KEEP it going (without resetting it), but also want to add a volume slide into the mix.

Yep, that sounds like the description.

And their existence would make sense if an 0Axy Volume Slide actually cancelled a currently-in-progress Portamento or Vibrato ... but it doesn't!  :roll:


I tried using the effects and they appear to do the same thing as the 0Axy effects, the exact same thing regardless of tremolo, portamento or vibrato, so these effects are pretty much redundant...

Thanks for doing that test!  :D

You're getting the same results that I'm seeing.

I guess that the 05xy and 06xy commands are "inherited" from the ProTracker2 command set that Delek says that he based DefleMask on, where the 0Axy command really did cancel an existing Portamento or Vibrato.

Back-in-the-day that was how a lot of effects operated in order to reduce the "maximum" processing time that the driver would use.

There's very little audible reason that I can think of for allowing Portamento and Vibrato at the same time ... but DefleMask actually does allow that.

IHMO it would always be more-sensible to process a Portamento effect, and then when that effect was finished, THEN you start processing the Vibrato.

That would keep the maximum CPU time down.

Even checking whether Vibrato is enabled, after processing Portamento on a channel, still costs you some CPU time (x12 for the 6 tune channels, and the 6 SFX channels).  #-o

fragmare

  • Hero Member
  • *****
  • Posts: 676
Re: Huzak - Yet another music driver
« Reply #119 on: February 20, 2017, 12:15:23 PM »
Heya, Elmer, does Huzak support the [0C] Note Retrig command yet?