Banner
Views: 854,138,837
Time:
15 users online:  1UPdudes, Dan Drigues, DoodleMyNoodle, Eminus, GabrielJohn, Infinity, Medic, Minish Yoshi, Narcologer,  patcdr, PuffleDreemurr, Ralshi02, RamyMintos, Romano338, Wariuzzo - Guests: 35 - Bots: 57 Users: 47,132 (2,480 active)
Latest: Based Seraph
Tip: The music in SMW's default castle/ghost house intros and boss battles can be changed by hex-editing. See $0584DB-$0584E2 in the ROM map.Not logged in.
Posts by nyanpasu64
nyanpasu64's Profile - Posts by nyanpasu64
Pages: « 1 2 3 4 5 »
2. What is the minimal set of samples necessary for working sound effects, etc while minimizing ARAM?

--------------------
nyanpasu~
Do I need to load those samples in the #samples area for the effects to work?

--------------------
nyanpasu~
megabump

What is the default "q" command settings?
When you reduce the length, are all note lengths multiplied by a fraction?
When you reduce the volume, is it an extra multiplier on top of the "v" command?

--------------------
nyanpasu~
What is the formula used to convert v## to SPC700player's LEVEL number?

Is the relationship between LEVEL and actual volume linear, as SPC700player makes it?

--------------------
nyanpasu~
If a port doesn't fit into ARAM, how can you make a SPC?

Which AddMusic was used?

Also, if AMK can make a SPC, can it necessarily import into SMW and have it play properly?

Do you mean you can only get it to fit by removing the game's SFX samples?

--------------------
nyanpasu~
I am currently, and have been for months on and off, working on an AMK volume preprocessor which does volume scaling, pan conversion, and later ADSR, possibly bends.

I initially used percent-based commands, which I discovered to be too verbose for volume and pan switching, which is done frequently.

I then switched to directly parsing for "v" and "y" characters, which crashes upon encountering them in #samples and #instruments sections. (I pass-through comments) (Excluding quotes will break volume-scaled macros)

Any advice? The output, as currently planned, must be AMK-readable and is currently designed to be human-readable and formatted similar to its original appearance.

(Maybe exclude curly braces?)

--------------------
nyanpasu~
Converts MIDI volumes to AMK volumes automatically.

Later will make human-readable ADSR and other commands. Specifically the ones which are extremely ugly or difficult to use.

Originally, I was going to make a system where you can create blocks of music, which can be inserted wherever you want in the final product. I don't think it worked out very well, and was rather awkward to use, at least for me. Maybe a GUI part arranger would work better.

I ended up not parsing anything within curly braces.

My system as-is will crash and burn with lowercase macros containing reserved characters.

--------------------
nyanpasu~
It's better when you don't have to open the readme file every time you want to recalculate it, and make mistakes copy-pasting, and have to deal with a weird GUI, and make it difficult to read what you already posted. It's a significant inconvenience. Though it is useful for getting the right setting, not so much being convenient or easy-to-edit.

--------------------
nyanpasu~
In my case, I'm porting a DS song with more-or-less original samples.

I just discovered the DS SSEQ engine is quadratic = (vol*vel)^2. loveemu stated that the SNES channel volumes are quadratic, and as I'm ignoring the qxx command, I can just straight-out multiply DS (vol*vel) by 2 (or any constant), slot it into the SNES volume field, and it will sound correct, if I use the same samples as the original song.

The General MIDI [EDIT]developer guidelines[/EDIT] claims volumes are quartic (n^4) and velocities must match Roland Sound Canvas (no formula provided). In practice, BASSMIDI synth has exponential (around 10^(volume/100) absolute = volume/10 dB) volumes and quadratic velocities. A rat's nest trying to figure out the curves.

In short, my strategy will work. My MMK tool is codeveloped with my Port-a-Potty viewer, which currently just multiplies (vol*vel). That is sufficient for DS, but not for MIDI.

If I intend Port-a-Potty to be a general-use tool, I need to properly convert MIDI (vol, vel) pairs into a single number. Additionally, I need to add a volume multiplier in my MMK parser to compensate for sample volume differences, and possibly more new volume curves, if it proves too difficult for my Viewer to convert MIDI volumes to quadratic.

Of course, there is a MIDI standard, there is my BASSMIDI observations, and maybe XG, if it differs from BASSMIDI.

What are the XG volume and velocity curves?

--------------------
nyanpasu~
For future reference:

When I refer to quadratic, I mean out volume = nominal squared. All units are absolute, not in decibels. Amplitude is equivalent to out volume.

General MIDI guidelines: Volume quartic, velocity "sound canvas"
BASSMIDI: Volume 10^(volume/100), Velocity quadratic.
SSEQ DS: (Volume * Velocity) quadratic.
N-SPC: Volume quadratic with round-off error, velocity (qxx) = lookup-table (I don't use).

Porting DS songs: Just multiply volume and velocity, then multiply by 2 if you want (or really any constant). The volumes will be scaled correctly because both curves are quadratic.

4. How is the amplitude of the vibrato command calculated?

--------------------
nyanpasu~
It's not too difficult to add a customizable scale factor, assuming quadratic. (Who doesn't love fudge factors?)

I assume because the empirical MIDI velocity is quadratic, most MIDIs are made with quadratic in mind. Do most MIDIs use expression or channel volume for volume bends, which one? (SSEQ rips use channel volume, so I only support them so far). If converting from a hand-sequenced MIDI, the fudge factor can be used to compensate for the different channel-volume curves.

It wouldn't be difficult to add more curves to select between.

Anyway, my current volume scaling is "multiply by 255/127", which is much simpler than I expected, and honestly a lot of trouble to develop an entire preprocessor for, though likely useful for others wanting to fine-tune the relative channel volumes. However, my MIDI viewer was absolutely worth the time programming, given how much it helped my port.

Regarding more useful features, I added syntactical sugar for pitch bends, etc., allowing you to specify durations in terms of either decimals or fractions of a beat (qtr-note). Will add whatever is convenient for my port.

I think I have (untested) segment rearranging (removed volume continuation because it was awkward to use)

Which tool are you talking about? MIDI viewer or AMK preprocessor?

--------------------
nyanpasu~
Originally posted by Masterlink
Are you using #optimized? If that still gives you ARAM errors, try replacing your Addmusic_sample groups.txt with this one and use #optimized2 instead.

Is that file still relevant for the latest AMK 1.01? If so, is #optimized3 fully functional?

--------------------
nyanpasu~
what impact do empty samples have on optimized2 and 3? which effects/bgmusic break?

do I need a sample group for my custom samples, or is flat samples OK?

--------------------
nyanpasu~
Are joke submissions allowed?

--------------------
nyanpasu~
I'm currently working on a project to improve the original SMW samples.

What if I submitted one of my SPCs and called it a "NES Super Mario Bros" port?

Only problem will be that I didn't write the actual txt.

--------------------
nyanpasu~
lol i failed

--------------------
nyanpasu~
(twitch) I'm sure you... (shudder) *deserved*... all the Content ID strikes you got... uploading all the MP3s to Youtube for cheating.

--------------------
nyanpasu~
So I finally got around to posting this.

SUMMARY

This is a (partial) pack of custom BRR samples to replace SMW's default samples. All samples are named according to AddMusicK samples/default. I also included a set of SPC files generated from AMK.


I've always disliked SMW's stock samples, with its abundance of 65-byte waveforms, and poorly designed longer sounds. Last year, I began a project to replace them with better-quality, longer samples.

One of the more notable changes are a brand-new and unique-sounding brass sample. I assembled it from SMW brass, LTTP brass, and sped-up sample from TimGM6.sf2. Oh, and it ruins the game's sound effects.

The strings were shamelessly stolen from Seiken Densetsu 3. Very synthy, but I've grown attached to the sound in this SPC pack. I'll change it if I ever get back to working on it.

The flute is a heavily trimmed-down Secret of Mana sample. It's a compromise between good musical performance, and in-game sound effects.


DEMO

I picked out some of the better tracks from the remixed version, and uploaded them online, playable from your browser. (THIS IS DOWN!)

http://floorchan.org:8080/d/6b166c72aa/
(alternate link) https://www.dropbox.com/sh/1qqkfeqzli8mzw8/AAAddWcxpwdEwQg3pgeukZfoa/smw-remastered/demo

DOWNLOAD

This project uses AddMusicK to insert custom samples. The download includes all BRR samples, as well as a SPC soundtrack generated through AMK.

http://jimbo1qaz.github.io/dropbox/smw-remastered/smw-remastered.7z
(source) http://jimbo1qaz.github.io/dropbox/smw-remastered/smw-remastered-src.7z


Note: The source is messy, outdated, and only works on my machine.

The BRR generation script (all.py) is written in Python and uses pbs to call SoX and brr_encoder. However, pbs is outdated, and sh (the author's rewritten version) doesn't work on Windows and lacks foreground mode (send output to console).

I recently discovered plumbum, a Windows-compatible, better-designed, and more up-to-date version of pbs/sh.

Also, my code uses eval to transform an arbitrary file into a Python dict. It's better to use Python's safe parsing functions.

I think an automatic wav-to-brr tool (like the one I wrote) could be very useful to sampled music porters and experimenters, if better designed. Feel free to build on top of my work.


ISSUES

The main issues as of right now are:

  • This pack takes up significantly more space than default SMW samples. Keep a copy of the default around for custom music.
    • The brass sample is 4 times as long as necessary, and consequently takes up most of the space. Sadly, I couldn’t get it to loop well any other way. In fact, I was lucky for the shortened TimGM6 sample to loop at all.

  • Piano is not great. Percussion is unfinished. Acoustic and electric guitar, as well as music box, are unchanged.
    • Some other samples are unchanged because I’m happy with the original.

  • Many of the altered samples don’t work well with in-game sound effects. In particular, the brass completely fscks up Yoshi sound effects.
    • The flute (Mario jump) is still a touch quiet, though much improved since I shortened the attack.

  • Overall, this is primarily a SNES composition/soundtrack project. It’s absolutely not optimized for in-game sound quality, and it shows.



Also, what's the deal with HTML comments not working? ...Oh, the irony of a buggy bug-list. Not laughing? Oh well, nobody ever gets my jokes...



--------------------
nyanpasu~
I recently discovered there's a "banned" group. Some old user was int he banned group, but had a normal inactive color.

http://www.smwcentral.net/?p=viewthread&t=11681&page=1

http://www.smwcentral.net/?p=profile&id=26787

What's the difference?

EDIT:

blackhole89 has a dark pink (inactive unbanned) username, but is a member of the Banned group.

What is the Banned group?

--------------------
nyanpasu~
blackhole89 has a dark pink (inactive unbanned) username, but is a member of the Banned group.

What is the Banned group?

--------------------
nyanpasu~
Pages: « 1 2 3 4 5 »
nyanpasu64's Profile - Posts by nyanpasu64

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2020 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy