Jump to content
IGNORED

RMT2LZSS: convert RMT tunes to LZSS for fast playback!


rensoup

Recommended Posts

Nice new version rensoup!

Finally found some time today to test it out a bit, 1.6 works pretty well!
Automatic emulator launch works perfectly, even in WINE, "Convert Again" also works as expected.
Looks like the VU Meter is still a little glitchy during the 240hz tune, but it's not as bad this time, playback also seems a bit more stable?

Not sure if I'm imagining things, but it felt like it was stuttering last time I tried to run the tune, so that's a good improvement to me :D 

Custom tables still seem to load like intended.
I have not tried the custom instruments feature yet, but I'll make sure to report my results when I do :) 

 

 

  • Like 1
Link to comment
Share on other sites

18 minutes ago, VinsCool said:


Custom tables still seem to load like intended.
I have not tried the custom instruments feature yet, but I'll make sure to report my results when I do :) 

 

 

The custom table works well. 

I don't change the tune. It's the old tunes just saved with your custom table. Works really nice. 

 

 

Link to comment
Share on other sites

Really impressive what can happen , if people understand their part :)

 

A last (old one, just saved using the custom able) one: 

 

 

 

 

Altirra is good enough to resemble 95% of pokey (just some small timing and volume mixing  issues)

LZSS allows to handle things by it's great stability.

And now, it is possible to skip the PAL quirk in the notation table.

 

Thanks, Phaeron, rensoup, and VinsCool.

Now we have some real base to work on. 

 

 

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

10 hours ago, emkay said:

hmmmm...

Edited some years ago in standard RMT1.28

Saved in LZSS 1.6 with custom table. No other changes.

 

Nice sounds!

10 hours ago, Heaven/TQA said:

Ok… I am not worthy and don’t understand any bit here… ;) but as long it gets better POKEY tunes I am a happy bunny ;) 

same here ?

  • Like 1
  • Haha 1
Link to comment
Share on other sites

4 hours ago, VinsCool said:

Nice new version rensoup!

Finally found some time today to test it out a bit, 1.6 works pretty well!
Automatic emulator launch works perfectly, even in WINE, "Convert Again" also works as expected.
Looks like the VU Meter is still a little glitchy during the 240hz tune, but it's not as bad this time, playback also seems a bit more stable?

Not sure if I'm imagining things, but it felt like it was stuttering last time I tried to run the tune, so that's a good improvement to me :D 

Custom tables still seem to load like intended.
I have not tried the custom instruments feature yet, but I'll make sure to report my results when I do :) 

 

 

I didn't fix that VUmeter glitch ?

I should have been clearer in the release notes, I tried fixing the 16bit issue where I needed to drop the low frequency byte from being displayed, of course I have no idea if I dropped the right one! But if your tune uses 16bit it could be that it displays less bars now, so there would be enough CPU time.

I probably never did any NTSC specific adjustments either, and I guess your tune would glitch at 200hz as well... who cares ?

 

Please let me know about the custom instruments, then I can get started on the Envelope AUDCTL !

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, rensoup said:

I should have been clearer in the release notes, I tried fixing the 16bit issue where I needed to drop the low frequency byte from being displayed, of course I have no idea if I dropped the right one! But if your tune uses 16bit it could be that it displays less bars now, so there would be enough CPU time.

Ah that makes sense, the visual probably looked better from displaying less things at once, and so had less chances to glitch as a side effect, still good to me :D 

Link to comment
Share on other sites

1 hour ago, rensoup said:

@VinsCool I decided to implement that envelope AUDCTL in v1.61 ?

(Available from the usual spot)

 

I have no idea if it works at all, I tried my best to verify the code so hopefully you've got the key to that parallel Pokey universe!

Awesome! i will try to use it sometime soon and make sure to post my results :)
For now I will focusing on that Loading cover later tonight :D 

  • Thanks 1
Link to comment
Share on other sites

Any idea to solve this?

 

The patched table works fine. 

But particular the portamento stops at the wrong pitch (Possibly the original tone).

You can hear it every time when a frequency slide happens, at the end of the slide. The "resulting arpeggio" should be a single tone

 

 

Edited by emkay
Link to comment
Share on other sites

order of operations or something else, if the slide tone continues to original tone, damp the sound like on bells, piano, vibraphone, stopping the pure or sympathetic tone. are you saying it's all good and just the remnant at the end is bad? Or the whole of the slide emkay?

Edited by _The Doctor__
  • Like 1
Link to comment
Share on other sites

Okay so while I was making the Loading cover during some of my free time for the last few days (a surprisingly complex one to get working at all... I'll explain in my thread another time),  I decided to finally try using the custom instruments feature today... and I am not having a great time I must say ?

There are a few things I was able to figure out with a lot of trial and error, and here's my observations so far:

- Commented code is NOT ignored. So the example instruments cannot be left in as a reference, regardless of how I tried to not get RMT2LZSS to read them. This is very inconvenient for testing and reference purpose.

I managed to bypass that by literally writing garbage in the lines. lol

What I mean is // won't work as expected.

 

- Distortion values don't seem to match the CustomNotesTables.txt format, so while that one increments by 2, the erti doesn't seem to follow that same pattern, so for example using a value of $08 in the erti will get "outside the 8-bit frequency table" and potentially crash the program.
If it doesn't crash, it will work as expected, that is, pick up the Distortion 8 and the Table associated to it in the CustomNotesTables.txt. I have spent a while scratching my head at this point.
Attempting to use values between the expected ones, for example, 01, 03, 05, 07, 09, 0b, 0d, 0f, etc will all produce garbage, or to be specific, random distortion and tables... I have no idea where they get picked from but they will be consistently the same.
Values starting from 09 and further will give the same error(?) message, but behave the same as above. Using 07 won't trigger the warning. In any case, avoid the values that are not intended to be used!


I have made that observation due to the point above, since I did not understand why the program was yelling at me, until I realised it DOES actually take the tables as expected... But then says the tables past 08 don't actually exist? ?
That being said, I am not sure about what really happens there, the tables after 08 are "out of bounds", despite the fact that entering 0a, 0c and 0e and so on will provide the expected result.
I tried to create an additional distortions, being 10 and 12 since it increments by steps of 2, and did work as expected, but still yelled at me for being out of bounds, lol. I also had to add the values in the note tables mapping, but it works exactly as expected there.
*** TLDR; Distortions and custom distortions DO work, just make sure to increment them by step of 02, and ignore the warnings at 08 and above. Do not use values in-between. ***

 

- Distortion 6 automatic 16-bit mode will be ignored without a custom instrument with the EnvelopeAUDCTL set to produce 16-bit, but I think that is intentional design? That isn't exactly a problem, but it's worth pointing out.
Also important to mention, if the same instrument is used to produce 16 bit, it will attempt to do it regardless of the channel used, so the dual purpose instrument I created won't work as expected. The solution is to make one specifically for the 8-bit tables, and one for the 16-bit table.

Interesting side effect: Channel 1 or 3 won't get muted, so this can be useful for even more interesting combinations. I'm thinking of RMT Patch 8 instruments that used that behaviour, or "reverse 16-bit" stuff, needs to be experimented further...
Other than that, the AUDCTL to switch into 16-bit mode does seem to work... I have not yet fully tested the way 16-bit tables are handled... I assume the same as 8-bit order wise?

- So by the time I started to write this post, I wasn't able to get 16-bit tables to work at all... Only the hardcoded 16-bit Distortion 6 table switch works, anything else will try to use the 8-bit table instead, and the channel 1 or 3 frequencies won't be updated accordingly as a result.

Even with the proper AUDCTL parameter, it won't actually switch to the 16-bit hi and lo tables. It will only output whatever is in the 8-bit table in channel 2 or 4, and output the last used frequency in channel 1 or 3

$50 for channel 1+2 and $28 for channel 3+4 are the settings necessary to get the 16-bit mode, so could there be a check in place to mimic  the Distortion 6 method?
At worst, it's also possible to just create 2 8-bit instruments, one for hi and one for lo, and that would work just as well, I suppose...

 

- Based on the point above, that means I can assume I could make the distortions 00 to 0E exactly as expected by RMT, BUT create new ones from 10 and above, to then use new tables as well, which won't affect anything else in theory.
I only tested 8-bit tables for now, but these do seem to work as expected. it's also important to follow the instrument envelope to get the effects and sounds you want. So if your instrument is 08 steps long, you must make your custom instrument exactly the same.

It seems to also work fine if you have a EGO in your instrument. So again in 08 steps, looping to step 04, the custom instrument parameters will follow that the same way.

This is going to be incredibly useful for future design, without resorting on making several instruments in RMT to achieve the same. Finally I can change the AUDCTL on the fly :D

I need to experiment more with this feature...

 

That's about what I managed to test so far, so here's my test files as a reference:

 

 

CustomNoteTables.txt Distortion and Tables Test3.erti Distortion and Tables Test3.rmt Distortion and Tables Test3.obx

  • Like 1
Link to comment
Share on other sites

2 hours ago, emkay said:

Any idea to solve this?

 

The patched table works fine. 

But particular the portamento stops at the wrong pitch (Possibly the original tone).

You can hear it every time when a frequency slide happens, at the end of the slide. The "resulting arpeggio" should be a single tone

 

 

Sounds like transcription/instrument error to me... .rmt file? table file? I could try help you find what happened.
Did it sound fine in the tracker itself? It's not impossible my notes tables had a mistake somewhere too...

Link to comment
Share on other sites

3 hours ago, VinsCool said:

Okay so while I was making the Loading cover during some of my free time for the last few days (a surprisingly complex one to get working at all... I'll explain in my thread another time),  I decided to finally try using the custom instruments feature today... and I am not having a great time I must say ?

Ok stop punching, new version is up ?

 

  • Thanks 1
Link to comment
Share on other sites

Here is a version (not optimized for standard table by the programmed sounds) 

 

 

 

Check 0:32 to 0:39 ,   0:48 to 0:52 for example.

 

We know now that the LZSS player is more than 95% correct playing in Altirra. 

We see or hear that the patched note table is really good. 

The problems still were the tremendous differences inside the RMT editor and the used emulation. So it is a very complicated task, to bring good results to the real thing. 

The problems with portamente makes things "explode" ;)

 

Well, I'll try to fix the portamento with additional instruments, but a solution for a bug free portamento would be more than nice ;) 

 

Link to comment
Share on other sites

16 hours ago, emkay said:

Well, I'll try to fix the portamento with additional instruments, but a solution for a bug free portamento would be more than nice ;) 

 

Well maybe but for that I'd need to understand the problem...

 

1.Does the problem occur with the original tables ? From your example it seems that's not the case ?

2.have you got a really simple example with a single channel? 

 

Quote

16 hours ago, emkay said:
The problems still were the tremendous differences inside the RMT editor and the used emulation. So it is a very complicated task, to bring good results to the real thing. 

 

Hopefully the "Convert again" and auto emulator launch help with that ?

 

Edited by rensoup
  • Like 2
Link to comment
Share on other sites

5 hours ago, rensoup said:

Hopefully the "Convert again" and auto emulator launch help with that ?

 

Of course it helps a lot. 

It's just that every single change , changes the resulting waveform. 

And now imagine all the steps on a portamento ;)

Seems , it has also to do with the amount of possible steps , that were very limited at 50Hz programming. 

The routine stops somewhere. And, yes, it also stops sometimes on the wrong pitch in the "original" tracker itself. 

The "other" patched trackers had similar problems, btw. It sounds like a fully different note then. 

 

If things were too complicated, forget this. I'm happy enough with the overall functionality of the LZSS tool . 

Link to comment
Share on other sites

If you can share the files it would help a lot. There are some quirks related to portamento and I think I know what is up.

It's caused by the way it is programmed but can be worked around.

 

I am a avid user of portamento after all :D

 

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...