Language…
6 users online: 15Tails, its_4life, OnlySpaghettiCode,  patcdr, schema_tuna, ShadowBoxer_Sandshrew - Guests: 99 - Bots: 78
Users: 68,449 (2,269 active)
Latest user: Liamo82

Commands SPC (Advanced)! Help!

How can I make chords in a port? If yes, how?

And also what techniques can I use with the SPC commands?
Kind like bands, vibratos, etc.

All possible!

Thanks!!!
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!
Every command is explained in the readme.html included, but for reference anyways, here's a few of them:
  • The $DD command makes pitch bends. $DD $XX $YY $ZZ
    -XX is for delay.
    -YY is for speed.
    -ZZ is the note to bend to. You can actually write this one as a note instead of the corresponding hex value.
    For example, $DD $06 $0C d or $DD $06 $0C >a. The readme.html includes a table with all the notes and their corresponding HEX value anyways.
  • The $F4 $01 activates legato. Basically this makes the notes have no break between them at all, kind of like making a really fast bend (it is in fact treated as a bend). Writing $F4 $01 toggles it ON (if it's OFF) and viceversa.
  • $E8 $XX $YY and $DC $XX $YY are for volume and panning fade respectively.
    -XX is for speed.
    -YY is for final value.
Like I said though, the readme.html includes absolutely everything, so I do recommend checking that out. :P
LINKS Twitter | YouTube | SoundCloud | Fortaleza Reznor
to hear birds and see none.
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!
He he thanks!

Hey guys, the "bends" is this command: &
Originally posted by Daniel133
He he thanks!

Hey guys, the "bends" is this command: &

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.
LINKS Twitter | YouTube | SoundCloud | Fortaleza Reznor
to hear birds and see none.
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!
Originally posted by musicalman
Really good advice.
I was wondering the best way to do sforzandos,

Two methods I can think about is GAIN and/or Volume Fade.
GAIN you could just manipulate the (e.g remote code) envelope so it's like a sforzando.
With the latter you can use ADSR for the first part and then Volume Fade for the 2nd crescendo (set the channel volume louder than it currently is.)

I never tried the latter but know GAIN will work.
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!
Originally posted by musicalman
I tried volume fades once for a similar purpose but they sounded a bit glitchy.

Volume Fade shouldn't affect the envelope volume (ENVX I think) but only channel volume. I never used it so my assumption may be wrong.

Originally posted by musicalman
I know what the remote codes do, I just wouldn't know what to put in them.

Well your start would be RC type 1, decrescendo type 1/2, type 2 for last crescendo and type 3 for release. You can use direct gain in between for sustain, however from my experience GAIN can be weird. If this doesn't help then I'll try doing it myself.
Wow... I now see what you were talking about. I just looked at the mml. It took me about 20 minutes of study of one line alone but I eventually figured out what is going on. It indeed uses gain fades which I had completely forgotten about, until I figured out how they work and then vaguely remembered reading about them on some article about the SPC. I'll explain for the benefit of those who, like me, didn't see it.

Basically when you set gain,, either with $ed $80 or in an instrument, the gain value can have several meanings depending on what range it's in. If the gain is set from $00 to $7f it is treated as a direct gain value i.e. $00 is silent, $7f is full. If it is set from $80 to $ff a gain fade is applied, which fades the current gain to full or silence, depending on whether you are using an increase or decrease fade.

Going from $80 to $9f uses the first decrease fade type, not sure the shapes of the fades right now, but it seems to be the most abrupt of the two. As you probably guessed, the higher the number, the faster the fade. Starting at $a0 switches to the other decrease type which is more gradual. Its speed goes up to $bf. The pattern continues for the increase fade types. I hope this make-shift explanation makes some sort of sense.

To illustrate how a sforzando might work, I could do the following. This isn't optimized, it just shows how you might set it up. Remote codes would make this more practical.

Code
#amk 2
t45 ?

#0 l4 @4
$ed $19 $20 c ;initial accent and diminuendo
$ed $80 $c7 ^ ;gain fade for the swell
$ed $80 $bb ^2 ;another gain fade for release, though straight-up ADSR probably could've worked too

Hope this helps somebody.
Make more of less, that way you won't make less of more!
This thread helps show how to use GAIN, done by ggamer. I use the SPC700 Reference quite a bit which also has information regarding GAIN.
Originally posted by musicalman

Code
code

Never thought of using GAIN to envelope like that actually. *Not sure if you can use ADSR as release unless you rekeyed the note.
Just in case let's take your example to a remote code...

Code
(!10)[$ED $19 $20] ; Same as your ADSR, initial value so to speak.
(!11)[$ED $80 $E9] ; Some value, attack
(!12)[$ED $80 $B4] ; Some value, release
"sfz1 = (!10,-1)" ; Replacement for ADSR
"sfz2 = (!11, 1,4)" ; Attack
"sfz3 = (!12, 3)" ; Release
"cclear = (!0,0)" ; Stops all remote codes on channel
;In your example we have c4^4^2 but for the remote code 3 we need a key off, they can be invoked by rests.
#0
_music..
..
sfz1 sfz2 sfz3
c2r2 ; Our note to apply "special effects" AKA dynamics~!
cclear; so subsequent notes aren't affected by our envelopes
_more music.
..

I didn't test it (and there are different ways to go about it) but whether you use them depends on the song and is up to you.
If you plan on doing something frequently or reusing stuff then I find it a good idea to RC. For special occasions perhaps not.

*Edit: You're correct and apparently I've also done that already. Don't know what my train of thought was. #fim{XD}
Thanks for that link. Most of what I know is from occasional reading and experimentation. Nothing hard and concrete.

Before I knew about gain fades I used ADSR for releasing so I know it works, though haven't tested it. When I did it, nothing had to be rekeyed. I haven't tested it here though. When I used ADSR for releases, only the release portion of that envelope would take effect, which I think makes sense. I suspect using a gain fade for a release is more practical though. I'll study your example in a bit,.
Make more of less, that way you won't make less of more!
Interesting the post, but I ask:

And the power chords? How I can use them and and pick up using drive?

And slides what the command is and how it works and how to apply it?

...