Music SmpsView - Coming Soon™

Discussion in 'Engineering & Reverse Engineering' started by nineko, Feb 6, 2022.

  1. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    After yet another week of procrastination, I worked on this project again today. And since there is a little more meat on the bone this time, I decided to create a dedicated topic to gather feedback and whatnot.

    I can probably release this soon, unless I start procrastinating again. What do you think, anyway?
     

    Attached Files:

  2. penBorefield

    penBorefield

    In love with buttered toast Member
    27
    1
    3
    Basement
    Making buttered toast
    Well done! Can't wait for it!
     
  3. Ch1pper

    Ch1pper

    Fighting the Battle of Who Could Care Less Member
    722
    36
    28
    Life.
    This looks intriguing. I'll be very interested in trying it out!
     
  4. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy


    Getting there!
     
  5. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    I'm still working out a few bugs before I can release this, but I'm confident I will be able to do so in the next few days (definitely within this month, tops).

    Right now, I'm happy because I added a workaround for a nasty issue with the timings. You wouldn't tell, but my previous video was recorded at a wrong frame rate (and I fixed it in postprocessing) because Windows is mean.

    The following videos, instead, are authentic as far as the frame rate is concerned:



    Now, the audio is still recorded from in_vgm and muxed in afterwards, I'll have to coordinate myself with ValleyBell to make the audio an actual feature of this program.

    On my part, what is left for me to do is to support as many coordination flags as possible, because converted songs are displayed just fine as of now, but stock songs (e.g. Green Hill itself) aren't. Now that the timing issues are fixed I can finally focus on this.

    And I still need more feedback (e.g. am I doing it wrong?), but I thank "penBorefield" and "Ch1pper" for their kind comments.
     
  6. Billy

    Billy

    RIP Oderus Urungus Member
    2,010
    88
    28
    Colorado, USA
    Indie games
    Okay so I'm a boring "normal" software developer who knows more about writing Windows applications and REST APIs than Sonic hacking, so I'm super curious:
    1. Language, libraries, etc.?
    2. Source code? Guessing a big fat no, and that's your right, but please don't give the standard "ugh my code is horrible and isn't up to x standard" excuse. Everyone's code is horrible and hacky. You should see the stuff people get paid to write.
     
  7. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    Hey, thanks for expressing interest into this.
    1. right now it's pure Visual Basic 5, so it's going to require msvbvm50. However, as I said, it's only a silent viewer at this time (the audio in the youtube videos has been muxed in), so I'm nagging ValleyBell seeking integration with his smpsplay. If that happens, I can't predict which libraries it's going to require at that point.
    2. and yet, that's exactly my stance, I'm planning to release the source code in due time, but I want to polish it and comment it a bit, and this too depends on if I can get ValleyBell to integrate his smpsplay into this or not. Have faith, I am going to release something, I just can't predict a timeline, also because I should start a new job on monday, I always pick the worst times to stop procrastinating.
    Now, since thanks to you I dodged a double post in a topic which otherwise was going to be an uninteresting monologue with myself, I guess I might as well take this chance to give you all an update. A few more bugs have been ironed out, my program at last can finally load stock Sonic 1 songs just fine (Star Light Zone used to be problematic because of a mistake I did while adding support for coordination flags). As I said, I consider it almost ready for a release, but I don't want to rush it.
     
    Last edited: Feb 11, 2022
  8. DigitalDuck

    DigitalDuck

    Arriving four years late. Member
    5,114
    259
    63
    Lincs, UK
    TurBoa, S1RL
    It's always fun to go through a library looking for bugs and see "// Surely this can't be correct?"
     
  9. Oh, somewhat of an interesting question for SMPSView: is an FL Studio styled piano roll (or something similar) going to be used as an alternate viewing angle? I've never liked how various chiptune apps have this very specific layout I can't ever get used to. Tho I may have misinterpreted this as a convenient SMPS maker tool rather than looking at the internal workings of the files, but hey, that's just me, right?
     
  10. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    There are two kinds of musicians in this world: those who prefer the horizontal view commonly used in sequencers (the "piano roll" you mentioned), and those who prefer the vertical view commonly used in trackers. Unfortunately for you, I am a tracker guy.

    Once I release the source code it won't be that hard to change things to suit your preferences, though. If you can get an artist on board, you can probably even draw sheet music in real time (grand staff and all) or something.

    I'm still waiting for feedback from ValleyBell about the aforementioned integration I wish to achieve with his smpsplay, but I might release a "silent" version of this viewer over the weekend depending on how I'm going to feel (I had to schedule my third shot for later this evening since I'm going to start a job as a math and science teacher in a high school (yes, another one after I quit the previous one) on monday).
     
    Last edited: Feb 11, 2022
  11. Brainulator

    Brainulator

    Regular garden-variety member Member
    I'm curious: how do you plan to handle different games with different handling methods, coordination flags, etc.?
     
  12. Billy

    Billy

    RIP Oderus Urungus Member
    2,010
    88
    28
    Colorado, USA
    Indie games
    I respect that. Just to clarify, the point I was making was, if you do intend to release something, don't let a perpetual cycle of polish be the reason it never happens. Now that I know it's running VB5, I may be tempted to try to make a C#/WinForms port. That's the advantage of open source -- I can leverage your knowledge of things like SMPS and my knowledge of a programming environment you may not be comfortable in. That being said, like I said, it's your right to not release anything. "I don't want to" is a legitimate reason, as far as I'm concerned.

    Hah! Or seeing TODOs, "Ugly hack!", and the like.
     
  13. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    Don't worry, I too believe in Open Source and I'm definitely going to release this, just not in its current state. I usually write very bad code very quickly when I have an idea in mind so I can get it up and running fast to see how it works in practice, but I later like to take my time to make it better.

    I don't plan. But, as said above, the beauty of Open Source is that someone else can add support for Sonic 23K Edusoft Blast: Chaotix's Island CD Remix & Knuckles.
     
  14. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    Man, do I feel like shit, that third shot really played a number on me like the second one. But I could still put this home time to good use (I hope).

    First, a couple more sample videos:



    edit: the beta has been removed from this post, because I'm making a proper release.
     
    Last edited: Mar 6, 2022
  15. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    edit: this post contained outdated informations, and it can be trashed now. Or keep it, so the release is at the top of the next page. Your call. I just felt bad for quadruple posting.
     
    Last edited: Mar 6, 2022
  16. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    I waited as much as possible to get some feedback, but I guess that's not going to happen. And since I promised a release within february, I'm already overdue, so I'm releasing the version which has been sitting on my hard drive for the last three weeks or so.

    http://info.sonicretro.org/SmpsView

    Should ValleyBell ever integrate his SmpsPlay with this, a new release will be handled accordingly. For now, it's just a silent viewer. You can still mux the audio in in postprocessing if you want to make videos for Youtube, though.

    Aside from that, I doubt I'm going to work on this ever again, though feel free to report any critical bugs and I might look into them.
     
    Last edited: Mar 6, 2022
  17. Ch1pper

    Ch1pper

    Fighting the Battle of Who Could Care Less Member
    722
    36
    28
    Life.
    Sorry, I got distracted by irl things these past few weeks and this project completely fell by the wayside for me! I remember I was determined to keep an eye on it and, honestly, I realize now that I misunderstood and thought it was more of a full SMPS player/editor. But feel good about getting as far as you did! Just the thought of using this in tandem with something like Chipsynth MD is really exciting!
     
  18. nineko

    nineko

    I am the Holy Cat Tech Member
    6,105
    341
    63
    italy
    It might become a player, but that's beyond my skills, that's why I sent the source code to ValleyBell a few weeks ago, if anyone can do the miracle, that's him.

    I thought about making an smps editor, too, but it wouldn't be trivial to make it work with existing songs, e.g. what to do with existing loops? Should they be unrolled while editing? And what about channels that share data at different pitches? There is a whole slew of practical questions which I don't know how to answer and I probably don't want to know how to answer.
     
    Last edited: Mar 6, 2022
  19. Ch1pper

    Ch1pper

    Fighting the Battle of Who Could Care Less Member
    722
    36
    28
    Life.
    Oh yeah, I get it. Better to do what you know you can do and plan/end accordingly instead of leaving it half-finished, riddled with ideas beyond your comfort level. I feel genuinely good for you accomplishing what you did! If ValleyBell does go further, fantastic! If not, it's still a cool novelty!
     
  20. President Zippy

    President Zippy

    Zombies rule Belgium! Member
    64
    35
    18
    Chinaland
    Lightweight LZ4 decoder
    I can already tell the fun is infinite with SmpsView! I'm excited for the release!

    But this gets me thinking: there isn't really a good one-stop place to find SMPS audio tracks. I know most people hold onto their own audio tracks for their projects, but there are people who make SMPS tracks with no agenda to use them in a future project, e.g. all the people making 16-bit remixes of SA 1-2 music.

    I have a "supporter" account on neocities.org, I just setup a site for President Zippy, and I can keep homemade SMPS tracks there until we have a better place!
    https://presidentzippy.neocities.org

    4/20/2022, EDIT: Nobody seems to be interested in using my neocities for a temporary repository, so scrap that... But the thanks for nineko still stands!
     
    Last edited: Apr 21, 2022