_whitelogger has joined ##yamahasynths
<Lord_Nightmare> ergh, i'm not sure this is worth it, the total cost plus shipping may end up ebing like $60 anyway
<cr1901_modern> right I have to change the topic
<whitequark> yep
<cr1901_modern> and I forget how to get ops
<whitequark> /msg chanserv op ##yamahasynths
<whitequark> or just /msg chanserv topicappend or something like it
<Lord_Nightmare> shipping it here will be $10, then shipping to russia i don't know how much that will cost
<whitequark> Lord_Nightmare: ship just the chips?
<whitequark> i have no real use for the rest of the synth
<Lord_Nightmare> hmm
<Lord_Nightmare> that would be less expensive
<whitequark> i cant even play any instrument lol
<whitequark> feel free to cannibalize it for something better
<whitequark> or replace the ym with an fpga :P
<whitequark> shipping chips to ru might be around $20 via ems? i'd just pay you this but i think the overhead on the payment would be higher than the amount transferred
<whitequark> if you can use trasnferwise that's not a problem
<whitequark> transferwise
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. Due to spam, only registered users can speak, sorry! | Channel logs: https://freenode.irclog.whitequark.org/~h~yamahasynt
<cr1901_modern> oops ETOOLONG
<Lord_Nightmare> got it.
<whitequark> i think you can remove the requirement for registered users btw
<whitequark> the spam wave subsided months ago
<cr1901_modern> Fair
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> mode for ##yamahasynths: +cnt
<cr1901_modern> I think that's right?
<cr1901_modern> Yes, this is the only IRC channel I run, why do you ask?
<whitequark> irc is confusing as hell
<cr1901_modern> I don't see any indication that only registered users can speak from the channel mode
<cr1901_modern> meaning I guess either balrog or I removed it at some point?
<whitequark> seems so
cr1901_test has joined ##yamahasynths
<cr1901_modern> <cr1901_test> Hi! Hello! I'm unregistered! Ban me!
<cr1901_modern> == Cannot send to nick/channel: ##yamahasynths
<cr1901_modern> Uh huh...
<whitequark> huh
<Lord_Nightmare> check for +R, +&r and something esle
<cr1901_modern> balrog: When you're awake, could you please look into this for me :)?
<cr1901_modern> What is "&r"?
ej5 has quit [Read error: Connection reset by peer]
<Lord_Nightmare> i think its an MLOCK mode
<Lord_Nightmare> not sure
<cr1901_test> Hi! Hello! I'm unregistered! Ban me!
<cr1901_modern> Okay there we go
<Lord_Nightmare> yes
<Lord_Nightmare> mode +q $~a is the one
<cr1901_modern> Command was: "/mode ##yamahasynths +/-q $~a"
<cr1901_modern> because why should it be obvious?
cr1901_test has quit [Quit: Page closed]
<Lord_Nightmare> it is mentioned on https://freenode.net/kb/answer/registration but NOT explicitly on https://freenode.net/kb/answer/channelmodes
<cr1901_modern> balrog: Nevermind I did it. What would've taken you 20 seconds too me 20 minutes :D
<cr1901_modern> ej5: Do you know of any current runs for Snoot Bopper PCBs?
<cr1901_modern> Aaaand he's not here
<Sarayan> oh nice, the 3812 has digital output
<cr1901_modern> indeed
<Sarayan> big chip, but hopefully a lot of copy/paste
<cr1901_modern> good quality image 10/10 ready for vectorizing
<Sarayan> hmmm
<cr1901_modern> poe's law?
<Sarayan> I guess the left rom is log(sin(x)) and the right 2**x, under it you have the rest of the loop, and under thta the accumulator and serial output
<mad> it takes 4 cyles per oscillator... I wonder if it does its steps of different parts of those 4 cycles?
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andlabs has joined ##yamahasynths
andlabs has quit [Client Quit]
andlabs has joined ##yamahasynths
andlabs has quit [Ping timeout: 245 seconds]
sixtysix has joined ##yamahasynths
sixtysix has quit [Remote host closed the connection]
sixtysix has joined ##yamahasynths
ylamarre has joined ##yamahasynths
sixtysix_ has joined ##yamahasynths
cnomad has joined ##yamahasynths
sixtysix has quit [Ping timeout: 268 seconds]
<cr1901_modern> wb cnomad
<cnomad> ty
<cnomad> i think i forgot to add this channel to my znc server, which made me leave it on d/c
<cnomad> how's it going?
<cr1901_modern> Yup, I get it :)
<cr1901_modern> Btw, I had to see this. So all of you have to see it too: https://twitter.com/TubeTimeUS/status/1098376066610024448
<cnomad> hah!
andlabs has joined ##yamahasynths
sixtysix__ has joined ##yamahasynths
sixtysix_ has quit [Ping timeout: 250 seconds]
<balrog> cnomad: ewww what?
<balrog> cr1901_modern: ^
<Ultrasauce> it should be a usb-c connector instead of each of the din pins
<balrog> cr1901_modern: why not just use usb-c and put the three pins of classic midi in alt mode?
<balrog> like, that's why alt mode exists in usb-c
<fseidel> wait is that real?
<fseidel> there's no way that can be the actual connector, right???
<Lord_Nightmare> mofh and sarayan (and mad, I guess): https://apps.dtic.mil/dtic/tr/fulltext/u2/a071386.pdf pdf page 45 (doc page 35) gos over the differences between the mc3418 analog cvsd, and the hd55532 digital cvsd
<Lord_Nightmare> the latter is much more limited, but all in one component
<Lord_Nightmare> the military concluded that the motorola part has better quality output, but most arcade games (and the victor 9000/sirius 1) use the harris part afaik
<Lord_Nightmare> afaik hc55516 has a fixed set of digital filter constants intended for 16khz clock, hc55532 has a fixed set of constants for 32khz or 64khz clock, and hc55564 has some sort of analog clock detector circuit which switches between the two filters depending on its clock rate (or so i THINK?)
<Lord_Nightmare> the pinout of all 3 parts is the same
<Lord_Nightmare> and 55564 completely replaced the other two parts afaik
<Lord_Nightmare> theres also an hc55536 part which is a 55564 with the encoder section either nonfunctional/failed testing or just absent on die
<Lord_Nightmare> given the simplicity of the circuit i assume its a failed testing 'binning' of 55564 parts
<Lord_Nightmare> possibly with the audio in pin not bonded
<Lord_Nightmare> i have samples of the mc3417 (x2), mc3418 (x3) and hc55564 (x2) here. i do not have any hc55532, hc55516 or hc55536 parts
<Lord_Nightmare> i'm going to send one of each for decap
<Lord_Nightmare> i also have an intact hc555?? part in a victor 9000 spare mb, but i'm not sending that anywhere (tbh i'm not even sure it works)
<Lord_Nightmare> the hc555xx parts are simple enough that i wonder if a silego greenpak is small enough to contain the whole cvsd circuit... i think a greenpak only has an 8 bit dac instead of 10 bits though
<mofh> huh, interesting. let me look at the pdf.
<Lord_Nightmare> http://pdf.datasheetcatalog.com/datasheets/15/84601_DS.pdf oh interesting, more clues!
<Lord_Nightmare> the syllabic filter output is 6 bits
<Lord_Nightmare> digital mod output is also 6 bits, so i assume its either sign magnitude or 2s complement (or i guess it could be unsigned with an offset+invert)
<Lord_Nightmare> there's so many little tantalizing hints left in each datasheet, and every one is different
<Lord_Nightmare> http://pdf.datasheetcatalog.com/datasheets/15/84601_DS.pdf implies the flaws of jeri's implementation is she's using a set of constants for the syllabic filter instead of using a filter with a 4ms constant (128 samples at 32khz or 64 samples at 16khz?) to create the 6 bit results
<Lord_Nightmare> my question is how the heck the 4ms filter is implemented. the dieshot of the hc55564 implies whatever it is, its not very complex, and if it involves multiplications it has to be very few bits long
<Lord_Nightmare> since it has 64 or 128 clocks to do all the multiplication, serially
<Sarayan> why would the multiplication be serial?
<Lord_Nightmare> there's no array on the metal layer, like the tms51xx/52xx have
<Lord_Nightmare> if there was a multiplication array, it could do it in parallel
<Sarayan> you don't need an array for an adder
<Lord_Nightmare> ... this is true...
<Lord_Nightmare> it could be an adder in a loop. I didn't think of that.
<Sarayan> yeah
<Sarayan> one add per bit on one side
<Lord_Nightmare> and that can be done in parallel (though it could be serial too, but more likely parallel)
<Sarayan> yup
<Lord_Nightmare> sc-01 does it serially
<Sarayan> sc-01 does what serially?
<Lord_Nightmare> interpolation
<Sarayan> ah yeah
<Lord_Nightmare> though in effect this could do that too, an interpolator is effectively a lowpass
<Sarayan> I'm not sure a filter can easily do a linear ramp
<Lord_Nightmare> so this could be doing the same sort of exponential interpolation that the sc-01 (and OPL/OPM/OPN attack phase) do, except between two fixed constants
<Lord_Nightmare> and 6 bits wide
<Sarayan> I'm not sure where you see a filter in the stuff though
<Sarayan> it's just up/down ramps
<Lord_Nightmare> it could even be linear interpolation for that matter, where the 4ms constant is just literally a delta counter
<Sarayan> or I really missed something
<Lord_Nightmare> the datasheet at http://uglyduck.vajn.icu/PDF/Harris/AN607.pdf says on page 7-33 "The filters are single pole recursive types using shift registers with feed-back."
<Lord_Nightmare> i guess technically an exponential or linear interpolator can be done using a shift register with feedback, but that implies that it is serial
<Sarayan> single-pole lowpass, that's one multiplication I think
<Sarayan> two at most
<Sarayan> but I think one
<Lord_Nightmare> it may be one, i know filt_rc in MAME is a single pole low or highpass IIR
<Sarayan> I thought lowpass is one, highpass is two
<Lord_Nightmare> while (samples--)
<Lord_Nightmare> {
<Lord_Nightmare> memory += ((*src++ - memory) * m_k) / 0x10000;
<Lord_Nightmare> *dst++ = memory;
<Lord_Nightmare> }
<Sarayan> yeah, that's single-pole lowpass
<Lord_Nightmare> since the constant is 4ms, it has 64 or 128 clocks to do the multiply using booth's algorithm, and for a 6 bit result i think it needs just num_bits*2 clocks, so 12
<Lord_Nightmare> unless the constants internal to the filter are more than 6 bits long and it just uses the top 6 bits for output
<Lord_Nightmare> which is possible
<Sarayan> any idea what the cutoff frequency is?
<Lord_Nightmare> it has a 'time constant of 4ms' at 32khz i think
<Lord_Nightmare> which i think means the cutoff is around 39.78873576hz if http://www.sengpielaudio.com/calculator-timeconstant.htm is doing the correct calculation for this exact problem which it might not be
<Lord_Nightmare> except the sample rate can't be 32khz
<Sarayan> Fc = 1/(2*pi*tau)
<Lord_Nightmare> it must be lower although it has to save every clock
<Lord_Nightmare> ... so it IS 32khz, but pipelined somehow?
<Lord_Nightmare> this is making my brain hurt
<Sarayan> why wouldn't it be 32KHz?
<Lord_Nightmare> the chip is only clocked at 32khz
<Lord_Nightmare> though it may have an on-chip PLL
<Lord_Nightmare> i don't know
<Lord_Nightmare> it can also be clocked at 16khz
<Sarayan> anyway, a 40Hz lowpass? *way* too low for voice
<Lord_Nightmare> no, its a lowpass for the vocal overload
<Lord_Nightmare> the actual digital signal isn't lowpassed
<Sarayan> what's the vocal overload?
<Lord_Nightmare> ok, you have the CVSD-encoded signal as input
<Sarayan> CVSD = fixed ramp angle, if 1 go up, if 0 go low, right?
<Lord_Nightmare> and sampled on (wait a moment)
<Lord_Nightmare> no, that would be 1-bit DPCM like the NES uses
<Lord_Nightmare> CVSD is more complex
<Sarayan> that's what figure 1 looks like to me
<Sarayan> and also the waves figure 7-10
<Lord_Nightmare> http://www.pinballpcb.com/datasheets/Harris55564-883.pdf (which has the micrograph of the chip) and http://pdf.datasheetcatalog.com/datasheets/70/84602_DS.pdf is a later datasheet with not great but better graphs and cutoff/db graphs
<Lord_Nightmare> the digital input signal is sampled on the rising edge of the digital clock signal
<Lord_Nightmare> https://datasheet.datasheetarchive.com/originals/scans/Scans-052/DSAIH00056185.pdf is the late 1970s hc55516/32 datasheet which has a little more info
<Sarayan> ok, that 40Hz is possible then, I understand now
<Lord_Nightmare> the 'overload' condition is if the most recently sampled bit (which controls the sign of the data sent to the signal estimate filter) and the previous two input bits are all '1,1,1' or '0,0,0' then the syllabic filter's input is a large value. in any other case of the 3 bits, the syllabic filter's input is a small value
<Sarayan> 7-33 puts the syllabic filter at 0.4ms
<Sarayan> so that would be 400Hz
<Lord_Nightmare> the datasheets are inconsistent about the time constant of the syllabic filter, i think because some assume a clock of 16khz and some of 32khz and the datasheets are not consistent about marking which one they're talking about
<Sarayan> I'm fried, bedtime for me, goodnight
<Lord_Nightmare> ok, ttul
<Lord_Nightmare> ttyl
<Lord_Nightmare> grr some datasheets say the syllabic filter is 4.0ms and some say 0.4ms, these datasheets suck
<Wohali> try both?
<Wohali> simple parameter to change in code if you need to
<Wohali> if you have the original chip co compare against...
<Wohali> to*
<cr1901_modern> balrog: I don't think it's real
<cr1901_modern> it's just horrifying enough that I had to make sure everyone else suffered witrh me :)
<Lord_Nightmare> putting the usb-micro in the middle plastic bit of the din5 might actually work, but it needs a really thick metal hood to be reliable on stage
<TD-Linux> I'm unironically going to make one
<TD-Linux> well I mean
<TD-Linux> ironically
<TD-Linux> but I will do it
sixtysix_ has joined ##yamahasynths
sixtysix__ has quit [Ping timeout: 245 seconds]
ej5 has joined ##yamahasynths