Language…
20 users online:  Ahrion, Anas, anonimzwx, authorblues,  bebn legg, Buflen, CourtlyHades296, Dark_Signs, Easy Difficulty, MiguelShow, min1c, mizounimax, Nyngatin1234, PixelPadlock, playagmes169, Reese, SAMYR DUTRA ARAUJO, WONIU, wye,  YouFailMe - Guests: 115 - Bots: 177
Users: 66,537 (2,379 active)
Latest user: wolfce

SMW Music Porter's Calculator (SMPC) 2.0 -- UI overhaul, new features, more flexibility, revisions (and nicer source code!!!)!

Super Mario WorldMusicToolResource Release



Greetings fellow hackers and music porters! I'm happy to announce that SMPC 2.0 is now out! As the thread title implies, there have been several changes to the tool. Let's take a look:

(Click the image to open an animated demonstration!)



What's new in SMPC 2.0?

  • The user interface has received a major overhaul. The main window is now resizable and scrollable. Most converters have been repositioned to fit in a more vertical layout, freeing up some horizontal screen space for other applications, such as a DAW or a TXT editor. Some converters have been shrunk in size to make the most out of the now resizable main window, allowing the user to have a single converter showing if they want and spending the minimum amount of screen space while doing so. All converters are now collapsible (obs.: the Staccato converters can only be collapsed through the "Velocity" converter, due to them all being tied to the same AddmusicK command). Lastly, minor cosmetic changes have been made: drop-down menus are now styled after the application's look, instead of using Windows's default style; and the question mark in the 'Enter "What's This?" Mode' tool bar button has been slightly touched up.

  • The "Ticks" converter has been implemented. It can be found below the "Note Duration" converter, acting as the latter's inverse counterpart: it takes note duration in ticks as input and provides a tied note duration string as output.

  • The "Hexadecimal Conversion" converter has been expanded to include hexadecimal operation and sample tuning-related functionalities. Due to this change, the converter has been renamed to "Hexadecimal Conversion and Operations". Information on how to use the new functionalities can be found in the How to Use -> Hexadecimal Calculator section of the readme.

  • A setting has been added to the "Velocity" converter to allow the user to choose which velocity table they want to use as reference: the standard N-SPC table (default option and also the one used pre-2.0) or SMW's.

  • A setting has been added to the "Staccato - Duration Method" converter to allow the user to choose whether they want to use raw note duration values or ticks as inputs (was the only option pre-2.0). Raw note duration values have been set as the default.

  • A setting has been added to the "Note Duration" converter to allow the user to choose whether they want to use raw note duration values (was the only option pre-2.0) or ticks as Default Duration (lXXX) input.

  • Indicative text has been added to the "Panning" converter to more explicitly inform the user that negative input percentages represent left panning, while positive input percentages represent right panning.

  • Indicative text has been added to the "Echo / Pitch Modulation Channels" converter to more explicitly inform the user that channel #0 is incompatible with pitch modulation.

  • Corrected the observation in "What's This?" message box text for the Toggle Channel #0 button, as it previously implied that it would be channel #0 being the one modulating and not actually the previous, nonexistent one.

  • Four new actions have been added to the tool bar: "Collapse All Converters", "Expand All Converters", "Save User Settings" and "Restore Default Settings". All of them also come with keyboard shortcuts. Information regarding user settings can be found in the How to Use -> User Settings section of the readme.

  • The formula for tempo conversion has been replaced with AddmusicK 1.0.9's official, newly provided one in its readme (specifically, the higher precision one). Worth noting that the previous formula yielded a very similar conversion ratio and thus was already highly accurate. Outputs between this and the previous version of SMPC should be near to, if not fully identical.

  • The formulas for velocity conversion using the standard N-SPC velocity table as reference (the only option pre-2.0) have been revised. The previous formulas failed to consider that the maximum velocity is tied to qXF, which is the index for the last value in the velocity table, which for standard N-SPC is 0xFC. Therefore, they now use 0xFC as reference for maximum velocity. Outputs (Y values for qXY) between this and the previous version of SMPC can vary by 1 unit.

  • The readme has been slightly revised for better clarity, readability and beginner-friendliness. Additionally, an always existent feature of the program was not mentioned until now, which is that the Page Up and Page Down keys can also be used for input adjustment and at larger steps (where applicable). This has now been rectified, with said information now available in the How to Use -> Input Adjustment section.

  • Split main source code into multiple files and placed them in a package structure, for better organization and easier maintenance. Additionally, revised, cleaned up and reorganized all code, while also complying to PEP 8 and other Python/general programming conventions as seen fit.




System Requirements

  • Supported operating systems: Windows 7 and onwards, 32 or 64 bits

  • Minimum available storage space: ~45 MB (for both the .zip and its contents)

Submission Page | Alt. Download (v2.0)

By the way, feel free to post suggestions for future versions!
Fanatical like a Demon
Good stuff! Now all that's missing is a db to v converter if possible so we can get those accurate track volumes from daw faders to mml channels.
Major thanks to Suika Ibuki for layout!
I'm open for music requests, just DM me on discord and we can further discuss there.
SMAS Soundtrack Status: 100% finished
YI Soundtrack Status: 100%
YI Unsampled Soundtrack Status: 100%
NSMB Soundtrack Status: 7.89%
Killer Instinct Soundtrack Status: 14.63%
SPC Thread
From our family to you, keep your pants dry, your dreams wet, and remember, hugs not drugs.
Awesome, didn't expect another version as the previous one seemed pretty complete to me. The tick converter may come in handy :P
Originally posted by LadiesMan217
Good stuff! Now all that's missing is a db to v converter if possible so we can get those accurate track volumes from daw faders to mml channels.

First of all, thank you for the compliment! As for your suggestion, well, I'm no sound engineer (or sound expert, period), but I guess it could be possible if I also introduced a field to specify the dynamic range, so SMPC could know where silence would be in dB (if the conclusion of my quick internet research turned out to be correct, lol). I imagine having those two inputs -- volume/signal and dynamic range both in dB -- would be enough? Edit: hmm, maybe I'm overthinking this. The formula for dB is 20 * log(signal/reference), and if the reference is always 100% then dB only needs the signal/volume to be calculated and vice-versa, meaning I could just internally convert the volume input in dB to % and then use SMPC's already existing % to v conversion. Anyone, please feel free to correct me if I'm wrong and/or shed some light on the topic. I'd definitely appreciate it, hehe. #smrpg{:D}

Originally posted by Pinci
Awesome, didn't expect another version as the previous one seemed pretty complete to me. The tick converter may come in handy :P

Thank you for the comment! Also, yeah, I wasn't super satisfied with the UI since day one of 1.0's release as I realized how annoyingly large and inflexible it was, so 2.0 would inevitably happen even if only for addressing that. I also imagined that there could be some additional features that some people would like to see that at the time didn't cross my mind or I couldn't have known would be useful due to lack of experience, as in, was never in a situation where I was like "dam, it'd be nice to have this automated", if that makes sense. And then turns out that yeah, some people did bring up such features, like the hex calculator for sample tuning and the ticks converter. On top of it all and ironically enough, my tool was concurrently released with AMK 1.0.9, which introduced ticks compatibility for the lXXX command and disclosed its official tempo conversion formula, so suddenly there was that to address in my tool too, lmao.
ok, that will be a very handy tool to have, I'll give it a shot sometime.
who knows, even will be useful to optimize past ports #smw{:TUP:}

Super Mario WorldMusicToolResource Release