ChanServ changed the topic of ##yamahasynths to: Channel dedicated to questions and discussion of Yamaha FM Synthesizer internals and corresponding REing. Discussion of synthesis methods similar to the Yamaha line of chips, Sound Blasters + clones, PCM chips like RF5C68, and CD theory of operation are also on-topic. Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynths
<cr1901_modern>
does vgmrips accept single tracks?
<whitequark>
who the hell requests 192 kbps output?!
<whitequark>
Windows 10, apparently
<cr1901_modern>
isn't that DVD quality audio?
<whitequark>
errrr
<whitequark>
192 khz output
<whitequark>
like 96 is excessive
<whitequark>
192 khz is absurd
<whitequark>
why are you trying to accurately reproduce ultrasound
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
<cr1901_modern>
>why are you trying to accurately reproduce ultrasound? Good question I don't have the answer to. 44100 is in fact reasonable to avoid bullshit w/ filtering that happens if you sample too close to Nyquist
<cr1901_modern>
I wonder if 192khz is audiophile snake oil
<fseidel>
From the people who brought you "directional cat5 cables," it's "192KHz audio"
<Wohali>
i've only ever found it useful for studio masters where you know you're going to get downsampled a bunch, so you pack that shit in up front to guard against it
l_oliveira has quit [Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805]]
<TD-Linux>
"yes"
<TD-Linux>
if you think that's bad, you should check out DSD
<fseidel>
and who could forget "bluespec CD"
<fseidel>
"better CD audio except it's a normal CD but we used a blue laser to record it"
<Wohali>
heheh
cr1901_modern1 has joined ##yamahasynths
cr1901_modern has quit [Ping timeout: 246 seconds]
andlabs has quit [Ping timeout: 272 seconds]
_whitelogger has joined ##yamahasynths
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined ##yamahasynths
ahihi has quit [Read error: Connection reset by peer]
Patater has quit [Remote host closed the connection]
Patater has joined ##yamahasynths
ahihi has joined ##yamahasynths
<cr1901_modern>
whitequark (this is actually on topic, I swear): What daemon do you use for your library, and can it be run w/o any container crap (my VPS runs FreeBSD)?
<cr1901_modern>
your document* library
<cr1901_modern>
and random files you upload
<cr1901_modern>
I have a cute idea for an IRC bot...
<cr1901_modern>
Doesn't need to run on Glasgow, but the idea is... you can set up an IRC string w/ FM instrument parameters, and a real chip will create a sound byte which you can then listen to. Might be useful if anyone in here wants to try making instruments and discuss them
<cr1901_modern>
Because- Making. Instruments. Is. Hard. T_T
<ValleyBell>
cr1901_modern: We accept packs with only a single track, but only if the game has just one song.
<ValleyBell>
i.e. we want to whole game OST
<ValleyBell>
(or whatever part of it can be logged with VGM)
<cr1901_modern>
I see
<ValleyBell>
It still needs to be a proper "pack" (with .m3u playlist, .txt file and .png screenshot)
<ValleyBell>
btw: There IS an S98 -> VGM converter. It's somewhere in the "General VGM Discussion" subforum on vgmrips.
<ValleyBell>
(aaand now back to work ...)
cr1901_modern1 has joined ##yamahasynths
cr1901_modern has quit [Disconnected by services]
<cr1901_modern1>
WHY does the nick command no longer work in pidgin?! Gah...
cr1901_modern1 has quit [Client Quit]
cr1901_modern has joined ##yamahasynths
Foone_ has joined ##yamahasynths
Foone has quit [Ping timeout: 255 seconds]
l_oliveira has joined ##yamahasynths
<ylamarre>
whitequark: You're not trying to sample ultrasound, you're trying to avoid ultrasound aliased in audible gap...
<ylamarre>
If you're sampling a microphone that does pickup ultrasound and/or is just noisy, it makes tons of sense!
<cr1901_modern>
Ewww... but make sense
<ylamarre>
If say, you keep sampling rate at 44kHz, anything above 22kHz will be in audible range.
<Sarayan>
you're supposed to analog lowpass before sampling
<Sarayan>
ylmarre: about 27-30K actually :-)
<ylamarre>
Sarayan: Ok, but you wanna keep everything below say 20K... which gives you a range between 20k to 24k... which is pretty narrow.
<ylamarre>
Your analog filter has to be pretty much perfect, no noisem no nothing.
<Sarayan>
ylmarre: human audiotion rarely hits over 15K or so, worse if you're older
<Sarayan>
audition
<ylamarre>
Agreed, but some do
<l_oliveira>
morning guys
<ylamarre>
And if you are mastering, down sampling, resample, mixing...
<Sarayan>
in any case, a normal mic won't pick anything over 20K, but electric noise exists
<cr1901_modern>
20k to 24k isn't a lowpass...
<cr1901_modern>
it's a bandstop
<Sarayan>
cr1901: He's saying you want your -3dB at 20K, and -afucklotofdb at 24K
<ylamarre>
It's easier to sample at higher frequencies, have cheaper analog filter, and process in digital space.
<cr1901_modern>
oh oops
<ylamarre>
Sarayan: Exactly, thanks for the precision
<Sarayan>
so that wrapping down doesn't give you hearable stuff
<Sarayan>
ylmarre: sure
<Sarayan>
hence the 96 and 192KHz
<cr1901_modern>
what do production-quality analog filters look like nowadays?
<cr1901_modern>
obviously not an RC network :)
<ylamarre>
But yeah, I had the exact same comment in an engineering signal processing class, in which case the professor was kind enough to give this explanation I'm giving back
<Sarayan>
I'm tempted to do analog simulation at 192KHz and downsample, that should give a good temporal positioning for triggers
<Sarayan>
it makes filters more expensive and harder to design though
<Sarayan>
the filter shape breaks down when the cutoff frequency of the analog filter you're simulating is too far from niquist
<ylamarre>
Analog filtering is hard, also remember that your ADC also picks up noise...
<Sarayan>
analog filtering is a little harder when you have some room and don't need to brickwall though
<Sarayan>
hence high freq and digital postprocess
<Sarayan>
s/harder/simpler/
<Sarayan>
geee
<ylamarre>
Also, to have such a steep filter, you have to make higher order filter which in turn gives you more dephasing (or whatever it's called in english)
<ylamarre>
and definitely not flat in the low frequency band.
<cr1901_modern>
>the filter shape breaks down when the cutoff frequency of the analog filter you're simulating is too far from niquist
<cr1901_modern>
This applies to digital too IME
<cr1901_modern>
try making a 20-40Hz passband for an equalizer at 44100 sample rate
<cr1901_modern>
hard mode: FIR, order less than 100
<Sarayan>
cr1901: I was talking about digital
<cr1901_modern>
oh parse fail
<cr1901_modern>
yes I agree. Making an equalizer w/ good digital filters stinks
<Sarayan>
yamaha does that with 5-point iir filters :-)
<cr1901_modern>
Sarayan: open up scipy, and design a chebyshev type 1 with passband between 0.001 and 0.002 normalized frequency units. And the first sidelobe's maximum amplitudes are -20db.
<cr1901_modern>
Have fun
<cr1901_modern>
with the ridiculous orders you get
<Sarayan>
cr1901: I'm just saying what yamaha does you know :-)
<Sarayan>
their eq is five consecutive order-5 iir filters
<cr1901_modern>
what's the freq range for each filter
<Sarayan>
one per band, obviously
<cr1901_modern>
>And the first sidelobe's maximum amplitudes are -20db.
<cr1901_modern>
Type 1 has passband ripple, not stopband ripple
<cr1901_modern>
shows how much I know
<whitequark>
cr1901_modern: re library: nextcloud
<whitequark>
i don't do containers, it's just php and mysql
<whitequark>
cr1901_modern: re irc bot: sure
<cr1901_modern>
cr1901.push("ircbot")
<cr1901_modern>
Finally my browser tabs are manageable
andlabs has joined ##yamahasynths
<cr1901_modern>
ValleyBell: If I want to embed an FM synth core into an application, and just run a small program to do writes and reads to said core, is libvgm appropriate at this point (or still to the vgmplay repo)?
<ValleyBell>
(FM cores are mostly from MAME, but with a C-style API)
<ValleyBell>
And just for reference: "write" in the software FM cores means "execute the write immediately with a cost of 0 time" (with exception of NukedOPN2, which has a command queue)
<cr1901_modern>
Idk if I'd call this a queue, but in a software core I write, a write would go into a staging area to mimic the time it takes for dynamic/static cells to latch the value
<cr1901_modern>
and then the pipeline would eventually pick up the write to the correct register when the pipeline is properly aligned w/ the write port