Jump to content

rensoup

Members
  • Content Count

    1,066
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by rensoup


  1. 2 hours ago, emkay said:

    it's not the 1st version of Elysium ;)

    But, a loooooo ....ooot changes...

    it's an honorable attempt!

     

    The 3rd channel seems to be buzzing, especially at the beginning. 

     

    You seem to always use the same drums ?

     

    Also no PWM ??

    • Like 1

  2. 7 hours ago, R0ger said:

    IMHO only reasonable way to do samples or softsynth is WSYNC. MTP does it that way. It's cheap, simple, and can be easily combined with simple screen modes. Not so much with DLI of course.

     

    7 hours ago, ivop said:

    IMHO WSYNC wastes way too much cycles. You only have 114-9 = 105 cycles per scanline. To waste 4 on the STA and several more on the wait time is not economic. AtariSid6 would not have been possible that way. I know MTP is only 7.6kHz. That might help if the player code is interleaved with the sample playing, but that is very specific to this player. AtariSid1 and 2 were done this way, when I still played the SAP-R equivalent of SID, i.e. register dumps. Once you start calling generic 6502 player routines, you have to invert what you would normally do. Now you call the player in the main loop, synced to VCOUNT, and play the (generated or full) samples driven by an interrupt.

     

    Like I mentioned a few times, LZSS can probably be pushed to decode 4 channels at 800hz, that's only 16 updates per frame so a strict sync method may not be required.

    There would probably be very little time to do anything else anyway. At 400hz you'd have about half a frame left. 

     

    I believe I might have already asked but is 400hz enough for interesting bass sound ?


  3. 7 hours ago, ivop said:

    Also, don't forget that if you use true samples, that'll cost a lot of memory. Playing a softsynth in the back (either HARDBass, or something else, like a stripped AtariSid6), uses a lot less memory, because it repeats small waves 256 or 512 bytes. And as Sandor says, those waves can be anything. Not just a sawtooth bass, but can contain thirds and fifths to simulate a chord or organ sound. Think the original "Softsynth" program.

    Yes but we're still dealing with LZSS so far, so samples or softsynth would take the same space (and probably a lot too!) but perhaps a hybrid LZSS/ 1 softsynth channel could be interesting. Though that would be a decent amount of work for a single feature.

     

    Despite its name (Softsynth), I thought the software was purely a sample based soundtracker, the demo disk posted earlier has a bunch of songs which I guessed all used the same sample set. But if it's all generated on the fly, that's even cooler.

     

    One thing I forgot is that for volume mode only, AUDF would not be required and would compress very nicely.


  4. 8 hours ago, Sandor / HARD said:

    The slight modification I did for the RMT playback code will switch HardBASS on/off on channel #4 depending on whether or not any RMT sound is playing on channel #4 and if any RMT instrument is playing on another channel that's using channel #4 as its filter.

    Ah thanks for clarifying... I thought somehow you mixed both regular pokey sound and volume only sound...

     

    8 hours ago, Sandor / HARD said:

    I hope this helps. I wish you a lot of luck and success with your efforts. I hope it plays out very nicely!

    It does, maybe I could be inspired to look more into those cheap analog synths and the tech you use in Reharden, thanks!


  5. 9 hours ago, Irgendwer said:

    A lot of additional libraries need to be installed. That's all.

    Just to clarify, there's no need to install another desktop which would be based on QT ? You could run a QT app inside a GTK env and vice versa ? Is that common ?

     

    (Sorry to be a noob, googling seem to give al sorts of different and outdated answers)


  6. 20 hours ago, MrFish said:

    Yeah, I guess it is. I found that thread earlier today, but didn't think it was the right one; because I had thought he had a dedicated thread for what he was working on.

    Anyway, pretty cool stuff... I've always liked the NES sound chip -- more so than the SID -- even though a lot of the music done on it is rather juvenile.

     

    It deserved its own thread,it's very cool... too bad he never released more updates...


  7. 13 hours ago, Sandor / HARD said:

    My 2 cents about quality vs usability if you don't mind which led to these results:

    • It's a tool made for others to use, therefore it has to work in conjunction with modern demos and games
    • It means it needs to work alognside very tight kernels (think HCM, RastaConverter, or sprite/color kernels in cutting edge games)
    • Consequently, we can't assume IRQs can be running freely across the entire screen
    • Meaning, we can't do variable freq updates - that'd be extremely hard and expensive to manage from tight kernels without IRQs

    Thanks for those explanations... The LZSS player which I'm using to replay RMT tunes has the same kind requirements, except for RC pictures which are a little too intensive.  Right now it's limited to 200hz but should be able to reach 800hz (fixed updates). 

     

    13 hours ago, Sandor / HARD said:
    • Can't occupy more than 1 channel out of the 4, including sound playback and timing (again for compatibility with any random production)
    • Has to be able to share/multiplex its single "occupied" channel with any random tracker/sound engine (same, for maximized compatibility)

    Just wondering what you mean here ? The bass channel is the 4th one in Reharden, right ? does the 4th RMT channel play regular AUDF sound as well as the digi bass?

     

    If I understand correctly, you're generating the bass samples on the fly. Wouldn't it have been easier to just use samples or would it have lowered the quality ?

    • Like 1

  8. 13 hours ago, Irgendwer said:

    QT is surly more powerful, but the license is very strict and if you need one (non free/open use) VERY costly.

    That said, I have no experience with QT in a C# environment  - contrary to GTKSharp, which "just" works.

    wxwidgets is also a quite good portable toolkit (I like it a lot) but I also never used the C# bindings (WX.Net seems to be a "little" outdated...).

    I guess a license wouldn't be required for a tracker though ?

     

    I've recently installed an xfce linux distro which is based on GTK, so I have this dumb question :what would happen if you used a QT app on it ?

     

    13 hours ago, Irgendwer said:

    the main window seems to be drawn directly though...

     

    There's still that dilemna I mentioned in my first post: you can get the GUI/interface from another tracker but then you have to throw away the RMT sound engine and update that tracker to support Pokey, or you keep the RMT sound engine and need to rewrite an interface.

     

    13 hours ago, Irgendwer said:

    (Not sure if it was already mentioned here, but maybe the authors of Deflemask could be "bribed" to support Pokey too....)

    I vaguely remember being told Deflemask wasn't very usable... I have no idea how true that is.


  9. On 4/13/2021 at 9:12 PM, emkay said:

    Actually, I have no idea of "new" conversion. 

    Using the new software, I have an idea of a new challenge.

     

    Someone could suggest a MOD  file , and I try to resemble it to the Atari.

    The only rule is that the MOD file needs to use real notes, not self playing sample rips of other music. 

     

    jester/sanity elysium 

     

    uncle tom/scoopex occ-san-geen

     

    • Like 1

  10. So I slightly tweaked the above version which will hopefully fix the 16bit tables, I have nothing to test so it's up to you @VinsCool 🙂

     

    I planned a bigger change (individual AUDCTL settings per envelope) but it failed so I"m going to stick to what we've got even though it's inconsistent.

    The 1.79mhz mode isn't activated by default when switching to 16 bit but you can do it with the envelope AUDCTL of course.

     

    You can now select which frame to start from when doing the frequency reduction.

     

    1.64 Apr 2021
        -added a switch for frequency reduction start
        -custom note tables are now completely split from RMT 1.28 unpatched
        -added Vinscool's latest custom notetables (V22)
     

    Get it from the first post!

    • Thanks 1

  11. 1 hour ago, _The Doctor__ said:

    Sounds great on real hardware with a decent stereo amplifier and good speakers... what result are you hearing and from what?

    just regular TV speakers... I just tried with basic headphones and it's better actually!

    • Like 2

  12. 38 minutes ago, VinsCool said:

    Ow, sorry to know things broke like this.
    I did indeed use a mix of custom and regular RMT stuff in the tune, because some cases needed it and some didn't ;) 

    alright I took a look... I thought it was a problem with 16bit tables but you aren't using them at all... yeah I guess you mentioned that earlier 😏

     

    But you're using the filter all the time which is supposed to have to be set manually in the new custom code. I'm pretty sure we discussed having each audctl feature as separate table in the .erti file but you liked having all the audctl bits as a single value.

     

    42 minutes ago, VinsCool said:

    I personally like that behaviour, if a custom instrument entry is present: use the custom crafty data in the file, else it simply works exactly like originally coded.
    That works pretty well for me :) 

    Well, you're going to have to make up your mind because otherwise that 's going to cause a lot of headaches 🤪

     

    So can you try setting the filter directly into the envelope audctl for Freeze.rmt ?

     

    I'm putting the new 1.64 version here because I don't know if it's the direction we should take, so give it a shot and let me know...

     

    RMT2LZSS164.zip

    • Thanks 1

  13. On 4/10/2021 at 5:27 AM, emkay said:

    Looks like a discussion loop ;)

    You mean this was already discussed 15 years ago ? Well I just joined the party 😏

     

    On 4/10/2021 at 5:27 AM, emkay said:

    The problem is to handle the correct replay(sampling) speed.

    If you use a POKEY Interrupt, you lose a channel.

    So the question was , if it is possible to have variations of "sampling speeds" from 1 to 800Hz, at 1Hz steps, or at least 8 bit correctness, using software without interrupt handling.

    The best that's realistically possible is 16 updates evenly spaced per frame (so 800hz).

     

    I don't really know what the theory is behind samples in general but from what I understand to play samples on the A8, you go into volume mode only and pokey outputs a single maximum amplitude value which gets modulated by the volume to produce the signal...

    Does that mean that samples are unsigned on the A8 ?

     

    If you were to use the frequency as well as the volume for sample playback, would that be of any use because Pokey outputs square waves only anyway ?

     

    very silly questions probably...

    • Like 1

  14. 5 hours ago, emkay said:

    Simply converting MOD files to 4 channels is even better working. 

    I kept waiting for it getting out of tune, or the drums killing everything else... It didn't happen 

     

    nice 👍

    • Like 1
    • Haha 1

  15. On 4/10/2021 at 11:10 PM, VinsCool said:

    I think it would be a good idea to use the 6th one for both cases, so it will still be the one used by default, as expected, and the 6th slot wouldn't need to be changed since it would have been assigned to Distortion 6 anyway.
    That would then leave every other slots follow the same order, and land on the matching number used in the 8-bit tables.

    I split the code so that RMT unpatched does its usual thing and RMT custom used custom tables in that predictable way you're mentioning but that broke your Freeze version 😕

     

    It seems you're using custom AUDCTL from time to time and the regular RMT code at other times (where it checks for the filter,...)

     

    This is the code for custom tables, this is done for all 4 channel:

     

    if ((m_songRuntime.TrackLine[CH].Envelope.bUseAUDCTL) && ((m_songRuntime.AudCtl & AUDCTL_CH1CH2_LINK) != 0))
    {
      int frqTable16Offset = tabbeganddistor[m_songRuntime.TrackLine[CH].Envelope.distortion] << 1;
    
      byte outNote = m_songRuntime.TrackLine[CH].OutNote;
      m_songRuntime.AudF[ChBaseIdx] = frqtabbasshi[frqTable16Offset + outNote + frqtabbassloOffset];
      m_songRuntime.AudF[ChBaseIdx+1] = frqtabbasshi[frqTable16Offset + outNote];
    }

    which means:

     

    (note is set from 8bit table initially)

     

    if the instrument envelope has AUDCTL set and the channel has 16bit mode set 

       ->override note from the 16bit table assigned to the current distortion and set both AUDF

     

    So that's pretty simple...

     

    On 4/10/2021 at 11:10 PM, VinsCool said:

    Do you think it would be possible to add a certain form of individual instrument check, now that I think of it?


    Something such as:

    "if, and only if, instrumentXX uses AUDCTL bits for 16-bit ($50 for channel 2 output or $28 for channel 4 output), then 16-bit tables get used, else use the 8-bit tables like normal"

     I'm not sure if it's already the case but I'm asking anyway 😛 

     

    So that's what it does above except that it checks all 4 channels, it is unnecessary (should be like you said 2&4 or 1&3) but that way you have full control.

    In the code above It means that AUDCTL 16 bit mode should be set on channel 1 & 3 to work as expected because the 16bit note is set on the current channel (lo byte) and current channel+1 (hi byte)

     

    It seems that in the original RMT code, 16bit mode is set on channel 2 & 4 and the 16bit note is set on the previous channel (lo byte) and the current one (hi byte).

    Perhaps I should just mimick that ?

     

    On 4/10/2021 at 11:10 PM, VinsCool said:

    That could save a lot of potential issues if conflicting settings happen to be used at the same time, for example:

    "1 channel has an instrument at 1.79mhz (or not), and another channel has an instrument using "Join x+x", playing on the same row, they could be using different tables for different purposes, while still "technically" output 16-bit sound"

    basically 16bit mode is checked last so any 8 bit mode stuff is overriden... so that's good right ?

     

    On 4/10/2021 at 11:10 PM, VinsCool said:

    This one case is a bit interesting, because that would make possible certain effects currently disabled in RMT when 16-bit sound (Distortion 6, specifically) is output, such as vibrato or portamento, where one channel handles most of the fine tuning and the other does most of the global note output.
    The downside would be the requirement of 2 different 8-bit tables, but once they (eventually) exist as 16-bit tables, it shouldn't be difficult to copy and paste elsewhere... I was able to prove it is possible to do in some of my test tunes...

    🤔 not sure what you mean...

     

    On 4/10/2021 at 11:10 PM, VinsCool said:

    Does that even make any sense? lol, sorry if not, I'm rambling once more about "what could possibly work", hahahaha 🥴
     I'm still really amazed how well the customnotestables.txt + custominstrument.erti system works so far by the way, you have my respects for making a lot of POKEY music making better 🍻

    Mostly 🙂

    I have no idea what I'm doing... but your tunes sound awesome so I'll just go with the flow 😃

     

    But first we should fix the Freeze tune so that it works with the custom code only, to clear any misunderstanding... I'll be putting up a new version shortly!

     

     

    • Thanks 1

  16. On 4/10/2021 at 5:05 AM, emkay said:

    16 Bit means 16 bit handling on two channels. If 16 bit is used, the frequency of both channels have  to be fixed together, to have the recommended voice stable at 16 bit. 

    This also means that vibrato and portamento have to be build on 16 bit , too.

     And, then , it must be assured to have the 2nd voice still available for volume and chosing the wanted generator. 

    And, well, it seems to be a tremendously crazy task of interweaving, to put something 16 bit to the LZSS converter.

    hmm... that's pretty hazy...  

     

    both channels have  to be fixed together, to have the recommended voice stable at 16 bit.

     

    another way of saying that ?

    • Like 1

  17. 1 hour ago, VinsCool said:

    Using the 6th position would make more sense in my opinion.
    This was why my own comments in the .txt file were a little confused, because I was unsure about the order but at the same time it would have been logical to follow the same order used for 8-bit tables, at least as it is so far, stuff seems to work as expected, hahaha

    I checked the code and hmm there's probably another glitch... 

    if you select RMT upatched, it's all good.

    if you select RMT with Custom tables, the behaviour might change depending on whether you're using custom audctl (dist 6 16bit is the 6th table) or not (dist 6 16 bit is the first table), so the table has to be in 2 places... I think...

     

    Need to fix, but as long as you're using tables other than the 1st one you should be ok... 

    • Like 1

  18. 1 hour ago, ivop said:

    Off the top of my head, notes that extend pattern boundaries.

    oh yeah there's that too but like Vinscool said, it can be worked around... I was thinking compression efficiency:

    every time the compression is restarted, the beginning (of the track/pattern in this case) doesn't compress as well obviously. Plus it may require to change LZSS to compress individual Pokey channels instead of having all of them merged together.

    • Like 1

  19. 10 minutes ago, ivop said:

    I think you mean patterns at the RMT level. If they are within the LZSS back reference window, they are compressed. But with long songs, they could be too far apart. Then indeed, it could be beneficial to compress just each RMT pattern. But then your player needs the RMT song data to know when to play which pattern.

    Ah yes, everybody wants pattern compression and I believe I mentioned its pros and cons in the RMT2LZSS thread... somewhere...

    • Like 1

  20. 51 minutes ago, VinsCool said:

    Probably the fact that the 16-bit tables in the customnotestable.txt are currently placeholder and/or out of tune due to the mismatch, that's something I planned to tackle eventually too :D 

    I'm thinking I should change the original RMT code to use the 6th 16bit table (instead of the 1st one) when using dist 6... so that everything is consistent...

     

    I'm always afraid to make changes though because I have no idea if they're right or not!

    • Like 1

  21. 23 hours ago, rensoup said:

    Some nice bass sounds by @Sandor / HARD . it is compatible with RMT but requires 39 updates per frame so that's 1950hz.

    I listened to Reharden a bit more carefully and the result does not seem that convincing given the amount of work that when into it... 

     

    I was talking to @Wrathchild about samples which aren't just volume mode based but also update the frequency so that it requires less updates per frame... I know very little about sound in general, so I was wondering if that's possible ? Perhaps only for some kinds of sounds ?


  22. 20 hours ago, j1mp4ck said:

     

    That's a 4 channel soundtracker on the megadrive... not sure why they bothered given they had a decent soundchip... I guess they had plenty of free CPU time thanks to the graphics coprocessor...


  23. 22 hours ago, CharlieChaplin said:

    Hmmm, Softsynth is a nice (Basic-like) tracker from Germany. Afaik, you only get good sounds when the screen is switched off or a very low gfx mode is used, otherwise it is very noisy. There is a nice demo, named World of Wonders which contains several Softsynth sounds. Besides, the first sound above from Jakub Husak, named "Schlecht_Korrekt" is The Model/Das Model by Kraftwerk.

    Interesting WoW demo! It says it's from 1990 😮 which is quite impressive considering the first Atari -ST-soundtracker came out around 1989!

     

    I guess the samples are 4 bits and there's no software mixing... 

     

    I thought it was regular Pokey playback at high frequency which would have been interesting. If it is regular sampling it's probably too CPU intensive to have anything on screen (even for a single channel playback)

     

     

×
×
  • Create New...