10/31/2023: Localization News - Dead of the Brain 1!

No, NOT a trick, a Halloween treat! Presenting the Dead of the Brain 1 English patch by David Shadoff for the DEAD last official PC Engine CD game published by NEC before exiting the console biz in 1999! I helped edit/betatest and it's also a game I actually finished in 2023, yaaay! Shubibiman also did a French localization. github.com/dshadoff/DeadoftheBrain
twitter.com/NightWolve/PCENews
Main Menu

Huzak - Yet another music driver

Started by elmer, 12/26/2016, 03:45 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

elmer

Quote from: Michirin9801 on 02/07/2017, 04:14 PMThat would be very nice ^^
I wanted to do some timing tests to see how much CPU time the driver is currently using before seeing what it'll take, and it looks like I don't need to be too paranoid, IF it can be done reasonably nicely.

The following are worst-case costs, because that's what a programmer needs to budget for.

The average cost looks like it will be rather lower.

"Pressure", "Quartet" and "Sidecrawler's Dance" are maxing out at 5.1% of CPU time.

"Poka Poka Island" is a bit higher.

"Fighting Back" is using the most time at 5.5% of CPU time.

That includes processing all the empty SFX channels, and allowing for the channel-overrides.

That's not at all bad, and makes me thing that we'll be well-within the 10% CPU budget that I'm used to leaving for music/SFX.

Sample playback will, of course, play havoc with that, but there's not much I can do about that.


QuoteI'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
Thanks for letting me know where to look for that lack-of-vibrato in "Fighting Back".

It was actually playing, but it wasn't deep enough.

I've applied the same more-accurate-math fix from the Detune code to the Vibrato code, and Fighting Back sounds much better now.

"Pressure" seems to sound OK to me with the latest .dmf. I'll upload some new ROMs later on.

That last builds were using the same "undefined" $1F noise setting as DefleMask, but I've switched that back to the legal $1E setting again now.


One thing that I'm noticing in "Pressure", and a few of the other tracks, is that you're using Arp Macros that keep on looping back 1 step and repeating the very last note in the macro.

Is there a reason for this? Does DefleMask stop doing something when that Arp Macro ends?

For Huzak ... it costs time to keep on processing that Arp Macro change, even if it's not really a change, and it may also mess up the logic in the driver, because things like Portamento and Vibrato are skipped while  there is an active Arpeggio (either the effect, or the Macro).

That's because there doesn't seem to be any sane way of processing frequency shifts (Portamento/Vibrato) at the same time that you're forcing a different note anyway.

Am I missing something that you'd want to do as a musician?  :-k

Michirin9801

Quote from: elmer on 02/07/2017, 05:30 PMOne thing that I'm noticing in "Pressure", and a few of the other tracks, is that you're using Arp Macros that keep on looping back 1 step and repeating the very last note in the macro.

Is there a reason for this? Does DefleMask stop doing something when that Arp Macro ends?

For Huzak ... it costs time to keep on processing that Arp Macro change, even if it's not really a change, and it may also mess up the logic in the driver, because things like Portamento and Vibrato are skipped while  there is an active Arpeggio (either the effect, or the Macro).

That's because there doesn't seem to be any sane way of processing frequency shifts (Portamento/Vibrato) at the same time that you're forcing a different note anyway.

Am I missing something that you'd want to do as a musician?  :-k
When you use an instrument that uses the 'Fixed Arpeggio' in Deflemask, as soon as that arpeggio effect ends the note you've put in the note column will play like normal unless you add a loop to the arpeggio macro, that loop is there in order to make drums easier to deal with on the tracker, so I can just put whatever note I feel like on the channel without a care in the world and the drum will play the same way every time, so I can just use C notes for everything except for when I need the drums to do different tones (like the Toms for example)

Quote from: elmer on 02/07/2017, 05:30 PMThat last builds were using the same "undefined" $1F noise setting as DefleMask, but I've switched that back to the legal $1E setting again now.
If I may make a suggestion, whenever an instrument uses the $1F noise frequency, play back the $1E frequency but with its volume lowered by 4 okay?
I've already adjusted my Hi-Hats to not use the $1F frequency and I'll be using only the legal $1E for all my future songs, and from what I could hear, lowering the volume by 4 produces the closest/most acceptable results...

elmer

Quote from: Michirin9801 on 02/07/2017, 05:55 PMWhen you use an instrument that uses the 'Fixed Arpeggio' in Deflemask, as soon as that arpeggio effect ends the note you've put in the note column will play like normal unless you add a loop to the arpeggio macro.
Yeeks! That's not in the manual (I think). Then again, so much isn't.

Is that the same with the "normal" Arpeggio Macros ... i.e. it returns to the base note when it ends???

I can see that would make some sense, especially if that's how it works on the "fixed" Arpeggio Macro.


Do either of the other Volume or Wave Macros have similar features?

I think that I've seen you loop a Volume Macro once-or-twice.

Thanks!  :)


Quote from: Michirin9801 on 02/07/2017, 05:55 PMIf I may make a suggestion, whenever an instrument uses the $1F noise frequency, play back the $1E frequency but with its volume lowered by 4 okay?
I could certainly do that, at least temporarily, just to get stuff working.

But I really, really, really don't like doing it long-term, because even testing for that value just wastes CPU time.

I'll probably implement it like that in a day-or-so when the my horror at the sheer-waste dies down a little.

It's a good idea ... thanks! But ... YUK!  #-o

Michirin9801

Quote from: elmer on 02/08/2017, 09:37 PM
Quote from: Michirin9801 on 02/07/2017, 05:55 PMWhen you use an instrument that uses the 'Fixed Arpeggio' in Deflemask, as soon as that arpeggio effect ends the note you've put in the note column will play like normal unless you add a loop to the arpeggio macro.
Yeeks! That's not in the manual (I think). Then again, so much isn't.

Is that the same with the "normal" Arpeggio Macros ... i.e. it returns to the base note when it ends???

I can see that would make some sense, especially if that's how it works on the "fixed" Arpeggio Macro.


Do either of the other Volume or Wave Macros have similar features?

I think that I've seen you loop a Volume Macro once-or-twice.

Thanks!  :)
Nope! That only happens with the Fixed Arpeggio, doesn't happen with the relative arpeggio or the volume macros, also, looping volume envelopes is a great way to get tremolo, MUCH better than doing it in the effect column... (Take note of that Fragmare! I remember you wanted to do a tremolo in Simon Belmont's theme but wanted more control of it, doing it this way is really useful!)

Quote from: elmer on 02/08/2017, 09:37 PM
Quote from: Michirin9801 on 02/07/2017, 05:55 PMIf I may make a suggestion, whenever an instrument uses the $1F noise frequency, play back the $1E frequency but with its volume lowered by 4 okay?
I could certainly do that, at least temporarily, just to get stuff working.

But I really, really, really don't like doing it long-term, because even testing for that value just wastes CPU time.

I'll probably implement it like that in a day-or-so when the my horror at the sheer-waste dies down a little.

It's a good idea ... thanks! But ... YUK!  #-o
Oh you don't really have to do it long-term, when Deflemask has its PCE quirks fixed I'm sure you'll be able to optimise Huzak quite a bit to not waste nearly as much CPU time ^^
In the meantime though, it will be a useful thing to have...

elmer

Quote from: Michirin9801 on 02/08/2017, 09:51 PMNope! That only happens with the Fixed Arpeggio, doesn't happen with the relative arpeggio or the volume macros, also, looping volume envelopes is a great way to get tremolo, MUCH better than doing it in the effect column...
What!!! That's crazy!!! Why do it in the Fixed Arp, but not in the Relative Arp???  ](*,)

OK, whatever, it's easy-enough to handle, now that I know about the behavior.

Using the Volume Macro for Tremolo makes a lot of sense, and it's a lot more controllable than the effect.

But I could have sworn that I'd seen you do a repeat of just the last value in a Volume Macro.

If there's no "special" meaning to that, then it might be temping to automatically remove it during conversion.

I *think* that it might be used by folks that want to fade up/down from a Volume Envelope, by using the Volume Slide of individual Volume settings.  :-k

Michirin9801

#105
Quote from: elmer on 02/08/2017, 10:00 PMWhat!!! 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...

elmer

Quote from: Michirin9801 on 02/08/2017, 10:40 PMI 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

#107
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 fuckin 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.  ;)

elmer

Quote from: fragmare on 02/10/2017, 04:55 AMDefinitely 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

Quote from: elmer on 02/10/2017, 12:15 PMAs 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

Quote from: Gredler on 02/10/2017, 12:54 PMElemer the bridge builder, thank you sir and hope all is well!
You've said it all mate!

elmer

#111
Quote from: Gredler on 02/10/2017, 12:54 PMI 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.  [-o<

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:

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


Quote from: Michirin9801 on 02/07/2017, 04:14 PMI'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-[


Quote from: Michirin9801 on 02/07/2017, 04:14 PM
Quote from: elmer on 02/07/2017, 03:17 PMAs 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.


Quote from: Michirin9801 on 02/05/2017, 11:33 PM- 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:

Michirin9801

Quote from: elmer on 02/11/2017, 06:05 PM
Quote from: Gredler on 02/10/2017, 12:54 PMI 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.  [-o&lt;

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!)

Quote from: elmer on 02/11/2017, 06:05 PMHere 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

#113
Quote from: Michirin9801 on 02/11/2017, 09:07 PMOh 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


Quote from: Michirin9801 on 02/11/2017, 09:07 PM- 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:


Quote from: Michirin9801 on 02/11/2017, 09:07 PM- 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.

Michirin9801

Quote from: elmer on 02/11/2017, 10:09 PMI'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

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

#116
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.

Michirin9801

Quote from: fragmare on 02/13/2017, 02:35 AMI'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

Quote from: fragmare on 02/13/2017, 02:35 AMNever 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.

QuoteAnd, 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:


Quote from: Michirin9801 on 02/13/2017, 01:01 PMI 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

Heya, Elmer, does Huzak support the [0C] Note Retrig command yet?

elmer

Quote from: fragmare on 02/20/2017, 08:15 PMHeya, Elmer, does Huzak support the [0C] Note Retrig command yet?
That's one that Huzak will *never* support, unless I'm reading the description wrong.

The Huzak code is only called every 1/60s, so I can't possibly retrigger a note more often than that.

Why would you want to?

Am I reading the description wrong?  :-k

FraGMarE

#121
Lol, I think you have the wrong idea about it.  It's meant to retrigger a note more than once on a single Deflemask row, so you *CAN* get a note to play every 1/60th (no matter how your song timing is set up)....

Let's say, you have an instrument set up with a pretty sharp decay.  Sounds awesome for most notes, but a few notes you come across have a longer sustain than the others... and to top it off, the sustaining notes have all kinds of different lengths.  What do you do?  You *COULD* set up separate instruments for each different length of note, but that's wasteful and you'd end up with a lot of instruments.  You could try to set up the sustain/decay manually in the pattern through volume commands and note cuts, but that doesn't get you per-tick control (unless you happen to be using 1/1 timing).

You see, if you have an instrument with a really sharp decay, but you need it to sustain for a few ticks WITHOUT the volume decaying, the best way I know of (without running into the aforementioned issues) is to play the note on successive rows in Deflemask... but if the decay is sharp, simply playing the note each row, by itself, will sound jittery and weird if your timing is, say, 3/2, or 3/3 or basically anything other than 1/1.  BUT!  If you force the note the retrigger on each row until the row is done, it plays seamlessly into the next note on the next row without any jitter or decay.  I *just* discovered the usefulness of it, and yea, it's pretty handy.  I wish I had started experimenting with it before.  It's more or less a "force sustain" command for a few ticks.  Or at least, that's how I'm using it.

PS I have a doozy coming up for you guys.  ;)

elmer

Quote from: fragmare on 02/20/2017, 11:52 PMLol, I think you have the wrong idea about it.  It's meant to retrigger a note more than once on a single Deflemask row, so you *CAN* get a note to play every 1/60th (no matter how your song timing is set up)....
OK, so it's just poor English in the DefleMask manual.  ](*,)

Now then ... what does the "xx" parameter to the $0Cxx effect mean???  :-k

If you use $0C01, does the note retrigger every-frame (1/60s), or just once on the pattern row (whatever the "speed" setting currently is)?

If you use $0C02, does the note retrigger every-other-frame, or just twice on the pattern row?


QuotePS I have a doozy coming up for you guys.  ;)
I look forward to hearing it!  :)

Michirin9801

Wow, I didn't even know this effect existed... (Goes to show how much I care about reading manuals >w>)

I don't know if I'll ever use it, but thanks to your explanation I have an idea on how it could be used in case I'd ever need it...
But hey ho, if you find it useful then great!

Quote from: fragmare on 02/20/2017, 11:52 PMPS I have a doozy coming up for you guys.  ;)
So do I! Right now in fact!
http://sta.sh/011rbp9iix8n

I hope you like drifting in 16 bits! I think that's hint enough as to what it is ;3

FraGMarE

Quote from: elmer on 02/21/2017, 12:25 AM
Quote from: fragmare on 02/20/2017, 11:52 PMLol, I think you have the wrong idea about it.  It's meant to retrigger a note more than once on a single Deflemask row, so you *CAN* get a note to play every 1/60th (no matter how your song timing is set up)....
OK, so it's just poor English in the DefleMask manual.  ](*,)

Now then ... what does the "xx" parameter to the $0Cxx effect mean???  :-k

If you use $0C01, does the note retrigger every-frame (1/60s), or just once on the pattern row (whatever the "speed" setting currently is)?

If you use $0C02, does the note retrigger every-other-frame, or just twice on the pattern row?


QuotePS I have a doozy coming up for you guys.  ;)
I look forward to hearing it!  :)
I'm pretty sure that [0Cxx] variable is the number of times/ticks to retrigger a note on a row, and if the total number of note triggers exceeds the number of ticks for that particular row (controlled by your timing), then the 0C command is simply ignored.

I'm still experimenting with it myself and seeing how it behaves in a more exact way...

Quote from: Michirin9801 on 02/21/2017, 12:26 AMWow, I didn't even know this effect existed... (Goes to show how much I care about reading manuals >w>)

I don't know if I'll ever use it, but thanks to your explanation I have an idea on how it could be used in case I'd ever need it...
But hey ho, if you find it useful then great!

Quote from: fragmare on 02/20/2017, 11:52 PMPS I have a doozy coming up for you guys.  ;)
So do I! Right now in fact!
http://sta.sh/011rbp9iix8n

I hope you like drifting in 16 bits! I think that's hint enough as to what it is ;3
Glad I could help!  :)  I'll check out that DMF here in a bit.  I have unsaved stuff open in Deflemask at this very second

FraGMarE

Quote from: elmer on 02/21/2017, 12:25 AM
Quote from: fragmare on 02/20/2017, 11:52 PMLol, I think you have the wrong idea about it.  It's meant to retrigger a note more than once on a single Deflemask row, so you *CAN* get a note to play every 1/60th (no matter how your song timing is set up)....
OK, so it's just poor English in the DefleMask manual.  ](*,)

Now then ... what does the "xx" parameter to the $0Cxx effect mean???  :-k

If you use $0C01, does the note retrigger every-frame (1/60s), or just once on the pattern row (whatever the "speed" setting currently is)?

If you use $0C02, does the note retrigger every-other-frame, or just twice on the pattern row?


QuotePS I have a doozy coming up for you guys.  ;)
I look forward to hearing it!  :)
Preliminarily, from what i'm observing, it would appear that the [0C] command is retriggering the note every [xx] ticks until the row ends, ignoring values equal to or larger than the tick value of the row.  So to clarify, let's say, for shits n' giggles, your song timing was 5/2, and you stick a 0C command on the first row (5 ticks long).  If you use [0C01], then that note is going to repeat every 1/60th until the row ends, thus giving you 5 full ticks of sustain.  If you used, say [0C02] instead, it would repeat every OTHER tick until the row ends.  [0C03] would retrigger every THIRD tick, etc. etc.

So you can start to see where if your instrument has a sharp decay that drops off after the first tick or two, but you NEED a few ticks of sustain on some select notes without making all new volume macros for each individual note, then 0C is definitely the command for you.

This command seems to go hand-in-hand with the note cut, and note delay command to give more per-tick control over notes, in general.

elmer

Quote from: fragmare on 02/21/2017, 03:52 AMPreliminarily, from what i'm observing, it would appear that the [0C] command is retriggering the note every [xx] ticks until the row ends, ignoring values equal to or larger than the tick value of the row.  So to clarify, let's say, for shits n' giggles, your song timing was 5/2, and you stick a 0C command on the first row (5 ticks long).  If you use [0C01], then that note is going to repeat every 1/60th until the row ends, thus giving you 5 full ticks of sustain.  If you used, say [0C02] instead, it would repeat every OTHER tick until the row ends.  [0C03] would retrigger every THIRD tick, etc. etc.
OK, if it's really just a case of using a delay-counter to reset the Instrument Macro positions back to the beginning, then yeah, that's easy to implement.

I'll have to run some tests of my own to confirm that from the .hes file contents.

elmer

Quote from: elmer on 02/10/2017, 12:15 PMI 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.  ](*,)
So, nearly a month later, those darned effects are finally working "properly" ... which, to me, means outputting the same volume values that DefleMask produces.

After spending weeks of making tests and dissecting .hes files trying to figure out what is going on, I can say that Delek has made a few *really* strange decisions, and that there are some crazy interactions between things, that were not-at-all-fun to figure out.

Working on the ROMs for Michirin9801's recent Album (https://www.pcengine-fx.com/forums/index.php?topic=22018.0) showed up a few bugs in the dmf2huz converter, and in Huzak itself.

It looks like those are fixed now!

So, to celebrate, from the DefleMask forums, here's SpoonyBard's PCE cover of Blood-Stained Lake from Elemental Master.

DefleMask original ...
http://www.deflemask.com/forum/show-off-your-work/cover-game-music-on-a-different-system/msg5203/#msg5203

Huzak ROM ...
https://www.dropbox.com/s/hpg2b5wqglcvzdl/Huzak5thWIP-BloodStainedLake.pce?dl=0


And updated versions of Fragmare's Simon Belmont Theme, where the version with Volume Slides and Tremolo now works properly (I think) ...

Thread here ...
https://www.pcengine-fx.com/forums/index.php?topic=21963.0

Huzak ROMs ...
https://www.dropbox.com/s/j6tw4l8bxpigd2r/Huzak5thWIP-SimonBelmontTheme-WithSlides.pce?dl=0
https://www.dropbox.com/s/wyogeb3wjizd051/Huzak5thWIP-SimonBelmontTheme-NoSlides.pce?dl=0

DildoKKKobold

Hey, so has there been any chance of implementing a beta of this? I'd also love to see/help get some early sample-based sfx going!
AvatarDildoKKKobold.jpg
For a good time with the legendary DarkKobold, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

elmer

Sorry, I've be snowed-under with the whole LoX Dub process.

I didn't think that my help would be needed on that, but with the massive turnout, it has been.


Michirin9801 has a sort-of-beta that she can use to test tunes ... but there is still no sample support built in, yet.

Do you already have your Deflemask background tune(s)? Have you left channels unused or with minimal-use so that sound-effects can override them?

Do you have your samples done? Each sound effect will need to be its own Deflemask file, with 1:1 row timing.

Gredler

Quote from: elmer on 06/08/2017, 04:40 PMDo you already have your Deflemask background tune(s)? Have you left channels unused or with minimal-use so that sound-effects can override them?

Do you have your samples done? Each sound effect will need to be its own Deflemask file, with 1:1 row timing.
I don't want to speak for DK but I do not believe we have anything prepped. but this bit if info gives us the foundation we need to start planning and trying to lock in some potentially useable assets :) Thanks, and good luck with that beast of a dub!

Michirin9801

Quote from: Gredler on 06/08/2017, 05:20 PM
Quote from: elmer on 06/08/2017, 04:40 PMDo you already have your Deflemask background tune(s)? Have you left channels unused or with minimal-use so that sound-effects can override them?

Do you have your samples done? Each sound effect will need to be its own Deflemask file, with 1:1 row timing.
I don't want to speak for DK but I do not believe we have anything prepped. but this bit if info gives us the foundation we need to start planning and trying to lock in some potentially useable assets :) Thanks, and good luck with that beast of a dub!
I'm kinda busy AF at the moment, but if you need any help with PSG SFX and Drums I'll be glad to help!
(So long as you're okay with waiting a little bit for an answer, you know, college and stuff)
Also, if elmer wouldn't mind, or hasn't already sent it to you, I can send you the beta he's given me...

elmer

Quote from: Michirin9801 on 06/09/2017, 10:25 PMI'm kinda busy AF at the moment, but if you need any help with PSG SFX and Drums I'll be glad to help!
(So long as you're okay with waiting a little bit for an answer, you know, college and stuff)
Also, if elmer wouldn't mind, or hasn't already sent it to you, I can send you the beta he's given me...
I absolutely don't mind you sending the beta to them ... but they'll probably want some of the build settings changed.

Your version is customized for the 240Hz bass/drum updates, and the proper noise channel settings (i.e. no correction for DefleMask's bug).

If somebody other than you is composing the Catastrophy music in DefleMask, then those should be switched back to their "compatibility-mode" settings.

Michirin9801

Quote from: elmer on 06/10/2017, 04:07 PM
Quote from: Michirin9801 on 06/09/2017, 10:25 PMI'm kinda busy AF at the moment, but if you need any help with PSG SFX and Drums I'll be glad to help!
(So long as you're okay with waiting a little bit for an answer, you know, college and stuff)
Also, if elmer wouldn't mind, or hasn't already sent it to you, I can send you the beta he's given me...
I absolutely don't mind you sending the beta to them ... but they'll probably want some of the build settings changed.

Your version is customized for the 240Hz bass/drum updates, and the proper noise channel settings (i.e. no correction for DefleMask's bug).

If somebody other than you is composing the Catastrophy music in DefleMask, then those should be switched back to their "compatibility-mode" settings.
Yeah you're right, but they'd probably be fine if they just didn't use the very first instrument...
At this point I'm just waiting for their answer before I decide on sending it or not, or maybe you could just restore the "compatibility settings" and send it to them if they want... I'd still be fine with sharing my drum instruments though!

Gredler

Quote from: Michirin9801 on 06/09/2017, 10:25 PMI'm kinda busy AF at the moment, but if you need any help with PSG SFX and Drums I'll be glad to help!
(So long as you're okay with waiting a little bit for an answer, you know, college and stuff)
Also, if elmer wouldn't mind, or hasn't already sent it to you, I can send you the beta he's given me...
Thank you that's really appreciated!

I think DK is just looking to plug in some temp music and sound effects to test with to plan how hte code will work, but we don't currently have a musician/sound person, so having access to instruments/tools is not really useful for us.

Like I said earlier, we are thankful for Elmer's work on the tool, and the musicians out there working with him to make it flexable and useable, but unless someone wants to give us music to use as a placeholder there's not a lot we can do with the tools even if Elmer gave them to us.

I have offered to try to learn this stuff, but barely have/take the time to work on the art so adding music and sound to my plate would only further slow things down :P

I should change my username to "bottleneck" hahaha

DildoKKKobold

Quote from: Gredler on 06/12/2017, 07:47 PMI think DK is just looking to plug in some temp music and sound effects to test with to plan how hte code will work, but we don't currently have a musician/sound person, so having access to instruments/tools is not really useful for us.

Like I said earlier, we are thankful for Elmer's work on the tool, and the musicians out there working with him to make it flexable and useable, but unless someone wants to give us music to use as a placeholder there's not a lot we can do with the tools even if Elmer gave them to us.
This is exactly it. The majority of potential musicians we've interacted with wanted money first, which neither gredler or I have the ability to front. However, I'd like to be able to start adding placeholder tracks, to make sure it works, doesn't slow my code down, or if it does, edit my code so the speed is maintained. Additionally, I'd love to be able to add downsampled sound effects in the proper places. Really, it'd be nice to be at a point where we're both comfortable the game will be finished, and thus we'd be in a better place to front the cash for actual good music. At this point, its just a hobby project between two bros. (We've also agreed we won't kickstarter anything until its pretty much ready for manufacture.)

Regarding SFX, I'm capable of downsampling WAV files into 5bit numbers, but I'm going to need hand holding past that... Really, just getting these things started would help us accelerate, and have a more 'complete' feeling game.
AvatarDildoKKKobold.jpg
For a good time with the legendary DarkKobold, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

Gredler

Quote from: guest on 06/12/2017, 10:23 PM(We've also agreed we won't kickstarter anything until its pretty much ready for manufacture.)
To be clear, if someone wanted a physical copy it would require money manufacture, so we would ask for people to help pay for any physical copies that would be made - I don't want to get people thinking we're planning on putting this project on kickstarter - that is NOT something I want to do if at all possible.

Michirin9801

I'm tempted to just send you some of my music for you to test...

Gredler

Quote from: Michirin9801 on 06/13/2017, 09:55 AMI'm tempted to just send you some of my music for you to test...
Thanks, if you've heard the music I made I am sure anything you record while on the toilet would sound better than my attempts ;)

DildoKKKobold

Quote from: Michirin9801 on 06/13/2017, 09:55 AMI'm tempted to just send you some of my music for you to test...
We would promise that none of it would make it to the final version of the game, unless you specifically wanted it to! It will be played during various game play demos, whether they are posted to youtube or played at the various gaming conventions. We'd be sure to give you credit, even if none of your songs were in the final version. Let us know if that is cool for you.
AvatarDildoKKKobold.jpg
For a good time with the legendary DarkKobold, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

Michirin9801

Quote from: guest on 06/14/2017, 05:42 PM
Quote from: Michirin9801 on 06/13/2017, 09:55 AMI'm tempted to just send you some of my music for you to test...
We would promise that none of it would make it to the final version of the game, unless you specifically wanted it to! It will be played during various game play demos, whether they are posted to youtube or played at the various gaming conventions. We'd be sure to give you credit, even if none of your songs were in the final version. Let us know if that is cool for you.
That's perfectly fine with me!
I'll PM you this weekend with a few songs, but mind you, they're all covers, none of them is original by me >w>

MooZ

Damn I'd definitively need this.
I'm tired of 200KB vgm :/

elmer

Yes, I really need to get back to this and finish it off enough for a release.

The big thing that's stopping that (apart from sample-support), is adding the modifications to the converter to process multiple DefleMask files so that you can convert a few different tunes and add sound effects as well, all into the same bank of music.

That's ongoing.

MooZ

Maybe you can postpone the multi song stuff for a v2 :)

Gredler

#144
Elmer is a man of many projects, all of them so appreciable!

I know how important and anticipated the translation projects are, but huzak is tip top of my Christmas list this year, I have to agree how exciting this is!

After working in pro motion ng for a bit over the laat couple weeks, and making some small progress on the third of five planned levels, I can't wait to start getting some tuneage in there! We have not locked down a composer/artist, but even Michirin9801's graciously donated covers for now would be raaad :)

elmer

Quote from: MooZ on 07/29/2017, 06:04 PMMaybe you can postpone the multi song stuff for a v2 :)
Yeah, sorry, can't do that ... I need that capability so that Gredler & DK can have both Sound Effects and Tunes.

Kinda important for homebrew.

If you have a real pressing use for it ... send me a PM, and we can talk.

Some people already have copies of the current WIP ... but even though they've got it, it's not much use to Gredler & DK at the moment without HuC hooks.

Michirin9801

Quote from: Gredler on 07/29/2017, 06:39 PMbut even mirichans graciously donated covers for now would be raaad :)
You're talking about me?
If so you kinda misspelled my name >w>';

Gredler

Yeah I was, sorry I fixed it:)

MooZ

Well I'm not in a hurry. I don't think I'll have enough new material to release something at datastorm this september anyway.

elmer

No problem! I'm busy myself at the moment.

This month is going to be lost to "vacation" preparations, so I'm not going to get much more PCE-stuff done until September.