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 > Bug Reports & Feature Requests > VRC7 request and another thing Owner: MovieMovies1 New post
Page 1 of 2 Sort: Goto Page: [1] [2] Next >>
VRC7 request and another thing Posted: 2013-02-15 19:10 Reply | Quote
MovieMovies1

Avatar

Member for: 4373 days
Location: Norway
Status: Offline

#44546
May I request some things for the VRC7?

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.


Attachments:
vrc7_tuned.ftm (1 Kb)
Posted: 2013-02-15 21:09  (Last Edited: 2013-02-15 21:14) Reply | Quote
za909

Avatar

Member for: 3962 days
Location: Hungary
Status: Offline

#44549
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?

_______________________
Rectangular sh*t ©
Attachments:
vrc7_lpfiltermaybe.ftm (1 Kb)
Posted: 2013-02-15 21:13 Reply | Quote
jrlepage
Moderator

Avatar

Member for: 4983 days
Location: Canada
Status: Offline

#44551
More VRC7 requests:

-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.
Posted: 2013-02-15 21:18  (Last Edited: 2013-02-16 11:07) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#44553
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.

Posted: 2013-02-15 21:53  (Last Edited: 2013-02-15 22:00) Reply | Quote
MovieMovies1

Avatar

Member for: 4373 days
Location: Norway
Status: Offline

#44559
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.

Posted: 2013-02-16 00:31  (Last Edited: 2013-02-16 00:31) Reply | Quote
za909

Avatar

Member for: 3962 days
Location: Hungary
Status: Offline

#44569
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" )

_______________________
Rectangular sh*t ©
Posted: 2013-02-16 09:50  (Last Edited: 2013-02-16 11:34) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#44583
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.)

Posted: 2013-02-16 11:05 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#44585
[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 table in ChannelsVRC7.cpp:

const int FREQ_TABLE[] = {172, 181, 192, 204, 216, 229, 242, 257, 272, 288, 305, 323};

Should actually be:

const int FREQ_TABLE[] = {172, 183, 194, 205, 217, 230, 244, 258, 274, 290, 307, 325};

(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:

value = 36 * 2^(20 - octave) / CPU

Posted: 2013-02-16 11:19 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#44586
[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.)

Posted: 2013-02-16 12:16 Reply | Quote
MovieMovies1

Avatar

Member for: 4373 days
Location: Norway
Status: Offline

#44587
[quote=rainwarrior] The built in ADSR is pretty capable[/quote]

There are things that the ADSR can't do, for example volume envelopes like this one:
[11 10 9 8 7 6 5 4 8 7 6 5 4 3 2 1 5 4 4 3 3 2 2 1 3 3 2 2 2 1 1 1 0]


And I obviously can't change the ADSR for the preset patches, so that's another good reason to have volume envelopes.

Posted: 2013-02-16 17:44 Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#44591
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.


Attachments:
three_echoes.ftm (1 Kb)
Posted: 2013-02-16 18:10 Reply | Quote
DjJizzer5

Avatar

Member for: 3937 days
Status: Offline

#44592
[quote=jrlepage]-Vxx to select patch[/quote]

ALL MY YES

Posted: 2013-02-18 20:43 Reply | Quote
jsr
Administrator

Avatar

Member for: 5925 days
Location: Sweden
Status: Offline

#44663
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.

_______________________
Programmer and developer
Posted: 2013-02-20 20:02  (Last Edited: 2013-02-20 21:37) Reply | Quote
rainwarrior

Avatar

Member for: 4150 days
Location: Canada
Status: Offline

#44701
Suggestions for VRC7 instrument editor:

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.)

Posted: 2013-02-21 01:09 Reply | Quote
jsr
Administrator

Avatar

Member for: 5925 days
Location: Sweden
Status: Offline

#44707
Yeah names would be great, I never came up new ones with any myself so if you want to add these then that would be nice.

I can add the new default patch settings and I'll check how to improve patch navigation.

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