Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29 FamiTracker
Login:
Menu:
Post: Author:
FamiTracker > General > FamiTracker Talk > Effects unique to MCK and FamiTracker Owner: Dafydd New post
Page 1 of 3 Sort: Goto Page: [1] [2] [3] Next >>
Effects unique to MCK and FamiTracker Posted: 2008-08-12 14:10  (Last Edited: 2008-08-12 23:02) Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1533
I started trying to learn MML/MCK/PPMCK because I was really curious about how the expansion chips work and I wanted to try to make an NSF that used one. Anyway, I noticed there are some differences between the effects available in FT and MCK.

There's no "note slide" (portamento) effect in MCK (at least not according to the documentation I've found) although you could make one yourself using the pitch effect, only slides require individual calculations for each interval, which means tons of work and you will most likely end up with notes being off key after an attempted slide.

Now... I'm wondering - what other differences are there between MCK and FamiTracker effects? And how does the note slide effect really work? Is it really just a pitch effect whose parameters are automatically calculated by FT based on the notes involved and the speed parameter using some mathematical formula which can not be used in MCK (meaning you would have to make an individual pitch program for each slide)?

Also, I remember reading a post on this forum about how MCK allowed you to cut notes at a certain percent of its actual length, allowing you to write non-legato triangle channel parts containing several different note lengths without changing instruments for each note length, but I don't seem to be able to find that post now...

Re: Vibrato Posted: 2008-08-12 15:08 Reply | Quote
Demick12

Avatar

Member for: 5075 days
Location: Buffalo, NY
Status: Offline

#1534
In the Help file in the Channel Effect section, it shows that there is indeed a vibrato function (which is channel effect 4xy, x for rate and y for amount). I've used it in my current project and it works okay. I do have to say, though, it's not as perfect as I would like it. The pitch seems to go higher than the actual base pitch by a fraction of a half-step, but it's still vibrato. I will post my project on the "show me your stuff" post so you'll know what I mean.

N E ways, I hope this helps you out...

btw, are you using 2.7?

_______________________
You now process Dracula's Rib. Good luck processing it...
Posted: 2008-08-12 22:59  (Last Edited: 2008-08-12 23:02) Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1536
Oops, my bad. Yeah, there's a vibrato function in FT too, but I didn't notice since I always use the pitch effect in the instrument presets instead. Edited the first post in order to look less stupid.

Posted: 2008-08-12 23:36 Reply | Quote
Demick12

Avatar

Member for: 5075 days
Location: Buffalo, NY
Status: Offline

#1537
No worries, Dafydd. ^-^7 Glad I could be of help, and besides - tracking could be quite daunting at times...

Happy Tracking! ^-^

_______________________
You now process Dracula's Rib. Good luck processing it...
Posted: 2008-08-13 01:11  (Last Edited: 2008-08-14 01:06) Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1538
Still wondering about the note slide effect though. Any good way of imitating that in MML/MCK? And what was that triangle channel note length percentage I mentioned earlier?

Also, I noticed the lowest noise channel note is a lot lower in FT than it is in MCK - you need to pick the lowest note AND use a pitch effect to get a pitch as low in MCK. Weird.

And, after converting my NSF, containing a portamento triangle bassline, to MIDI using NSF2MIDI, I wonder if I understand the portamento function or not. In the midi, the bassline is made up of hundreds of very short notes following each other. The pitch effect isn't used at all, and the slide effect is in fact created using notes on all keys between the two notes in the interval. No wonder the filesize is so large! I need to run a few experiments to verify this.

EDIT: Oddly enough, the many short notes of the triangle channel seem to be there regardless of whether the portamento effect is used or not! This also means that the nsf's size is not really affected by this effect, since the number of notes is always the same. Also, er, NSF2MIDI seems to be pretty unreliable, judging from the result I got from trying the exact same thing on the square channels. One final test though - I'm gonna try a "real" NSF from Mega Man and see what the triangle channel looks like there.

EDIT 2: Yep, the triangle channel in mega man looks fine. I guess it must be that the music code that FT generates and the one in Mega Man is different and that NSF2MIDI can't properly decode both the same way - or, FT's triangle channel code really does consist of thousands of short notes. I'd be interested in knowing the answer.

Posted: 2008-08-22 07:18 Reply | Quote
Jarhmander

Avatar

Member for: 5900 days
Status: Offline

#1564
[quote=Dafydd]Still wondering about the note slide effect though. Any good way of imitating that in MML/MCK?[/quote]

Be good in math. Then know NES hardware correctly. Then understand the nature of sound wave. Then lose your life in MML doing pitch slide using pitch macro. I'm sorry but it is the only way out. Except if you come out with a brilliant solution, I can't find other way to do this.

Posted: 2008-08-22 15:53 Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1565
Uh huh... FamiTracker does it, so it should be possible to write a simple program that calculates appropriate pitch macros. Unless FT uses NES APU instructions that MCK doesn't. As far as I know, there's no legato/portamento functionality built into the NES (and if there was I'm sure it would have been used more frequently in the "real" soundtracks). If FamiTracker can do it, I can...

Posted: 2008-08-22 19:33 Reply | Quote
Jarhmander

Avatar

Member for: 5900 days
Status: Offline

#1567
The main difference is that FT calculate slide live, something that is not implemented into the code of PPMCK, so you need pre-calculated pitch macro. I can explain it alot more but when I wanted to post that explication the page expired and i lost what I wrote

RE: Effects unique to MCK and FamiTracker Posted: 2008-08-23 11:10 Reply | Quote
furrykef

Avatar

Member for: 5189 days
Status: Offline

#1571
[quote=Dafydd]Also, I remember reading a post on this forum about how MCK allowed you to cut notes at a certain percent of its actual length, allowing you to write non-legato triangle channel parts containing several different note lengths without changing instruments for each note length, but I don't seem to be able to find that post now...[/quote]

I remember saying this, though I probably wasn't the only one. It's been ages since I've even posted here... anyway, the trick also works for all non-DPCM channels. I just found it most useful for the triangle channel. The idea is this: you set up two instruments for the triangle. Let's say 00 is no envelope (resulting in legato notes) and 01 has a volume envelope of, say, "15 15 15 15 15 15 15 0", which might be good for an eighth note. Now here's what you do... suppose you want to start your pattern with a whole note on row 00 and another note on row 10, but you want to cut the note short just before row 10. So on row 0 you put "C-3 00", then on row 0E you put "C-3 01", switching from your legato note to an eighth note, causing it to cut off after playing just a bit longer -- think of it as a note-off command. To change the length of the note, all you do is change where you put the "C-3 01". And, of course, if you actually want an eighth note, you can simply use "C-3 01" without any preceding "C-3 00".

The technique is illustrated in the triangle channel of [url=http://famitracker.shoodot.net/forum/attachments/1321/mutecity.ftm]my old Mute City FTM, especially in the intro.

- Kef


Posted: 2008-08-26 00:01  (Last Edited: 2008-08-26 00:02) Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1575
Hm. That's not how I remember it, but thanks for clarifying.

@Jahrmander - even if FT calculates the slide live, it still has to calculate a pitch macro when it exports the song into an NSF, right?

Posted: 2008-08-28 04:44 Reply | Quote
Jarhmander

Avatar

Member for: 5900 days
Status: Offline

#1580
[quote=Dafydd]Hm. That's not how I remember it, but thanks for clarifying.

@Jahrmander - even if FT calculates the slide live, it still has to calculate a pitch macro when it exports the song into an NSF, right?[/quote]

Not at all. Since period registers are read-only, FT's player (like many if not any) performs double-buffering on these, so each new period register values are saved into memory so it could read and possibly modify these, then when done it copies those value into the actual period register (to get rid of the pop that occurs when updating the byte containing the MSB of both square channels' period registers, it updates these only when it is needed). So when portamento is on, FT's keeps the new target note in another buffer, and add or substract the parameter to the buffered period register each frames until it reached the targed note. So as you can see, it is not like a macro, it is done while playing any note, thus saving space over the macro method.

Posted: 2008-08-30 20:48  (Last Edited: 2008-08-31 09:39) Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1593
EDIT: Ok, but... the NES can't actually do what you just said FT's player does, right? I mean, to check if the note currently playing has higher/lower pitch than the targeted one? I doubt there's anything the NES can do that you can't do using MML, and since I've never heard a NES soundtrack using portamento, I doubt the NES is capable of doing them. Regardless, it should be possible to make a program that calculates a pitch macro so you can do something similar using MML. I just haven't given it a try yet (I've had too much else to do).

Posted: 2008-09-02 02:43  (Last Edited: 2008-09-02 02:46) Reply | Quote
furrykef

Avatar

Member for: 5189 days
Status: Offline

#1595
[quote=Dafydd]Ok, but... the NES can't actually do what you just said FT's player does, right? I mean, to check if the note currently playing has higher/lower pitch than the targeted one?[/quote]

I think what Jahrmander is saying is that FT's NSF driver is smart enough to be able to figure out what the channel's current pitch is without having to ask the hardware. After all, it's a simple matter of mathematics.

[quote=Dafydd]I doubt there's anything the NES can do that you can't do using MML[/quote]

A rather questionable assumption, in my opinion.

[quote=Dafydd]and since I've never heard a NES soundtrack using portamento, I doubt the NES is capable of doing them[/quote]

I don't understand what you mean by this, since you're already aware that you can do portamento in FT...

I see elsewhere on the forum that you're already familiar with 6502 ASM and you're aware the NSF driver code is available. Why don't you just read it to find out how it accomplishes portamento?

- Kef


Posted: 2008-09-02 16:16  (Last Edited: 2008-09-02 16:17) Reply | Quote
Dafydd

Avatar

Member for: 5304 days
Location: Uppsala, Sweden
Status: Offline

#1598
Because I don't understand any of the NSF code. I know what it looks like but don't understand what it does.

And by "and since I've never heard a NES soundtrack using portamento, I doubt the NES is capable of doing them" I mean I've never heard a commercial, real, soundtrack that does this. Obviously, you can make it happen using FT, but you can't using MML, and so I'm debating whether the portamento effect is calculated by FT or by the NES itself. jsr would be able to answer this question in a snap but he's never around.

Posted: 2008-09-02 21:23 Reply | Quote
jsr
Administrator

Avatar

Member for: 5924 days
Location: Sweden
Status: Offline

#1599
Check some of Tim Follin's tracks (for example) if you want to hear commercial game tracks with portamento.

Only reason MML doesn't support it is because it's not implemented in the code, the NES is perfectly capable of it. I haven't seen the MML source but i'm sure it can be added without too much effort.

_______________________
Programmer and developer
Page 1 of 3 Sort: Goto Page: [1] [2] [3] Next >>