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
The request is that volume, arpeggio and pitch envelopes should be added to the VRC7. It will make it possible to do some variants of the preset instruments not possible without making songs at speed 1.
The other thing:
The current pitch table detunes slightly when going from C to B. This shouldn't be too hard to fix, since the pitch table is the same for all octaves. I attached an FTM where Pxx is used to make the pitch table more correct.
Yeah, the envelopes would be pretty cool to have.
There also seems to be a bug with the volume for VRC7. When I set the volume to 0, it still makes sound.
EDIT: And a question. Why does lowering the carrier volume in the patch setting only work for higher pitches? Is there a Low-pass filter in the VRC7 and that's what I've bumped into?
-Vxx to select patch
-Portamento effect that retriggers the note
_______________________
Follow me on [url=https://twitter.com/jrlepage2a03]Twitter.
I record (some) NSFs on hardware. Feel free to [url=http://www.famitracker.com/forum/posts.php?id=3633]request a hardware render.
za909: that's not a bug. The VRC7 has 16 volume settings, and they're logarithmic, i.e. it's an exponential curve that tapers toward 0 but will never get there.
Though because of that curve, volume envelopes will probably not be very useful for VRC7 (the jump is steep between levels). Pitch and arpeggio macros would be cool though.
[b]EDIT: I remembered incorrectly, the VRC7 does not have its pitches generated automatically, and the hand-coded values appear incorrect, see my post below. The original incorrect paragraph follows.[/b]
As for VRC7 being detuned... if you're comparing it against the 2A03, you must know that the 2A03 doesn't have accurate tuning. The tuning tables for all instruments are generated procedurally. There is no way for them to be detuned from their unless the formula used to generate them was wrong. Really the problem is that many expansions (VRC6 saw, VRC7, 5B, N163, FDS) have frequency controls that cannot match 1:1 with the 2A03's. Where you see a difference between 2A03 in VRC7 it is simply due to rounding errors; both are still matched as best they can to a standard A440 scale.
Edit: za909, what do you mean by "carrier volume"? Your example behaves oddly, and that might be a bug, but I don't know exactly what your question is.
I know there is a difference between the frequency controls of the 2A03 and the VRC7.
And yes, I did compare it against the 2A03 first, but I also compared it with FL Studio, and I hear much more detuning with the VRC7 than the 2A03.
And why wouldn't the volume envelopes be useful? The volume curve of the 5B has about the same steepness as the VRC7's (Altough not logarithmic), so I don't see a problem with having volume envelopes for the VRC7.
Well by carrier volume I meant...carrier volume. That simple volume level setting of the carrier and the modulator WITHIN the instrument patch. (FT simply calls the them "Level" )
The carrier doesn't have a volume setting in the patch (the volume of the carrier is the one in the volume column in the tracker pattern).
EDIT: Ah, I see what you are asking now. I was confused because I couldn't tell what the 2xx effect was supposed to be doing.
The "level" in the modulator and carrier is not an overall level, it is the level of key scaling for the patch. It makes the volume of that operator lower at higher pitches, and the more you turn it up the scaling level the more it will decrease the volume at high pitches.
So, yes you can use it on the modulator to sort of "lowpass filter" your sound in the high ranges, or on the carrier just to make it quieter.
It's kind of weird that Famitracker just says "level" on these parameters. Yamaha called it "key scale level". (There's more info on the VRC7 [a href="http://wiki.nesdev.com/w/index.php/VRC7_audio"]here, if you want to read about it.)
[quote=moviemovies1]I know there is a difference between the frequency controls of the 2A03 and the VRC7.
And yes, I did compare it against the 2A03 first, but I also compared it with FL Studio, and I hear much more detuning with the VRC7 than the 2A03.[/quote]
Ah! You're right about the tuning. I just checked and the code for the VRC7 tuning tables was not where I thought it was! Unlike all the other chips, these are not being generated at runtime, they are a hand entered table. I put the correct formulas in a spreadsheet, and the correct register values should actually be:
(The calculated values to an extra decimal place, in case you want to round differently: 172.4, 182.7, 193.6, 205.1, 217.3, 230.2, 243.9, 258.4, 273.7, 290.0, 307.3, 325.5)
I don't know where the values currently being used come from, but they are not correct for A440. They're not even off in a consistent way-- kind of strange. The formula that should be used is:
[quote=moviemovies1]And why wouldn't the volume envelopes be useful? The volume curve of the 5B has about the same steepness as the VRC7's (Altough not logarithmic), so I don't see a problem with having volume envelopes for the VRC7.[/quote]
I don't think volume envelopes would be very useful for VRC7 because I've tried them via speed 1, and I found the results mostly unsatisfying. I didn't say useless, just not [i]very[/i] useful IMO. The built in ADSR is pretty capable, so the cases where I'd want to use a macro instead (esp. given how they sound) are few.
And FYI the 5B is also logarithmic, actually, and as a result macro envelopes for it have a lot louder switching-pop noise to them, compared to the 2A03/MMC5/VRC6. This was probably the motivation for doubling the resolution of the envelopes on the YM2149F as opposed to the AY-3-8910. (Sadly this extra bit of resolution is not available via the volume register, so it can't be used to assist macros.)
Yeah, I know what you're saying, all I was trying to say is every time I've ever considered/tried using F01 for VRC7, I've decided against it any settled on a different technique.
For example, here's the envelope you listed, and two ways of doing something similar that I made really quickly. Not exactly the same, but in the end I'd probably go with the second version instead of a volume macro. In this case, part of it is because of the resulting poppy/buzzy sound, and inherent sharpness to the volume envelope due to each step being 3db, but the other thing is for an echo effect I'd normally prefer a retrigger instead of adjusting the envelope.
These things aren't equivalent, and yes there are lots of things you can do with a macro that you can't otherwise. I called it not very useful because whenever I've considered it I've always found an alternative I liked better.
Anyhow, please don't think I'm trying to argue that it shouldn't have a volume macro feature. It was just my opinion of its utility. I'd very much like pitch and arpeggio macros, and it would be pretty natural to implement volume macros at the same time, I think. I just really doubt I'd use volume macros much, if at all.
Arpeggio envelopes might be added sometime, pitch is complicated because of the separate pitch and octave control. Volume envelopes was omitted because there is ADSR instead, and the fact that steep volume changes doesn't work well on waves with few overtones.
The tuning values comes from the YM2413 application manual, I assumed they were right and never checked for accuracy myself.
1. I would recommend the following patch for init of a new instrument:
$01 $21 $00 $00 $00 $F0 $00 $0F
The idea is that the new instrument should produce sound. This is a very minimal sound, a simple sine wave with sustain, fastest attack, fastest release on the carrier, and both mults at 1 (so we don't get an octave-down transpose).
2. Selecting a default patch can only be done through the mouse. It would be useful if I could click on the dropdown box once, and then use the cursor keys to cycle through them. Right now changing the patch takes two mouse seeks and two mouse clicks per patch I want to try. This really adds up when you want to check 10 of them. If keyboard input is unfeasible, an alternative could be a little +/- box next to the dropdown so you could switch patches with just one click.
3. Names on the default patches would help users remember them. I find that I don't remember them at all by number and have to go through them all each time I want to pick one. (This also would make suggesion 2 less important.)
Here are some names I came up with, loosely based on the YM2413 datasheet, but changing them where the name does not fit the tone.
1 Bell
2 Guitar
3 Piano
4 Flute
5 Clarinet
6 Rattling Bell
7 Trumpet
8 Reed Organ
9 Soft Bell
10 Xylophone
11 Vibraphone
12 Brass
13 Bass Guitar
14 Synthesizer
15 Chorus
(I already implemented 1 and 3 on my end and to try them, and I find them quite useful. They're very small changes, I can check them in if you like.)