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
ej5 has quit [Read error: Connection reset by peer]
ej5 has joined ##yamahasynths
Xyz39808 has joined ##yamahasynths
Xyz_39808 has quit [Ping timeout: 240 seconds]
<kode54> cr1901_modern: ^
l_oliveira has quit [Quit: ChatZilla 0.9.92-rdmsoft [XULRunner 35.0.1/20150122214805]]
<whitequark> ej5: i'm reminded of this effect by your cutouts https://lab.whitequark.org/notes/2014-06-14/transistor-as-a-light-source/
_whitelogger has joined ##yamahasynths
<cr1901_modern> kode54: Noted, will watch later, thanks
<cr1901_modern> "cargo init --lib fm_synth" <-- this should be a fun project over the next few months if I don't get caught on a wall
<kode54> og
<kode54> oh
<kode54> I didn't realize it was a legitimate video link in here
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
futarisIRCcloud has joined ##yamahasynths
<ZirconiumX> I feel if anybody knows how to help Byuu it'd be one of you guys.
<ZirconiumX> (possibly nukeykt when they're next around?)
<cr1901_modern> byuu and I don't really talk anymore, sorry to say. Not really sure what happened
<cr1901_modern> But additionally, he knows (correctly) from past experience that I have a tendency of starting stuff but not finishing it, so... :P
<superctr> unless byuu is super NIH, why not just use MAME's YM2151 core
<superctr> It doesn't take a lot of modifications to port it to any platform
<cr1901_modern> because byuu IS super NIH
<cr1901_modern> He wrote his own text editor and C++ STL replacement for God's sake XD
<whitequark> christ
<cr1901_modern> err, GUI library*... text editor is a new thing
<whitequark> that's depressing
<cr1901_modern> depressing?
<cr1901_modern> >Not really sure what happened <-- To be clear, _I_ don't have an issue w/ him and would be happy to pick up where things left off. I have my own theories lol :P
* Sarayan waves
<cr1901_modern> hello! :3
<Sarayan> cr1901: I'm very fucking close on wanting to write my own text editor/IDE
<Sarayan> barely managed to avoid it up to this point
<cr1901_modern> Sarayan: I use Atom and am happy with it despite the bloat.
<cr1901_modern> "Sublime text for plebs"
<cr1901_modern> I use Geany or Kate as a fallback if I have to.
<whitequark> atom is fine if none of the files you open are larger than like 20k lines
<cr1901_modern> turn off spellcheck :P?
<whitequark> no
<whitequark> it's a fundamental limitation of stuffing everything into DOM
<Sarayan> wq: ouch, my files go from a handful of lines to a million
<whitequark> sublime will happily open files of tens of millions of lines though
<Sarayan> emacs manages, thankfully
<whitequark> up to... about 10 GB I'd say?
<whitequark> search works too, though regex search tends to choke on these
<Sarayan> wq: that's good enough
<superctr> I mostly use vim nowadays
<cr1901_modern> I just shell out to less/vi if I need to look at a file that big
<cr1901_modern> vi keybindings are bad... emacs are worse (on a standard pc keyboard. No I'm not repurposing my Caps lock key)
<Sarayan> mu100.txt is 442K lines, that's typical
<Sarayan> disassembly of the bios
<superctr> i think vi keybindings are fine, though Esc is a bit too far on a normal keyboard, it's fine on laptops though
<whitequark> yeah, my huge files are usually glasgow losg
<whitequark> eg verbose logs of reading 1 GB of flash
<whitequark> with a bug somewhere in it
<superctr> so i map 'jj' to Esc
<cr1901_modern> I mainly like Atom for it's build, project manager, and console plugins (but particularly the first two)
<superctr> I keep a session.vim in my project directories, that's my "project management"
<cr1901_modern> it's not a sophisticated plugin; mainly it does _just_ what I want in the way I want it :P. I'm sure there's a similar vim and sublime plugin (or I could write one)
<cr1901_modern> Sarayan: What would your text editor look like? Tailored specifically for your workflow ;)?
<Sarayan> hmmm
<Sarayan> Things I like in xemacs: low latency in general, can do pretty much everything without touching the mouse, very efficient window management, can cope with any type of file, including binaries
<Sarayan> also efficient switching between buffers
<cr1901_modern> mmmm interesting
<Sarayan> and not trying to steal the focus/moving the window/raising the window
<Sarayan> oh, also, minimal space used by anything non-editor
<Sarayan> especially vertical space
<Sarayan> but even horizontal
<whitequark> i wonder if you will like sublime
<cr1901_modern> There's a law of diminishing returns for increasing horizontal space for me
<whitequark> it's not quite there
<Sarayan> I hte editing in a postage stamp, yes I'm looking at you eclipse
<whitequark> fuck eclipse and idea
<cr1901_modern> Even on a 1600x900 screen, I have a lot of dead space on the right side of my editor
<cr1901_modern> (there's a terminal, but it acts as a pop-under
<superctr> heh, not using the mouse is the reason i switched to vim
<superctr> it made editing bearable on a laptop
<cr1901_modern> so I can remove it at will if I need more vertical space
<cr1901_modern> If I upgrade to a HD or 4k monitor, I'll likely have enough room to put an editor and web browser side by side
<cr1901_modern> perhaps removing my need for a second monitor
<cr1901_modern> (Well I can _tolerate_ side by side even right now)
<superctr> soon you'll switch to a tiling WM too
<cr1901_modern> Yes I like them in principle
<cr1901_modern> bug.n is, well, buggy
<superctr> having editor and browser on respective halves of the screen is nice
<superctr> if the site has a crappy layout, can always zoom out...
<cr1901_modern> Lots of ppl seem to like i3wm and xmonad
_whitelogger has joined ##yamahasynths
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<cr1901_modern> Okay, just to confirm my understanding of the ym2151 manual... the LFO affects both the phase generator (shared between all operators on a channel) _and_ the envelope generator (which is on a per-operator basis)
<cr1901_modern> You can enable/disable the LFO's effects for both the phase generator and the envelope generator independently, but the LFO's frequency is hardcoded for both the phase and envelope generators.
<cr1901_modern> Is all of the above correct?
<superctr> the LFO has a global rate, AM depth and PM depth
<cr1901_modern> global rate == frequency?
<superctr> yes
<superctr> Each operator has a bit to enable AM sensitivity and each channel has bits to set AMS and PMS for that channel (modifying the global depth)
<cr1901_modern> where is "PM-disable"?
<superctr> There is none
<superctr> Set PMS for that channel to 0 to disable it on that channel
<cr1901_modern> ... oh, right there in the manual
<cr1901_modern> AMS is measured in dBs, so I think that must be where there's an AM-disable
<cr1901_modern> why* not where
<superctr> You can toggle LFO amplitude modulation on a per-operator basis, and you can set the sensitivity of LFO modulation on a per-channel basis for both amplitude and phase modulation
<superctr> and finally you set the global LFO rate and amplitude, which affects the LFO on all channels
<cr1901_modern> where is "global LFO amplitude"?
<cr1901_modern> I don't see a register for it
<superctr> Register 19
<superctr> Bit 7 selects whether the write affects amplitude or phase depth
<superctr> so you write 0x00 + 0x00..0x7f to set AM depth and 0x80 + 0x00..0x7f to set PM depth
<cr1901_modern> "The value indicated here obtains (sic) when the LFO output is at its maximum value"
<cr1901_modern> I assume that refers to the "maximum value the LFO takes when the PM depth is set to the maximum possible value"
<superctr> that's when you read the status flag i suppose?
<superctr> I don't usually do that
<cr1901_modern> Oh this was under the LFO section
<cr1901_modern> I'm just trying to get a feel for the sensitivity tables
<superctr> ah
<cr1901_modern> Oh, and to make things more fun, it looks like "PMD" is signed/twos complement
<superctr> page 12 shows the lfo waveforms
<cr1901_modern> >(10:21:16 AM) cr1901_modern: I assume that refers to the "maximum value the LFO takes when the PM depth is set to the maximum possible value"
<cr1901_modern> E.g. Figure 2.8 says "if PMS=7, the maximum modulation of the current frequency is 700 cents when the LFO reaches its maximum amplitude". >>
<cr1901_modern> I assume the LFO only ever reaches its maximum amplitude when you set the AMD/PMD correctly (i.e. 0x7F)
<cr1901_modern> Anyways, with the LFO grokked, I think I at last understand all the major components of OPM. I kept putting it off and putting it off lmao
<superctr> the OPM is the most simple of the 4op Yamaha synths
<superctr> It sits somewhere between the OPL and OPN (though closer to the latter) I'd say
<superctr> the only real unique part of the 2151 would be the noise generator. DT2 is also unique but not that special (you'll probably never use it)
<cr1901_modern> I mainly chose to study the OPM b/c it seemed underappreciated LOL
<cr1901_modern> well, it's the "most underappreciated of the popular Yamaha synths"
<cr1901_modern> Everybody and their dog knows about OPN thanks to Genesis
<superctr> i'd say OPL series is most underappreciated. It has an unfair reputation thanks to "Fartlib"
<superctr> OPM has good reputation thanks to all the X68k and arcade boards that used it properly
<cr1901_modern> ? Lots of ppl remember DOS games :P. And fartlib is hardly unique to OPL
* cr1901_modern glares at the GEMS defaults
<superctr> though something that not everyone will notice is that the OPM is almost pin-compatible to the OPL2
<superctr> lots of OPL2 projects that could be repurposed for OPM with minor changes
<cr1901_modern> does OPL2 have GPO ports?
<cr1901_modern> err pins*
<superctr> those are N/C
<cr1901_modern> huh interesting
<superctr> the difference is that pin 11 and 12 are swapped and pin 1 is GND on OPM and Vcc on OPL2
<superctr> pin 22 is N/C on OPL2
<cr1901_modern> Sometimes I'm convinced Yamaha picked lottery numbers to decide the pinouts
<superctr> the pinouts usually make more sense when you look at the die shots
<superctr> the data pins are all next to each other after all, they'd be lined up on the die
<cr1901_modern> Even on z80, which permutes the data pin order, data pins are next to each other
cr1901_modern1 has joined ##yamahasynths
cr1901_modern has quit [Ping timeout: 268 seconds]
_whitelogger has joined ##yamahasynths
cr1901_modern1 has quit [Quit: Leaving.]
cr1901_modern has joined ##yamahasynths