{"sections":[{"title":"FlashbackDevlog01Section1","heading":"01-What did everything just say?","verbatim":false,"ast":[{"t":"para","c":[{"t":"text","s":"Picture this: Sicily 1932 (folk music is playing on a youtube page)."}]},{"t":"para","c":[{"t":"text","s":"You're speaking with some friends on discord, some tab is playing unmuteable background sound of whistling wind samples on loop and you can't find it, and you're just about to start a new and important session in Ableton live when you get a phone call (really right now?)."}]},{"t":"para","c":[{"t":"text","s":"It's your 3rd favorite sibling. They tell you the grand news that you are going to be hosting the whole gang in two days to listen to the \"ground breaking and genre defining\" \"song\" you told them all in the group chat would release in two daysin the group chat. "}]},{"t":"para","c":[{"t":"text","s":"They're coming, and they're coming to listen to you."}]},{"t":"para","c":[{"t":"text","s":"You didn't mute your microphone so your friends hear: \"Oh, great googly moogly I can't wait!\" They laugh."}]}]},{"title":"FlashbackDevlog01Section2","heading":"02-A stitch in time...","verbatim":false,"ast":[{"t":"para","c":[{"t":"text","s":"You put your headphones back on, realizing you missed the beautiful accordion party of Sicily's finest folk tunes, but also that you now have to fulfill promise and you haven't started. You reach to realize, you didn't arm and record your microphone so your genuine reaction is gone forever. You ask your friends, but none them were recording you. You feel like lighnting landed in your bottle and then walked slowly right out."}]},{"t":"para","c":[{"t":"text","s":"If this sounds familiar, I'm sorry, but thankfully, I built something to prevent this exact problem."}]},{"t":"para","c":[{"t":"text","s":"I wanted to learn some zig: it's low-level, has a strict compiler, and is idiomatically different from what I'm used to."}]},{"t":"para","c":[{"t":"text","s":"So I planned a little audio tool: A rolling buffer that captures everything audio on your computer that you arm, and then just sits there. You can send processes (individual apps), devices (your microphone, or virtual devices), and standard OS channels. It can just run in the background and you can forget about it, until lightning strikes..."}]}]},{"title":"FlashbackDevlog01Section3","heading":"03-Look ma, no hands!","verbatim":false,"ast":[{"t":"para","c":[{"t":"text","s":"This little tool records everything on the channels you select and you can have as many channels running as your RAM bandwidth can handle. When the track fills up it overwrites the oldest bit. "}]},{"t":"para","c":[{"t":"text","s":"I did a really prototype-y design, I hope to improve on it later, modeled after a hybrid of a tape-to-tape machine and turntable. You have two rotational panels: on the left your buffer fills up with the audio channels and on the right you can pull clips from each channel and save them/scratch them/slice them to your fancy. There is a scrubber and check-out header. So ther workflow is pretty simple, select a channel and a in-out timing along the waveform, drag to the right panel or click the checkout button and it creates a .wav sample at the bitrate you specified."}]},{"t":"para","c":[{"t":"text","s":"If you also use DAWs or anything like that, you can drag the slice directly onto your track and poof: that exclamation you made on the mic is fully isolated from the accordion, wind-noises, and friends chiming in. You can do more granular slices and sample chops on the right side of the controls."}]},{"t":"para","c":[{"t":"text","s":"It's still in active development. I doing a total UI overhaul as of the time of this devlog, and have been up to this point doing the python-to-zig migration because the python libraries were heavier and less portable than no-depency zig expected to be. My goal is to be able to port this for release on all major platforms once I finish the system hooks and UI overhaul."}]},{"t":"para","c":[{"t":"text","s":"It was originally in python, because it's there and I was more comfortable with it, but the zig-rewrite has been a fun exercise in trimming all the fat and making it as lightweight, multi-platform portable and real-time as possible. If there is one thing audio doesn't like is latency and data corruption."}]},{"t":"para","c":[{"t":"text","s":"If you want to try it out, leave some feedback, or post a gh issue: "},{"t":"link","label":"Check Flashback Sampler out on github","target":"https://github.com/Phlares/flashback-sampler","kind":"external"}]}]}],"dialogue":null,"embed":null}