whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.catirclogs.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
<_whitenotifier-4> [glasgow] whitequark created branch nagle2 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-4> [glasgow] whitequark deleted branch nagle2 - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-4> [glasgow] whitequark opened pull request #948: Flush IN FIFO once per microframe - https://github.com/GlasgowEmbedded/glasgow/pull/948
smkz has quit [Quit: smkz]
<_whitenotifier-4> [glasgow] whitequark synchronize pull request #948: Flush IN FIFO once per microframe - https://github.com/GlasgowEmbedded/glasgow/pull/948
smkz has joined #glasgow
<_whitenotifier-4> [glasgow] whitequark commented on issue #794: Get rid of explicit flush / autoflush as currently implemented - https://github.com/GlasgowEmbedded/glasgow/issues/794#issuecomment-3064449196
<whitequark[cis]> if you have a throughput- or latency-sensitive applet, please test out this PR: https://github.com/GlasgowEmbedded/glasgow/pull/948
anubis has joined #glasgow
Emantor has quit [Quit: ZNC - http://znc.in]
Emantor has joined #glasgow
anubis has quit [Ping timeout: 248 seconds]
_whitelogger has joined #glasgow
_whitelogger has joined #glasgow
smkz has quit [Quit: smkz]
smkz has joined #glasgow
<miek__[m]> Catherine: here's the fixture file https://gist.github.com/miek/cdbcbd1b4ff3f65f271f52d4257376ee and I also had to make a little patch to let it run fully
<miek__[m]> one problem i'm seeing is that the i2c reads are often failing, not being acked. i have to try a few times to get the applet to work. are there any known issues before i debug some more?
<miek__[m]> and yeah, i'm fine with being set as code owner for that applet
_whitelogger has joined #glasgow
Eli2_ has joined #glasgow
Eli2 has quit [Ping timeout: 268 seconds]
anubis has joined #glasgow
anubis has quit [Read error: Connection reset by peer]
anubis has joined #glasgow
<galibert[m]> is there an example of using glasgow script somewhere?
Attie[m] has joined #glasgow
wiebel[m] has quit [Quit: Idle timeout reached: 172800s]
ALTracer[m] has quit [Quit: Idle timeout reached: 172800s]
<galibert[m]> fuck, mido seems unusable in an async context. In fact there doesn't seem to be anything sane in python doing async midi
zyp[m] has joined #glasgow
<zyp[m]> what do you need to do?
<galibert[m]> I have a glasgow applet to capture audio output (i2s-related) on my mu100b. I want to start the capture, send some midi messages, wait a bit, send another midi message, stop the capture, work with the result
<galibert[m]> I've patched the rom of the mu100b to do amusing things with sysexes
<zyp[m]> are the blocking midi send calls slow enough that it's an issue?
<galibert[m]> It may not be an issue, but I don't know how to have the capture loop running "in parallel"
<galibert[m]> I must say (cooperative) threading in python is really atrociously documented
<galibert[m]> four samples at 44100
<zyp[m]> an easy way to turn blocking calls async is to use run_in_executor() to have them called on a background thread, ref. https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor
<galibert[m]> enough buffering to have blocing calls elsewhere, but even for that I have no idea on how to do it
<galibert[m]> ok, how do I start my mu_iface.run() so that it runs while I'm doing the run_in_executor stuff?
<galibert[m]> ok, sounds like you've given me all the required pieces. Now time to try them
<zyp[m]> if you needed to do a full blocking task, like a loop waiting for midi messages, it would probably be easier to just spin up a dedicated thread for it and have it put all the messages in an asyncio queue
<galibert[m]> I don't tend to need read when capturing audio, so that should be ok
<zyp[m]> yeah, I just figured it was worth mentioning, since it's another common piece of blocking/async interop
<galibert[m]> :-)
<galibert[m]> ohhh, looks like I may have something that works
<galibert[m]> much thanks
<galibert[m]> yep, confirmed, it works