Jump to content

VinsCool

Members
  • Posts

    1,260
  • Joined

  • Days Won

    2

Posts posted by VinsCool

  1. 8 hours ago, rdefabri said:

    Thanks!  One more dumb question - is there a way to play the instrument sound while you are editing it?  For some reason, I thought there was, but I can't seem to find out how to do it.

    Hold the SHIFT key while editing the instrument and press any of the Note keys within the active keyboard layout.

    This won't work for the Instrument Name area, or any part where you can edit text using the keyboard, since they will take priority over anything else in order to type uppercase characters with the SHIFT key being held down.

    • Like 1
  2. On 10/11/2023 at 8:00 AM, rdefabri said:

    @VinsCool I'm sure this has been asked before, but is there any support in RMT for sampled instruments, or something like voice / phonemes (a la S.A.M.)?

     

    Nope, closest to samples would be from exploiting the Volume Only mode bit in audio channels.

     

    Technically speaking, this could be done, but how or when to implement this would be a different story.

  3. On 10/5/2023 at 8:43 AM, rdefabri said:

    Another dumb question.  Both @makary and Analmux were able to get a cool electric guitar sound in RMT.  I took a look at Makary's "Sear Me" in RMT, and in version 1.34, it doesn't sound the same as the final version.  I believe this is because Makary has his own version that allows some additional tweaks.

     

    Is there another way to create a similar sound using RMT 1.34?  I realize it may require combining voices, but it would be great to figure out how to do something close to it.

     

    A combination of custom tuning tables and few ASM patches were needed for each of them, yeah.

    1.34 attempted to include as many "vanilla" functionalities as possible with a lot more tables, which considerably bloated the driver, while the other ones simply replaced existing tables with new ones, making versions specific for each ones of them if they were used for making modules.

    So to add them on top of the standard tables is obviously possible, in fact the very broken GIT commits were specifically made to add support for a lot more things from the get go.

    When this would get functional is another question I fear giving false hope, so I don't know.

     

    23 hours ago, rdefabri said:

    On another note - is there a way to jump from a line in the middle of a song block to a new song block?

     

    Example - I have reached a point in a song where I need to repeat, but the way the song is, it doesn't line up perfectly with a new song block.  I have some extra lines in the block that are empty, I want to jump past them to the next block.  Any way to do that?

     

    Not sure if I understand the question.

     

    Using the Goto Line XX commands in the Songline Block on the top right would do what you need.

    If you need to insert a jump between 2 lines, you could use CTRL+I to create an empty line, and create a jump with CTRL+G on the newly created line.

     

    If you meant in pattern, you may use a END line command with CTRL+Enter on the row you want to set as the last one to play.

     

    If you meant like using Dxx and Bxx commands like Protracker, that would have to wait until I finish implementing the actual effect command system, which is also something I could not give ETA about, because everything is broken, and I have not touched anything since July due to real life things mostly.

     

    5 hours ago, Steril707 said:

    Btw, what happened to Rensoupp? has he left?

     

    No idea, probably busy with real life/work too from what I remember.

    • Like 1
  4. 1 hour ago, popmilo said:

    Yeah, that's been my "holly text" last couple weeks when I was experimenting with lzss play :)

    Think I understand how it works, so will try to make my own fx chunks.
    Guess I can put 1 fx in one channel of rmt song, export each as separate file and then just use overwrite in some way.
    Thanks !

     

    Yup that is exactly how I ripped the Bunny Hop sound effect instruments to raw registers bytes, then I just picked 1 channel to play them.

    Technically any channel could be overwritten this way, with some modifications applied to the hackjob code I created for that purpose.

    Only AUDCTL would not be overwritten however, so there may be few undesirable outcome in some cases.

    Each sound effect is a pair of 2 bytes per frame, AUDF then AUDC, the terminator byte would be a $00 for the last AUDC byte played, which is perfect for this purpose since it would be unpleasant to sustain the last sound forever after if no music is also playing in parallel.

    • Thanks 1
  5. On 10/22/2017 at 2:27 PM, Irgendwer said:

     

    Shared this disk in the 80s. Fandal uploaded it 2013: http://a8.fandal.cz/detail.php?files_id=6829

     

     

    I guess it's more or less "written by hand". You find on the disk other very good creations by "Jan Mahn":

     

     

     

    Just stop execution with the BREAK-key to examine BASIC play back routine...

    I really like the timbres playing in this one.

    Going to take a wild guess and say it was produced using the Poly9 mode of Distortion 8 at 1.79mhz?

  6. 7 hours ago, rdefabri said:

    I've tried to do this - I saved instruments (*.rmi) files, but when I loaded them to my new song, they were blank.  They were assigned the proper instrument number from the song I saved them from, but there was no data in those address areas after loading.

     

    Any idea how to correct this?

     

    Be sure that the instrument you wanted to save was the one currently active/edited in RMT before saving it to a file, and same for loading it back elsewhere, make sure the instrument you want to overwrite is the one that is currently active, then load the instrument file to replace it with the one saved previously.

    For example, if the instrument 02 is the one you are currently using in the source module, make sure to have it active, save as new file, and then load the file in the other module by making sure you are replacing the instrument you want to use, let's say, 05 if it's an empty slot, then you simply make instrument 05 active and you will be able to use/edit as much as you want.

    • Like 1
  7. On 9/23/2023 at 2:23 PM, popmilo said:

    @VinsCool thank you for all the awesome work you're doing for atari !

     

    New lzss based playing of rmt songs is greatest thing ever imho :)

    I've learned about it from your examples and managed to play songs in my recent projects without any headache which is a big improvement from earlier mess of rmt export asm, bin data etc... :)

     

    One thing remains that bugs me... How to export instruments (fx) from rmt to be played on separate channel ?
    Is there a way to do it similar to what you did in bunny hop if I'm not mistaken ?

     

    Cheers!
     

     

     

     

     

     

    Thanks!

    I agree, there is many advantages using this format, but I wish it wouldn't be so complicated to reduce the memory usage still, this is something I have tried to work around some time ago with a side project using a much different compression format, but unfortunately I did get stuck so it's not quite worth using right now.

     

    Anyway, to answer your question, I did not really have a proper way to play sound effects either, so what was done was actually just run the music driver first, and overwrite channels with sound effects using dedicated routines to produce sound effects.

    Not very efficient but that did get the job done at least.

    I am not sure how exactly it was done in Bunny Hop, but I did make up my own attempt around the same time, and used it in my game DUMB PONG as a proof of concept, it was later used in Mytris by PPS, using the same code I previously made up, borrowing the Bunny Hop sound effects in the process.

     

    You can find an example of the "overwriting" hack here if you are interested, but I want to make it clear this is very poorly coded, made in a whim just to get "something" to work.

  8. On 9/23/2023 at 6:42 AM, Heaven/TQA said:

    what RMT version we need to use best?

     

    I would like to be cynical and say not the one I have been working on, but 1.34 would be the "best" right now, despite the fact that many improvements came into the codebase later, only to be broken even more because I hastily tried to change too many things at once, gotta learn the hard way I suppose!

     

    On 9/25/2023 at 6:41 PM, ivop said:

    It would be nice if @VinsCool did a binary release. git HEAD currently seems broken. It does not build.

     

    Edit: x86 (Debug) seems to build. The other configurations do not. Type errors and pre-compiled headers stuff. I don't see an easy way to git bisect it with Visual Studio so I leave it to VinsCool to fix ;)

     

    Edit2: found it. Fixed builds https://github.com/ivop/RASTER-Music-Tracker/ which will probably soon be merged with VinsCool's master branch.

     

    Thanks for the fix, I honestly had no idea it would not compile, because it did work last time I touched anything related to RMT (back in July).

    I'm currently trying to gather the motivation to amend myself and go back to working on the project, and repair all the things I failed to implement properly, so I appreciate any help given!

     

    On 9/27/2023 at 10:40 PM, EnderDude said:

    First cover I've done in a while :)
    Made in rmt 1.34, besides the lack of vibrato on the lead, this song from the "exciting" gameboy game fits pretty well on the POKEY :D
    Fun fact: the original made use of both channel hard panning and master soft panning on the Gameboy, which the latter usually isn't emulated

    spot.rmt 3.29 kB · 4 downloads

     

    Very nice, thanks for sharing the module!

  9. On 10/1/2023 at 12:15 PM, makary said:

    Doing this demo soundtrack years ago I wanted to see to what extend the pulse width / 'filter' / sweeps can be controlled. I got some results but I think @VinsCool has found more interesting ideas and results regarding these 'filter' mysteries.

     

     

     

    This is the song that actually made me understand what was going on with the filter a few years ago, actually!

    I have been doing now is more or less exactly the same tricks but with additional tweaks learned some time later.

     

    This is the very first song I could say for sure used "absolute" control over the pulses, and this is the exact same tricks I have used in the much later Sketch 86 module.

     

    On 10/3/2023 at 1:30 AM, makary said:

    This so-called POKEY 'filter' works like this I believe:

     

     

    image.thumb.png.adc857d32951b15d9151820788038740.png

    Each edge from voice 1 inverts the signal. Each edge from voice 2 sends it low. As you can imagine trying to control this and use musically is pain in the neck ;) 

     

    This is pretty much the same conclusion I have come to, I still have not fully understood how this stuff works but experimenting with the "Filterchord" sounds really made it even more fun.

    The generated waveforms are a lot more stable when the intervals are Just right, the more consonant the better.

    Here's an example of the Filter usage where it produced a "Voice Choir" tone using a Major 10th interval, combined to the regular PWM filter played with the "absolute" manipulations from earlier.

     

    I really could go on and on with more examples with the experimentation, but I think we can agree that there is a lot more going on with the filter when you find your ways around using it to produce impossible sounds :D 

    It's so much fun, but also so much work to get things to sounds good, haha!

    • Like 1
  10. The filter was applied at strategic timing, with different frequencies offset to produce that "sweeping effect", which was effectively resetting the channel phases to a known initial position, in order to cancel each others with slight phase offset to allow the filter to create a pulse width modulation effect.

     

    Here it was reset with a clock 64khz to improve the pulse width precision, the mode switch was getting masked every beat with the kick drums.

     

    Further in the video I was experimenting with various combinations in order to create stable pulse width modulation, which was pretty convincing if you consider that it's difficult to make things sound stable in the first place.

    • Like 4
    • Thanks 1
  11. Update: I experienced another crash.

    This time it happened immediately when I tried to open the same source file, which was previously opened in the same program instance just a moment earlier.

    The only thing I did differently was to close the Debugger, before re-opening it to test some stuff in my program, and trying to load the assembly sources immediately borked the process.

     

    AltirraCrash.mdmp

  12. Hello, I have some bug report from the most recent version.

    Based on the previous post I've made in the thread regarding assembly sources path, I'm getting very similar results, but this time it ends in a program crash.

     

    As far as I could tell, it behaves the same as I previously described, which was to open the File Browser despite having the files listed already.

    This time however, when I press the Cancel button from the File Browser, and try to select the same file, it would throw this error message:

    image.thumb.png.6601878bac3d4e920181db03c8e8d8ac.png

     

    I can dismiss it without any problem, so that's interesting.

    Trying to open the file for the third time will then lead to an unavoidable program crash:

     

    image.png.c9a7fb57b14e1af5610388caf8c7a320.png

     

    I suspect that it tried to use the NULL path directly, based on the error code itself.

    I am aware that I am a WINE user here, so this is again very likely to be a quirk exclusive to it.

    Attached below is the crash dump file generated for reference.

     

    AltirraCrash.mdmp

     

    [EDIT] Just to make it clear: If I used the File Browser as intended to open the files, it would be working perfectly fine as soon as the first file was loaded to the debugger.

    I've had similar issued with other programs before, so I am not too worried about it.

  13. I understand, I don't want to give you any pressure for this, I was just curious about it could work.

    I don't really have anything that important to require quick return to loader functionalities anyway :) 

  14. Out of curiosity, is there a way to support a "return to loader" functionality in programs where it is back to the AVGCart interface, ideally in the last folder visited, highlighting the .xex file that was returned from?

    I apologise if this was already explained somewhere, I simply don't remember if this was possible.

     

    I was wondering because attempting to "return to DOS" either booted the Test Screen, or crashed my machine.

  15. Another question related to the one I asked a few days ago.

    I noticed an interesting behaviour happening each time I open the emulator for a new session.

     

    Here's how to replicate what I experienced:

     

    - Start a new instance of Altirra

    - Load a binary file (which has the assembly listing saved next to it ideally)

    - Press F8 to start the debugger

    - Select the option 'Open file list...'

     

    From there, it would open the window with the source files listed in the assembly sources like usual:

     

    image.png.4060d38203702bc689cced4a6f92eecf.png

     

    However, it would then try to also use the file browser to make me chose that file again, despite having it already listed selected:

     

    image.png.2442058877c0222fda35a2dada525465.png

     

    If I press Cancel to close that window, then select the file I want to open once again, it will this time be opened without further involving the file browser:

     

    image.png.ff0d55069c2a0d61abee25ead1aaeba8.png

     

    This seems to only happen for the first time I try to use the option, opening additional files will then be done without having to pick them up manually.

    Did anyone else notice something similar, or is that just another WINE quirk happening here?

     

    I used the Altirra 4.20 Test18 version when I first noticed this earlier, updating to Test20 made no difference.

    Note that this is really minor, it only happens once and stays that way for as long as the emulator is running.

  16. This is perfectly normal; The program ran like intended, there were no graphic initialisation or anything that would display text on screen, so the code ran "silently" in the background.

    The address of `sm_ptr` was also not initialised, so you most likely wrote a byte to ($88),y [$0000], effectively doing nothing at all.

    • Like 1
  17. Thank you very much!

    I really should RTFM before asking something next time haha 😹

     

    [Edit] This is perfect, it works exactly as I was hoping, memdumps will be incredibly valuable for more complex stuff later :D 

     

    image.thumb.png.ec6fdd9bf0bdec0bd765219255ac5230.png

  18. Question, is it possible to dump the Atari RAM to a file during emulation, say at a breakpoint?

    I am working on a decompressor algorithm routine for a dumb project, and having the ability to compare data side by side would be really helpful right now.

    If this is not possible, it's not a big deal, I can still manage using the memory viewer itself for side by side comparisons if I need to verify the decoded data integrity.

     

    Thank you, and have a great day :D 

×
×
  • Create New...