My favourite coffee shop is open again, here in Yo...
# two-minute-week
c
My favourite coffee shop is open again, here in York, so I'm getting back into my routine of an hour or so of progress over morning coffee. That said, I really just integrated the synthesizer and graphics this week. It is nice to have the graphics code up and running again, even if I will be changing it when I get chance.

https://youtu.be/mLplFS5WsLg

👏 2
😍 3
👍 4
😎 1
If it isn't clear, one of my goals of this project is to provide a one-stop-shop for live coding here. There are no external processes. This is a single executable. I want a great 'out of the box' solution to shader and audio coding. The challenge that this brings though is ensuring that all the threads of work inside the single binary are kept busy and performant.
👍 3
This is probably best watched in HD on YouTube.
i
I heard a click at around 2:01. Are you still hunting down those issues, or might that have just been a hiccup in the video capture?
c
Mostly I only hear these when recording these days; I think they are slowly going as I find and fix memory allocations or other stalls on the audio thread; I know of a few places where things aren't properly fixed yet - one in particular to do with the audio processing causing a lock. I found one major cause which was to do with the mixer in the audio path doing the wrong math; that helped a lot with odd sound transitions I was hearing. If you notice, this video was recorded at 500 fps for the graphics, with my video from the webcam, and OBS running on the same machine on a 4K display. To add to that, my machine is 'only' an i7 4 core. I don't mention it in the video, but I also have this app mostly working on Mac. It will be interesting to compare it, since the MBP is a top spec macine. Ultimately, performance work is ongoing and will be more focused as I move towards open sourcing everything.....
👍 2
c
Wow, this is awesome!
😄 1
m
This is really, really cool! Totally awesome!!
m
really great progress, congrats!
j
Fun project! :) If you have the time, I'd be interested in reading something some comparisons (in terms of your goals) with Extempore: https://en.wikipedia.org/wiki/Extempore_(software)
c
Thanks all for the encouraging feedback! @Jack Rusher If I'm honest, I'm just following my nose and having fun. This is a side project for me, intended to be released as an OpenSource app, and a single install executable on Mac/Windows/Linux (though perhaps not initially on all platforms). If you're asking what I would like it to be: • A shader development IDE, featuring GL, Vulkan, DX12. I want it to be easy to, say, test a hardware ray tracing shader, or develop a new effect. Currently I support GL, but there are substantial portions of Vulkan/DX12 written. I work in graphics, so there is overlap with things I've done before here. • A music language research and development IDE. Initially supporting something like Ixi lang. I have considered Extempore-like functional scripting too. • A live coding/performance tool. Single Install. Code a performance. Longer term, I'd love to play a bit with VR. I've long been thinking about the idea of building a performance in a 3D space. Everything you see in the tool is rendered using the graphics API; including the text editor (which, though I haven't gone into it too much, is designed to support inline graphics to represent code elements.). That stuff is pie in the sky though. I have a full time job, and this project fits around that most of the time; and that generally means that I bursts of productivity and then rest, depending on work volume....
❤️ 1
Regarding Extempore in particular, it's really cool. I'd love to support something similar. My recent experience with the Janet language has encouraged me in that regard. I'm already itching to build some kind of scripting into the tool so I generate some actual music!
j
I look forward to watching this grow 🙂
c

https://youtu.be/rd1_nybU6kM

Speaking of Extempore ^ 🤯
... and since I've looked at it again today, I had no idea that extempore has a built in synth too, in scheme; that's really cool.
e
extempore is really cool and would like to look into it again soon. A few things that took me time to learn the last time in case it helps someone: • I'm pretty sure the scheme version used is R4RS, before finding that out it was driving me crazy why it used define-macro vs define-syntax. Also I don't think it has a match macro built-in, but I may be wrong. Here's a nice intro on R4RS. • Many of the examples failed on my sys because of missing C/C++ libraries. When I get back to it VCPKG seems like a good xplatform way of getting those dependencies.
c
I thought they used a custom scheme. Maybe not. After a couple attempts I managed to get it working on Windows, will have a play. One thing that stands out is the pattern language stuff they’ve done recently. I could certainly offer something similar...
e
extempore is a mix of two languages in one, one of them is R4RS Scheme, and the other is call xtlang I think, which is a dialect of scheme that compiles to machine code through LLVM
just found it, it is based on https://en.wikipedia.org/wiki/TinyScheme, a "subset of R5RS", I guess close enough (a super set of RSR4?) 😛