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
andlabs has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
_whitelogger has joined ##yamahasynths
<cr1901_modern>
Is there a generic MIDI In/Out driver for Windows? I just tested a USB MIDI demo and I got the dreaded "can't find a driver, even though it's just a freakin USB Audio Device"
<cr1901_modern>
hmmm... it's working on one of my ST boards but not another...
<ValleyBell>
cr1901_modern: I'm pretty sure there is a generic USB MIDI driver, because that's what all those cheap Chinese USB-MIDI-cables rely on.
cr1901_modern has joined ##yamahasynths
SceneCAT has quit [Quit: *Mreow*]
SceneCAT has joined ##yamahasynths
Xyz_39808 has quit [Quit: Leaving]
andlabs has quit [Ping timeout: 246 seconds]
Xyz_39808 has joined ##yamahasynths
andlabs has joined ##yamahasynths
ne0npunk has quit [Ping timeout: 264 seconds]
andlabs has quit [Ping timeout: 250 seconds]
<ValleyBell>
09:35:01 ValleyBell | cr1901_modern: I'm pretty sure there is a generic USB MIDI driver, because that's what all those cheap Chinese USB-MIDI-cables rely on.
<ValleyBell>
(sorry, I posted this while you were offline)
<cr1901_modern>
ValleyBell: Yea, I've determined that most USB MIDI demos are buggy. I tried 5 of them yesterday, one and a half of them worked.
<cr1901_modern>
And then I managed to get into a state where an old piece of software I had hung the MIDI device and Windows refused to detach it from the USB, prompting a restart (at which point I installed updates and went to bed)
andlabs has joined ##yamahasynths
<ValleyBell>
cr1901_modern: That ... sounds sort of famimilar.
<ValleyBell>
I have one of those cheap USB-MIDI cables and I can get any MIDI program to freeze by:
<ValleyBell>
1. open the MIDI device
<ValleyBell>
2. close it
<ValleyBell>
3. open it again
<ValleyBell>
4. program will freeze when trying to send an event or when trying to close the MIDI device
<ValleyBell>
Unplugging the cable after (2) helps
<ValleyBell>
but I think when a process reaches (4) it hangs (and is unable to terminate) until you reboot
<ValleyBell>
The bug is fixed in Windows 10 though.
<cr1901_modern>
Ahhh, well only a few more months before I am forced to upgrade from 7
<ValleyBell>
fun fact: The same cable causes a BSOD under Windows 2000 when it tries to (automatically) install the driver.
<cr1901_modern>
Foone: Just to clarify... my adapter does the reverse, it converts from the AT protocol to XT protocol so I don't have to buy a $100 keyboard for every XT system
<Lord_Nightmare>
i'm getting one of the "Roland MIDI Cable (UM-ONE-MK2)" https://smile.amazon.com/Roland-UM-ONE-MK2-MIDI-Cable/dp/B00967UN50 things from amazon, i think when the switch on it is in the TAB position it acts like a generic usb class midi device, but when the switch is in the COMP position it allows "FPT processing" which is not a standard usb protocol and i presume allows the device to do some complicated FIFO voodoo which normally
<Lord_Nightmare>
can't be done
<Lord_Nightmare>
and it looks like unlike the $15 or $7 midi cables it has proper optoisolators/etc in it so a misbehaving/exploding midi device won't blow the computer to kingdom come or vice versa
<cr1901_modern>
Lord_Nightmare: I got the device to work eventually. I just think most MIDI demo on MCUs don't work out-of-the-box on Windoze
<cr1901_modern>
not that my experience w/ MIDI has ever been great
<Lord_Nightmare>
mcus?
<Lord_Nightmare>
oh you mean like an arduino with the OP-A shield?
<Lord_Nightmare>
or something else
<cr1901_modern>
yes
<cr1901_modern>
STM32 discoverty board in my case
<cr1901_modern>
3 demos refused to work at all. One of them wouldn't enumerate, another showed up as the wrong device, yet another showed up as audio but refused to start
<cr1901_modern>
Yet another demo wouldn't enumerate until I reset the board and then actually worked
<cr1901_modern>
and the last demo (5th one!) worked out of the box
<cr1901_modern>
so yea, the world of hobbyist USB MIDI ain't looking great
<Lord_Nightmare>
i've seen some arduino stuff which supposedly works fine
<Lord_Nightmare>
it does require the interface mcu on the arduino uno to be reflashed though
<Lord_Nightmare>
which requires a special cable i think
<Lord_Nightmare>
since normally the arduino shows up as a usb serial device
<Lord_Nightmare>
and it needs to enumerate as a usb midi device instead
<cr1901_modern>
The only arduino I have has an FTDI interface to USB
<cr1901_modern>
though I'm sure the SMD AVR is doing other things
<cr1901_modern>
I guess the bootstrap loader is over serial then
<Lord_Nightmare>
diecimila is the old version of deumilanove
<whitequark>
yes, it has reset hooked to some of the other serial pins
<whitequark>
to rts/dtr
<Lord_Nightmare>
ah so its using the ftdi's rts/dtr control to reset the avr for programming
<Lord_Nightmare>
if i understand you correctly
<whitequark>
yes
<Lord_Nightmare>
did arduino ever have issues with fake/bootleg ftdi chips getting into their manufacturing stream?
<Lord_Nightmare>
i know ftdi added bootleg detection to their windows drivers TWICE
<cr1901_modern>
I would be kinda surprised, but idk... I would've figured arduino would have some sort of deal w/ ftdi
<cr1901_modern>
I presume modern Arduinos use a second, more powerful AVR that does programming/housekeeping duty? This is how the ST discovery and TI launchpads work
<Lord_Nightmare>
the first time it pseudo-bricked devices by chaning their usb id if they were detected as bootlegs. the second time they don't modify the device but the driver on windows will send a "NON GENUINE DEVICE FOUND!" message over serial to the windows computer (and to the device?) every time it detects a connection from a bootleg device
<Lord_Nightmare>
it also i think writes one byte to the device's eeprom and then sets it back (as a way of detecting whether its genuine or not) so eventually that one eeprom cell will wear out
<whitequark>
cr1901_modern: which modern arduinos
<Lord_Nightmare>
real ftdi devices ignore 8-bit unaligned writes to their internal eeprom, the bootleg devices accept them
<Lord_Nightmare>
so this was used by ftdi to detect bootlegs
<whitequark>
the AVR ones still use the serial programming
<Lord_Nightmare>
i think the newer ftdi bootlegs have patched this so they behave like legit devices, but there's a lot of fake ones out there
<cr1901_modern>
yes I meant the AVR ones
<cr1901_modern>
I'm looking at arduino uno specifically
<cr1901_modern>
Okay finally got a closeup image... there's two AVRs on an Arduino uno
<cr1901_modern>
That means the one directly attached to the USB port must be reprogrammed to show up as MIDI
<cr1901_modern>
anyways, to actually bring this back on-topic, I finally opened my MIDI controller today. I am very curious about using it with a microcontroller and FPGA hooked up to a Yamaha chip. And last night was me gauging how painful this is gonna be
<cr1901_modern>
I've batted around doing this for years, but even as recent as last year I felt like there just wasn't enough good USB libraries or demos for me to pull it off