 Anfa Interviews, Mark McCurry. Hey, it's Anfa and today I have a very special guest, Mark McCurry, who is the main maintainer and developer of Zenad SubFX. And he's with me today. I'm going to ask him a bunch of questions. So, let's just kick it off. Hi, Mark. Excellent. Let's begin then. Yeah. Oh yeah, I'm Mark McCurry. I maintain Zenad SubFX. And yeah, I'm looking forward to this interview, I guess. So, maybe for those who don't know you, who you are, could you tell us what do you do? Like, where do you come from? I don't know. What do you live? What do you do for a living? So, for basically my whole life, I've been on the U.S. East Coast, depending upon what year it is, I've either been in the Northeast or down south. Over the past couple of years, I've been at grad school. I recently finished up a PhD in electrical engineering. So, I've got a pretty big background in terms of understanding the sort of complex math that happens in programs like Zenad SubFX and professionally, I've taken those skills and I do a lot of machine learning and signal processing. So, in the past, I've worked on, at one place that did audio conferencing, Polycom, and currently I'm working at another organization which is doing some biometrics work. So, what that means is if you have pictures of someone's face, you can do face recognition. If you have literal fingerprints, then you can do fingerprinting on those and be able to identify individuals that way. And there's just a lot of math in being able to take in all these different images of things and then figure out how to tell a computer how to interpret things. So, I'm the one that does that sort of translation. Machine learning and signal processing. It's funny because it looks like what you're doing for living is quite neatly meshing with what you're doing after hours, I guess, for Linux Audio Community as a developer. Yeah, it was something that kind of meshed pretty well because I originally got into Zenad SubFX because, well, at the start, I kind of got a little ahead of my coursework and was interested in some of the subjects. So, why not try it out on real software first? So, I guess that nicely can lead us to, well, how did you get started? Maybe let's start with, how did you get started with Linux at all because I guess you're using Linux. We can tell us what you're running and how did you come to run Linux? So, that first happened, oh boy, quite a few years back, would have probably been around the time of middle school or high school in the U.S. And essentially, I found computers to be an interesting sort of thing that I didn't really understand. So, I kind of wanted to figure them out. I'd gone through and understood a lot of other, like, more mechanical or sort of physical devices and it was just, well, how does this complex machine actually work? And Linux was a decent way to get access to development tools to be able to experiment around. I think probably my first experience was downloading a live CD of Nopix. And I don't know if there's still kicking around if they are, well, even if they are not, like, it was a fantastic live CD with an absolutely humongous amount of software. It was just, like, staggering at that time when you're going from having probably a Windows 98 box or something that's maybe a little bit more recent than that, probably XP at that time. And then just being able to put in this DVD and just have all this software just loaded up there, no cost, just the hassle of trying to figure out how do you download this ISO over the internet with a really slow connection. I guess it would have been huge. Oh, man. Well, it was a DVD image. It wasn't even a CD image. So that was fun. And from there I ended up working with a project called Slacks for a while. They were another live CD distribution and a lot of the infrastructure that they put out in terms of being able to hot load modules in the context of live CDs are just kind of file system overlaying extra packages. They built up a lot of that infrastructure and at that time I ended up maintaining some packages and probably answering a lot of beginner questions incorrectly on the forums. Oh, no. You screwed the newbies. Screwing up the newbies. Rolling over. No problem. Learned a lot from there and then around that same time I had one desktop that just the Windows install was completely dead. So I couldn't mess up the computer any worse than it was. Why not wipe it and put Linux there, right? Yep. Let's see. I did some Ubuntu. Maybe I tried out Red Hat. I tried Gen 2. I tried it for like four days at which point I had nothing properly compiled and I gave up on that. Never going back. Then I think I, from there I just moved into Slack where as soon as I had an Ubuntu install that I tried to upgrade once because some people might know. Did you do dist upgrade? Like the massive distribution upgrade to a new release? It was for a new release. Yeah. No. It doesn't survive new releases. Oh, no. Good with that. I hated this. I think I just got so frustrated. I just installed Slackware. It was like you had to do a fresh install every half a year if you wanted to be running new stuff, which is weird and I'm surprised that Mint doesn't do this. As far, I'm using Mint for like a year, maybe a year and a half and it doesn't break itself at least. So it's nice. Yeah. This physical machine has a relatively recent Slackware install. It used to run Arch for a little while until SystemD completely broke everything. But my desktop that has been running a Slackware install since I think I still have files on there from 2008. Oh, man. That was when I released my first album that is no longer available. That's like ancient times of mine. Also, it was the time that I started running Linux at all. First Ubuntu. Oh, man. 8.4 something. Yeah. So that computer has gone through several hardware upgrades, but every time a new Slackware release comes out, I just update and it has worked fine. It's still running since 2008. It's a decade. Almost. There were some hard drives that I took out of it which were like I think early 2000s at one point or another. At some point I've got to upgrade the main hard drive because it is a very, very slow disk drive. Not a lot of hard disk space either. But maybe it's reliable. Maybe it survived without crashing the heads into the platters or something. Let me think. How many moves has that thing gone through? So that would be 8, 9, 10. It's been through like 12 moves. Oh, my. You're shaking stuff a lot when you're moving things and you know, putting in a truck. Unboxing it again. That's weird. I've survived so long. Well, the motherboard on that has died I think once. Let's see. The power supply that died once. I've replaced the hard drive once or twice. I think it still has its original floppy drive. Some of the USB ports in the front no longer fully work. So it's slowly falling to pieces but it's still alive. Linux is keeping it rolling. Yep. Oh, man. That's quite a lot of stuff and wow. A few hard disk crashes. One hard disk crash was when a big hard drive from my PC just started dying and my friend helped me and copied it over to his drive and literally after we finished that one chip just burst into flames and just, you know, it was like okay, we did it in time. But I wasn't running Linux back then. With standard hard drives I feel like if you're listening to the device and just paying attention to any sort of weird stops you can kind of see some of them coming. It's weird because I have a drive that has like 12 months no, 13 months in my laptop I replaced it and it's got read errors and I had kernel panic just can't load root file system and I'm sending it out which is weird. Why? I didn't throw it away, I just I took it on a plane and gone to Sonoy and back and that's it. No stuff. No hard stuff. Yeah, stuff like that is whenever you're doing important work you always back it up, back it up, back it up. Yeah, I just, you know, every three days I just run a copy with hard disk, hard disk back up and my PC can burn. No problem. I can save up for a new one but I can't recover the data. All right. I think when I was working on my dissertation I had that in four places at any given moment. Had like one copy on my desktop, one on my laptop one on a physical hard drive near me one uploaded to the server that I got sitting rented with Linode, so yeah. That's like industry. That's like industrial level redundancy. All right. Would you like to tell us how did you get started with audio at all? Because we know how you started with Linux but how did you go get into sound? So essentially goodness, it would probably then like early to mid elementary school I had piano lessons. So learned how to play the piano at that age and at some point any kid that has an instrument gets sick and tired of practicing the instrument and so there was a period of time where I didn't really play it all that much but I would occasionally do stuff and then when I started going to college I kind of wanted to be able to play piano a little bit but I didn't realize that my campus had any pianos so I started playing around with any sort of audio program I could find and I think it was like within a week or two of being at my college I ended up going into town, found a music store bought a relatively large midi keyboard and hooked it up and was trying to play around with it and at that point I looked around and saw what sort of software stuff there was because the built in like organ that it had sounds bad, pretty bad so And it had just one patch right? Oh no it's got a couple of them but I don't think I've come across any sort of physical keyboard that if it's not a synthy sort of sound that comes out of it they all just don't sound right I think the worst one I saw was there was one in a practice room at my college and it was supposed to sound like a piano but it had a hideous amount of reverb that they had added onto the piano samples Like hard printed into the samples Yes and you were in an acoustically like dampened room and you're like there's not going to be any sort of reverb here whatsoever and then this thing just is going off and off and off Was it like you you pressed the chord and it sounded like a piano in a reverb chamber and then you released it and it just got mute immediately or what? No no it would just keep going but it didn't match the physical room that you were in so it was just mentally off-putting That's something I sometimes do to to make myself more inspired to sing I just put on headphones, I turn on reverb and I sing and I listen to my voice but I just forget where I am and I just put myself in a different space to get inspired but that wasn't working there I guess Yes With some practice I'm sure I could have gotten used to it but at that point I was mostly used to physical pianos There should be a message close your eyes above this keyboard I mean that works sometimes when you're trying to read the sheet music that can be difficult And when you don't know the piano keys by heart Oh man My problem with piano is I learned how to sight-read so until I was actually working with musical notation programs and up until that point I didn't know the names for any of the keys I just knew that note there means I pressed this thing there So you just mapped the visual keyboard on a screen to a keyboard on your desk, right? Yep So you didn't know what was what That seems to be pretty normal You got the two schools that thought either the jazz or the classical styles of teaching And how did they differ? So the classical Someone in the comments may very well correct me on this but it's my knowledge that classical focuses a lot more on sight-reading being able to play pieces whereas jazz focuses more on understanding chord structures, chord progressions and just being able to improvise things a lot more So I was taught much more classically and I find the jazz side more interesting but still at this point I am pretty unskilled in that side of things Maybe also a bit more difficult because in classical music you can just learn something by hard work and just apply it and in jazz you need to learn skills that have you working in real time generating stuff because improvisation is basically this And classical musicians are not taught to improvise, they just are taught to reproduce what is written given by the conductor or someone Alright, how did you go further like how did you get into audio DSP programming? So hopping back a couple of minutes So I got into school I bought this keyboard hooked into the computer and I was like ok so what applications are there? And I looked throughout Linux audio and think about the state of Linux audio in 2008 or so It was pretty active but it was also quite rough I guess there was ALMA MASS which was doing the best things and Ardor, but Ardor was hard I couldn't use Ardor right of the bat, I was like how do I do anything here? And at the time a lot of the applications they would be very brittle so you would hook them up to Jack constantly, some of them just wouldn't compile and at that point Zin was like on the threshold of just not being able to compile anymore So it barely compiled Yep Just enough to compile I had that compiled and I think for a short time I also had a package that I had made for it on slacks and one of the things that I did I got sick and tired of seeing a million compiler warnings and what not so I made a couple of patches and oh man I overdid like the documentation on each one of these patches, did it so ridiculously overly formal at the point because I just wanted them to get accepted I would be so precise what I did so you know I know what I'm doing so you will accept it right? Well yes because basically I looked at the mailing list, I looked at the code activity and what not and I was like nothing's really going on here so I have to be very precise to minimize the maintainers amount of time so they'll just get it in So they don't have to put back and forth asking what is this? Why is it doing? Why did you do this? It's wrong Well at that time if I was doing that then mostly I was just going to Google translate and trying to translate some of the Romanian comments most of those have been translated since but at the time there was a fair bit of Romanian in the codebase in the codebase oh interesting so I just submitted them I think it was like three or four patches they were merged in and then I was given like commit access because I guess they were just ultimate power now I can make Zen always do farts I'm startup or whatever and nobody's going to ask oh boy so that was fun getting into and at that point my C, C++ skills they were embarrassingly bad so I think it was like maybe a year before that but so I was trying to learn C and I had some background at that point in doing Java and for some reason I thought it was a good idea to write a small string processing library to try to understand things but I had misunderstood some of the C documentation so how familiar are you with ASCII? not very I know A is 63 and that's it so do you know what zero is? I don't know so the way that C strings work is you have a bunch of letters and then you end the string by having a zero so a character of value zero oh it's a null character yes and when I read the documentation on it for some reason I thought instead of using a null you were supposed to use this one character that had a short name EOF and that stands for end of file so I had built a string library at the time that was working on strings that all the strings ended with the end of file symbol so it terminated all streams what it was absolutely terrible I think that was the first time I went on IRC and they correctly told me go read the manual and that's when I learned documentation is very good actually I love documentation it's like the most stuff I read nowadays is manuals read.docs.com I'm just eating this up yeah most of the stuff that I end up reading nowadays is like research papers but trying to get back to more standard literature yeah most reading like you know forum posts and articles about stuff that I want to learn and some papers too but I don't understand most of the papers I'm just curious interesting the problem if you get into any sort of academic stuff is you need so much context to understand why the author is talking about any of the stuff they're talking about I can understand the first part and then when they go into the meet I just go okay bye but hopping back basically I submitted a bunch of pieces of code got developer access and decided to try to push out a release and I think was the first of the 2.4 series and I think that happened early 2009 and the last release before that was 4 years or 5 years prior to that so I was seeing this as kind of trying to revive a dormant to somewhat dead project oh interesting so it was kind of stalled for many years and you were just picking it up giving it some love so yeah that's what my original plan was wasn't sure how long I was going to stick around doing that apparently for a while and just pick it up again how did you actually got to take it over and become the main maintainer because you were technically probably the only person that contributed code at that time it was 2009 but it wasn't until I don't know a few years after that then that you were like started being known as the maintainer of ZenitsubFX when like Paul Nasca handed it over to you, I don't know so at that point I think that there were roughly 3 people or so that were contributing code from time to time and majorly there was another individual right around the same time that I had started to pick it up Harold Haval I think is how you say his name and he's the person that's actually responsible for helping to translate over from the original make file system to the CMake build system and also he was the motivator for translating from I forget if it was CVS or SVN to Git because at that time Git was a relatively new piece of technology so he helped motivate a couple of the shifts there and it was only a couple of people really doing the development and there was that side of things and then around that same time there was the whole Yoshimi debacle but that's a whole bag can of worms or so and we should interview some people and do a video about this maybe we can get the Yoshimi developer on board I can't decide if that issue is worth poking at all or not it seems to be just kind of a time sink at this stage but around that time that large fork happened I was working on some relatively similar stuff to what they were working on and that I think it was like mid 2009 or so that was the first attempt to rewrite the GUI and was already the idea to make it single windowed it was to translate it to QT so move away from FLTK be able to use some of the nicer things that QT had exposed to it and it it was just too big of a task at the time none of the developers there had like enough background and just raw time to throw at it to get it working well enough yeah they would have to put a lot of time to just learn QT first and then do all the work right yeah and the biggest problem was just how ridiculously coupled the user interface and all of the signal processing was just every part of the GUI had access to every part of the back end part of the program and it was just a mess, an absolute mess and that first push was really a big motivator for a lot of the changes that I did since trying to modernize everything make it much easier to maintain, much easier to add features so and so and to decouple the synthesis engine and the GUI and now it's is it all done via OSC internally right now so you can in theory you can write your own interfaces to ZinnitsubFX, you can write a console command line interface if you want, if you can talk OSC right well I actually have one of those that I use mostly for debugging oh interesting OSC prompt so one of the nice things about the current way things are set up is the back end for Zinn should work and if you have multiple different user interfaces connected simultaneously I'm not saying that it works in practice but in theory it should work and that's one of the ways that I am able to just hook up this debugging tool and even if it's like mid run through got a piece that I've been playing around with for a while I can just hook up this debugger send messages to it and then see what the user interface is actually looking at without needing to restart or attach like gdb or any of that kind of like attaching to a tmax session right in the middle yep that's cool actually I recently reported a bug with this I guess because I had a few instances of ZinnitsubFX in order and one was had some automation and the automation bled through to another instance on a different track and my faders were moving it didn't affect the sound but it did affect the GUI and if I clicked on the knob while it was moving the GUI would pick up this value and send it over to the engine and it would actually alter my my sound then so it was very strange I guess it's still on like this I don't know if it was fixed already I believe well it's probabilistically fixed before you basically the way that it chose the OSC port was very deterministic which I did originally so that I could debug things a bit more easily so you have a port number and you can just dial up that number and you know there's going to be ZinnitsubFX there well what it does is previously it said okay we'll try to open this port number if it's not occupied then we'll take it and what it was doing is it was taking a port number that a previous user interface had so the old back end was still sending messages to that port and something new just showed up there so it started getting those messages so the engine was like oh they stopped listening oh they're listening again but it was someone else listening now and they didn't realize so I basically changed it so it's a randomized port at the moment so if you do it enough times eventually you'll see that again but I'm assuming that you're not doing this thousands of times trying to get this sort of bad behavior I usually start with 8 tracks with ZinnitsubFX for new composition then I probably go higher if I run out of them but not thousands however I got a collision maybe it's a one time thing or I don't know the original bug like you could do it every time guaranteed the new one it takes effort maybe there should be a hidden way to randomize the OSC port if you have a collision so you can just you know tune into another channel like in a handheld radio or something like a wireless mic right now the solution is just called close and open again and then hope that it doesn't happen again which isn't great but it should work well enough for the short term well that's a solution for many problems in IT in life not so much but in IT alright maybe I'll ask you the big question that I guess a lot of people are waiting for do you know when Zinnfusion will be fully open sourced so most likely by the end of tomorrow wow so the 2018 is going to start with Zinnfusion open sourced that's going to be huge yep the only thing that I have to make sure is that stuff is going to be able to compile with all the build scripts it's basically I've just developed everything in a bunch of Git repositories that I've just been hosting on my web server and it's just a matter of changing those URLs over to GitHub to push them public and what are your plans, what you're going to do next with Zinnfusion once this is done so the major things are just fixing all the remaining bugs polishing things up as need be and once that's relatively stable the big plans for 3.1.x is going to be shifting the parameter representation internally so that's a bit of a mouthful to say but essentially when Zinn was originally built most of the parameters were 0 to 127 and this was to keep things compact in terms of memory, compact in terms of how much computation needs to be done on various things but it is pretty limiting especially once you get into the domain of being able to do all the animations. Yeah, that's a big problem I run into especially if you automate filters or FM gain Well, I believe the filters I've already transitioned them over I think the filters are much smoother but still automating the amount of frequency modulation is producing some steps and you can hear it Yeah, so the goal is essentially to translate all of them over and they both get more dynamic sort of range as well as having some sort of meaningful unit so for some of them that's just going to be like percentage so percentage of modulation but for frequency instead of having oh it's a 67 frequency you'd be able to say well without any sort of additional modulation that's at I don't know 1.2 kHz and just being able to know that having an intuitive feel for it is nice Oh, yeah I think that's going to help especially new users to better to get a better feel for the interface because yeah, most of the parameters I think actually almost all are right now just random arbitrary numbers from 0 to 127 or 0 to yeah and what is this frequency one it kind of forces you to listen to what you're doing and this is something I heard that the developers of massive at native instruments had in mind that there are no numbers displayed on the massive interface so you have to listen and it's like more analog style the hardware thing when you have the knobs and you have a scale but it's not it doesn't have to be precise you're not sure you have to listen however it's way easier if you can see the numbers because you can do something by memory you have to listen every time and if you just want to dial in something you know you can do it very quickly and here we are memorizing okay I set the filter to 32 what is 32 maybe 42 the answer to universe life meaning of everything especially for frequencies in LFO do you think that will also enable us to have LFO synced with the BPM of a song and have it like in quarter notes or something BPM is a very highly requested feature and that is one of the things that would be nice to have integration with ZIN and it's also something that kind of goes along with having some sort of meaningful parameter representation is then you can probably toggle let's say your LFO frequency knob and first it starts and hurts and then you can like do something to it and then suddenly it's in oh well how is it in relation to the BPM is it going to be a one in one two yada yada so it would be nice to have that sort of level of additional functionality and that's one of the things that I would like to integrate in the future yeah this is something I think Helm is doing pretty nicely because you can sync it and you can set the LFO speeds in very different ways you can set it in millisecond cycles you can set it in hurts I guess and the beats and so on it's and it's easier to understand what you're doing and what to expect from the sound yeah Helm does a very good job at that in terms of presenting what sort of parameters you're working with providing uses with an intuitive way of kind of interacting with them and that's historically been one of ZIN's biggest issues it just isn't necessarily that intuitive until you get the feel oh I want to change this thing oh it's this knob over there rather than being able to reason about it yeah being able to easily discover it as you do it actually there's a question from someone on Facebook why the hell it's so difficult to use Gian Paolo di Nino asked why the hell it's so difficult to use I guess well it kind of answers this because we have random arbitrary numbers and no units and also the names of the parameters are sometimes very cryptic and they not all of them have meaningful tooltips that was one of the first patches that I actually integrated when I was working on ZIN re-enabling the tooltips because when I first got to ZIN the tooltips were there but they just wouldn't display so they were disabled at a higher level like no tooltips why I'm sure you're aware those tooltips are very very useful trying to figure out what the FLTK user interface was doing yeah so I mean I think the biggest reason why it's difficult to use at least historically is it's difficult to navigate between two things that are conceptually close and that's one of the things about the new user interface design which I think is going to make things a lot easier for people in the future you mean like navigating between a global filter in AdSynth and a voice filter because we have basically the same controls almost the same but they are at a different level in the signal chain and so with the new user interface that's one click with the old user interface that's going to be one click and then five minutes recording the 50 windows to figure out where it went and if you're using free instances at once which I do frequently then it's just a mess and you spend a lot of time alt tabbing and hiding windows and unhiding them to find the one you really are using and need and then you just have to really hope that your desktop man or windowing environment doesn't have one of those roll up features because as soon as you roll up one of those old windows you're not going to figure out that you did it and just have this title bar floating somewhere and what was that one was this the one that I really need and just looking around all the other ones many times I had like the situation where I do something and I turn a parameter and I set some things turn some knobs and I'm like I'm not hearing really any auditory feedback and I realized it was the wrong instance and I changed the patch of an instrument that wasn't even playing and then I oh shit what did I do? I wanted to set it to the lead I changed the bass sound so I hope the new interface it's interesting because it's like I don't know if you ever used Blender the open source free package me too I use it every day at work because I do graphic design for product visualizations and I love it but I had a big reserve to switch between Blender 2.49 and Blender 2.5 because it was a complete GUI rewrite and everything was different and I had the same trouble going from the Zenfx 2.x to Zenfx 3.0 basically Zenfusion because I I was like just it's completely different like I wouldn't be productive for the first time when I use it I would have like you know a few weeks to just do it and learn it and I would be less productive during that time and I was like I have to work do work I have tracks to finish I can't switch over right now but then I said no you have to do it switch over and I even announced it publicly so I have no way going back in case I get lazy so I have to learn Zenfusion and you probably saw that I just started you know other issues on GitHub as I went because I discovered more problems and it's interesting I wasn't very sure it's going to be much faster to work with even though you have one window but once I did it I realized this and I was pretty fast with the old one because I learned my way I could just you know click by memory almost unless the windows came crashing down on my face what is it anymore what I'm looking for but now I'm figuring out I can do it even faster with the new interface which is awesome I didn't expect that I expected it to be more compact and easier to navigate and manage on your screen but not necessarily to be faster to navigate and do things but it is and that's really great because it's helping the productivity and that's very important and also everyone who just takes a look how can I get this and this is also important because the instrument is inspiring to people they take a look at it and they wow I want to do something with this and then they do yeah I think for Zinfusion this was the probably fourth time that I had seen someone propose a GUI redesign and this was the first one that actually seemed to kind of make sense of the whole program most other ones out there they just started lopping off parameters left and right and trying to shove everything into the small space possible and it seemed worse than what was already there yeah I guess there is still some work to be done with rearranging the parameters sometimes there are some weird arrangements in Zinfusion interface sometimes you have like some knobs are very small and some are very big and there are some spaces unused or something that are just balancing it's already functional and you can do work with it there are some parameters that are not exposed but it's not a killer I think you've found maybe four or so parameters that have been cut off but the vast vast vast majority of the it's like 8 million possible parameters are accessible yeah and I really like that you have visual feedback for like EQ shapes and for filter response curves you didn't have this before and you can immediately see which filter you are using even if you don't know what the name of it is and also the distortion functions are visible and updating live which is great because I never knew what some of these functions were doing I was kind of guessing and I figured out that like quant is probably just doing bit reduction yep quantization yeah but it took me quite a while to really figure this out and now I can just see it and it's way faster to learn there are some weird things with the frequency charts being a bit squeezed I think for the EQ like I feel there is too much room in the low end and like like the graph is like that and right here is 100 hertz and right there is like 50 I have sealed so much room and I don't need it and I just feel weird but that's you know I think I might have changed that for the filters but I think I could have forgotten to change it for the EQ at the same time so they might have slightly different scaleings at the moment I should file a bug file an issue yeah there's a lot of tuning to be done there and that the whole visualization side of things is really my favorite part of Zenfusion the least favorite part is probably trying to figure out their stupid layout things because you have no idea how many hours I sat down trying to mathematically figure out what's the optimum way to place all these different widgets oh man well thank you you've got all these things they've got these different aspect ratios and then you have the text boxes that are beneath them and you never want to change the size of the text but you don't want the text to overlap you want to have a certain amount of padding and you don't want to change any of the aspect ratios of any of those widgets and it was a very complex solution that I had at the beginning I think mathematically it was a better solution than what I have currently in Zenfusion but it also took way too long to figure out what the optimal positions were that was a big large piece of work that has now just been rewritten into something very simple yeah it's like you have to do it first the hard way to learn that there's a different way but you wouldn't find a better way if you didn't do the hard way first it's like the thing is like the old interface for Zenffx it's all static there are pixel values that are just set and you don't touch it the window has a fixed size every window which is there are a lot of them but with this new with Zenfusion it's all dynamic you can scale it you can change the aspect ratio of the window and it all aligns and it has to make sense with this so this is more like designing a website than laying out buttons on a window I guess that's one of the things that I think has bugged the designer considerably because the designer comes up with all these images and is just like oh this thing goes exactly at that pixel location and I can't say like yeah I know it's different but I can't just place it at that pixel location and just expect it to work as soon as you resize it what is it doing it wouldn't make sense actually it was funny I don't know I guess you fixed this but I remember you could make Zenfusion just like you know 50 by 100 pixels and it was all so small it was hardly visible but it worked it's excellent that it's resizable because when I ended up getting my newest laptop I ended up going with one of the high resolution screens and most applications the text is just way too small but with Zenfusion since everything just scales it's fine you just hit maximize window and then everything is like a perfectly good size again and you have more pixels used to show this stuff I was thinking maybe about maybe it would be nice to have some spectral analysis built into Zenfusion some effects someone recently pointed out to me I don't know if in a comment on YouTube I guess there could be a like a spectrograph there's a synthesizer by Image Line the guys who made Freeti Loops or FL Studio called Harmor and it has a built-in spectrograph that you open up on the side and it shows you the output of the raw oscillators it's an additive Zenf so it doesn't technically have oscillators but because it's all about sculpting the harmonics and it's kind of helping I don't know if it's a good idea to have some effects that kind of links into one of the ideas that I really wanted to get out but just had to be cut due to just time constraints so there's one system that's currently in the code base which I've internally referred to as watch points and what it allows for you to do is watch the internal state of the synthesis engine and be able to see some of those live values come out and you can see that whenever you're in an LFO or an envelope you'll see this greenish line go from one side to the other and sometimes the marker will correctly follow the line of the LFO usually not there's some scaling issues there that I got to fix but what you're actually seeing is the raw values that are being output by the envelopes and I've made it so that it can send out a single value or it can send out a packet of values and the original idea was to be able to have watch points that you would be able to set so that you want to see what does this oscillator actually look like and then you'd just be able to see it like plug in an oscilloscope all the spectrogram and just what is it doing here? like pulling out probes to an oscilloscope and putting them on a circuit board on a hardware synthesizer and ideally you'd be able to get something that looks somewhat similar to I think it's Renoise's top bar where you can see a collection of different oscillators be able to see their waveforms in actually real time perhaps they also have a spectrogram version of that but yeah, that's something that technically there is the resources already built into Zen, it's just a matter of plugging all of that into the user interface properly so it's funny there's functionality right there in the engine that's not just rooted out to the GUI yeah, I just, I ran out of time to code the GUI part but I got the other part coded alright, so I guess maybe it's infusion 3.1 I don't know, 3.2 it's funny you're thinking about making different ways of interpreting that signal so you can switch between an oscilloscope a spectral and a real time spectral analysis or maybe a spectrograph so you have not just a sample of frequency response in a single point of time but you also have the history yeah, so that is one of the things that eventually is going to be integrated and other things, for instance, consider the distortion view one of the questions you're probably going to run into when you're using distortion is okay, we've got this nonlinear function but how much of that function is actually being used by the signal that's going into it, so how hot is the signal? yeah, it's like on the KALF compressor you have this little dot on the graph that shows you where your input signal level is on the actual compression function it will be interesting ideally, the distortion graph would also be able to show okay, you've got this signal coming in and then this is the distribution that the signal roughly has coming into this function so you'd be able to see what that's doing and then ideally if you have some layer before it where you're able to inject a little bit of a DC signal or something to offset it you'd be able to see the entire distribution shift oh yeah, oh I like this oh I like this idea also, I thought, well you could have kind of not PFL like in the mixers when you can just listen to a single track but when you can have these watchpoints you could also listen to the sound coming there because well like, temporarily switch between the master output from Zenith 7FX to listening to the watchpoint so we can not only see what the oscillator is doing but also hear it before the FX or before the filter especially if you have like many voices and they're modulating each other and you're not really sure and to be able to listen to a voice that is modulating another voice that is modulating another voice you have to, you know disable some voices and change the velocities to be able to actually hear it with watchpoints you could just click listen, right? and listen to what is actually modulating your signal and that could be very helpful in understanding the very complex frequency modulated patches or something that is something that way down the road might be a possibility but involves a lot of extra technical architecture because one of the things you mentioned is that you have to be able to listen to the sound levels around and if you're just clicking oh, I want to listen to this thing then you get into the problem of okay, are you outputting it at the same level are you trying to do some gain correction how are you doing that and there's a lot of extra technical things involved with that process visualizing it's easy just get all the samples back and you just say okay the smallest sample is now minus one master output is if monitoring then instead of master output we take the audio from the current watchpoint output what is going to the analysis analysis module and then we just put samples from there to the master output instead of what should be coming out from the master output but then it could maybe you probably should have this muted first because you can create some weird signals if you're tuning the patches and you listen to the master output you might have some wild volumes or stuff in between that could not be saying to listen to and then a lot of the internal signals that are routed through is in they're not all normalized in sane ways I've tried to decipher some of it but yeah exposing that directly to the audio output there would be a lot of renormalization that would probably be going on interesting funny it's this stuff that I have no idea is actually happening under the hood and I guess nobody who isn't like you knowing the code and have dug it up all from the ground up we have no idea that this stuff is happening and there are difficulties involved with doing something like that yeah the thing when generally when you're doing any sort of big signal processing or machine learning system you get something that works and then you add something to it and then you add something to it then you tune something that's in the middle of it and then you add something to it and eventually you don't know really what's going to be precisely happening at any of those middle steps without just rebuilding the entire new program that you've built up to that point so some of that stuff was documented a lot of it wasn't because that's just kind of how these things naturally grow yeah some say software has grown not built you don't have a strict plan well you might have 1.0 right but not everyone I guess it's like you're writing software and you have new ideas and you're shifting directions and it's growing it's not just built it's a living thing well it's quite interesting with Zin if you want to ask that question because if you look at very old versions of the user interface so I'm talking like maybe 2003-2005 or so you can see why some of those knobs were really cramped so you can start to see oh this thing used to be one button and then they just added another button and then decided oh well there's room for one more button and that's how it kind of just grew oh yeah we need another option but we have just 8x8 pixels right let's make it small yeah it looks a lot of like that but the other things that I love about the framework that I have I'm not specifying any of those locations so if I just add another control to the box it all just re-sizes itself not always correctly but I don't have to specify all that stuff manually so it's the Zest library right yep and then it's the Zest library so the Zest library right yep and you're going to be releasing this probably tomorrow so other people can use this and build their own interfaces multi-platform for something maybe audio plugins like LV2 stuff well it's particularly well suited for stuff like audio plugins because it embeds pretty well and it uses Ruby to actually run the user interface to do all the drawing code and what not and one of the nice things about embedding a VM it does take some extra resources but if you want to say oh let's have some global variables well they're global to that virtual machine so you don't have global variables colliding from two different plugins interesting I had no idea there's a virtual machine running Ruby inside oh yes well basically I started working on Zinfusion by working with Qt with their QML sort of sub-library and it was essentially a concise way of describing all these widgets and what not and basically with a user interface this big you want to have a lot of concise descriptions of things otherwise you're going to spend your entire day just typing out declarations and eventually I got to the point where it was just like the existing infrastructure that Qt had was not going to work it would have embedding problems and it was much slower to implement stuff there than I was originally expecting so I just rewrote all the interpreting stuff for QML and instead of Qt loading it, my framework loaded it so under the hood it is using QML the Qt standard for description of the interface but you have your own Zest library interpreting that and drawing it right yep and the only other difference is Qt's QML uses JavaScript to define all sorts of short callbacks and what not it sounds tacky that doesn't sound good relatively well but I really do not like JavaScript and so instead of trying to keep it JavaScript all those callbacks are now Ruby inside of the QML files that are written for Zest instead of having a JavaScript VM you have a Ruby VM yep and it works pretty well the compilation process is a bit hacky at this point but it works and I've got it down to one master build script that generates out your demo version and full version releases for Zinfusion so it will go through fetch all the dependencies it will compile everything and then produce out the tar balls or zips if it's being built for Windows so you have one command build on any machine right dump your source one command it's going to pull the dependencies build it prepare packages for releases and bam right with a couple of minor exceptions of course for instance in order to build on Windows it assumes that you have access to basically apt-get and one of those repositories is going to give you a usable MingGW version and on Windows it literally builds all the dependencies and statically links them because otherwise you're in the whole mess of just throwing in a pile of DLLs that's why the Windows releases of open source software that was conceived on Linux are often huge compared to the Linux ones because they have to bundle all these libraries statically linked right and it is very large at the moment I think I could probably shave off half the size of it maybe I don't think it runs the strip command so I think there's a lot of symbols that are left in those final binaries that really don't need to be there but I haven't tested that yet for GNOME debugger or something yeah the symbols are useful for like debuggers and whatnot but I can't figure out how to debug things nicely on Windows I can't debug stuff nicely anywhere by the way what is about the OSX version so when I was developing things basically I was maintaining a separate mailing list for people that were interested in hearing about status updates and I got to the point where it was ready to have some basic testing done on all platforms I got a decent amount of responses on Linux I got some responses on Windows that allowed for me to track down a couple of the major like it doesn't work like remotely at all on my system sort of glitches and when I sent out that sort of stuff for OSX I had the user interface built I had it running on OSX and I got zero responses so I basically was in the situation where I had like rented some time on a physical Mac computer because Apple is weird about licensing and I was essentially using a remote desktop to a remote computer trying it out and I was able to see that it booted but I didn't know if I moved it to another machine if it would do anything at all and I didn't know if the frame rate was abysmal because it's on a remote desktop you're seeing a slide show you don't know if the GUI is actually a slide show Am I drawing 16 colors or is it just the transmission but yeah I never got any responses back so I basically said okay well if I have a low level of interest no one's willing to help me debug this then I'm just going to say it's low priority and move on all right so Mac people if you want Zenfusion running on Mac contact Mark and help him fix the problems or let him know if there are any problems because otherwise he's not going to be able to do it and I'm pretty sure Zenfusion on Mac would be a great deal because a lot of creative people use Macs and well that's a great piece of software and you have Ardor running on Mac so you could have Ardor and Zenfusion and you have a pretty powerful duo for synthesizing sounds and mixing that I was using a Mac at work for three months before I realized the guy is a fraud and he stole my money and he never paid me but I couldn't use Zenfusion effects so I used tall noisemaker I used helm and I learned some other synths that I weren't using because I had Zenfusion effects but now I don't have Zenfusion effects so I had to use other stuff to do my job done to get my job done there are versions of Zenfusion that go on OSX I believe the most recent one maybe that was like 2.5.4 or something like that and it was Jack only so it's not ideal in terms of what it was outputting and one of the other issues with getting stuff moved to OSX is I am not very familiar with the packaging of stuff on OSX there are a couple of people in Linux audio that seem interested in helping out with that side of things but essentially you have to package things up and then make sure they get installed to the right paths and since I don't have a physical Mac to check if I've done anything correctly I've always been hesitant to put a package out there and just be like yeah it doesn't doesn't work even like remotely yeah that would be a weird way of releasing software well have this it's not gonna work but whatever well maybe it's maybe it is a way to see if there is anybody on the Mac using it it's putting out something and popping up a window dude help out us help us out debugging this software we don't have a Mac and then it just crashes because well maybe that's a way there are some Mac users by and large the largest chunk of users though is definitely on Windows just because there's more people that are Windows users and right now we have like native VST version of the infusion right so no more old packages or trying to just running it in standalone right well the VST for Windows that actually happened quite a while ago Sony goes by Jakku on the KVR forms had built a Windows VST version of it I've spoken to him a couple of times while he was like in the midst of developing that if he wanted to get commit access and just be able to work on the same exact code base so that everything can be shared and whatnot he wasn't particularly interested in that and seemed to have like some decent reasoning he just didn't feel like breaking the Linux version then us breaking the Windows version having that back and forth so he just found it a bit simpler little annoying because a lot of forks have popped up of Zin over the years but it seems to have worked out decently well but it's vastly outdated it was like 2.2 I don't know it was forked off I think 2.4.3 yeah something like that and then we had like 2.5 and it was still lagging behind so it was pretty old but oh there is a 2.0.0 VST version on Sourceforge from 2004 yeah and the problem is basically when I had started working on Zin all that Windows code was just broken like there was no reasonable way to get it to compile it was like so outdated in relation to how the system changed over the years yep like bit rot in the terms of code and yeah when I first got to the project bit rot was the major thing that I was trying to fix because not necessarily a lot of functionality had changed to the rest of the code base but compilers had moved forward and just a lot of the libraries had started shifting so yeah software needs some maintenance to keep it running yeah unless you want to have keep virtual machines of every system you ever used something sandboxed but you can't talk to each other so it's a bit hard to be productive with that and some people they will do that probably for some retro stuff like computers that are not around anymore like the 8 bit and 16 bit machines, Amigas and Commodores don't necessarily say that they aren't around anymore you'll find plenty of people using old technology they're not made anymore they're not around they have cold status all the banks that are still using cobalt oh my it's terrible it's like you built it like 20 years ago or 30 years ago and it's still running and you just you can't afford to to move it over to a different system or just nobody knows how to fix this just it's so old well it's eventually going to hit that point where there's only going to be a couple of programmers left and then just no one knows how to do anything with it and then you got update and then ancient programming languages dead programming languages oh man that's a bit rot ooh what question were we even on I think we were on plans for Zinnitsa of FX future and I also asked you via email about future funding model would you like to talk about this so future funding models is a tough question I guess originally with the Zinnfusion process I had internally set a couple of thresholds that it could possibly reach which would indicate that I could work on it full-time a bit more but I mean it definitely did get some sales but it wasn't enough that it could really sustain me yet for full-time work once like have to pay all for my own health insurance have to find another place to live cost of living all that sort of stuff so in terms of funding models it's probably going to be bit more on the tip-jari sort of side of things again in the future the plan is probably to keep releases up on Gumroad and to decrease the price of that and probably both the windows and OSX users will try to find binaries through there and then presumably everyone on Linux is going to have a package pretty soon after the user interface is open sourced I'm gonna let Falk TX know if he's not listening package it for KX Studio he's aware it's coming out so as long as I fix the paths that the build scripts need presumably he's going to have it built very very very soon so yeah so I'm going to still use Gumroad for that they're still going to of course be the standard donations on PayPal which it's got a couple of bucks here and there usually not too much per year and then one of the nice things about everything being open sourced is it's also in theory going to be possible to get into nightly builds for stuff like Linux packages Windows packages etc so that way if something changes someone's able to quickly just test out well what is the current version actually doing compared to the older version yeah but you need a build server for this or I don't know maybe some Linux company or a university would let you use a virtual machine or something to set up a build server for that I don't know well there's one service that's linked up with github they call themselves Travis CI and so it provides continuous integration so continuous builds for a project and it is free if everything is open source so I know lma mass is using that I know lma mass is using that or they were using that for their app builds app package it's something for an all in one sort of like binary app image that's it it's in the world of loopback device mounted programs with their own file system like snappy and what's the other thing there's a couple in that area but yeah so the plan is to I don't know try to continue to get a little bit of funding here and there and just accept donations as they come I guess the income that's come from actually using gumroad is basically makes prior donations disappear or look like a blip in terms of if you plotted the graph of cash over time but still everything's appreciated I've heard from some people and I myself this release of zinfusion is pretty costly on the gumroad it's not anybody can afford like almost 60 bucks but so probably yeah I know that a lot of people were waiting for the open source release to just start using it because they just couldn't show out so much money but probably they will be happy to just throw a buck a month your way were you thinking about using something like recurring donations platform like I don't know maybe patreon or liberpay to keep that maybe maybe make it more visible because I myself forgot about the paypal donations they are on the page in the contribute section on the down there on the page you can click donate and you get a little paypal thingy but it's not much advertised so maybe I think it used to be advertised a little bit more but basically I thought it would be very tacky if it was possible to purchase something and then see a donate button like on the same page so I de-emphasized it a little bit during the main Zenfusion fundraising period yeah maybe having both going on at the same time would be weird because well you sell stuff and you accept donations what's going on right I think helm has something that it asks you to donate money after you download it I yes yes they've are you saying within the app itself no it's on the web page you go download helm and you have a donation button and you can just type in nothing and it will remind you I guess I think it's nice it's funny I donated five dollars just because I thought it's a good idea and then I read up that I'm eligible for a sticker so I wrote afterwards hey Matt I sent you five bucks can you send me a sticker and he sent me to advertise this I think it's nice I miss I would love to have us in some effects sticker I was thinking about designing one myself but I'm not really I don't know if I could print them out and sell them through mail I don't know I can handle this I mean the icon that the designer had come up with is kind of like a nice sticker size and that's something that it's probably a lot more practical if you're giving it out at conferences or so because for instance if you're thinking about helm with a five dollar donation to obtain a sticker I think within the US to send international mail it's like I don't know a dollar fifty or something like that and then if the donation is through PayPal then you got an extra thirty five cents there with a couple more percent so then your five dollar donation turns into like two fifty or something well that's always the thing money transfer is costly so like you have ten dollars displayed on Patreon that you get actually you get six fifty or seven like after the fees I don't think it was that bad it was that bad after their update but I think they reverted that I don't know I think they didn't even roll it out they stopped it they cancelled that change because many people were complaining and I had like you know two Patreons just quit Patreon altogether I guess so I've seen this impact having an impact on the supporters because well and they said that it would be the best the worst thing for people who just pitch in one dollar because they would have the most percentage of their donation taken off taken out which is which sucks so they reverted this and they're not rolling out that change and they apologized but again maybe a liver pay could be an option I was asked by one of these people to to make a liver pay account so I can provide an alternative for people who don't want to use pay Patreon I yet have to look into that probably in the 2018 they're all interesting systems I mean when it came to figuring out the funding for Zenfusion trying to figure out well what sort of pricing makes sense what sort of model is a kickstarter approach better is something like Patreon a better solution it was a tough call to figure it out and might have chosen some wrong things in practice but it was mostly just trying to figure out what's going to net something in a reasonable period of time and Patreon is a it's a good model and I find it a very interesting project but it's very much a slow burn sort of build you need to build up a snowball to be able to really sustain something from it and it's I think if anyone's really interested in this stuff the people over at Snowdrift.coop they ended up making a couple of articles basically on all these different funding platforms their trade-offs how they pose issues for open source in particular and it's a pretty interesting set of documents that they've compiled showing kind of the trade-offs that you're going to incur with each and every sort of model yeah it's a lot of questions to be asked and answered if you want to fund anything if you're a developer or an artist and not a salesman and you know not an entrepeneur necessarily it's really hard to figure out what will work and what will not what will piss people off and or what will encourage them to help you out yeah it's a tough ride and it's funny I've had albums set up on Bandcamp for actually for like you can download them for free from the newest one but the sales only started rolling in after I started the Anfavlog video series and like when I passed like a 10th video it's like every once in a while someone buys an album sometimes two albums go sold in a week and it's really funny because the music was there right but nobody knew about it so I also decided to just let people know that I have an album that I can buy to support me after every video so it is advertised because I guess people just don't know because yeah it's hard to figure out how to present things yeah and what will not break your main content because I don't want my content to be ads about me or anything else I just want I want to teach people mostly but to be able to teach people I need to find a way to justify it to my family that I spend X hours every week or something talking to a camera and then editing this out instead of making money somewhere else so it is to be able to do it seriously I need to make money above it so I'm trying to build up a snowball of Patreon and maybe Bandcamp sales to be able to take one week every one day every week to do this that would be awesome and I actually set up goals for this on Patreon and there's an even goal like whoa making videos and music is my full-time job all right they figured what would be able what would allow me to do this and of course it's a high it's a high high goal but maybe it's possible I don't know let's try it we'll see how big and how generous and wealthy the open source musician community is yeah I know one of the major things that I had to consider when I was going into infusion is essentially since I was in grad school by taking a summer to work on that I was trading that off with doing an internship and that's a trade-off of well what sort of income would that bring in well what sort of experience would that gain me what how is this going to impact things when I'm looking for jobs basically your career right yeah are you building a career with developing Zenit sub-effects or is infusion or doing some other stuff well I looked at the stats and it was basically unrealistic to probably stay as a career for Zenfusion in any way shape or form but it was something where there was a chance it might be viable to spend like another I don't know eight months or so working on Zenfusion if it seemed like there was a ton of interest and that would have allowed me to get all those polishing things done it would have allowed for me to really thoroughly clean out the bugs and just add a lot of those extra features that had to be cut just due to time constraints that's actually pretty insane like how much time did you put into making Zenfusion a thing so if you ignore all the development of the 2.5 major re-architecture if you ignore all the developer hours spent after the release panicking like holy cow this thing is a buggy mess what am I doing I'm selling it right I think it was in the order of like 7 or 800 hours oh my about 700 hours right yeah in that ballpark well that's that's like I once did I did a few audiobooks one was a big one and it took me like 160 hours to record everything edit and put out record music for it and everything so that's like 5 of these audiobooks and that is an enormous amount of work I think I have the statistics on how much of each language is used let me see if I can run that script so let's see total lines of code in just the user interface uh hold on 8,850 lines and in terms of other stats let's see the main repository 224 commits the ones that were just the widgets 579 commits the stuff that was just used to vary OSC messages from one side to the other ignoring all the stuff for the real-time OSC library that I had already written that 108 commits let me actually see how many were in real-time OSC live uh let's see one line that has roughly 228 commits oh man yeah it's it's a big big program for just the user interface yeah it's like huge project for just one person to manage at all like I can't imagine even you know even reviewing commits from other people for something like that I do you think that open sourcing it will help you like attract some people to help you out with the development and implementing fixes or maybe in the future I'm hoping but you you don't really know if it's going to or not uh it might end up drawing in a bunch of people that want to have a couple of small features it might just be something where it's out there and it's just too different from other things and people are like ah that's too much work to figure it out it it's hard and that's one of the things with like ZIN that I've tried to look at a number of times trying to go through academic literature well what attracts newcomers to open source how do you make it more attractive to them how do you onboard a new developer and help them stay around and get a code base and stuff like that and for a really niche community like Linux audio it's it's difficult and that those sort of articles were one of the reasons why I ended up having that short blog series about kind of how I saw Linux audio on the developer side of things declining somewhat and it was kind of worrisome because unless you have a relatively decently large crowd of people that have pretty advanced technical skills it's hard to keep all these different applications progressing it's a lot of work there's also you know probably it's not easier because we have a very complicated audio stack on Linux with different subsystems working together or against each other sometimes and sometimes you have random situations where it just doesn't work and you have no idea why even though you're using it for a decade like I had this on Sonoy I had a laptop on stage and then I just had X runs from Jack all the time I didn't know why I didn't have anything like that ever I just had to reboot it and it's on the video I rebooted it on stage and I played some music from my phone to entertain people actually the crowd the people were amazing and they took it really well and they were very supportive and positive it was really amazing to be there and experience the Linux audio community face to face and talk to people I never went to these kinds of events related to what I care most about I gone to some other events just be like like an addition I gone to conferences for security nerds to you know make them learn something else and made music with LMS live before them but it wasn't my crowd it wasn't my people and now this were my people and these are my people and it's exciting and maybe it's a good idea to make more videos like that and talk to people and like I think it might help build out the community and let it see and hear who we are and to better know each other and help us make better software and make better use of it definitely seeing any sort of video about a piece of software or just discussing it helps a ton because you see all those little things that you overlook because you do it one particular way and you don't realize that everyone else is doing it some way else because there was no tooltip to tell you I have some I have some other questions if you want to say something else I'll ask it afterwards hey go ahead I want to ask what is your favorite piece of software apart from Zen and sub effects it doesn't have to be audio related doesn't have to be even open source so when I first read this question one game came to mind because whenever you're playing a game that's kind of what just goes in the back of your head for a while but then I realized I think the one that I'm valuing the most at the moment has to be the Julia project and I think a lot of people have probably heard of Matlab and Matlab is a little bit of an older matrix processing language you can do a lot of programming there and for stuff like machine processing and any sort of signal processing it's one of those standard tools that is just taught to most engineers and one of the problems is it's closed source it's slow it's showing it's age essentially and Julia is a project that people at MIT started up only a couple of years back I think and it essentially does all those sort of matrix processing things much more quickly in a much cleaner way and it's one of those things that I am just constantly using for my work like I think yesterday I must have had like four or five different terminals with just this program open in it I see that there's a source code and there are Linux packages Windows packages macOS packages even ARM packages so you can run it on a tablet or something it's good to know that there's an open source alternative to MATLAB that you say even does stuff better in some regards if you're just looking for straight MATLAB there's always Octave and those people have done a fantastic job but one of the drawbacks with stuff like Octave is that it is a lot slower than running stuff in C not necessarily the fault of any of the people that work on Octave itself it's just the language doesn't lend itself that well to optimization interesting and then I'll mention the one game that originally had popped into my first reddit what is it? Factorio that is a very fun and very addicting game so that game is all about building a factory so you're trying to build up layers of automation on top of layers of automation and you end up getting all these like spaghetti logic situations where you have something that's just barely working and it's fun to play with I was I never played it but I was invited by friends, multiple friends to play it on Steam with them I declined it so far but maybe I should give it a shot just make sure that you have enough time blocked out for it because if it's the thing that just clicks with your brain the hours are going to slide by pretty fast it's probably like Minecraft for some people you just start digging and you wake up two hours later with tons of diamonds in your pockets and weird swords yeah, yeah it's very fun and it's nice that it seems like there's a lot of games that are now having developers target Linux along the way and this is one of those games did they distribute for Linux too? yeah, they've got Linux, OSX and Windows versions and it's nice when you don't really have to finagle with wine or anything like that to get stuff working funny, the screenshots look a little bit like a merge between Transport Tycoon Deluxe and Total Annihilation yeah interesting blend the era of Transport Tycoon and Roller Coaster Tycoon like the original all those nice isometric things the art style definitely scratches those sort of itches it's been a while since I've been able to play those games yeah, I'm not playing games too much at all right now because most of the time I have free, I just either do with music or record videos, many videos I record never get published because I messed something up or I decided that it was crap and I have to record this and then editing and stuff like that yeah, I'm glad I'm not editing lots of videos because that is something that can be very time consuming yeah, it can I actually wrote a script for CadenLive to enable multi-threader rendering because it uses Melt and you can generate a script and then I made a script that took that script and created multiple scripts that would render chunks of the video and then concatenate and I submitted it to github and someone filed a request they just made a fix and it was like wow, someone contributed to my software I don't consider myself a programmer I do some coding at work but it's very ugly bash code that just gets this stuff done but I wouldn't consider myself a programmer if you use blender routinely it does have a lot of python that exposes right? yeah, I made a python script for my work to get some 3D models from inkscape drawings with layers descripting hates and positions of different shapes so we have stacks of extruded paths and yeah, so that's it's funny I have more questions like reality aside, what is your biggest dream or wish in the relation to Linux or open source music software? I guess the biggest wish is to just see things continue on if you look throughout let's say a lot of the older wikis you'll be like oh, there's that piece of software and you'll take a look oh, it hasn't been updated since 2003 that piece, that's interesting and it's another deadlink there's a lot of interesting things it's a dead end so I'd like to see them continued and I'd like to see things refined maybe merging some forces to do one project instead of five different ones doing the same thing over and over it's hard because I yeah? go ahead it's hard because I think that a lot of developers go into open source these projects just to teach themselves as an exercise and they just drop it and do other things but we might want to see that developed but they're not interested in that because it was just a practice just an exercise for them it's hard to pick up someone else's code and just maintain it like you did I'm really glad you picked up some effects because well I value this piece of software a lot and there's nothing like it and it just enables me to do amazing stuff and I really hope people will hear that you can do really top-notch sound design with open source software and make music and sound effects that will rock and there's nothing to be ashamed of in this regard and I think Zenfusion is pushing this even forward because it will allow people to have a very modern accessible interface to that and it will help them learn the capabilities of the synthesizer that were just undiscovered under the obscure UI little people had the courage and the time to just dig in and figure out what these things mean just tons of knobs and I had one video like an hour and a half or like I don't want 20 minutes when I just go through every knob in Zenfusion's effects interface and I want to do the same thing for Zenfusion but probably it's going to be shorter because there are blocks that are just you know like reusing the same parts there is some reusing in the old Zenfusion effects GUI but lots of that is just very random and not well described there's still work to do in Zenfusion in this regard but well there's tons of work left like if you look on the bug tracker there's a number of issues that have like sub-issues, sub-issues lots of polishing that needs to be done I really hope some people can jump on and help polish this out once it's open source so take some weight off your shoulders not necessarily with pitching in money but with just fixing bugs or helping to lay out the user interface better and a lot of projects just don't end up with the resources to like continue refining things that's why a lot of a lot of Linux apps, a lot of open source apps they might under the hood have a lot of really cool stuff that works really well but for instance they'll just have a user interface which is horrifically terse that you just can't parse I think Blender for instance is one of the very few exceptions that since it's a graphics focused app they put all this time into the user interface and it might be weird it seems like all the 3D modeling programs have weird user interfaces yeah, many people complain that Blender is weird however I think it has its own way and once I learned it and I used it every day and did stuff I just wanted my whole system to work this way I wanted a file manager that would look and work like Blender I wanted a window manager that would just be Blender with different programs and different tabs and I think in the future I will try to integrate some of the Blender-like ideas if possible towards likes and fusion because it has its own language about things and when you actually work with its language nicely it just seems to flow