Language…
16 users online:  AmperSam, BabaYegha, codfish1002, Danik2343, deported, feb31st, Heitor Porfirio,  idol,  Losoall, Maw, MegaSonic1999, NewPointless, saucebrune,  Tahixham, TheXander,  Thomas - Guests: 302 - Bots: 411
Users: 64,795 (2,374 active)
Latest user: mathew

Posts by musicalman

musicalman's Profile → Posts

  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 15
  • 16
Hi all. I'm a new member here.I sort of have an obsession with cheesy sampled sound, so for me, the SPC700 and admusicK are fun to have just to try to make music with. I'm nowhere ready for finishing music ports, but I am working on it. As I played around, I've observed some things which aren't really related, but I thought I'd put them all down in one post for people to comment on and help me work with if they are able.
First, I'm using AddMusicK 1.0.4 and the Winamp Alpha SPC input plug-in 3.3.4. I really should make sure those are up to date, but I downloaded them within the last 6 months.
First thing I am going to ask about is so-called proper endings. When making a track with AddmusicK that does not loop, some silence seems to be added to the end of an SPC, even with one channel with a constant stream of notes. Even the default SMW ported tracks seem to do this. I've not seen mention of this often, so don't know quite what to do about it. Trying the tags in the txt file to restrict the length only do so much, as it just tells the player how long to play the song for, regardless if there is anything after the specified length. The silence at the end is faded out, not removed from the data. There is also about a half second of silence at the beginning of files. However, in SPC rips, there are no such silences anywhere, not even in the SMW SPC set.
Is this silence at the ends of the track something which I can get rid of? I wouldn't try to get rid of it if I was doing an SMW port, but some people use AddmusicK just to make SPC covers and don't care about how SMW will handle the data. I've been thinking of trying projects like that, and for this purpose I would prefer to do anything I can to optimize it.
Second point: pitch bending and legato. From my understanding, if I want to do fancy slides and slurs, I would have to use the pitch bending commands (& or $dd) to bend between notes, along with the legato toggle command ($f4 $01) so that notes won't be rekeyed. If I want to rekey a note, for example in between measures just to introduce some variety into the articulation, I would first have to turn legato off in the middle of the last note to disable it properly. So a simple penta scale might look like this.
Without legato:
l8 c d e f g f e d c4.
With legato and some articulation:
l8 $f4 $01 c d e f16 $f4 $01 ^16 $f4 $01 g f e d16 $f4 $01 ^16 c4.
It sounds like a lot of work to rekey one note. If that's just how it is, I'm not complaining, just making sure I'm not missing something.
Also, in regards to pitch bend, I haven't yet figured out a way to pitch bend in between notes, for exampel in guitars. The closest you can get is to slowly slide between notes. Is this correct?
Last question, for now anyway. I know it's not popular, but pitch modulation among channels seems to be supported, and while it often sounds gritty and or unpleasant, I've heard it used in ways which intrigue me, for example in Waterworld. I am unable to find much info on it though. I assume one channel would contain a source sound and the other would contain the waveform that would modulate the source's pitch. At present I imagine this as crude FM synthesis or something with a modulator and carrier. I'd like to experiment with it, but don't know anything about details of its operation, and am only guessing. All the AddMusicK readme says is that when using this command, the hex parameters specify which channels to enable pitch modulation on, bitwise (7654321-). Channel 0 cannot have pitch modulation. I'm not nearly as inclined in the techy side of this as I'd like to be, and so am not sure what is meant by bitwise. Does it literally mean numbers like 1, 2, 3, and so on for the 7 channels? What would be a typical setup for this effect?
Thanks for reading and helping out! No need to respond to everything at once, I just wanted to put everything together in one post. Have a great day!
Make more of less, that way you won't make less of more!
Sorry for bumping the thread, I was away for a while and recently started getting back into AddmusicK.

Originally posted by Mirrordrill

Firstly, I recommend you download SPC700 player which loads faster and has more info/settings than winamp/SNESAMP.

I do use that sometimes, it does sound a little warmer to my ears. I haven't checked the URL you provided, mine has Japanese setting names. I'll have to see if the one you linked to is any different.

Quote
Secondly, about bitwise.
Bitwise is a T/F system where one bit represents each channel, so if you want to modulate, say channel 3 and 6 it needs to be like:

channel #
bits

7654321-
01001000

And then you need to convert that to hex, so it's $48.

Thanks for your explanation, it makes sense. It took me a while to get it, as I'm not used to binary and hex and stuff, but I'm getting a better grasp of how they work. Pitch modulation is interesting now that I can set it up. May come in handy if I am looking for an unusual bite.

Quote

Pitch bending. That is the point of the pitch bending command: to smoothly connect 2 notes. I don't see what else you want, maybe you could shorten the duration. The other 2 bending commands are $EB $XX $YY $ZZ and $EC $XX $YY $ZZ, which let you bend to and from notes respectively. This is all I know about pitch bending.

The main question I had about pitch bend was this:
If I wanted to emulate a guitar or something which doesn't always bend from one semitone to another, but instead sort of hangs around between notes for a bit. A really obvious example of instruments that do this is harmonicas in bluesy music... not suggesting a blues port for the spc! But it's the most obvious I can think of. In PPMCK or similar you can make pitch envelopes to direct the pitch in interesting ways, as it was just adding and subtracting whatever values you gave it from the pitch registers I think. Not saying that is better though, as proper portamento is lacking. Portamento is really only supported on the 2A03 chip which is only a fraction of the channels PPMCK can use, so the fact that AddmusicK can indiscriminately do it is a big plus for me. I don't think AddmusicK can really go between semitones.. though. There's a hex command, can't remember which right now, to alter the pitch offset but I don't think it would be practical to use it for that. In any case, that was my main question, how much control I had over a pitch bend or if it was more or less a portamento slide between chromatic notes.
My legato question concerns the best way to define when I wanted a sound to retrigger, or when I wouldn't. I was curious if usage of the legato commands as I illustrated above is the best way to go about it. If it is, I'll probably just redefine that legato toggel with something that's easier to type with the replace command.

Quote
About the silence at the end/beginning of songs. I have three theories.

a) loading time. I remember AM4 needing something like an r8 length of silence at the beginning of your songs, so the game might just be loading the samples.
b) ADSR/GAIN. I don't remer where, but there was a discussion about whether it's better to use $ED $7F $E0 ADSR or $7F GAIN; which of them play more instly. So I guess it might also be sample playment settings.
c) THere isn't any. I seriously can't find any silence at either the beginning or the loop point of vanilla or custom sampled music. Or even that most basic penta scale. At least not the half second you were talking about. I listened both in game (ZMZ) and at 33% with SPC700. Or if there is it's probably only a few ms and I'm not that much into music to hear/care about it.

What struck me about other SPC files is that there is virtually no silence. In Winamp when I would put an SPC on repeat, there wouldn't be nearly as much gap at the track boundaries as I get with addmusicK. In the case of the default SMW sample set and the default SMW mml tracks, there is indeed no silence at the beginning of the songs. And if you stick to that sample set, the beginnings are normally tight. When I would load samples though, is when the delay at the start would kick in. And, regardless of what I do, I still get at least 10 seconds of silence at the end of my songs, as seen by Winamp and the SPC700 player you mentioned. Even the SPC files that I generated from the default AddmusicK local songs have at least 10 seconds of silence at the end, and I have no clue why. It is bothering me because I know if I render a song I created and share it as an audio file, I'll always have to trim that silence off, where as if I want to share a ripped SPC from a game, that silence will not exist. I suppose? if I really wanted to kill the few hundred MS of silence I get at the beginning when I load custom samples, I could go into the ASM files and edit them. But I'm not that techy as much as I'd like to be, and I'll break things before I get them working. Besides the silences at the end are more severe so I'd like to have an idea of whether this is an aDdmusicK problem or not. As I think I said in my earlier post, adding a length command to the txt doesn't completely fix it. On Winamp at least it causes a fade-out to occur after the end point, so if I set the length to 30 seconds, at 30 seconds it will start to fade out whether there is data there or not. I'd be interested if anyone has an idea what's going on. How do you guys make songs without a loop? Do you have silences at the end of even simple songs like I do?

Quote
AFAIK AMK won't compile your song if it doesn't work in game. Unless you make an infinite loop with commands or something.Or screw up converting old sampled music. but I haven't heard of many other cases.

True enough. I am not very familiar with how AddmusicK works with SMW, because I am visually impaired and find it difficult to play video games. Instead I love the music and old sound chips. I've heard a few ports of FF7 and SMG music on Youtube which claimed to use AMK and push the SPC700 to its limits with the usage of custom samples and echo buffers and whatnot. The ports were certainly well-done.
I think, though I'm not certain, that if I had an interest or ability to play the game, I'd have to be much more mindful of what I do in my eventual ports than I do if I am just interested in using the SPC700 and AddmusicK as an interesting composition tool. I would, however, like to read up on porting for SMW so that I can follow guidelines and try to make music that'll work without messing something up. I do know that channels 6, 7 and 4 are to be used sparingly if at all, as SMW plays sounds on those channels. Also the sound effects seem to mess with the instruments unless you define your instrument on every note of the sound effect channels. What I'm most worried about is my usage of echo buffers and custom samples and whatnot, since I admit I find the SMW set too bland and overused for music, and there may be times I either don't use it at all or only use a few things from it. So then the question comes... Am I to assume that so long as the song sounds passable without channels 4, 6 and 7, and so long as the default AMK configuration compiles the SPC, that my work is done and it can safely be inserted into a rom without issue?

Quote
Apologies for any grammatical/spelling errors made, I'm a bit tired while writing this.

No worries.
Make more of less, that way you won't make less of more!
Which part of the song are you looking for a sample for? Can you describe where the sound(s) occur so I know what you're looking for? To me it sounds like a lot of rhythm and wah wah stuff at the beginning with a piercing lead guitar sound further in.
If I can get an idea of what you're looking for, I could make a sample for you. I've made sort of a library of brr samples that I plan to use in ports with custom samples. I mean I could rip them... but that's no fun for me, I play with samplers a lot so it was sort of a challenge to see how a library of homemade samples could work. From the stuff I've started with them, I have to say I'm impressed. Not trying to brag or anything, just amazed that my crazy ideas work. Lol
Alternatively, Rock and Roll Racing has the best guitar samples in a snes game I've heard, Any time I try to do homemade guitar brr samples, I always go for that style. eventually I'll break down and rip their samples because I like them so much. YOu could give those a try too. From what I heard, Tim Follin used real guitars to record those.
Make more of less, that way you won't make less of more!
Hi all,
Over the past few months I have been trying to decide what my first music port should be. Because I've worked with MML before, I wanted to give myself a challenge in AddmusicK, and pick something that not many people have focused on too much for the SPC700. I ultimately decided on a Shovel Knight track, since I love that game's music, and I bet someone could find a use for it in SMW. I'm not basing my port on the original Famitracker version. Instead I'm basing it off a remix which has grown on me and which I think will suit the SPC700 better. i've started the port though it's nowhere near complete yet, so I'm not ready to show it off. Before I get too far into it, I have a decision to make, and I could use some advice.

I once ran out of ram because I got carried away with custom samples. After some pondering I decided the high hat sample I was using could be simulated with noise. So I made that change and after some tuning, it sounds pretty good in the mix. I then thought about messing with my bass and snare drums, which right now take up about 6 K of space. They have a very electronic feel so I want to keep them crisp. If I compress them more it would degrade them too much imho. I know that 6 K isn't that huge, but indulge me for a sec.

I've seen a few Snes tracks, such as gambit's stage in Spiderman and X Men, using noise and a sine wave to simulate a bass drum. If you slow the SPC down you can hear what is going on. This was of course common in prev gen consoles which couldn't do samples well, but I was wondering if this would even be worth considering in AddmusicK as a madman's space-saving technique. Hypothetically it could work. I could make mml strings to play a bass drum or a snare, and then recall them to make actual patterns. Whether it would save space or not is something I don't yet know since it would take a lot more commands to make passable sounds.

Doing that kind of trick seems like it would have a lot of implications though. It's kinda hackery and I wouldn't doubt the dangers of slowdown. Due to my visual impairment I am not really able to play video games, so I haven't messed with roms and emulation at all. If I'm going to try something like that and it ends up working musically, I'd like to at least make sure I know what I'm doing in a practical sense, and find a way to test the sound in-game. I don't really know how to do that yet. As you can probably tell, I get a little carried away with cool toys. :)

I know there are far simpler ways to save space, but I still have to ask! What are your thoughts?
Make more of less, that way you won't make less of more!
Hi,
First, thank you both for the discussion and encouragement.
Perhaps I should've been more clear about my Gambit stage example. There is indeed a kick sample in there but there is another kick, starting at about 30 seconds into the track, that plays on channel 4, or 5, not sure if you're thinking of channels starting at 0 or 1. If you slow it down to as slow as Snes SPC700 Player will go, you can hear it starts with a noise sample then immediately switches to a falling sine wave, both on the same channel. I think just with the SMW set you could make some cool dance drums that way with amk. There are several darker waveforms in the smw set that could be used for a synth drum tone with fast pitch bends, and the built-in noise could take care of other elements. Though you'd have to be careful since the noise is loud. Also the noise balance can be a little tricky because interpolation messes with the highs on samples but not the noise. I listen to stuff with Gaussian. If you were to use linear, for example, the noise would sound too quiet in the mix because linear makes the samples brighter, which actually would make a good case for lowering the sampling rate of the drum samples, but I digress...

Your idea of using the fir filter as an eq to boost the highs might work, not necessarily for this case as I'm using the echo to add ambiance which I don't really want to change right now. Though I'm still curious about how you'd set it up. Would you set the echo length to $00? I tried that a while ago and it makes things sound weird. I guess you'd somehow have to output only the echo buffer and not the dry signal, but not sure how to do that or if it can be done in amk.

Later tonight or tomorrow I'll make an attempt to do the synth drums thing with a sine wave and noise and post it. Someone might at least have a good chuckle.
Make more of less, that way you won't make less of more!
Well, I've been playing around for a bit and have something to show for it. But first a question.

Originally posted by MaxodeX
About your question itself, it's a valid solution I suppose, but you need to make sure the way you do it is uses as little space as possible, else you risk increasing the song's insert size by a ton.


This might be an ignorant question but how do you find the insert size? So far I've been using the -norom command and just generating spcs. What is the correct way to know what the insert size would be for putting into a rom?

And now the results of my playing around trying to make drum sounds with a single sample and noise. I managed to get a fairly decent thumpy kick and a hat with one channel, but had to use two for the snare. I tried to optimize as much as possible, though I am no expert so I may be doing something stupid. It isn't much other than a proof of concept really, but have at it.

Code
#SPC
#amk 2

{
}

t48

#instruments
{
n1e $00 $00 $5f $00 $00 ;kick noise
@0 $9f $bf $00 $03 $00 ;kick tone
@0 $cf $7f $00 $03 $00 ;snare tone
n1e $ff $37 $7f $00 $00 ;snare noise
n1f $ff $19 $7f $00 $00 ;hat
}

;Drum Definitions, each is a 16th note in length:
"K=o1 @30 c192 @31 $ec $00 $07 $e0 g32^64^96" ;kick tone
"S1=o3 @32 $ec $00 $02 $d4 g16" ;snare tone
"S2=@33 c16" ;snare noise
"H=@34 c16" ;hat

#0 l16 @16
/[K ^ H ^ S1 ^ H ^]4
[K ^ H ^ S1 q79 H ^ H ]4

#1 l16 @16
/[r4 S2^8.]4
[q79 ^ H ^ H q7f S2^ H^]4


Would I use this over sampled drums? Probably not right away, at least not the snare. But the kick and hat might work. And I suppose if you don't have room for a cymbal, the noise could suffice in a pinch but... meh.
Make more of less, that way you won't make less of more!
Hi,
I can take a look at it and see where/what's messing up. I'm not familiar with the tools you're using but maybe I can point you in the right direction. Can you post your most recent attempt so I can have a look?
Make more of less, that way you won't make less of more!
No worries about asking so many questions. I ask a lot of questions too.
One point of confusion, I am assuming the Dark Cave files without any descriptors in the file name is the correct one, and the optomised and AMK version descriptions are the ones you are having problems with? That's the impression I am getting anyway.

I haven't looked at them in depth yet but the amk SpC does sound possessed. I'll have fun figuring out what went wrong with that one.

Edit: Forgot to ask the procedure you used to make these files. Sorry for making you repeat it, as I'm sure you explained it before.
Make more of less, that way you won't make less of more!
Regarding insert size, I will have to try that once I have a completed thing to test with. I thought there was a super easy way to do it for porters or something...
I also tried putting in the legato command as you suggested. In fact i was going to do that for the snare originally, but because there is more overlap between the tonal and noise parts of a typical snare sound, I sort of figured out that 1 channel wouldn't be enough unless you use a custom sample. So I basically thought, ah well if I *must* use two channels to get that sound, might as well use the second one as little as possible. Lol

I'm not sure if I can hear a difference with smoothness using the $f4 $01 command, since 192 is iirc pushing the resolution of the nspc engine. Whether legato would influence the smoothness of that part of the sound is something I don't really know. I'm still not sure whether I'm completely sold on the whole idea. The main purpose of this topic was to have some discussion on it, which I've definitely accomplished. It'd be an innovative way to do drums on a non-sampled port I guess.
Make more of less, that way you won't make less of more!
Hmm, sounds like you are doing a lot of converting, and any layer of that conversion could dramatically degrade things. The way I am understanding what you did is:
1. Make song with tracker.
2. Convert the tracker's exported spc to midi... not sure what tool.
3. Run midi through petite MM.
4. Use spc2mml to get parameters.
If I'm misunderstanding, let me know.

One thing I'd like to point out, and others have said it: There really is no way around at least getting your feet a little wet with MML when doing ports. There is no step-by-step guide to optimizing an mml, at least not yet... For now the best way is to optimize manually. The cleaner you can get it at the start, the better, and sometimes that unfortunately means writing everything by hand.

The below post consists of me rambling about your port and what needs fixing. This really did need a lot of work. I tried optimizing it myself and it took me quite a few hours. Then again I am picky so I suspect a quicker optimization could be done, but I really do hope for your sake that there is an easier way. Other porters will have to chime in with tips on how to work out the deficiencies in your setup, since I'm not well versed with port assistant tools.

The first thing I notice is that your amk tempo is incorrect. In your text file, the tempo is set at 74. To convert an amk tempo to a bpm, divide by 0.4. This normally gets you close. When doing this to your tempo of 74, the result is 185 bpm, which is too fast. To find the best amk tempo to use, multiply the bpm by 0.4.

On channel 0:
Code
 [[r1]]5 

Two things. Most importantly the 5 should be 4. In the original spc there are only 4 measures of rest at the beginning of this channel, not 5 as the amk mml shows. Secondly, you don't necessarily have to use double brackets here. Double brackets are really useful for nesting purposes i.e. a loop inside a loop, or what amk calls superloops. Since you have not started a single bracket loop yet, a double bracket one isn't needed here.

Going down a few lines:
Code
 [>d+8<g+8>c8d+8<g+8>c8d+8c8 ... 

This begins the first of four consecutive lines in your mml which consist entirely of 8th notes. I doubt this would affect the spc file any, but you can optimize your mml by putting a l8 before that line. The l command tells amk that you are setting a default length, the number 8 in this case indicates an 8th note. This means that you don't need to have the 8 after each note, so all those 8s can be zapped without consequence.

Also there is another looping problem, these four lines of 8th notes seem to loop 3 times but your mml does not reflect that. In general, sections that are supposed to repeat in the mml are not written as such, and thus need attention.

Let's jump down to the very end of that channel.
Code
 ]63 r192 

This is asking for trouble. You have essentially looped most of this channels' data 63 times. I see you tried to use amk loop commands earlier but I think you confused the track loop / and section loop brackets. They are completely separate. The r192 after that is probably an extra midi event or something that was left over at some point in the conversion. It'll only create trouble here. Notes or rests that small should only be used in special circumstances.

Now for the rest of the channels. I'll be brief. Assume that everything I've pointed out above applies to the rest of the channels to some extent and shouldn't be missed.

Channel 1:
Code
 [[r1]]23 

Same advice as the double bracket loops above, and 23 should be 4 again. Also on the line below that, the notes are too low so o3 should be o4. As you probably figured out, amk won't let you do it. This is because there are excessive > commands in the channel that push you out of range. They are not needed, so the task is to find and eliminate the rogue one(s).

Code
 g1
a+1
g1

You're missing a note. Before the second g1, there should be an f1.

Channel 2 is once again an octave too low and has some weird octave switching going on because of more rogue commands. If you start at o3 you should be set, though you'll once again have to comb through the notes and ensure your octave switches are accurate, and eliminate the ones that aren't.

I have no clue what is happening on channel 3. It's supposed to be a delayed copy of the choir on channel 1, but here it is chaos.

On channel 4 there is supposed to be the high hat thing, but there is nothing in the amk version.

On channel 5 in the original is the timpani, in the amk version channel 5 is correctly set to a timpani but sounds like it's trying to play the choir copy which was supposed to be on channel 3.

That about covers it. Here's a link to optimized versions of your mml I've made. I've kept most things as you have, though a few parts I had to rewrite, and a few settings I changed slightly. I inserted a fair number of comments to let you know what I was doing, and also went back and consulted the spc2mml output for final optimization.
https://drive.google.com/file/d/0B9aHZOGb36oLQWNmWlJUVzZabU0/view?usp=sharing

Few! I hope that has at least helped some. Feel free to ask further questions, especially ones that seem stupid. :) Remember, something like this doesn't come quickly. Perhaps the best way to truly optimize a port is to slow down and check what's going on from the beginning, step by step.
Edit; removed a stray bracket from code.
Make more of less, that way you won't make less of more!
About the mess, I took it upon myself to tackle it. :)
IN regards to porting to MML, again I don't think every port was written by hand. I know porters do use other tools, but I don't know how they work. I think it might be worth asking about porting strategies or something. I don't really know of a way to make a porting tutorial for mml. The way I see it, and I'm sure opinions will differ among this so take this as just my perspective, but the real challenge would be to learn mml fluently enough to actually read it and get a sense of what is going on, and that comes with practice. There are tutorials on mml out there. MML is pretty standard so even if you find one that isn't for amk, most of the concepts still apply in a very similar way. I wouldn't doubt a few useful tutorials are on this board, especially for porters. In any case you sort of have to be in the mindset and have the patience for it.
Make more of less, that way you won't make less of more!
Agreed. In the end I decided to downsample my kick sample and apply a quick pitch bend to the attack to give it more sharpness. That sharp attack is the main reason I didn't want to downsample the kick, but the pitch bend should take care of that. For the snare, I will leave the sample as is because I like how it sounds, and it's about 3 K. I don't think that's too bad.
Make more of less, that way you won't make less of more!
Which one did you insert? The final optimized one I linked to a few posts ago? If that's the case I am completely stumped. If you do get it working, let me know what you did.
Edit: Must not have seen Brozilla's post, but that is right. That completely slipped my mind.

Also if interested, my MML experiments started with mck back in 2009, and the tutorial I read was pretty much written for a novice like myself. I mostly do midi stuff so mml was at least logically workable in my mind. I don't think that route is common though. I've tried getting into trackers and while I know what to do, they still give me more of a headache than writing an mml would.
Make more of less, that way you won't make less of more!
MCK is a set of tools to make nes music. Not meant for a game though. It's also been forked a number of times, but even so it has its fair share of shortcomings for hardcore chip composers. I doubt the tutorial I'm linking to would be a lot of use to the staff here since there's a lot of mck-specific information in it. Maybe the mml bit of the tutorial is useful. The concepts are the same but the application is different. The syntax between the two is similar enough; the only real differences are effect commands and channel designation. Loops and most note commands are the same. In short I wouldn't recommend a beginner completely new to Amk to read this tutorial. I'd only suggest it to someone who already knows how to use Amk and wants to dive more into mml.
http://www.nullsleep.com/treasure/mck_guide/
The Mck setup section is also out of date. There are much newer versions and forks now which add features and probably address bugs. Obviously that won't apply to Amk so much... Like you said earlier, quite a distance traveled to get here, but that's the road I traveled.
Make more of less, that way you won't make less of more!
Hi,
Firstly I'd like to state that I am not too familiar with the tools people use to convert midi to mml, so what I am saying is speculative.
Upon looking at the midi file, I notice that while there are 8 tracks corresponding to the snes's 8, all of these tracks in the midi file are on midi channel 1. This leads to some conflicts... Not sure how TinyMM will handle that. But it does seem to be putting each track to its own section of the mml, so at least they're not getting jumbled like I initially feared they might. As I hope is clearly stated by the tutorial you read, the MML you get from conversion isn't immediately going to work for SMW. You'll need to modify it a bit. Looking quickly at the MML, everything seems fairly well in order. The MML doesn't look hidiously disproportionate to me, But as I say I only glanced at it so no guarantees.
I've also heard that PetiteMM is a better tool than TinyMM for midi to MML conversion. I'm not sure how familiar with MML you are or what specifically doesn't look right to you, so I won't really ramble too much right now. I'm just not exactly sure where you're stuck.
Make more of less, that way you won't make less of more!
Not sure what you mean by bands, but chords are possible. You have to split the notes among channels. For example to make a C chord, you might put a C on channel 0, an E on channel 1, and a G on channel 2. Another way to do chords is to actually use samples of chords, a few Snes games have done this but you have less flexibility that way.

You can do vibrato with the p command. P followed by 3 numbers. The first is delay, second is rate, and third is depth. All three have a range from 0 to 255. For example,
Code
p50,20,100

Make more of less, that way you won't make less of more!
Really good advice.
I have a question of my own which I think leads nicely into this topic. I was wondering the best way to do sforzandos i.e. quick attack, fade out to a point, then gradually fade back in again, all while holding the same note. Could be useful for a brass section. ADSR isn't enough since there are two stages to it, the part where it fades out and then the fade-in later. I haven't yet looked extensively at the mml, but some complex volume pushing is going on in this port of the Plok beach:
https://www.smwcentral.net/?p=section&a=details&id=11183

I don't need anything like that now, but that kind of control is what I am looking to achieve, and is something that I've been fighting with for a while. I really do hope the volume/gain commands aren't being issued manually step-by-step, but like I say I haven't given it a proper look and thought I'd ask for the opinions of others.
Edit: above link didn't show up in my browser for some reason so I removed the url tags from it. Sorry for inconvenience.
Make more of less, that way you won't make less of more!
Originally posted by MaxodeX

That bend command is super limited compared to $DD, and it doesn't "blend" into the next note, it plays it separately, which is kinda missing the point of bending in the first place. I still insist you use $DD instead.


I definitely see where you're coming from regarding limitations of the & command. But when I first started playing with bends I used & in combination with f4 $01 and it worked well, especially after a few find/replace definitions to give things friendlier aliases. I haven't played with $dd enough to see if using it would be more efficient. I actually wonder how other people do bends. I wonder if they do what I've said and use $f4 $01 along with & or if they use $dd. My hunch is the latter but I don't know.
Make more of less, that way you won't make less of more!
You can do it one of two ways:
The first way is to call up an instrument on a channel like you would any other time, such as @0. Then use the n command to make that instrument use noise.
Code
@0 n1F

This calls up instrument 0 and then tells that instrument to play noise at frequency 1F (numbers are in hexadecimal and go from 00 to 1F with higher numbers representing higher frequency noise). The instrument's initial settings like volume envelope are still preserved. From there, you can put notes on the channel like you would with any other instrument. Only difference here is that with noise, all notes sound the same. To change the noise pitch you can use another n command, and to go back to using a sample, simply call another instrument. You can also call the same instrument which you previously put noise on to restore it back to its initial settings.

The second way to do noise is to actually make an instrument which uses noise by default. This is handy if you're going to be using noise a lot while simultaneously doing a lot of instrument switching. Basically when creating a new instrument, instead of putting in a sample name or a previous instrument number to start, you simply use the n command like above. After that come normal instrument setup parameters. For example:
Code
n1F $Df $78 $7f $01 $00

That was copied strait from a port I'm working on so it'd better work :) Also the last two bytes, the tuning multiplier and submultiplier afaik don't have any effect when using the noise.
I also encourage you to look at the readme, as it details this and other related topics more. If you need more help with things, let us know.
Make more of less, that way you won't make less of more!
Hmm. I tried volume fades once for a similar purpose but they sounded a bit glitchy and did weird things to the panning. Volume fades and ADSR seem to work very differently, afaik ADSR uses gain which is more meant to do those kinds of things.

I'm a little confused about using remote codes to do gain fades. I know what the remote codes do, I just wouldn't know what to put in them. So far all I can figure out is use ADSR for the first part, where it fades down to a lower level. Getting back up is the hard part. When inserting another ADSR at the appropriate time it didn't seem to do anything. I don't know how else to do gain fades other than insert $ed $80 to set the gain at really fast intervals, but that sounds like something that would bloat a lot, and not be very intuitive at all to either set up or use. I'm very tempted to look at the MML that did this, if I can wade through it to find the part I'm looking for. It sounded smoother than anything I did.
Make more of less, that way you won't make less of more!
  • Pages:
  • 1
  • 2
  • 3
  • 4
  • 15
  • 16