Bill Moyers’ Legacy, Censored News, and Civil Liberties at Risk
In the first part of the program, Mickey sits down with Jeff Cohen, founder of Fairness & Accuracy in Reporting, founding director of the Park Center for Independent Media and author to talk about the passing of independent media great Bill Moyers.Kate Horgan (Project Censored)
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •my current wire placement rule set is this:
1. groups of wires that all connect to the same parameter on one node are evaluated to see if a wire wrap path makes sense. if so, these are placed first, and the cost of the path is raised arbitrarily high for other wires.
2. wires that travel the farthest go second and search for the shortest path with the fewest bends
3. wires that have the shortest path go last, avoid parallel runs, but favor perpendicular crossings
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •an aside on naming things: I tend to substitute the word "user" with the word "player" or "operator" depending on context. So like, if I'm writing documentation on a tool I wrote, odds are I'm going to call you The Operator instead of "user" because I want you to feel cool.
in this particular project, I'm tempted to use the word "musician" instead, but I'm probably going to default to "player" for the person operating and programming the machine.
aeva
in reply to aeva • • •Getting to the fun part. There are now different types of tiles, and they can be programmatically connected. Tile positions are explicit. The wire positions are implicit, but I haven't implemented the procgen rules for them yet so they're just shortest path lines right now.
I implemented this part today because I realize that working out the data structures stuff here was a prerequisite to being able to complete the connection editing screen. Lots of options for where to go from here.
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •The connect mode is fully functional now, and because I felt it added too much overhead, I also added a magic auto-connect/disconnect function to the selection mode since most pairs of tiles will have one obvious implicit connection anyway.
Here's a video demonstrating both:
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •The next main things to do are building out an audio subsystem for the program so you can hear the patch, and then there's some important stuff missing from the editor like being able to place new tiles.
One of the things I'm really excited about with the design of the compiler is if you modify a patch while it is running, the oscillators don't reset, so you should be able to make a program while performing it :3
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •I added a way to actually place tiles now instead of hard coding them!
finally, after five weeks and change of building a visual programming language from scratch, i can now build a working patch starting from nothing 😁
aeva
in reply to aeva • • •The natural thing to implement next would be save and load, but pygame doesn't provide anything for conjuring the system file io dialogue windows (SDL3 has it, but pygame is SDL2 under the hood iirc). I'll worry about that another time I guess.
I'm probably going to go with an xml format so it's easy to extend. I want it to be easy to make custom controls in other applications eg game engines, so this feels like the obvious choice also I'm one of the five people who likes xml.
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •The scope line is sometimes a bit chonky because it's time synced, and recording causes it to lag a bit. It generally looks a bit better than in the video normally.
You can also make it worse by taking successive screenshots :3
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •I have all these big plans for using procgen to do wire management ( mastodon.gamedev.place/@aeva/1… ) that I still intend on implementing eventually, but I'm finding their absence unexpectedly charming at the moment
aeva
2025-06-03 06:12:35
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •I figure if I move the touch screen keyboard into the synth and cut out the trip through the midi subsystem that might make the situation a little better (again, depending on where the real problem is)
Anyways, it got me thinking, I think processing input events synchronously with rendering might be a mistake, and it would be better if I could process input events on the thread where I'm generating the audio.
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •tragic. pygame.display.flip seems to always imply a vsync stall if you aren't using it to create an opengl context, and so solving the input events merging problem is going to be a pain in the ass. it is, however, an ass pain for another night: it is now time to "donkey kong"
EDIT: pygame.display.flip does not imply vsync! I just messed up my throttling logic 😁 huzzah!
aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •Sebastian Krzyszkowiak
in reply to aeva • • •> (which linux sees as a mouse)
Awful. What kind of laptop is that? Only seen that with shitty USB touchpads in lapdocks (...and Pinebooks), presumably done for compatibility with Android(?)
aeva
in reply to Sebastian Krzyszkowiak • • •Sebastian Krzyszkowiak
in reply to aeva • • •aeva
in reply to Sebastian Krzyszkowiak • • •aeva
in reply to aeva • • •aeva
in reply to aeva • • •someone brought up a really good point, which is that depending on how the touch screen works, it may be fundamentally ambiguous whether or not rapidly alternating adjacent taps can be interpreted as one touch event wiggling vs two separate touch events
easy to verify if that is the case, but damn, that might put the kibosh on one of my diabolical plans
Asta [AMP]
in reply to aeva • • •Gawain(DarkGriffin)
in reply to aeva • • •Woke Leftist Trash
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •typedef struct SDL_MouseButtonEvent
{
...
Uint8 clicks; /**< 1 for single-click, 2 for double-click, etc. */
}
Did you correctly handle this?
aeva
in reply to Evie 🏳️⚧️ • • •Evie 🏳️⚧️
in reply to aeva • • •aeva
in reply to Evie 🏳️⚧️ • • •John-Mark Gurney
in reply to aeva • • •Have you seen OSU?
osu.ppy.sh/
Just a demo of what some expect some touch screens to do.
welcome | osu!
osu!Evie 🏳️⚧️
in reply to aeva • • •Viraptor
in reply to aeva • • •Fabian Giesen
in reply to aeva • • •Fabian Giesen
in reply to Fabian Giesen • • •Simon Richter
in reply to Fabian Giesen • • •Evie 🏳️⚧️
in reply to aeva • • •Create C API profiler
Accept/Deny
Jon A. Cruz
in reply to aeva • • •Andrew Geng
in reply to aeva • • •with a lot of objects in memory, occasional hitches sounds suspiciously like gc generation 2. If you haven't already...
import gc
gc.set_debug(gc.DEBUG_STATS)
Usually I escalate to gc.callbacks, then discover the cycles are created by a (networking-related, in my cases) library.
I once got it so I could've turned off gc but the pace of allocations was then low enough that we chose to tolerate hitches in case of future cycles.
gc.freeze() seemed a possible next step but I didn't try.
Andrew Geng
in reply to Andrew Geng • • •djpanini
in reply to aeva • • •poetaster
in reply to aeva • • •dbat
in reply to aeva • • •Leonard Ritter
in reply to aeva • • •Aydan
in reply to aeva • • •dbat
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •and also, visualization of what is "powered" if that makes sense???
teacher ciat 🔅 // 🕛〰️🕛💫
in reply to aeva • • •Aydan
in reply to aeva • • •straight as the crow flies
music time
Efi (nap pet) 🦊💤
in reply to aeva • • •EndlessMason
in reply to aeva • • •gkrnours
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •youtube.com/watch?v=5yZqUZln6s…
106 | Guardia Millennial Fair - Chrono Trigger
YouTubeOblomov
in reply to aeva • • •rrix
in reply to aeva • • •rrix
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •I also like how it looks like the sorting Algo videos
Scott
in reply to aeva • • •Leonard Ritter
in reply to aeva • • •the "proper" way of doing this would be to maintain a ringbuffer that's big enough to fetch as much history as you wish to support, then get the desired range from the rb, collect min/max amplitude for all samples per vertical line and render the bounds (effectively a very simple candle graph).
but i have done this before and it's not fun to write.
Efi (nap pet) 🦊💤
in reply to aeva • • •Andrew Zonenberg
in reply to aeva • • •I've started having ngscopeclient filters output a quiet NaN when they have a scalar output and are requested to do something that doesn't make sense (missing inputs, contradictory configuration, divide by zero, etc).
(For waveform outputs we already had the ability to simply not output anything, but there's no concept of a null scalar in our object model)
Aydan
in reply to aeva • • •Chris Ahchay
in reply to aeva • • •John Nesky
in reply to aeva • • •Gracious Anthracite
in reply to aeva • • •DDR
in reply to aeva • • •Tess
in reply to aeva • • •The Price Is Right Losing Horn - Sound Effect (HD)
YouTubegkrnours
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •Evie 🏳️⚧️
in reply to Evie 🏳️⚧️ • • •Evie 🏳️⚧️
in reply to aeva • • •Fabian Giesen
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •poetaster
in reply to aeva • • •GitHub - hsaturn/synth: SDL Sound complex generator in command line
GitHubsimonf 🦘
in reply to aeva • • •Leonard Ritter
in reply to aeva • • •Josh Jersild
in reply to aeva • • •higgins
in reply to aeva • • •Dr. Matt Lee (1800www.com)
in reply to aeva • • •ima
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Kookie 🍪🇵🇸
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Tom Forsyth
in reply to aeva • • •Tom Forsyth
in reply to Tom Forsyth • • •Wortex17
in reply to Tom Forsyth • • •~
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •aeva
in reply to Evie 🏳️⚧️ • • •Evie 🏳️⚧️
in reply to Evie 🏳️⚧️ • • •Kojack 🦎
in reply to aeva • • •Tacitus 🇮🇪
in reply to aeva • • •AT
in reply to aeva • • •The Operator: youtube.com/watch?v=_dt7RJGpPh…
Pocket Calculator (2009 Remaster)
YouTubeJonathan
in reply to aeva • • •Gawain(DarkGriffin)
in reply to aeva • • •Leonard Ritter
in reply to aeva • • •Ian K Tindale
in reply to aeva • • •the EMS VCS3 and Synthi called them three different things according to what they were: Sources, Treatments, or Outputs – and Sources only had output arrows, Treatments had inputs and outputs arrows, outputs only had input arrows
anaphonic.com/wp-content/uploads/ems_synthi-vcs3-a-dk1_om.pdf
Viraptor
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Efi (nap pet) 🦊💤
in reply to aeva • • •Tom Forsyth
in reply to aeva • • •Evie 🏳️⚧️
in reply to aeva • • •Josh Jersild
in reply to aeva • • •