Huzak - Yet another music driver

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

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Arkhan Asylum

I use Fruity Loops.   I settled on it after trying CuBase, Cakewalk, that other overrated piece of crap on Mac, and TMidity on Linux.   It's turned out to be one of the best things ever to use.

I assure you, in the end, this way is quicker and more intuitive than a tracker for making music.    It may not be for getting a chiptune once this Deflemask stuff gets going, but for the act of writing a song, these things tend to work better.    Huelsbeck and such aren't even trackering nowadays. 

There is a slight learning curve (like a tracker) where you have to learn what each menu does, but then you realize it's broken down like a real instrument's parts:

1) Step sequencer (pick your instruments)
2) Piano roll (slap notes in!)
3) Timeline (Put your patterns together)
4) Mixer (duh)

I looked up Musagi.   It looks like an eyesore designed by someone who doesn't know what contrast is.  I am sorry you had to use that.  It looks awful! 

and yep, you can definitely use OpenMPT to get midis.  4 songs from Insanity were old, old, old MOD files from Amiga that I made as a kid.  I opened them in OpenMPT and saved the MML out, lol.

This is what FruityLoops looks like, with an FM VST. 
IMG

I've never had great luck getting any of my VSTs to work with a tracker.  It sucks.  MilkyTracker and reNoise would just go retarded.

In theory, you could use 3MLE to write songs in MML with a piano roll.  It has an on-screen keyboard, and might do MIDI input. 

https://youtu.be/Me7JKdVbq4o

It's pretty straightforward.   It's a shame there's no PCE sounds with it, though.   It's all MIDI.   

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

elmer

#51
Quote from: guest on 01/06/2017, 01:57 AMI use Fruity Loops.   I settled on it after trying CuBase, Cakewalk, that other overrated piece of crap on Mac, and TMidity on Linux.   It's turned out to be one of the best things ever to use.

I assure you, in the end, this way is quicker and more intuitive than a tracker for making music.    It may not be for getting a chiptune once this Deflemask stuff gets going, but for the act of writing a song, these things tend to work better.
Abso-frickin-lutely!

Modern tools are wonderful for creating real music, and for modern CD/DVD based consoles, or even for MIDI and sample-based sound drivers like the game-professional's choice ... FMOD (which has nothing to do with a tracker).


QuoteHuelsbeck and such aren't even trackering nowadays.
I might point out that they aren't creating MML music for 30-year-old consoles, either!  :wink:


QuoteIn theory, you could use 3MLE to write songs in MML with a piano roll.  It has an on-screen keyboard, and might do MIDI input. 

...

It's pretty straightforward.   It's a shame there's no PCE sounds with it, though.   It's all MIDI. 
It seems to be the best-solution that's available if you want to create MML in something with a reasonably-modern interface. I've certainly not seen any mention of a better tool being available.

That could be a really good way to lay out your basic MML tracks.

But then what?

To actually get envelopes and waveforms and vibrato and glides and percussion and ... all the things that really go into making your basic note-sequence sound good on the PCE ...

... that will actually work with the System Card Player ...

... you've got to export from 3MLE into a text format, and add all of the extras by-hand into a text file, without being able to interactively preview it and modify it on-the-fly.

"Yes", it can be done that way, and it can be done well. It's definitely possible.

But who-on-earth would really *want* to do things that way, if they had another choice???


BTW ... deflemask does (apparently) support input from a MIDI keyboard.

Michirin9801

Quote from: guest on 01/06/2017, 01:57 AMI've never had great luck getting any of my VSTs to work with a tracker.  It sucks.  MilkyTracker and reNoise would just go retarded.

In theory, you could use 3MLE to write songs in MML with a piano roll.  It has an on-screen keyboard, and might do MIDI input.
It's pretty straightforward.   It's a shame there's no PCE sounds with it, though.   It's all MIDI.
I've also tried reNoise and yeah, it's awful...
But I don't need either reNoise or FL Studio because OpenMPT also supports VSTs! But the only VST I still use is C700, and I only use it to rip SNES samples, the VST can export the samples to the .xi format supported by OpenMPT, then I can just compose a song like normal with SNES samples... But if I wanted to I could also use MIDI instruments with OpenMPT (which I've done once) and export a MIDI file, and heck, I could just sample whatever wavetables I wanted from Deflemask and use them in OpenMPT to make PCE sounding stuff and export a MIDI of it to turn into MML! (Or use Chip32 which I'm honestly not a fan of)

I just think it's pointless for me to learn FL Studio or 3MLE to do the same things that I can already do on OpenMPT, as I said, if or when I go the MML route, I'll just use OpenMPT to compose whatever I need to compose...

Arkhan Asylum

Quote from: Michirin9801 on 01/07/2017, 02:18 PM
Quote from: Psycho Arkhan on 01/06/2017, 01:57 AMI've never had great luck getting any of my VSTs to work with a tracker.  It sucks.  MilkyTracker and reNoise would just go retarded.

In theory, you could use 3MLE to write songs in MML with a piano roll.  It has an on-screen keyboard, and might do MIDI input. 

https://youtu.be/Me7JKdVbq4o

It's pretty straightforward.   It's a shame there's no PCE sounds with it, though.   It's all MIDI.
I've also tried reNoise and yeah, it's awful...
But I don't need either reNoise or FL Studio because OpenMPT also supports VSTs! But the only VST I still use is C700, and I only use it to rip SNES samples, the VST can export the samples to the .xi format supported by OpenMPT, then I can just compose a song like normal with SNES samples... But if I wanted to I could also use MIDI instruments with OpenMPT (which I've done once) and export a MIDI file, and heck, I could just sample whatever wavetables I wanted from Deflemask and use them in OpenMPT to make PCE sounding stuff and export a MIDI of it to turn into MML! (Or use Chip32 which I'm honestly not a fan of)

I just think it's pointless for me to learn FL Studio or 3MLE to do the same things that I can already do on OpenMPT, as I said, if or when I go the MML route, I'll just use OpenMPT to compose whatever I need to compose...
Hmm, I never had fantastic luck with VSTs in OpenMPT, but I also haven't tried since maybe 2002 or so.  Some of them would just crash the software, or they sounded awful.   Also, the interfaces for them covered up the columns, which made that a bad time in the first place, lol.

My perspective about using a DAW stem more from assuming you might want to make music outside of the confines of the chiptune world.  Trackers are not exactly fantastic for that sort of thing. 



Quote from: elmer on 01/07/2017, 01:22 PMAbso-frickin-lutely!

Modern tools are wonderful for creating real music, and for modern CD/DVD based consoles, or even for MIDI and sample-based sound drivers like the game-professional's choice ... FMOD (which has nothing to do with a tracker).
Yeah, this is part of why I sort of went this route, as it also tends to be more comfortable since I can use things I was playing with anyways.



QuoteI might point out that they aren't creating MML music for 30-year-old consoles, either!  :wink:
Agreed, but, I can't say I see them going and dealing with trackers straight up these days.  If they had to go do chipstuff again, I would expect that they would compose elsewhere and import into Deflemask, or ProTracker, or whatever. 

Though, their musical backgrounds would make the conversion easier.



Quote... you've got to export from 3MLE into a text format, and add all of the extras by-hand into a text file, without being able to interactively preview it and modify it on-the-fly.

"Yes", it can be done that way, and it can be done well. It's definitely possible.

But who-on-earth would really *want* to do things that way, if they had another choice???
3MLE files are already simple text files.  You can open a 3MLE file in Notepad and be presented with what you were looking at in 3MLE already.  This helps.  To go from 3MLE to Squirrel you just copy paste the text from 3MLE's template to Squirrels.  I've debated writing a utility to do it for people. 

But, for me, I've hotkey'd Geany to launch a "go.bat" file that rebuilds and launches the player so I can hear the song in it's current state.   It's hardly any slower than hitting play in a tracker, so the only thing you really lose is being able to smack at the waveform.

Honestly, it's minimally tedious to hear the parts of the songs I want to hear, and you tend to know if an envelope or waveform sucks balls by about the 3rd note anyways.   I'm constantly just changing values and pressing F5 and having it start blaring out of the headphones pretty quickly

QuoteBTW ... deflemask does (apparently) support input from a MIDI keyboard.
Is it any good at it?   I'm tempted to at least try it.  Usually, the midi input on a tracker is not so great.   You either get balls latency, or it just sucks.  Especially if you're doing the whole polyphony thing.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

DildoKKKobold

AvatarDildoKKKobold.jpg
For a good time, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

Arkhan Asylum

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

elmer

Quote from: guest on 01/10/2017, 05:11 PMSo, where is this at?
It's going to be at least few months to get the driver solid, and playing back a decent subset of Deflemask's effects, or even longer if Delek decides not to help out with some information about his effect-processing.

And when the Xanadu dub starts and I'm needed again on that, then everthing else will be shelved until that's done. That project is my top-priority.

If you're really itching to get finished on Catastrophy, then IMHO your best option is to try to get Arkhan to do the tunes/sfx in Squirrel (running in the vblank), and then see if he can figure out how you can play those extra samples that you want.

If Arkhan doesn't have the time/interest, and you can wait a few months for sound, then this *will* get done to at-least a usable-if-not-perfect level. It isn't rocket-science, just finicky.

elmer

#57
Quick question for you music folks ...

What-on-earth do you guys *practically* use the row-speed effects commands 09xx and 0Fxx for in Deflemask?

I can see that fragmare used a regular pattern of alternating 0903/0902 settings to achieve a 260 BPM tempo ... ((225 BPM + 300 BPM) / 2)

But apart for a regular repeating pattern like that throughout a song, have you folks used, or seen them used, in any other fashion?

How about just for part of a song, or for a single row?

<edit>

The reason why I'm asking is that I'm considering just stripping them out of the pattern data, and using a repeating set of of 4 or 8 values, like the 2 (even/odd) now, but providing more granularity.

A set of 8 values would allow 1/60s changes in the length of a 1/4 note ... which seems about as fine a tempo control as we're going to get while still running the driver in the vblank every 1/60s.

Arkhan Asylum

My guess is people would use it for strange and/or syncopated tempos, and that's about it.

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

Michirin9801

#59
Quote from: elmer on 01/11/2017, 01:35 AMQuick question for you music folks ...

What-on-earth do you guys *practically* use the row-speed effects commands 09xx and 0Fxx for in Deflemask?

I can see that fragmare used a regular pattern of alternating 0903/0902 settings to achieve a 260 BPM tempo ... ((225 BPM + 300 BPM) / 2)

But apart for a regular repeating pattern like that throughout a song, have you folks used, or seen them used, in any other fashion?

How about just for part of a song, or for a single row?

<edit>

The reason why I'm asking is that I'm considering just stripping them out of the pattern data, and using a repeating set of of 4 or 8 values, like the 2 (even/odd) now, but providing more granularity.

A set of 8 values would allow 1/60s changes in the length of a 1/4 note ... which seems about as fine a tempo control as we're going to get while still running the driver in the vblank every 1/60s.
Well, we generally use it so that we can get different tempos than the ones supported natively in hardware without having to change the clock speed you know, but there are a few more uses to that, for example, one that I've used in one of my songs for my game's OST is the same one used in this song:
around 00:10 you can hear a 'break' in the song's tempo for a short while, the way I've replicated that is that for half a pattern I've used 09xx to get a faster tempo, and then I broke the pattern and returned to the original tempo with the 09xx effect in the next pattern

I've also started using the patterns of 09xx and 0Fxx effects in order to get my desired tempos because I realised that changing the clock speeds to get my tempo isn't exactly gonna work in real hardware, especially not in a proper game, and changing the tempo this way is the next best thing...

Arkhan Asylum

It might also be useful for sound effects, when someone starts bothering to use Deflemask for that.



This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

elmer

OK, thanks guys, those are useful answers, and I'll ask more questions later on, but first, perhaps I should go back and explain what my problem is ...

It's all a case of exactly *when* you change the row timing, and the interaction of that new timing with some of the effects commands, and especially, how to process things efficiently so that we're not paying an undue cost for something that rarely (if ever) happens.

The issue that I have, is that you can change the row speed, and that it effects the length of the exact row that you issue the new speed on.

So if you're on the 1st row in a pattern, and you change Speed1 (with effect 09xx), then that speed is used (or it appears to be used, to me) as the duration of that row.

You can set that effect *anywhere* in the row, which means that the driver will process some, or all, of the other channel's notes/effects before the row speed is changed.

The problem is that some effects commands (particularly Note Delay and Note Cut) need to know what the exact row speed *will* be, and they need to know it as soon as they're encountered during the notes/effects for that row.

Deflemask can get around this chicken-and-egg problem just by scanning the row first and setting the new row speed (if there is one) before processing any of the other notes/effects on the row.

We can't do that (practically) in a sound driver.

I need to decide how to work around that problem.

BTW ... the issue here is really with the "Note Delay" effect.

Is that effect even useful anymore, now that you can achieve so much with the Envelope/Arpeggio/Wave Macros? (Which AFAIK eliminate the need for the weird 1:7 timings that I've seen used).

FYI ... just ignoring that *one* effect would make all of my problems go away (the Note Cut *can* be processed a little-less efficiently, but still work).



One solution is to automatically create a separate invisible "timing" channel, and move all of the changes in row speed into that channel while converting the .dmf file.

It's a bit of a PITA, and will waste some memory for songs that don't change their timings, and cost a *little* bit of extra processing time ... but it has the advantage that it will work reliably, and keep the what-you-see-is-what-you-hear advantage that Deflemask offers.



The alternate solution, is to strip out the timing info, and have the driver use its own timing, for example, the 8 different row speeds that I suggested earlier.

The advantage here is that it is practically free to process, takes almost no extra memory, it gives you very fine-grained control over the tempo for a song, and that it makes changing the tempo *inside-the-game* very, very easy (for boss-rush tracks when the tune gets faster and faster).

But ... even though those 8 speed-settings could be initialized from the settings in the .dmf file when it is converted, you would lose the flexibility to change the row-speed at *any* time within the song data itself, and so you'd lose a bit of the what-you-see-is-what-you-hear advantage.



Now, as a programmer, I find the 2nd solution to be the most-elegant and efficient ... but I'm not the guy that makes the music.

What do you guys feel? Which alternative sounds better to you, and/or can you just live without "Note Delay"?  :-k

Or ... perhaps I'll just take a very long walk and *possibly* figure out a way to work around the problem.  ](*,)

Gredler

Quote from: guest on 01/10/2017, 05:11 PMSo, where is this at?
DK I gotta request you to improve your bedside manner :P I think you mean "Is there an ETA on when the driver will be usable?" or something along the lines of a timetable if we should be trying to recruit a deflemask sound person now or is it far off to where it'd be too early to do that now (he and I have not talked, but I am assuming this is the case as we currently don't have any sound person who's committed to help)

Quote from: elmer on 01/10/2017, 11:05 PMIf you're really itching to get finished on Catastrophy, then IMHO your best option is to try to get Arkhan to do the tunes/sfx in Squirrel (running in the vblank), and then see if he can figure out how you can play those extra samples that you want.
The last time DK and I spoke about Catastrophy we both agreed that we hope to finish at one point this year. Enthusiastically our prospects seemed more likely because of your help with making HuC more efficient and stable; and now this potential new pool of musicians to possibly recruit from would be the deal sealer that we have the ability to finish everything we want to do. As awesome as it would be to finish Catastrophy this year we do not have some obligation to do so (no kick starter/people waiting/funding/etc), and I sincerely doubt that this music driver would be the bottle neck - my pension for lagging and re-working my crappy art to look acceptable will much more likely delay the project than the lack of a musician; like you said if we needed this thing tomorrow I am sure Arkhan would be a champion and help us out.

To be honest, I would think it'd be great to see a homebrew with a third pillar in terms of sound style. I played Atlantian last night and that squirrel sound is so distinct to me now, it reminds me of how unique the various studio's games sounded, and made me hopeful that in a world with Squirrel Aetherbutt, and CD Henshin, it would be rad to have a Deflemaskedasstrophy :P


Quote from: elmer on 01/10/2017, 11:05 PMIf Arkhan doesn't have the time/interest, and you can wait a few months for sound, then this *will* get done to at-least a usable-if-not-perfect level. It isn't rocket-science, just finicky.
Thanks dude, any deflemask HuC support will be better than none, juding by the community support of deflemask it should open the door to a lot of projects having musicians rather than fumbly passionate non-musicians trying to pack some sound into their projects (see: me :P )

Michirin9801

Quote from: elmer on 01/11/2017, 12:43 PMOK, thanks guys, those are useful answers, and I'll ask more questions later on, but first, perhaps I should go back and explain what my problem is ...

It's all a case of exactly *when* you change the row timing, and the interaction of that new timing with some of the effects commands, and especially, how to process things efficiently so that we're not paying an undue cost for something that rarely (if ever) happens.

The issue that I have, is that you can change the row speed, and that it effects the length of the exact row that you issue the new speed on.

So if you're on the 1st row in a pattern, and you change Speed1 (with effect 09xx), then that speed is used (or it appears to be used, to me) as the duration of that row.

You can set that effect *anywhere* in the row, which means that the driver will process some, or all, of the other channel's notes/effects before the row speed is changed.

The problem is that some effects commands (particularly Note Delay and Note Cut) need to know what the exact row speed *will* be, and they need to know it as soon as they're encountered during the notes/effects for that row.

Deflemask can get around this chicken-and-egg problem just by scanning the row first and setting the new row speed (if there is one) before processing any of the other notes/effects on the row.

We can't do that (practically) in a sound driver.

I need to decide how to work around that problem.

BTW ... the issue here is really with the "Note Delay" effect.

Is that effect even useful anymore, now that you can achieve so much with the Envelope/Arpeggio/Wave Macros? (Which AFAIK eliminate the need for the weird 1:7 timings that I've seen used).

FYI ... just ignoring that *one* effect would make all of my problems go away (the Note Cut *can* be processed a little-less efficiently, but still work).



One solution is to automatically create a separate invisible "timing" channel, and move all of the changes in row speed into that channel while converting the .dmf file.

It's a bit of a PITA, and will waste some memory for songs that don't change their timings, and cost a *little* bit of extra processing time ... but it has the advantage that it will work reliably, and keep the what-you-see-is-what-you-hear advantage that Deflemask offers.



The alternate solution, is to strip out the timing info, and have the driver use its own timing, for example, the 8 different row speeds that I suggested earlier.

The advantage here is that it is practically free to process, takes almost no extra memory, it gives you very fine-grained control over the tempo for a song, and that it makes changing the tempo *inside-the-game* very, very easy (for boss-rush tracks when the tune gets faster and faster).

But ... even though those 8 speed-settings could be initialized from the settings in the .dmf file when it is converted, you would lose the flexibility to change the row-speed at *any* time within the song data itself, and so you'd lose a bit of the what-you-see-is-what-you-hear advantage.



Now, as a programmer, I find the 2nd solution to be the most-elegant and efficient ... but I'm not the guy that makes the music.

What do you guys feel? Which alternative sounds better to you, and/or can you just live without "Note Delay"?  :-k

Or ... perhaps I'll just take a very long walk and *possibly* figure out a way to work around the problem.  ](*,)
The Note Delay effect (EDxx) works by, well, delaying the note by the number of ticks you set it to, say if your song plays at 3 ticks per row in both the even and odd rows, but you want a note in one row to play 2 ticks afterwards than it should, so that note would play in between the two rows, then you can set the effect to ED02 and voila! The note will play in between the two rows!
Its 'usefulness' is debatable as a work-around can be reached by using the 09xx and 0Fxx effects for the pattern that uses it, however I have used it in a couple of my songs and it does its job pretty well!
But its job is to give you more freedom of where to put your notes in the slower songs, and in order to work around that you'd have to do some pretty complicated tempo-changing and pattern breaking which is only gonna further clutter the patterns... That said though, its use is relatively rare...

Personally I feel that the "Invisible Timing Channel" alternative would be much easier to deal with on my end, but I could live with the 8 different row speeds alternative, as for the 09xx/0Fxx and the Note Delay effects, you're gonna have to pick one of the two to support, because dropping both would really limit what we can do...
Oh and, the Note Cut effect is a must-have, I use it constantly!

My suggestion is to look for these specific effects and give them priority in this order:
09xx > 0Fxx > EDxx > ECxx
And after checking if any one or more of these effects is in the row, you then check the notes and the other effects, because that way the driver would be sure to know how many ticks that particular row will last for, then would know to delay a note by a set amount of ticks, and then would know to cut that note that set amount of ticks later, and after it knew all of that it would actually go and play the notes!

But in the case you use the 8 different row speeds solution, maybe you could check the clock speed value in Deflemask to make an approximation of the speed you should use depending on what clock speed is used instead of actually changing the clock speed, that way the users would be able to use that to know what tempo their song would use and have more of an idea of what the song would sound like in your driver!

elmer

Quote from: Michirin9801 on 01/11/2017, 03:08 PMPersonally I feel that the "Invisible Timing Channel" alternative would be much easier to deal with on my end, but I could live with the 8 different row speeds alternative, as for the 09xx/0Fxx and the Note Delay effects, you're gonna have to pick one of the two to support, because dropping both would really limit what we can do...
Oh and, the Note Cut effect is a must-have, I use it constantly!
I don't want to remove any of the capabilities, unless I absolutely *have* to ... it would be both ugly, and rather spoil the point of using a pre-exisiting GUI tool like Deflemask in the first place.

Having said which ... there's definitely an "order" in which individual effects will be implemented, and some, like Global Fine Tune, Arpeggio (the effect, not the macro), and the LFO effects, all very low on my priority list.

Now, since you mentioned "Note Cut" ... can you tell me if it acts as a non-row-aligned Note OFF, or if it actually fades out the note over the time of the "Note Cut" length parameter?  :-k


Quote from: Michirin9801 on 01/11/2017, 03:08 PMMy suggestion is to look for these specific effects and give them priority in this order:
09xx > 0Fxx > EDxx > ECxx
And after checking if any one or more of these effects is in the row, you then check the notes and the other effects, because that way the driver would be sure to know how many ticks that particular row will last for, then would know to delay a note by a set amount of ticks, and then would know to cut that note that set amount of ticks later, and after it knew all of that it would actually go and play the notes!
Hahaha ... yah ... well sure, I understand that that is the *behavior* that needs to be implemented, but it's rather more complicated than that in terms of converting the deflemask data efficiently, and making the driver actually run fast.  :wink:

I took that long walk, and have come up with a decent solution to the problem, but it still uses up a few more cycles of CPU time than I really like ... and that irks me.  :(


The root-cause of the problem is really one of whether you decide on exactly how many 1/60s increments every row & note takes when you actually convert the .dmf file on your PC, or whether you leave that until you are actually running on the PCE.

You've arrived here in the middle of a longer-running argument/debate ... and that's the question of how to practically achieve both different, and differing tempos in songs.

I think that we pretty much all agree (now) that songs can have different tempos from each other, or within a tune, just by changing how many 1/60s increments a 1/4 note lasts ... basically, in the case of Deflemask, by setting those row speed values when you create your tune.

The question then becomes ... how do you achieve differing tempos, i.e. a tempo that keeps on speeding up as the tune keeps on playing?

There are 2 ways to make that happen ...


One way is to actually make your tune speed up in Deflemask, just by copying patterns and changing the row speeds.

You end up with a longer tune in Deflemask that way, potentially *much* longer, but at least it is the musician that has complete control of when/how the tune speeds up.


The other way is to avoid using row-speed-effects in the tune at all, and give the game programmer some way to change those row-speed values inside the game, especially when the player does something ... like actually land a blow on the boss monster.

That's probably going to both sound and feel the best for the player ... but it's a bit of a PITA for the driver guy, because the exact timings of things like your Note Delay and Note Cut cannot be determined when the .dmf file is converted on the PC, so the driver itself has to know how to handle them at runtime ... and everything that the driver has to keep track of and decide at runtime adds extra processing cycles and memory usage for code.  ](*,)


The question is ... what do both musicians and developers really want (and everything is NOT an acceptible answer)?

It is *much* easier (for me) to make all of these timing decisions on the PC, when the tune is converted.

Michirin9801

#65
Quote from: elmer on 01/11/2017, 05:02 PMNow, since you mentioned "Note Cut" ... can you tell me if it acts as a non-row-aligned Note OFF, or if it actually fades out the note over the time of the "Note Cut" length parameter?  :-k
It's a non-row-aligned Note OFF trigger, nothing more, but there is a fade out effect which is the 0Axx effect, but it's rubbish and I never use it, if I want to fade out a note I manually lower the volume of the channel in the volume column...
Using the Note Cut effect I can give the bass a little more punch by cutting it off on the very tick right before the next note on every note, it makes baselines on the PCE sound noticeably better ;3
I also use the Note Cut effect on various other instances like when I want to play the same note again in the lead or the harmonic support and make it more noticeable or more punch-y depending on what I want to do... It's a VERY useful effect ^^

Quote from: elmer on 01/11/2017, 05:02 PMI took that long walk, and have come up with a decent solution to the problem, but it still uses up a few more cycles of CPU time than I really like ... and that irks me.  :(


The root-cause of the problem is really one of whether you decide on exactly how many 1/60s increments every row & note takes when you actually convert the .dmf file on your PC, or whether you leave that until you are actually running on the PCE.

You've arrived here in the middle of a longer-running argument/debate ... and that's the question of how to practically achieve both different, and differing tempos in songs.

I think that we pretty much all agree (now) that songs can have different tempos from each other, or within a tune, just by changing how many 1/60s increments a 1/4 note lasts ... basically, in the case of Deflemask, by setting those row speed values when you create your tune.

The question then becomes ... how do you achieve differing tempos, i.e. a tempo that keeps on speeding up as the tune keeps on playing?

There are 2 ways to make that happen ...


One way is to actually make your tune speed up in Deflemask, just by copying patterns and changing the row speeds.

You end up with a longer tune in Deflemask that way, potentially *much* longer, but at least it is the musician that has complete control of when/how the tune speeds up.


The other way is to avoid using row-speed-effects in the tune at all, and give the game programmer some way to change those row-speed values inside the game, especially when the player does something ... like actually land a blow on the boss monster.

That's probably going to both sound and feel the best for the player ... but it's a bit of a PITA for the driver guy, because the exact timings of things like your Note Delay and Note Cut cannot be determined when the .dmf file is converted on the PC, so the driver itself has to know how to handle them at runtime ... and everything that the driver has to keep track of and decide at runtime adds extra processing cycles and memory usage for code.  ](*,)


The question is ... what do both musicians and developers really want (and everything is NOT an acceptible answer)?

It is *much* easier (for me) to make all of these timing decisions on the PC, when the tune is converted.
Umm... Now that you put it like that...
You know, I've only once needed to make a song that goes faster after a while, but it only increased its tempo once so just one extra pattern was enough to carry the effect over to the whole rest of the song, so I personally think that having the different tempos is what really is more important, but in the cases where the composer/programmer/team wants to have a song that has differing tempos, which I believe to be very specific, then maybe give them the option to ignore the row speed effects and let the programmer handle the song's tempo (I mean, if they really want the song to get faster or slower dynamically they might as well)

Of course this is just my own narrow perspective, maybe a ton of people do want differing tempos and I just don't see that? Well I know I pretty much don't need them, but I do need the different tempos...

DildoKKKobold

Quote from: Gredler on 01/11/2017, 01:21 PM
Quote from: DildoKKKobold on 01/10/2017, 05:11 PMSo, where is this at?
DK I gotta request you to improve your bedside manner :P
Hah, I was trying to get things back on topic, rather than the endless MML debate that seemed to flood this thread. And yeah, I'm a bit rough around the edges.
AvatarDildoKKKobold.jpg
For a good time, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

Arkhan Asylum

Quote from: Gredler on 01/11/2017, 01:21 PMTo be honest, I would think it'd be great to see a homebrew with a third pillar in terms of sound style. I played Atlantian last night and that squirrel sound is so distinct to me now, it reminds me of how unique the various studio's games sounded, and made me hopeful that in a world with Squirrel Aetherbyte, and CD Henshin, it would be rad to have a Deflemaskedasstrophy :P
Well, Squirrel only sounds like that because I'm basically the only one using it.  That's not Squirrel sound, that's just how stuff I write tends to sound, lol.

Other musicians will get different results.
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

Gredler

Quote from: guest on 01/11/2017, 07:20 PMWell, Squirrel only sounds like that because I'm basically the only one using it.  That's not Squirrel sound, that's just how stuff I write tends to sound, lol.

Other musicians will get different results.
Oh I don't doubt it. Cabbage has made some stuff for us that sound different than what you make, I was more referring that if we had to beg you to do music for us then it would sound similar to Atlantean

Michirin9801

Quote from: guest on 01/11/2017, 07:20 PM
Quote from: Gredler on 01/11/2017, 01:21 PMTo be honest, I would think it'd be great to see a homebrew with a third pillar in terms of sound style. I played Atlantian last night and that squirrel sound is so distinct to me now, it reminds me of how unique the various studio's games sounded, and made me hopeful that in a world with Squirrel Aetherbutt, and CD Henshin, it would be rad to have a Deflemaskedasstrophy :P
Well, Squirrel only sounds like that because I'm basically the only one using it.  That's not Squirrel sound, that's just how stuff I write tends to sound, lol.

Other musicians will get different results.
I'd also say that about Deflemask's PCE users, each one has pretty much their own style, some people make PCE music that just uses the system as an "NES on-steroids" (Which honestly, I disapprove) Others have a style closer to early Hudson but with samples, others can really take advantage of what the system can sound like, but with no regard for sound effects so a noticeable chunk of the song would have to be cut off to play SFX if used in a real game, as for me, I tend to cover a lot of Japanese Computer FM songs so I borrow my style a lot from them with my instruments, but I'm also always trying to get all the reverb that I can out of the system because SNES fan...
One thing that I really like to do, is whenever there's a repeating note progression (which happens a lot in the songs I like) or just one channel playing a new note on every other row, I can manage some single-channel delay/reverb by filling in the empty rows with whichever note came 3 rows before, but at a lower volume and panned slightly... To do that of course I have to constantly adjust the panning and the volume of the channel being used for that, but it works wonders and I free up a channel to do reverb on another instrument ;3
Do any other Deflemask users do that? I haven't seen a single one, the same way that there are things that they do that I don't... (Like use triangles, Half Pulses and Quarter Pulses, I only use those waveforms when absolutely needed)

Arkhan Asylum

Quote from: Gredler on 01/11/2017, 07:37 PM
Quote from: Psycho Arkhan on 01/11/2017, 07:20 PMWell, Squirrel only sounds like that because I'm basically the only one using it.  That's not Squirrel sound, that's just how stuff I write tends to sound, lol.

Other musicians will get different results.
Oh I don't doubt it. Cabbage has made some stuff for us that sound different than what you make, I was more referring that if we had to beg you to do music for us then it would sound similar to Atlantean
Nah, I could switch it up and make it sound retarded to fit your game.

I mean this in a good way, lol.

Your game has like, a cat vacuum.    PCE chiptune thrash metalesque stuff doesn't really go well.

It needs something more dorky.   If you do need music, let me know.   I have to do Barbarian for Duderdudes, too.   I might get to the title of that tonight for them.

This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

Gredler

#71
Quote from: guest on 01/12/2017, 09:28 AMNah, I could switch it up and make it sound retarded to fit your game.

I mean this in a good way, lol.
My brother and I used to volunteer coach floor hockey at the Special Olympics, and the hockey helmets back then from the 90's looked like megaman's catastrophy's helmet, so maybe there is a subconscious homage to those days - but retarded is kinda a harsh word I would say lol. It was a lot of fun and very rewarding; we would play in a mini tournament where the coaching staff of each team from around the country would play against each other - and it was fun and fast paced. After the tournaments the kids would ask for autographs and assumed we were professionals, it was very cute and heartwarming. Maybe we can do a Special Olympics fundraiser using catastrophy somehow some day :)

Quote from: guest on 01/12/2017, 09:28 AMYour game has like, a cat vacuum.    PCE chiptune thrash metalesque stuff doesn't really go well.

It needs something more dorky.
If you think jazz is dorky then you're right :) Something more jazzy than metal

As much as I enjoy thrash metal, and if I were to ever make a game design myself it would either be hip-hop or metal themed / scored.

 I agree that it's not the fit for catastrophy and DK's already put the kibosh on that idea, as my first squirrel attempts were metal bass and drum lines, and the only song we have now is the one I made which is a very basic hip hop drum line my ignorant ass thinks :P

We will want to try to do Jazz standard songs if we don't have someone who wants to compose for the game; to give you an idea of what we had in mind would be something like SingSing:
("8 bit" vesion came up in earch,
I tried to do Sweet Georgia Brown in squirrel using royalty free midis, and it was turning out like hot garbage before I gave up :P

Arkhan Asylum

I can try to do something for you.   lol.

Jazz isn't my thing though really. 
This "max-level forum psycho" (:lol:) destroyed TWO PC Engine groups in rage: one by Aaron Lambert on Facebook "Because Chris 'Shadowland' Runyon!," then the other by Aaron Nanto "Because Le NightWolve!" Him and PCE Aarons don't have a good track record together... Both times he blamed the Aarons in a "Look-what-you-made-us-do?!" manner, never himself nor his deranged, destructive, toxic turbo troll gang!

elmer

Quote from: Michirin9801 on 01/11/2017, 05:42 PM
Quote from: elmer on 01/11/2017, 05:02 PMNow, since you mentioned "Note Cut" ... can you tell me if it acts as a non-row-aligned Note OFF, or if it actually fades out the note over the time of the "Note Cut" length parameter?  :-k
It's a non-row-aligned Note OFF trigger, nothing more, but there is a fade out effect which is the 0Axx effect, but it's rubbish and I never use it, if I want to fade out a note I manually lower the volume of the channel in the volume column...
Thanks!  :)

Yep, that's easy-enough to implement.

BTW ... the "issue", such-as-it-is (*was*, actually, since I figured-out how to do it semi-efficiently), is what to do if the Note Delay or Note Cut time is longer than the row speed.  :-k

Sure ... that *shouldn't* ever happen, but it *could*, especially if the game is speeding-up the tempo ... and so the driver needs to have code written to handle the possibility.

The deflemask manual states that both effects will be "ignored" if that happens ... but then doesn't state what "ignored" will actually sound like.  #-o

I've chosen to implement "Note Delay" so that if the delay is longer than the row speed, then the note will get triggered at the end of the row (and possibly be *immediately* overwritten, in the same update, by a note on the next row).

For the "Note Cut", I have the option of either triggering the "OFF" at the end of the row, or just leaving it to continue counting-down, or even just "ignoring" the Note Cut and throwing it away.

I don't know which choice would sound "best" to a musician.


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

The next question that I have is about those "Fixed Arpeggio" macros, that allow you to enter a note value of 0..99.

What is a "0" note in that macro? Is it deflemask's C#0?

What note value is 440Hz A (A3 in deflemask)?

BTW ... it's a bit annoying that Deflemask says that the PCE is limited to C#0..B6 and then allows you to enter higher octave values than that.  ](*,)

The PCE allows 4 notes lower than that, and a whole octave higher, too, but with a probably-unacceptable error drift on a couple of the note frequencies at the high end (i.e. the higher octave isn't worth it).


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

Quick update ... the converted .dmf data (including waveforms and instruments, but NOT samples) is now being spit out as a source file for the PCEAS assembler, and I'm working on rewriting bits of the huzak driver itself to handle the new data.  :D

Michirin9801

Quote from: elmer on 01/14/2017, 12:25 AMFor the "Note Cut", I have the option of either triggering the "OFF" at the end of the row, or just leaving it to continue counting-down, or even just "ignoring" the Note Cut and throwing it away.

I don't know which choice would sound "best" to a musician.
I'd say do the former, if the musician put the note off effect in there, it's because they want that note to be cut, and would probably miss the note cut if it wasn't there...

Quote from: elmer on 01/14/2017, 12:25 AMThe next question that I have is about those "Fixed Arpeggio" macros, that allow you to enter a note value of 0..99.

What is a "0" note in that macro? Is it deflemask's C#0?

What note value is 440Hz A (A3 in deflemask)?
I just went and checked, both the "0" and "1" notes in the fixed arpeggio are the same note: C#0.
A-3 is note 45.

Quote from: elmer on 01/14/2017, 12:25 AMBTW ... it's a bit annoying that Deflemask says that the PCE is limited to C#0..B6 and then allows you to enter higher octave values than that.  ](*,)

The PCE allows 4 notes lower than that, and a whole octave higher, too, but with a probably-unacceptable error drift on a couple of the note frequencies at the high end (i.e. the higher octave isn't worth it).
Considering how dead the Deflemask forum is at the moment, I doubt asking about it will do anything... He's yet to even answer to the suggestions I've made aeons ago...

Quote from: elmer on 01/14/2017, 12:25 AMQuick update ... the converted .dmf data (including waveforms and instruments, but NOT samples) is now being spit out as a source file for the PCEAS assembler, and I'm working on rewriting bits of the huzak driver itself to handle the new data.  :D
Hooray~!!
Oh, don't worry about samples right now, first get the thing up and running! I can't wait to hear the results ^^

elmer

Quote from: Michirin9801 on 01/14/2017, 12:50 AMOh, don't worry about samples right now, first get the thing up and running! I can't wait to hear the results
Getting there!

May I just take the opportunity to say that Deflemask's .hes export if full of totally-redundant register writes! Arrggghhh!!!  #-o


Anyway here's the current work-in-progress HuCard image ...

http://www.dropbox.com/s/rikzc643iafmpkr/Huzak1stWIP.pce?dl=0


I think that it shows that there's been at least a little progress.  :-k

Michirin9801

Quote from: elmer on 01/17/2017, 07:26 PM
Quote from: Michirin9801 on 01/14/2017, 12:50 AMOh, don't worry about samples right now, first get the thing up and running! I can't wait to hear the results
Getting there!

May I just take the opportunity to say that Deflemask's .hes export if full of totally-redundant register writes! Arrggghhh!!!  #-o


Anyway here's the current work-in-progress HuCard image ...

http://www.dropbox.com/s/rikzc643iafmpkr/Huzak1stWIP.pce?dl=0


I think that it shows that there's been at least a little progress.  :-k
Hooray~!!
This is great! I'm so glad to be able to hear my cover being used on a proper Rom ^^
The only thing that's missing from what I can hear is the note slide effect (03xx) and other than that, the only issue is that the Noise mode is noticeably louder in here than it is in Deflemask, but the same thing happens in Deflemask's own .hes exports so I'm sure this is a Deflemask problem and not a Huzak problem...

Great job mate! Keep it up ^^

ccovell

Sounds great!

Will your final ROMs/binaries be in a format that can be easily INCBINed and JSRed to from inside of a demo? :)

elmer

Quote from: Michirin9801 on 01/17/2017, 08:30 PMGreat job mate! Keep it up ^^
Thanks!   :D


QuoteThe only thing that's missing from what I can hear is the note slide effect (03xx) and other than that, the only issue is that the Noise mode is noticeably louder in here than it is in Deflemask, but the same thing happens in Deflemask's own .hes exports so I'm sure this is a Deflemask problem and not a Huzak problem...
Yep ... the Portamento Effects ($01xx, $02xx & $03xx) are the next things to implement.  :wink:

Misty Blue uses both "Portamento Down" and "Porta to Note".

The difference between the drums in Deflemask and Huzak was driving me nuts ... and then I checked the .hes and found that I was writing exactly the same values to the PSG registers.

I've been using Mednafen for long enough now that I completely trust its emulation ... so I *suspect* that it's a problem with the Ootake emulator that Delek is using inside Deflemask.

I've seen that the problem has been talked about on the Deflemask forums for a while now.

I might try putting in some code to decrease the volume when the noise is enabled.

That would be *nasty* ... but it might be good-enough for a while until a proper fix can be found, or until we find out that something else is causing the problem.


Quote from: ccovell on 01/17/2017, 08:35 PMWill your final ROMs/binaries be in a format that can be easily INCBINed and JSRed to from inside of a demo? :)
I'd kinda rather not output the song data as a binary, if I can avoid it.  :-k

The whole idea is to have a toolchain that *developers* can use.

The PCE ROM is just a testbed that I hope to keep improving on so that a musician can hear how things will sound in the game.

The driver itself is completely separate.

There are just a simple functions to hook into your game's own handlers, effectively just ...

KillAllSound()
PlayTune()/KillTune()
PlaySfx()

UpdateAt60Hz()


The converter spits out a source file with some predefined table names that the driver is looking for.

Here's the page on the Deflemask forum where you can download Michirin9801's original .dmf file ...

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


And here's the converted output for the Misty Blue track ...

http://www.dropbox.com/s/d7l8j7wdceaaof6/MistyBlueOpening.s?dl=0


As a programmer, you'll see that the structure is pretty simple.

The only real complexity is in the encoding of the pattern data, and that's a simple bytestream with the following coding ...

; Huzak Notes ($00..$57)
;
; Note equates (PC Engine, 440Hz = A4).
;
; HK_CMD_C4 = MIDI note #60 for A440 tuning.
;
; Deflemask displays notes 1 octave lower (440Hz = A3).

HK_CMD_A0 .equ $00 ; T (+0) 0x00..0x57
..
HK_CMD_C1 .equ $03
..
HK_CMD_C8 .equ $57

; Huzak Commands (with data parameter, if needed)

HK_CMD_END .equ $58 ; . (+0) End-of-Pattern
HK_CMD_PAG .equ $59 ; . (+0) Span a 256-byte page offset
HK_CMD_BRK .equ $5A ; . (+0) Pattern Break
HK_CMD_JMP .equ $5B ; . (+1) Set next Matrix Row
HK_CMD_SP0 .equ $5C ; . (+1) Set Even Row Speed
HK_CMD_SP0_TIE .equ $5D ; T (+1) Set Even Row Speed + TIE
HK_CMD_SP1 .equ $5E ; . (+1) Set Odd Row Speed
HK_CMD_SP1_TIE .equ $5F ; T (+1) Set Odd Row Speed + TIE

HK_CMD_PSG .equ $60 ; . (+0) Sample Mode Off
HK_CMD_PCM .equ $61 ; . (+0) Sample Mode On
HK_CMD_NZ0 .equ $62 ; . (+0) Noise Mode Off
HK_CMD_NZ1 .equ $63 ; . (+0) Noise Mode On

HK_CMD_BNK .equ $64 ; . (+1) Select Sample Bank
HK_CMD_INS .equ $65 ; . (+1) Select Instrument
HK_CMD_TIE .equ $66 ; T (+0) Note Tie
HK_CMD_OFF .equ $67 ; T (+0) Note Off

HK_CMD_CDT .equ $68 ; . (+1) Channel Detune
HK_CMD_DEL .equ $69 ; T (+1) Note Delay
HK_CMD_CUT .equ $6A ; . (+1) Note Cut
HK_CMD_CUT_TIE .equ $6B ; T (+1) Note Cut + TIE

HK_CMD_PAN .equ $6C ; . (+1) Set Panning
HK_CMD_PAN_TIE .equ $6D ; T (+1) Set Panning + TIE
HK_CMD_PFF .equ $6E ; . (+0) Set Panning to $FF
HK_CMD_PEE .equ $6F ; . (+0) Set Panning to $EE

HK_CMD_GLI .equ $70 ; . (+1) Volume Slide/Glide
HK_CMD_GLI_VIB .equ $71 ; . (+1) Volume Slide/Glide + Vibrato

HK_CMD_VIB .equ $72 ; . (+1) Vibrato
HK_CMD_PUP .equ $73 ; . (+1) Portamento Up
HK_CMD_PDN .equ $74 ; . (+1) Portamento Down
HK_CMD_PTN .equ $75 ; . (+1) Portamento to Note

; Huzak Commands (with embedded data value)
;
; LEN & WAV both use an embedded value of 0 to signal that the
; true value is in the next byte.

HK_CMD_LEN .equ $80 ; . (+V) $80..$9F Event length (in rows)
HK_CMD_VOL .equ $A0 ; . (+0) $A0..$BF Channel Volume
HK_CMD_WAV .equ $C0 ; . (+V) $C0..$FF Select Wavetable

Michirin9801

Quote from: elmer on 01/17/2017, 10:37 PM
Quote from: Michirin9801 on 01/17/2017, 08:30 PMGreat job mate! Keep it up ^^
Thanks!   :D
No problem ^^

Quote from: elmer on 01/17/2017, 10:37 PMAnd here's the converted output for the Misty Blue track ...

http://www.dropbox.com/s/d7l8j7wdceaaof6/MistyBlueOpening.s?dl=0
That link was for an outdated version, but I've just updated it with the current version so no worries now ^^

Also, I appreciate your solution for the noise mode's volume, but I've also been taking it into account in the songs I've been making lately! I'm currently covering the Asuka 120% Burning Fest soundtrack on the PCE, all of them with the noise volume in mind...
But still, I'm not the only one who's gonna be making songs for this driver, and the others might not know about the noise volume issue, so I do encourage you to implement this change, at least while the issue persists, as for me, it's all a matter of cranking the volume of the noise mode back up in the DMFs, so no biggy... Keep it up! ^^

DildoKKKobold

Quote from: elmer on 01/17/2017, 10:37 PM
Quote from: ccovell on 01/17/2017, 08:35 PMWill your final ROMs/binaries be in a format that can be easily INCBINed and JSRed to from inside of a demo? :)
I'd kinda rather not output the song data as a binary, if I can avoid it.  :-k

The whole idea is to have a toolchain that *developers* can use.
Hey elmer, I'm having a real hard time following this. (Hell, I've been lost since this whole music issue came to light, so nothing new. :D ) How would you see someone include a delfmask song, or a 5bit sample in their code, if its not an 'include' statement?
AvatarDildoKKKobold.jpg
For a good time, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

elmer

Quote from: guest on 01/18/2017, 12:06 AMHow would you see someone include a delfmask song, or a 5bit sample in their code, if its not an 'include' statement?
You'd do an assembly-language-source ".include", rather than a ".incbin" or a HuC "#incbin".

It's more like a HuC "#include", but for assembly-language source.

Wrapping it all up into something that you guys can use on Catastrophy may well require moving to some binary format so that you can switch which banks hold the tune and sound-effects data for each level.

I suspect that the current data format (without banking) is going to be limited to 2 or 3 tunes (there is maximum of 255 "patterns").

elmer

Quote from: Michirin9801 on 01/17/2017, 11:53 PMThat link was for an outdated version, but I've just updated it with the current version so no worries now ^^

Also, I appreciate your solution for the noise mode's volume, but I've also been taking it into account in the songs I've been making lately! I'm currently covering the Asuka 120% Burning Fest soundtrack on the PCE, all of them with the noise volume in mind...
Thanks for the updated version ... I love it!  :D

If I'm not misreading things, you actually moved a whole bunch of stuff around between channels ... or perhaps I'm just having another "senior moment".  :-k

I really appreciate that you're trying to compensate for the difference, but I really, really, really hope that we can come up with a better solution so that "what you hear is what you get".

I hope that Delek will fix the volume issue, or just start using Mednafen as the base for the PCE emulation, and so there won't be a need for a nasty hack in the future ... sometime.  [-o&lt;

In the meantime, here's the latest version of huzak, with all of the Portamento effects implemented ($01xx, $02xx, $03xx, $E1xy, $E2xy).

I've also implemented the hack to change the volume on any channels that are in "noise" mode, and have included a bunch of different HuCard ROMs with different settings.

Michirin9801: Can you please try these different ROMs and let me know what the proper volume-reduction is?

I've included 5 versions of Misty Blue, with reductions ranging from -1 to -5.

I *think* that the correct setting is either -2 or -3, but I don't trust my ears enough to make the call myself ... so I'm going to have to rely on your superior knowledge of your own track.  :wink:


At this point, once we've got that "correction" sorted-out, I'm *thinking* that "Misty Blue" is playing correctly in Huzak. If anyone can hear a problem ... I'd love to know.

I'm not sure what to tackle next. Probably the volume-slides, since that should be fairly easy.

The big problems are going to be with the Vibrato and Detune effects, because those are going to be horrible to reverse-engineer, and it would make much more sense to just ask Delek what he's doing ... except that he's currently awol from the Deflemask forums.

Anyway, here is the current set of ROMs, they sound pretty good to me ...

http://www.dropbox.com/s/vlj2ktwdhom34n6/huzak2ndWIP.zip?dl=0

DildoKKKobold

Quote from: elmer on 01/18/2017, 12:44 PM
Quote from: DildoKKKobold on 01/18/2017, 12:06 AMHow would you see someone include a delfmask song, or a 5bit sample in their code, if its not an 'include' statement?
You'd do an assembly-language-source ".include", rather than a ".incbin" or a HuC "#incbin".

It's more like a HuC "#include", but for assembly-language source.

Wrapping it all up into something that you guys can use on Catastrophy may well require moving to some binary format so that you can switch which banks hold the tune and sound-effects data for each level.

I suspect that the current data format (without banking) is going to be limited to 2 or 3 tunes (there is maximum of 255 "patterns").
This sounds super complicated. Also, would it be possible to have one bank have all the sound effects?
AvatarDildoKKKobold.jpg
For a good time, email: kylethomson@gmail.com
Dildos provided free of charge, no need to bring your own! :lol:
DoxPhile .com / chat
IMG

Michirin9801

The -2 version sounds about right, the only inaccuracy I can spot from what I've put in Deflemask is on channel 4 when the song loops, the thing is that Deflemask automatically cuts off notes when it loops back to the beginning of the song (I don't recall if it happens when it loops with the 0Bxx effect though, it probably does), but in the rom the note that was still playing on channel 4 when the song loops keeps on playing instead of being cut off...
Why does it only happen on channel 4 you ask? Because all the other channels have notes playing immediately as the song starts/loops, I'm sure the same thing would happen in more channels if they didn't have notes right at the start... One way to fix that one my end would be to just put a note off in the beginning of the song in channel 4, but I can already imagine how you're gonna feel about that...
Otherwise, it's great! Just like how I remember it on Deflemask ^^
Great job!

Quote from: elmer on 01/21/2017, 09:36 PMIf I'm not misreading things, you actually moved a whole bunch of stuff around between channels ... or perhaps I'm just having another "senior moment".  :-k
The version I had sent you before through my sta.sh was the updated version already >w>
But the version that was still there on the Deflemask forum was old, the most notable change I did was replace one of the wavetables with a new one, but I forgot what else I did in the update... Still it's better and more accurate to the original than the old version which you can still hear in my youtube channel...

elmer

Quote from: Michirin9801 on 01/21/2017, 10:30 PMThe -2 version sounds about right, the only inaccuracy I can spot from what I've put in Deflemask is on channel 4 when the song loops, the thing is that Deflemask automatically cuts off notes when it loops back to the beginning of the song (I don't recall if it happens when it loops with the 0Bxx effect though, it probably does), but in the rom the note that was still playing on channel 4 when the song loops keeps on playing instead of being cut off...
OK, thanks!  :D

I'll use the -2 setting from now on, until we can get a better fix.

Nice catch on hearing the problem with the looping!  :wink:

Actually, it prompted me to finally implement the Pattern Break and Position Jump effects properly, so it was a good time to find that problem.


QuoteWhy does it only happen on channel 4 you ask? Because all the other channels have notes playing immediately as the song starts/loops, I'm sure the same thing would happen in more channels if they didn't have notes right at the start... One way to fix that one my end would be to just put a note off in the beginning of the song in channel 4, but I can already imagine how you're gonna feel about that...
Well, I've tested what DefleMask does, and I think that I've replicated it, now.

From what I can see, it cuts off notes when you do a Position Jump backwards, but it keeps on playing them if you do a Position Jump forwards, or do a Pattern Break.

I would have thought that you'd actually want to keep the notes playing, even when you loop around ... I can easily imagine that a musician might make use of that.

It's always easy to put a Note Off on a channel at the start of a loop if you want it to stop.

A Note Off is a cheap and easy to do, so I'd rather allow the musician to be able to take advantage of keeping notes playing across the loop-point, if that's what they want.

But ... it doesn't really matter what I think, it's more important to make it behave the same.


***********

Anyway, here's another build with the channel cutting off properly now, and, just-for-laughs, I've also tried to implement the appropriate PC-8801 look to the screen.

The PC-8801 font looks like it's 10-pixels high instead of 8, which we can't do without an expensive bitmap, so I've had to reuse the current font (with a few changes).

So it doesn't really look like the PC-8801, it's more "inspired-by".

Then I added a drop-shadowed version, too, because I firmly believe that drop-shadows make everything better!  :lol:

After some serious squeezing, it's all packed down into an 8KB ROM, but this is probably the last time that I'll try to do that, because it was a severe PITA.


http://www.dropbox.com/s/l3lt0s4ko40c93g/MistyBlueHuzak.zip?dl=0

Go ahead and share this one, if you like; I'm going to post a link to it on the DefleMask forum later on.  :wink:

Michirin9801

#86
Quote from: elmer on 01/23/2017, 09:35 PMI would have thought that you'd actually want to keep the notes playing, even when you loop around ... I can easily imagine that a musician might make use of that.

It's always easy to put a Note Off on a channel at the start of a loop if you want it to stop.
Here's the thing, we certainly would want that, it would make it a lot easier to optimise the song to use less patterns, you have no idea how many times I had to repeat patterns upon patterns in order to have the songs sound the way I want it to sound, or make a new instrument that was just the note still playing, but Deflemask just cuts off the notes when you jump backwards in the song and doesn't care whether you wanted the note to keep playing or not...

Quote from: elmer on 01/23/2017, 09:35 PMAnyway, here's another build with the channel cutting off properly now, and, just-for-laughs, I've also tried to implement the appropriate PC-8801 look to the screen.

The PC-8801 font looks like it's 10-pixels high instead of 8, which we can't do without an expensive bitmap, so I've had to reuse the current font (with a few changes).

So it doesn't really look like the PC-8801, it's more "inspired-by".
Yaaay~ Now it looks a lot more fitting ^^
Oh and, don't worry about that! Yeah it's not an exact replica, but it's plenty close enough!
I also really like the drop-shadow version, great job! ;3

I can no longer spot any inaccuracies with this, it's spot-on with what I've put in Deflemask!
If you can, I'd love to hear you try out these songs with Huzak:
Super Adventure Island 2 - Poka Poka Island:
http://sta.sh/0a46xfxbn2z

Thunder Force IV - Fighting Back:
http://sta.sh/01l3peenzmer

Dragon's Curse - Sidecrawler's Dance:
http://sta.sh/016eybd647y4

None of them has any samples!

elmer

Quote from: Michirin9801 on 01/24/2017, 11:42 AMIf you can, I'd love to hear you try out these songs with Huzak:
Definitely! But they're all going to need me to implement some of the "missing" effects.

Super Adventure Island 2 - Poka Poka Island:

  Ch2 Mtx05 vibrato $0464 by itself, this effect is used LOTS!

  Detune $E588 on Octave 2 notes G
  Detune $E588 on Octave 3 notes D E
  Detune $E590 on Octave 3 notes F

  Mtx 32 Pattern Break in Ch1 and note later in Ch5


Thunder Force IV - Fighting Back:

  Detune $E590 on Octave 4 notes F C G

  Ch2 Mtx25 vibrato $0464 by itself.


Dragon's Curse - Sidecrawler's Dance:

  Detune $E588 on Octave 2 notes A B E F# G#
  Detune $E588 on Octave 3 notes C# D E

  Pattern Break, again.


Now, the Pattern Breaks should already be working, and I've noted them just to remind my to check on that, but the Detune and Vibrato effects are the exact ones that I've mentioned before that I need information from Delek in order to implement.  ](*,)


Well, I've done some digging, and some looking at .hes files, and have found the original ProTracker source code online, and that has given me a good idea of how Delek is processing those effects in DefleMask.

The most-important thing is that I can see now how he's implemented the Vibrato sine-wave, and what its "speed" parameter means.

So I have a decent chance of implementing those effects now, even without Delek's help, but it will take a little time, and it is definitely going to take up some extra memory.

I'm can't see any way around needing to have a fast-multiply available in order to get those effect running, and that means that I'm going to need to include another 2KB of tables to do that quickly-and-efficiently.

Then there's a question of the "Vibrato" effect itself.

Can you tell me how it is *supposed* to work?

From the documentation, it looks like setting Vibrato Depth of "F" should give you a one semitone range for the effect, +/- 1/2 semitone from the original note.

As it is, it looks like there is a bug in Delek's math, because what is actually spit out in the .hes file is + 0.5 semitones, but - 1.5 semitones.

Even worse, it's not a pure sinewave, but the +ve part of the cycle takes the same amount of time as the 3-times-greater -ve part of the cycle, creating a very strange-sounding result.  #-o

Is that intentional, or is it just a bug?  :-k

Gredler

I just wanted to pop in and thank you for doing all this hard work Elmer, and Michirin9801 thank you for providing him with such useful examples, awesome work everyone!

Looking forward to hearing more!

Michirin9801

Quote from: elmer on 01/26/2017, 06:49 PMThen there's a question of the "Vibrato" effect itself.

Can you tell me how it is *supposed* to work?

From the documentation, it looks like setting Vibrato Depth of "F" should give you a one semitone range for the effect, +/- 1/2 semitone from the original note.

As it is, it looks like there is a bug in Delek's math, because what is actually spit out in the .hes file is + 0.5 semitones, but - 1.5 semitones.

Even worse, it's not a pure sinewave, but the +ve part of the cycle takes the same amount of time as the 3-times-greater -ve part of the cycle, creating a very strange-sounding result.  #-o

Is that intentional, or is it just a bug?  :-k
Now you caught me off-guard, I'm unsure on how 'exactly' it's supposed to work, but from what I can hear on the tracker itself, setting it to 04xF really has a difference of 1 semitone both upwards and downwards, but it seems to linger on the higher pitch of the vibrato effect a little longer than it does on the lower pitch, but maybe I'm mishearing things...
I tried exporting a .hes file with just a note playing in vibrato on a single channel but it doesn't want to work with Mednafen, and well, if it doesn't work with Mednafen, it won't work with anything because Mednafen runs Deflemask's .hes exports better than anything else I've ever tried using...

Quote from: Gredler on 01/26/2017, 07:12 PMI just wanted to pop in and thank you for doing all this hard work Elmer, and Michirin9801 thank you for providing him with such useful examples, awesome work everyone!

Looking forward to hearing more!
Oh no problem! In fact, I'm just as excited about this ^^

elmer

#90
Quote from: Michirin9801 on 01/24/2017, 11:42 AMHere's the thing, we certainly would want that, it would make it a lot easier to optimise the song to use less patterns ...
OK, we'll have to see if Delek can be persuded to change that behavior in a future version, then.

Using less patterns would be a big benefit!  :)


Quote from: guest on 01/21/2017, 10:21 PM
Quote from: elmer on 01/18/2017, 12:44 PMYou'd do an assembly-language-source ".include", rather than a ".incbin" or a HuC "#incbin".
...
I suspect that the current data format (without banking) is going to be limited to 2 or 3 tunes (there is maximum of 255 "patterns").
This sounds super complicated. Also, would it be possible to have one bank have all the sound effects?
I'm sure that it can all be wrapped up into something that's reasonably-easy to use.  :wink:

And "yes", it is fairly easy to have separate banks for music/effects if I move to a "binary" format for the music data.

That format would just put all of the tables that point to the interesting bits of the music data in constant locations in a bank. It will waste some space, but allow more flexibility.

It's probably more useful for a HuCard game than a CD game.


Quote from: Gredler on 01/26/2017, 07:12 PMI just wanted to pop in and thank you for doing all this hard work Elmer, and Michirin9801 thank you for providing him with such useful examples, awesome work everyone!
You're welcome!

It's really good to hear all of this PCE music that's being created these days. I love it!  :dance:


Quote from: Michirin9801 on 01/26/2017, 07:41 PMNow you caught me off-guard, I'm unsure on how 'exactly' it's supposed to work, but from what I can hear on the tracker itself, setting it to 04xF really has a difference of 1 semitone both upwards and downwards, but it seems to linger on the higher pitch of the vibrato effect a little longer than it does on the lower pitch, but maybe I'm mishearing things...
Just so that we're on the same-page with the language ...

http://en.wikipedia.org/wiki/Vibrato
http://en.wikipedia.org/wiki/Finger_vibrato

And this has a good picture of "depth" vs "speed" ...

http://www.listening-singing-teacher.com/Vibrato.html


Finally, this link from Wikipedia, is a good example of a simple sine-wave vibrato ...It's a very "regular" and, to-my-ears, "pleasing" sound.


Here is my DefleMask test, which is your Misty Blue, with the 1st Matrix Row changed to have empty patterns everywhere except for one test-channel ...

http://www.dropbox.com/s/s98ax5vk1o75xca/vibrato-test.dmf?dl=0

Playing that in DefleMask gives what I'd describe as a wah-wah sound.

It seems audibly less "regular" than the example from Wikipedia.

It's a C1 note, with an $041F effect (speed 1, depth 15).

That's a Vibrato Speed of 1/64th cycle per 1/60s -> 64/60s -> 1.07s-per-cycle, and a Vibrato Depth of, according to the docs, "Maximum depth is a full note.".

OK, if I choose to read "note" as "tone" instead, then we're talking about a range of +/- 1 semitone.

+1 ... -1 = 2 semitones = 1 tone.


Now, looking at the data that's output in the .hes file, the original "period" (not frequency) is $06ae.
And with the vibrato, the period varies between $0673 and $073C.

Here's a quick table of the period values that surround C1 ...

C1# $064F
C1  $06AE
B0  $0714
A0# $0780


Looking at that, you can see that the frequency varies between - 1.5 semitones and + 0.5 semitones.

But looking at the timing data as well shows that the pattern of the vibrato is like this ...

-----
|   |
|   |
    |   |
    |   |
    |   |
    |   |
    |   |
    |   |
    -----


... instead of ...

-----
|   |
|   |
|   |
|   |
    |   |
    |   |
    |   |
    |   |
    -----


Which is why it *sounds* different, to my ear.

BUT, and it's a huge "but", there is nothing "wrong" in absolute terms in having that unbalanced vibrato waveform.

AFAIK it is a valid, if very unusual, choice.

I'm trying to figure out if it's a deliberate "choice", or just a math-error in Delek's implementation.  :-k

Michirin9801

Quote from: elmer on 01/27/2017, 03:01 AMAFAIK it is a valid, if very unusual, choice.

I'm trying to figure out if it's a deliberate "choice", or just a math-error in Delek's implementation.  :-k
Which is one of the many reasons why you need contact with him...
Either way, I think you should try to implement it the way he does, at least for now, so that it's more accurate to what it sounds like on Deflemask...

elmer

Quote from: Michirin9801 on 01/27/2017, 12:52 PMEither way, I think you should try to implement it the way he does, at least for now, so that it's more accurate to what it sounds like on Deflemask...
Unfortunately, I believe that you're right.

Which means that now I've got to figure out a reasonably-efficient way to recreate the imbalance.  #-o

Michirin9801

Quote from: elmer on 01/28/2017, 05:20 PM
Quote from: Michirin9801 on 01/27/2017, 12:52 PMEither way, I think you should try to implement it the way he does, at least for now, so that it's more accurate to what it sounds like on Deflemask...
Unfortunately, I believe that you're right.

Which means that now I've got to figure out a reasonably-efficient way to recreate the imbalance.  #-o
Or maybe not? To be honest, I don't think it would be such a big deal to implement it the most CPU-efficient way possible... I mean, yeah it would sound slightly different, but I wouldn't mind the difference, and maybe some other people would find that it sounds better that way? Maybe?
The way I use the sine vibrato isn't because I want the note to play those very specific frequencies, I don't really care what frequencies it plays, I use it in a subtle manner because I want long notes not to be flat you know, and sometimes I also do it to make the channel stand out a little, without necessarily worrying about how far up and down in pitch they go or how long do they take to go up and down in pitch...

elmer

#94
OK, sorry for the delay!  :roll:

It's been a bit of a battle to get DefleMask's Vibrato and Detune effects implemented, and doing so has bloated up the size of the driver because I've needed to allocate 2KB for the fast-multiply tables.

I've split the ROMs into 3 banks (for a 24KB ROM) ...

1) Startup code & Font (approx 1700 bytes)
2) Huzak & Tables-of-Squares (approx 4900 bytes)
3) Music Data (varies, the largest is approx 7KB)

Anyway, adding those effects opens-up a whole bunch of tunes that couldn't play correctly before, so here's 5-at-once ...

Fighting Back - Thunder Force IV
Poka-Poka Island - Super Adventure Island 2
Pressure - Flame Zapper Kotsujin
Sidecrawler's Dance - Wonder Boy III
Stage 1 - Sega's Quartet

http://www.dropbox.com/s/qpx9iognjg27l80/Huzak3rdWIP.zip?dl=0


Michirin9801 ... could you please listen to these and let me know if you hear any problems???

My ears are a bit too weary to be really discerning after listening to the driver mess up or crash so many times.

I *think* that these are right now, but I may be missing something.

<edit>

Yeah ... I need a 2nd-opinion, but I think that I may need to look at the drum roll at the end of Poka Poka Island ... it doesn't sound quite right.  :-k

Michirin9801

Quote from: elmer on 02/05/2017, 09:30 PMOK, sorry for the delay!  :roll:

It's been a bit of a battle to get DefleMask's Vibrato and Detune effects implemented, and doing so has bloated up the size of the driver because I've needed to allocate 2KB for the fast-multiply tables.

I've split the ROMs into 3 banks (for a 24KB ROM) ...

1) Startup code & Font (approx 1700 bytes)
2) Huzak & Tables-of-Squares (approx 4900 bytes)
3) Music Data (varies, the largest is approx 7KB)

Anyway, adding those effects opens-up a whole bunch of tunes that couldn't play correctly before, so here's 5-at-once ...

Fighting Back - Thunder Force IV
Poka-Poka Island - Super Adventure Island 2
Pressure - Flame Zapper Kotsujin
Sidecrawler's Dance - Wonder Boy III
Stage 1 - Sega's Quartet

http://www.dropbox.com/s/qpx9iognjg27l80/Huzak3rdWIP.zip?dl=0


Michirin9801 ... could you please listen to these and let me know if you hear any problems???

My ears are a bit too weary to be really discerning after listening to the driver mess up or crash so many times.

I *think* that these are right now, but I may be missing something.

<edit>

Yeah ... I need a 2nd-opinion, but I think that I may need to look at the drum roll at the end of Poka Poka Island ... it doesn't sound quite right.  :-k
Oh don't worry about that ^^
Taking your time to make something means that said something will most likely be well polished!
But it sure is sounding like a lot of optimization needs to be made to Deflemask considering the amount of data these songs are eating up >w>

About the songs:
- Sidecrawler's Dance sounds A-OK
- Fighting Back sounds almost A-OK, just one very tiny part in the 2nd half of the song has a little problem, when that note that does the portamento up and goes really high-pitched, it should have a little bit of vibrato at the very end, but the vibrato seems to be missing, or isn't strong enough, but otherwise it's spot-on...
- Quartet sounds a little weird, the detuning has gone a bit too far up in spots, particularly when the song loops, also, you're using a bit of an outdated version of the .dmf, I don't remember if I sent you the newest version but this sounds like the version I've posted on the Deflemask forum, most of what I've posted there is outdated >w>
Here's my current version of it: http://sta.sh/01k7o5ak0iz8 (It has a better intro than what was posted on Youtube)
- Pressure is too fast and the snare drums sound weird, that should be fixed when I can make Huzak-specific drums...
You should be able to get it with the correct tempo with this DMF: http://sta.sh/01jfb21ayfx5
- 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, but other than that the only real issue is that I'm using wave-phasing for one of the instruments playing in the end of the song, so there's a little bit of popping, but I can live with it, it's barely noticeable...

elmer

Quote from: Michirin9801 on 02/05/2017, 11:33 PMBut it sure is sounding like a lot of optimization needs to be made to Deflemask considering the amount of data these songs are eating up >w>
Yep, they're coming out bigger than I expected, but that's because you're doing a *lot* of stuff in them.  =D&gt;

With all of the panning changes that you've got going on, even if the track were redone in MML/Squirrel, it would probably still be large.

Removing some of the redundancy inside each of the patterns themselves would help a bit, and I could try to do that ... but I don't really think that we have a problem.  :-k

The music data is still smaller than one tiny sample, and we're nowhere near as tightly constrained on memory as developers were back in the original System Card 1 days.

Some of your tracks are downright frugal ... it's just the ones that add all of the extra ear-candy that folks like to hear, and that makes them *feel* like complex tracks.

Note that something like the Xanadu PSG tracks are very sparse in comparison, and they'd probably be tiny in either MML or DefleMask.

**********

QuoteAbout the songs:
- Sidecrawler's Dance sounds A-OK
Excellent!  :D

Quote- Fighting Back sounds almost A-OK, just one very tiny part in the 2nd half of the song has a little problem, when that note that does the portamento up and goes really high-pitched, it should have a little bit of vibrato at the very end, but the vibrato seems to be missing, or isn't strong enough, but otherwise it's spot-on...
Could you please let me know what matrix row and channel that's on, and I'll investigate.

Quote- Pressure is too fast and the snare drums sound weird, that should be fixed when I can make Huzak-specific drums...
You should be able to get it with the correct tempo with this DMF: http://sta.sh/01jfb21ayfx5
- 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, but other than that the only real issue is that I'm using wave-phasing for one of the instruments playing in the end of the song, so there's a little bit of popping, but I can live with it, it's barely noticeable...
I'll take a look at these next, but first ...

Quote- Quartet sounds a little weird, the detuning has gone a bit too far up in spots, particularly when the song loops, also, you're using a bit of an outdated version of the .dmf, I don't remember if I sent you the newest version but this sounds like the version I've posted on the Deflemask forum, most of what I've posted there is outdated >w>
Here's my current version of it: http://sta.sh/01k7o5ak0iz8 (It has a better intro than what was posted on Youtube)
OK, I've used you new .dmf, and there's one small problem.

The new intro uses Porta-To-Note with really high speed values ... much higher than I've seen in any other DefleMask track.  #-o

I've got a limit  of +/- 127 on the speed in order to use simpler (faster) math, and so my converter refuses to handle the track as it is written.

I changed the speed values to stay within range, and it messes up the sound of the intro, but at least I could keep on looking for the problem.

Can you live with that +/- 127 range? Perhaps Arp Macros could be used for that 1/5s "thump"???


Anyway, I reworked the math on the detune, and now it's a lot more accurate.

The particular notes that you're talking about at the loop point are a bit troublesome.

You've got a couple of high notes in there which have steps of 7 and 8 "period" values to the next semi-tone.

You're using a detune of that's basically 1/16th of a semi-tone.

Now my old math was a bit hokey, but the new math turns those into 7/16th of a step, and 8/16th of a step.

That (now) gets rounded to detune values of 0 and 1 steps.

That math seems right now, but it may not be what you're expecting to hear.

I don't know if Delek forces a minimum value of "1" whenever the math rounds to "0".

Anyway, take a listen, and let me know what you think ...

http://www.dropbox.com/s/ls96xar85eb0uha/Huzak3rdWIP2ndTry-QuartetStage1.pce?dl=0


Thanks!

Michirin9801

Quote from: elmer on 02/06/2017, 11:31 PM
Quote- Fighting Back sounds almost A-OK, just one very tiny part in the 2nd half of the song has a little problem, when that note that does the portamento up and goes really high-pitched, it should have a little bit of vibrato at the very end, but the vibrato seems to be missing, or isn't strong enough, but otherwise it's spot-on...
Could you please let me know what matrix row and channel that's on, and I'll investigate.
Matrix row 25, channel 2

Quote from: elmer on 02/06/2017, 11:31 PM
Quote- Quartet sounds a little weird, the detuning has gone a bit too far up in spots, particularly when the song loops, also, you're using a bit of an outdated version of the .dmf, I don't remember if I sent you the newest version but this sounds like the version I've posted on the Deflemask forum, most of what I've posted there is outdated >w>
Here's my current version of it: http://sta.sh/01k7o5ak0iz8 (It has a better intro than what was posted on Youtube)
OK, I've used you new .dmf, and there's one small problem.

The new intro uses Porta-To-Note with really high speed values ... much higher than I've seen in any other DefleMask track.  #-o

I've got a limit  of +/- 127 on the speed in order to use simpler (faster) math, and so my converter refuses to handle the track as it is written.

I changed the speed values to stay within range, and it messes up the sound of the intro, but at least I could keep on looking for the problem.

Can you live with that +/- 127 range? Perhaps Arp Macros could be used for that 1/5s "thump"???


Anyway, I reworked the math on the detune, and now it's a lot more accurate.

The particular notes that you're talking about at the loop point are a bit troublesome.

You've got a couple of high notes in there which have steps of 7 and 8 "period" values to the next semi-tone.

You're using a detune of that's basically 1/16th of a semi-tone.

Now my old math was a bit hokey, but the new math turns those into 7/16th of a step, and 8/16th of a step.

That (now) gets rounded to detune values of 0 and 1 steps.

That math seems right now, but it may not be what you're expecting to hear.

I don't know if Delek forces a minimum value of "1" whenever the math rounds to "0".

Anyway, take a listen, and let me know what you think ...

http://www.dropbox.com/s/ls96xar85eb0uha/Huzak3rdWIP2ndTry-QuartetStage1.pce?dl=0


Thanks!
I've listened to it and now it sounds pretty much A-OK, it's not 100% accurate, but it's about 98.01% accurate which is totally acceptable, if anything it no longer sounds weird so that's great!
As for the intro, It's just a matter of me reworking it, and I have an idea of how to do it... Just don't expect me to do it too soon because I don't feel like doing it right now >w>

Quote from: elmer on 02/06/2017, 11:31 PMNote that something like the Xanadu PSG tracks are very sparse in comparison, and they'd probably be tiny in either MML or DefleMask.
And yet they still sound better than anything I can put out =w=';
But that has more to do with music theory than actually pushing the limits of the soundchip, I'm just a self-taught amateur who loves detuned reverb...

elmer

Quote from: Michirin9801 on 02/07/2017, 01:44 PMMatrix row 25, channel 2
Thanks, I'll take a look!


QuoteI've listened to it and now it sounds pretty much A-OK, it's not 100% accurate, but it's about 98.01% accurate which is totally acceptable, if anything it no longer sounds weird so that's great!
As for the intro, It's just a matter of me reworking it, and I have an idea of how to do it... Just don't expect me to do it too soon because I don't feel like doing it right now >w>
I'm glad that it sounds OK now, but I'd like to get as-close-as-possible-within-reason.

I've posted on the DefleMask forum asking Delek for the exact math that he's using, and if he responds, we'll see if it is implementable.

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.

Michirin9801

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 ^^

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