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
<m4t> greenchip? you mean greenarrays?
<m4t> these forth thingies http://www.greenarraychips.com/
<cr1901_modern> No, greenpak
<m4t> o
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Xyz_39808 has joined ##yamahasynths
andlabs has joined ##yamahasynths
<cr1901_modern> Lord_Nightmare: (The reality is, my STM dev boards are fast enough to emulate the DAC in software and return the retrieved values over USB... (55000 Hz * 16 bits/Hz * 2 channels is about ~1/8 USB FS B/W). I just think that's aesthetically displeasing".
<cr1901_modern> Err 62500 since I'd run it at 4MHz
cr1901_modern1 has joined ##yamahasynths
<cr1901_modern1> Actually, I retract that statement... need to read more about the I2S peripheral
cr1901_modern has quit [Ping timeout: 244 seconds]
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined ##yamahasynths
ej5 has quit [Quit: Leaving]
<natarii> it would be cool to see that working. i tried to do the same with an opl2 and the i2s peripheral on esp32 but didn't have much luck
<cr1901_modern> natarii: If willing to elaborate, where did you run into problems?
<cr1901_modern> My snag thus far is the opl2 format is "psuedo i2s"
<cr1901_modern> err opm (just woke up)
l_oliveira has joined ##yamahasynths
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: 276 seconds]
<natarii> cr1901_modern: same issue basically, it was a while ago but i think it wasn't happy with my word select timing
andlabs has joined ##yamahasynths
<andlabs> okay I think I may be convinced to get a ppc mac with classic...
<andlabs> well I wound up buying an Opcode Studio 128X MIDI interface (8 in 9 out, like the MOTU MIDI Express but I got it for $40 instead of $200 =P )
Xyz_39808 has quit [Read error: Connection reset by peer]
Xyz_39808 has joined ##yamahasynths
<cr1901_modern> andlabs: Does it work on modern systems?
<cr1901_modern> natarii: There should be, like, a shift register peripheral on microcontrollers that you can program to accept arbitrary shift register data
<natarii> i thought about using the esp32's second core to just run a tight loop that reads gpio, but that's kind of messy ;p
<natarii> and of course there's way too much latency in interrupts to use them, at least for the bit clock
<cr1901_modern> 1.6 million interrupts per second is a bit too much I imagine, even for an ARM core
<natarii> ive been meaning to look at the PRUs on beaglebones for stuff like this
<cr1901_modern> Oh, I'm sure a PRU would be fine for this. PRUs can do MFM hard drive decoding in real time. Just difficult to program and attached to a whole freakin' Linux system most of the time :P
<natarii> that's cool re: mfm
<cr1901_modern> Don't remember the project name (cc: balrog)
<natarii> i was wondering if prus would work for rom emulation for the yamaha chips with adpcm
<balrog> cr1901_modern: https://www.pdp8.net/mfm/mfm.shtml
<cr1901_modern> ^Thanks, it's that
<cr1901_modern> natarii: Interesting idea, I have no idea how to test it tho :P
<cr1901_modern> I should get a modern Beagle at some point
<natarii> yeah same
<cr1901_modern> One thing I've learned since being in this room: ADPCM is pretty involved
<cr1901_modern> Did not appreciate it before Lord_Nightmare explained how there's at least 2 mutually incompatible ways to do ADPCM, and that it's difficult to emulate corectly
<natarii> well, i'd just be using data from vgms so i wouldn't have to worry about encoding it or anything. my issue is just emulating the rom/ram it's stored in
<natarii> basically i was challenged to build a vgm player around the ym2610 ;p
<natarii> and availability of big srams and things like that is an issue
<cr1901_modern> Cypress still makes SRAMs up to 512kB IIRC, but they are not DIPs
<cr1901_modern> Can the 2610 handle DRAM?
<natarii> i don't think so. 2608 can though iirc
<andlabs> answer: I see no reason why it shouldn't
<cr1901_modern> Well I guess it doesn't matter as long as refresh period is less 1/55000 seconds or whatever
<cr1901_modern> (i.e. enough time to avoid missing a sample)
<natarii> hm, yeah
<Lord_Nightmare> adpcm is complex but if its actually documented and CORRECTLY documented it isn't so bad
<cr1901_modern> This is speculation of course. I'd like to create a VGM player too at some point. TheaValkyrie's is really cool
<Lord_Nightmare> there are many cases where we're dealing with entirely undocumented or badly-flat-out-wrongly documented adpcm stuff
<cr1901_modern> >entirely undocumented or badly-flat-out-wrongly documented
<cr1901_modern> Oh, so basically 80's and 90's computers in a nutshell
<natarii> doing a 2612 player has been fun
<cr1901_modern> Do you have pics/schem for that? I don't have any 2612s
<natarii> there are some videos on youtube - https://youtube.com/user/agirisan
<natarii> schematics and stuff coming once i test the new boards
<cr1901_modern> >yall got battletoads?
<cr1901_modern> THAT
<cr1901_modern> s a blast from the past
<natarii> haha
<cr1901_modern> https://www.youtube.com/watch?v=YXmvawgrt9U Bloody Road is a good choice (seeking around)
<cr1901_modern> So re: the DAC required on some of the chips, a greenpak 4 IMO is too small. Greenpak 5 might be able to do it. The smallest MachXO2 or a Xilinx CPLD can absolutely emulate the DAC without completely destroying board real estate
<cr1901_modern> But of course you have to deal with... toolchains.
<cr1901_modern> natarii: In case you were wondering- I got a MIDI controller for my bday I haven't opened, and I've gotten pretty familiar w/ an easy-to-use USB stack, so I'm curious: how difficult is it to control a Yamaha chip over MIDI and create my own instruments?
* cr1901_modern sucks at creating his own instruments in a tracker. He doesn't expect this to go any better
<ZirconiumX> MIDI itself is just serial
<ZirconiumX> It's actually quite simple as a protocol
<natarii> cr1901_modern: my friend did a 2612 midi synth, he sells them but all the source and everything is out there https://www.aidanlawrence.com/mega-midi-a-playable-version-of-my-hardware-sega-genesis-synth/
<natarii> with regards to actually making fm patches, i'm told it is Hard. how hard exactly i don't know
<cr1901_modern> Oh cool, Aidan made a thing again
<cr1901_modern> I've emailed him before re: one of his older boards but I don't remember the context
<Lord_Nightmare> making fm patches is tricky but not impossible
<cr1901_modern> And Idk if it's hard. But time consuming? Indeed. I think making patches is an art
<Lord_Nightmare> you have to think of the 8 algorithms as entirely separate 'palettes' or 'styles'
<Lord_Nightmare> though a few of them cross over a bit
<cr1901_modern> Use algorithm 0 if you want your listener to lose their hearing :3
<natarii> most people using aidan's synth are using patches ripped from games fwiw
<cr1901_modern> use algorithm 7 if you want a pipe organ and/or to be boring
<Lord_Nightmare> read the chipsynth MD manual, plgdavid and madbr wrote some good tips on how to make patches
<Lord_Nightmare> chipsynth MD allows you to rip patches easily too, and tweak them
<Lord_Nightmare> you can literally drag and drop vgm or vgz files onto it and it will play them and you can isolate channels and copy the settings
<Lord_Nightmare> this doesn't help for games which did fun stuff like software lfo/vibrato or varying patch parameters over time (I believe gunstar heroes does this)
<Lord_Nightmare> but you can get the base patch and MD does allow you to do your own 'software lfo' stuff using the automatic mod/sequence stuff
<cr1901_modern> doesn't chipsynth cost money/not FOSS?
<Lord_Nightmare> which i still need to figure out
<Lord_Nightmare> yes its closed source and costs money
<cr1901_modern> Yea, I'm gonna be that petty jackass
<Lord_Nightmare> but dumping patches out of it that you created is easy enough
<Lord_Nightmare> it also has (or very shortly will have) a demo version
<cr1901_modern> So, less snarky: I don't want to pay for an emulator and I want to be able to study how YM emulators are organized/made.
ej5 has joined ##yamahasynths
<Lord_Nightmare> for the amount of 'stuff' you get from MD for its price its well worth it, but suit yourself
<emily> might be worth it if you were allowed to look at the source code...
<cr1901_modern> emily: Yes, I would be happy w/ that (money permitting)
<cr1901_modern> plgdavid does release his findings after a certain amount of time has elapsed tho
<cr1901_modern> so I can be patient :P
* emily starts spontaneously humming the Free Software Song
<cr1901_modern> Oh God, that's a real thing ._.
<emily> gosh, you haven't heard rms's beautiful singing voice? truly missing out
<cr1901_modern> I have now. I can never go back.
<natarii> lol
<cr1901_modern> Someone suggested a Wesley Willis version of the Free Software Song on jwz's blog and I unironically wish this existed
<emily> so the first thing you're going to do with your custom instruments is cover it, right??
<Lord_Nightmare> also plgdavid is very amenable to sharing findings or answering questions about the way stuff works
<kode54> so glad I've missed that song
<kode54> and will continue missing it
<cr1901_modern> emily: Sure why not?
<cr1901_modern> https://youtu.be/4SZeZ8uosc0?t=998 This is really REALLY catchy (linked time)
<cr1901_modern> Well, until the sound driver starts going out of sync