&pajama day 7 bonus content - No new functionality, but I did a small visual refresh with the last remaining minutes of the jam!
&pajama day 7 bonus content - No new functionality, but I did a small visual refresh with the last remaining minutes of the jam!
&pajama day 7 - That's a wrap! I got multi-track recording and playback working, complete with independent per-track instruments. There's still a ways to go before this is useful - I'd want midi export and at least some basic track editing - but it was a lot of fun to see how much progress I was able to make in a week. I'm also happy with my project choice for this jam, the immediate gratification of being able to (kind of) make music at increasing levels of sophistication kept me motivated. I'm certainly hoping to keep the momentum going and work on it further in the coming weeks.
&pajama day 6 - I have recording and playback working! I don't think I'll have a fully fledged piano roll editor by the end of tomorrow, so my goals to round out the jam are going to be recording multiple tracks, and exporting to a .mid file.
&pajama day 5 - I didn't do any work for the jam yesterday, and I didn't get too much done today either, but I did get the beginnings of a rect-cut-based responsive UI system going, and slotted my existing functionality into that. I started looking into the midi file format to get an idea of how I'm going to support recording/editing/exporting, so tomorrow is editor day for real this time.
&pajama day 3 - I implemented pitch bend and sustain pedal support, and a rudimentary instrument selector. This is already really fun to play around with, I think tomorrow I'm going to have to stop procrastinating and start working on the editor.
&pajama, my WRJ project, aspires to be a "music sketchpad" - not a professional-level DAW, but a simple tool to let you play around with and capture musical ideas with as little friction as possible. Yesterday I took my basic draw-rectangles-on-the-screen base layer (odin+SDL3) and added audio support. Today I hooked up portmidi and created bindings for the tinysoundfont single-header library, and created a basic virtual piano that supports mouse, computer keyboard, and midi keyboard input. I'm pretty pleased with my progress, that should be the bulk of the library wrangling (at least for jam purposes) out of the way, so I can focus on wheel reinvention.
&loctree Got a basic web UI up, with an interactive collapsible tree view and filtering by language. So far it's all a completely statically built page, with javascript taking the raw LOC data and rendering the tree from scratch on every filter. This ran reasonably on the orca codebase, but on chromium I'm getting absolutely destroyed. Going to see how much performance I can get out of the static rendering, if that'll work or if I'll have to set up a local server to stream the data and/or do some server-side html generation.
&loctree day 2ish - I'm creating some data visualization for lines-of-code-count data - I've often found myself wanting to drill down into lines of code for subdirectories of a project instead of just a whole-project summary. A tool called tokei exposes raw data per file, and you can use it as a library, but so far the only visualization I've seen is a somewhat inflexible pie chart. So I'm hoping to use that to export a static, interactive html page, maybe something like windirstat. Admittedly less x-ray-ish than some of the project I've seen so far, but I figured better to participate and try to scratch an itch than not.
Yesterday and this morning was getting data into a format I can use and starting to generate HTML. I've got some rust code that uses the tokei library to export the data, then using python to transform it since I'm too dumb to write tree building logic and fight the rust compiler at the same time, but I hope to have it all in native code either by the end of the jam or shortly after.
&playout Day 3 - After successfully ignoring several additional warts discovered in my GUI layer, I implemented what could be called an MVP for a room layout tool - I can add, remove, scale, rotate, and name objects, so technically I could actually use this to lay out a room! As I'm fond of saying, "It may not be viable, but it sure is minimum"
&playout Day 2 - 1 hour of implementing Open and Save, 3.5 hours of ✨surprise major refactoring✨ after realizing my GUI system didn't handle tree modifications properly (e.g. adding/removing the [MODIFIED] tag at the bottom)
&playout
First day of the jam - Playout is a room layout editor, like when you use graph paper and little labeled cutouts to plan where you're going to put the furniture in your room. Today I set up a new repo with a prebuilt platform/graphics layer, and a custom GUI system I made beforehand. I've got some basic stuff done: draw a grid, pan/zoom, move rectangles around. More to come!
I've been following Ryan's excellent UI series and got basic auto-layout working! More to come hopefully, I've been on a personal programming kick after like a year of doing barely anything in that regard. (reuploaded after I fixed my janky ffmpeg script to produce mp4s that discord can actually play)
Finally thought I'd show everyone progress on a project I've been working on. I wrote a parser and renderer for the LDraw specification, which is like a CAD format for building with LEGO. It's definitely early days, but so far it can parse and render the models I've tested (albiet with bad lighting), with basic Blender-style controls to zoom and rotate around the model. I want it to evolve into something, though I'm not sure if I want it to be more of a cad program or a game.