Audio Programmer Virtual Meetup - May 11th @ 18:30 BST

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
now that something's gone wrong yeah thank you thank you thank you just we're live we're live hello everyone hybrid we've already done this before but we'll go over it again welcome to the first in-person audio programmer meetup since 2020. [Applause] my name is harriet i'm one of your co-hosts for the evening i'm an audio engineering student i uh co-host dynamic cast here with rachel that's why i'm here and josh was kind enough to bring me down to sort of lead things around and stuff so i would like to thank our sponsors let's see if i've memorized it it's sonnax juice and focus right so we give our thanks to them for providing us with the the support we need to run these events they're both hybrid and in person and it's been absolutely fantastic so timo would like to say some things before introducing rachel yep hi is this working hi hi my name is timur i'm also one of the co-hosts tonight i work at jetbrains we make among other things the c-line ide and i have a bunch of free c-line t-shirts and various sizes so if you want to have one of those free t-shirts please come and find me later um the other thing i wanted to say is that it's so great to be back here in person so we had one of these in march 2020 back at the strong room studio and that was the beginning of the this meetup and it was great and then we had to go online which you know it's not necessarily a bad thing um but it's still very very good to finally be back in person so that's awesome um so when you were online i was co-hosting for a while then i actually um rachel who's here with us tonight actually took over from me as co-host so it's my great honor to introduce rachel who's going to be doing the first talk of the evening rachel just recently finished her degree in digital audio engineering at the west university of west london and started working as a superstar software engineer and today he's going she's going to continue her series on dsp introduction talks um and that's number two in the series right yeah last month that's very exciting so please give a warm welcome to rachel thanks dima hey everyone this is my first in-person talk for the audio program meets and this is the like team i said the second episode you have to excuse me i'm not so used to public speaking and i'm recovering from an illness so if i need to take a drink or clear my throat at any time please bear with me so today we're going to be talking about common signals and transformations the objective of this is just to look at some common signals their notation familiarize ourselves with some common operations on signals as well and yeah just get some understanding of some fundamental dsp concepts so the first thing i'll mention is that all the signals and operations we'll be looking at today are discrete time or digital i may occasionally make reference to continuous time counterparts but i'll do my best to make the distinction if that happens if you're familiar with dsp notation or you tuned into last month's dsp corner you'll recognize that i'm using square brackets and the independent variable n throughout the presentation denoting discrete time signals and systems the first and potentially the most significant signal i'm going to speak about today is the unit impulse signal this is sometimes referred to as the impulse signal or the direct delta though the latter is usually reserved for the continuous time counterpart the words signal and function are generally used interchangeably so you can assume i mean the same thing whenever those terms are used how is it that such a seemingly simplistic signal such as the unit impulse could be so significant understanding the power of the unit impulse and how any digital signal can be expressed as a sum of weighted shifted impulses is the key to understanding essential dsp concepts such as linear time invariance and convolution first let's define the unit impulse signal we introduced this notation briefly in last month's episode on the left of the equality is the notation for unit impulse signal we use the greek letter delta here to express that this is a unit impulse signal on the right hand side of the equality the signal is defined for every integer n we can see that the unit impulse signal is a signal that has a value of zero everywhere aside from n equals zero where it has a value of one impulse decomposition is the first step in understanding the fundamental dsp concept or superposition which we will work up to and gain a basic understanding of today say we have an arbitrary signal x of n in the top corner here we can decompose it into a sum of weighted shifted impulses but before we do that it's worth mentioning that x of n is an odd signal and by that i do not mean that it is peculiar i mean that it has odd symmetry about the y-axis this axis highlighted in red here the conditions for oddness are as follows x of minus n equal to minus x of n this way we can check the above signal for oddness i'll come around in front so what we have to do when we check conditions like this is just plug in a number for n so let's say we plug in one we've got x of minus one which is this line here which has a value of minus four so this should be equal to minus x of n when we bring the minus sign out in front of the signal here that means that we are timesing the amplitude by -1 so we've got a value of 4 here 4 times -1 is also -4 and we can say that this signal is odd as you can see all the other signals in both directions are the same we can also check the conditions for evenness these are x of minus n is equal to x of n for this signal to be even all of these impulses on this side would have to be made positive and then we would have an even signal there are two very important signals in dsp that have these conditions the first one is a sine wave a sine wave by definition is an odd signal you can see that it has oddness around the y axis an important even signal is a cosine wave we can see that it has evenness around the y-axis okay let's get back to impulse decomposition so we're going to compose decompose this signal x of n into its individual weighted shifted impulses so the signals you'll see here are zero for most values but each of them has an impulse component of x of n i've highlighted them in separate colors so it's clear which ones belong to which so you can see that x and minus 4 has this value of 1 and we've decomposed this into x of 0 n then we have a value of 2 at minus -3 which is this one from our original signal a value of 3 at -2 which is this one from our original signal and i'm sure you can see what's coming next we've got the next one and finally i've highlighted zero as well i couldn't decompose the whole thing because i ran out of space but hopefully you get the idea of how we're splitting this signal up and how if we summed these signals below our xmn together how they would form this left-hand side of our original signal for this reason all of our decomposed signals need to have the same length n as our original signal so that when it comes to adding them back together we can add all the points point by point to obtain the original signal oh is that where i'm going yep cool so last month i spoke a bit about introduction to systems and i showed this block diagram which is generally how a system is shown in most textbooks for dsp you've got some input a box which represents the system itself and some output y of n last time that i showed this system i put a capital h on it and i said that i would explain why in a later episode this time we've got h of n and that is because that is the notation for the impulse response of a system and the impulse response is simply the output of a system when an impulse is used as the input so i want to define linear time invariant systems last time at the end of the talk i spoke about the conditions for linearity this is a system has to be homogeneous and it has to be additive homogeneous meaning that if we scale the input by some factor then the output is scaled by an identical factor and additivity meaning that if we add two signals together in the input then those two signals pass through the system without being interfered with so those are the conditions for a linear system for a time invariant system we can add some shift to the input signal and preserve the shift in the output signal all of these conditions are about preserving something whether that's a scaling factor an addition or a shift why is it useful to be able to express a signal as its weighted shifted impulses last episode we introduced the idea of systems one way we can input signals into systems to give this idea of one second oh sorry i'm getting used to these controls so this image is taken from the book the scientists and engineers guide to digital signal processing this book was recommended to me by fabian wren giles someone you might know very good book and i chose this particular picture because it visually describes quite well how you would decompose a signal into its impulse components feed them through a system each time gaining the impulse response for each additive component and then using synthesis or plainly adding add them together to receive an overall output signal and the whole idea of this theory is that when you feed the individual impulses through the system and add the impulse responses you receive the same output as you would if you fed x of n through the system without decomposition and i've notated here what it looks like when we have a weighted shifted impulse and these are expressed in terms of our original impulse which we saw was zero everywhere and had a value of one at the origin so we can see here that we have a minus sign out in front that's because our signal has a value of minus one and it has a shift of four because it's shifted four places from the origin where the original impulse would usually be we have this one which has a scaling factor of minus two because this impulse has the value of minus two and a shift of plus three we have a scaling factor of minus three here for this impulse and a shifting factor of 2. it might seem a bit counterintuitive that we add to shift to the left but this is what you can think of as an advancement if we're moving this way and a delay if we're moving this way another common signal you'll come across is the unit step signal this is a function that resembles a step with a value of zero everywhere until point zero n equals zero where it suddenly steps up to one and has a value one for all n after that this is what we call a causal signal meaning that it has non-zero values after the origin and zero values for all n before the origin for that reason if you wanted to make any signal causal you can multiply it with the unit step function in order to receive a causal version of your other signal let's talk about real exponential signals an exponential function is an exponentially increasing or decreasing time series real exponential signals refer to an exponential signal where both the base and the exponent are real numbers we want to look at real exponential signals because we'll later get into looking at complex exponential signals which are a fundamental building block of dsp and i wanted to show you what the real exponential signals look like for different values of alpha so if we ignore the scaling factor capital a in front just for a moment and look at what the effect of alpha is on each real exponential we can see that when the mod of alpha is larger than one and alpha is positive we get an increasing exponential this is for a value of 1.2 we can also see that when the mod of alpha is larger than one and for a negative value such as minus 1.2 we have this oscillating increasing exponential when the value of alpha is smaller than one and alpha is positive we have this decaying exponential and when the value of alpha is smaller than one and is negative we have this oscillating exponential but in the other direction next we're going to look at some basic signal operations first we're going to look at time shifting this is nothing but adding a shift in the positive or negative direction to a signal we can shift a signal to the left or to the right when we shift the signal to the left it is a negative shift but it is called a advancement of the signal and when we shift the signal oh they're the same um yeah plus is going to be to the left and that's an advancement minus is going to be to the right and that's a delay i'm just gonna have a drink before we shift the signal so this is an example of advancing a signal we can see here that i've added a shift of plus two which means we're going to have a shift to the left if you're experienced with this you can do it just by visually seeing like okay this used to be one now minus one now it's going to be minus three but one thing we can do is plug in the values for n so for this signal we want the output x of n plus two say we want to find the output at point zero we're just going to plug in zero in the place of n zero plus two gives us x of two so we're gonna take the signal at x of two and place it down here at zero then we want to find for n equals minus one in our output signal plug in here minus one plus two positive one so we go and grab x at positive one bring it down here same again want to find y at minus two plug in i'm sorry i just realized that i know you have a screen there i thought i was standing in the way of everyone there oh good all good okay y minus two plug that in minus two plus two x is zero and you can see that that comes down here so we've shifted the signal to the left two spaces nice and easy oh i forgot about my highlighted ones now i've got my laser pen okay this is another example this time it's just to the right instead so we have our output signal y of n x of n minus two and y of zero let's calculate that just plug in zero minus two get x of minus two so we're going to take that bring it down here to zero you can see what's going to happen next all of the other values are going to follow and we shift it two places causing a two sample delay the next operation is time reversal we can see that this is an example another example of an odd signal in time reversal the notation is x of minus n so we want y of n the output to be x of minus n and what this minus n does is it means that we are going to flip the signal around the y axis so simply all we do here is just whatever value we have at x of n for the output we make it negative and vice versa so you can see here that this is a version of this just flipped around the y axis there we go final operation is time scaling time scaling is denoted by a scaling factor a that goes inside the brackets next to n so we're times we're multiplying n by some scaling factor what we need to know here is that when a is larger than one we have a compression and when a is smaller than one we have an expansion this is another one of those things in signal processing which is a bit counterintuitive like with the shift when you think it would be positive going forward and negative going back but yeah it's just one of those things and we'll see what i mean next so this one is going to be a compression we also call this down sampling and that is a condition when the a is larger than one so here the example is y of n should be x to n so whichever n we have we're times in by two so if we come down here we wanna find y of zero two times zero is zero so with the time scaling if we have a value at the origin that will always stay the same because anything times zero is going to be zero the next one y of one we wanna find we plug in two times one as it's two times n and then we get x of 2 so x 2 comes down here the thing i will say about time scaling is that unlike time scaling and continuous time we actually lose information here as you can see we've got five samples in our input signal and down here in the output we're actually just left with three samples that's because say we try and calculate y of two plug in x two times two then we're given x of four now n equals four in our original signal is zero so we actually have nothing there that we can bring down here to put at y equals two and the same for minus two so we're left just with this compressed version of our original signal so the opposite is expansion and also referred to as up-sampling this time we have an a which has a value less than one you can express it like this but you can also express it like 0.5 times n you'll see both in dsp textbooks um let's have a go at upsampling this signal so we want to find y zero plug in zero divided by two zero like i said zero is generally preserved when we're talking about time scaling or when we're talking about reversal uh what about y of one so if we plug in y of one we've got a calculation for n where one over 2. so that's going to give us 0.5 so with discrete signals we don't actually have 0.5 as a value of n we can only represent integer samples so this is something we can't do so this one will just be left at zero y of two two divided by two x of one so our value that we had for x one is being expanded over here and you can see how this is causing an overall expansion of the signal our signal started off at -2 to 2 for non-zero values and ended up with values for four to four for non-zero parts we can see also that for three we do three over two what's going to happen we don't have an integer value so we cannot do that so y of three is also 0 and then for 4 we can see that we shift this one that used to be 2 way out here to 4. so we can say that for any odd n we can't have a value when we're doing up sampling what we can do is we can use interpolation to fill in these missing signals or missing gaps [Music] i think that describes up-sampling and yeah that's my final slide thanks for rattling through that with me [Applause] thank you thank you rachel i think you said you prefer not to answer questions during the talk right but you'll be around because it's yeah yeah it's just because it's every month so okay um but people can always ask me questions on the discord or twitter my handle is madame modular right or on linkedin amazing thank you so much thank you should i take this yes so i um we're almost ready for the break i just have one little thingy which i wanted to show i have like exactly one slide okay this will hopefully work does this work yes so a chat means we don't just give away free t-shirts but you also give away free licenses so you can get a free one-year license for any of our superstars related products like c-line app code resharper or ryder if you want to get a reluctance for any of those things you can actually choose which one you want uh all you need to do is you need to uh think about your favorite code snippet in any programming language and you need to send that to me so either if you're here in person you can just find me during the break or if you're online obviously you want to include everybody who's online you can send me an email this is my email address if you send me your favorite code snippet in any programming language by the end of this meetup then you might be able to grab one of five um free licenses that i can give away today for c line or any of the other zip related products okay uh with that said um we're ready for the break so josh when are we going to reassemble here is that going to be in in half an hour so we're going to be back here at 7 30 with the second talk and until then enjoy the break [Applause] content friends the camera's just like staring at me right now let's see what happens josh how are we doing are we are we good to go keep talking keep talking we're good okay i've been giving the thumbs up so welcome back everyone hope you had a great break got a drink or something i'd like to give my thanks to rachel for that great dsp talk um give her a round of applause guys please yeah thank you thank you so now that you're all fully wide awake from that dsp talk we're gonna bring it back a bit and i've got the pleasure of introducing ricardo to you guys so come on regard it come in come in hi this is ricardo everyone and he is here today to talk about his latest project in building what was it building a music education app called midi circuit so take it away ricardo yeah hi everyone uh good afternoon good evening um yeah so i'm gonna talk about midi circuit this app that i set myself to build uh now we're like little team as well um yeah so what is midi circuit uh midi circuit is an interactive learning experience that is designed for everyone that combines both educational and music making content into one friendly package at least that's the goal but first let's talk about the problem i've always been frustrated by how difficult it can be to learn complicated media instruments like synthesizers drum samplers samplers and drum machines the included manuals don't teach you how to make music they don't teach you important concepts you need to know or even how to make beats um so we invented midi circuit um which makes which teaches beginners instruments which teaches beginners how to use complex instruments and helps them get started making music right away so let's get started okay this is a snippet of what media circuit is you can interact with our lessons and you can play around and learn new concepts right away when you buy your synthesizer i'm going to show you what midi circuit looks like this is our latest staging build hopefully not too broken okay great um unable to load the bill that's that's that's already a great start that is already a great start um okay yeah this is not good at all um hold on i think we're gonna still get there can you okay i'm really sorry about that this is the worst moment ever um [Music] okay i think we'll be able to do is this any way i can uh move yeah like how okay i okay okay let's maybe do this hey okay so this is not the app i have to literally use our beta flow sort of like figma designs to improvise this so when you get started on the left-hand side you have context about the lesson you're about to perform in instructions and we try to keep everything in the middle interactive and what you see would then communicate with your instrument and highlight the pads and once you interact with the instrument or with the ui or with your finger using an ipad or mac os with your mouse so we use all of these interactive interaction points to to give you an immersive experience and so you get options and you don't feel limited um in this particular lesson you just go and play around with the sounds um if i did have here i do have my push there but the idea is that you can also go and make a video for someone more proficient you can just like live drum uh and this is just our onboarding then we build up on the concept of sounds and we introduce patterns um then we build up a little bit further on it we introduced tempo so now you understand like rhythm as well you can go from house to hip hop and techno and whatever you want uh so this is the goal of this journey was just to introduce you to the mechanics of midi circuit then you can go and create your account and you would land on the home screen and you can see you already completed your first circuit um you can then add it to favorites and then you can find more circuits to complete as you can see it's very much like targeting ableton uh it's just because it was we we kept our uh beta phase focus on a product that we knew well and was complex enough as well to to to create our api so we can then transpose that learn that knowledge into other devices like novation launchpad which you're and which we're integrating with at the moment um this is another type of circuit um it's a circuit that you would be able to go through the instrument and the instrument this is all native and you'll be able to communicate with the with your physical instrument if you don't have the instrument it's all good you can still click around and learn a little bit about this so this is pretty cool for teachers where they can explain concepts or kids can take away home and play with it even if they don't have the instrument but if they do have it it's a more engaging experience so okay boom be back in and on your profile you can track your achievements your streaks and do all the profile basic stuff and here's just the basic settings so i guess let's go back to the presentation okay so what midi circuit tries to achieve is help you master your instrument learn new instrument learn music production workflows we try to break down in simple concept step by step so you feel like you're progressing and learning concepts that you can then take and build on your own on a dw ableton cubase or any other place music theory so you can play better i've always seen people struggling like how to learn how they can play for example a major scale on the ableton push or the launch pad or other instruments we also want to be able to do sound theory for example like synthesis um and we want to do all this stuff with deep integration so it feels connected and engaging so you love your instrument the same way a guitar player loves their guitar i'm a bass player and i love my bass i literally want to sleep with my bass so maybe one day you want to sleep with your midi instrument too and we want to do this all in one place on midi circuit so let's talk about the tech since we are here at the audio programmer meetup you're all techie uh so the tech behind it is it's quite simple uh there's always like some bits around uh and some other ideas that we try that are left over or maybe we'll pull back later but uh on the front end we use swift and swift ui uh for for the for the for the app and everything that's audio and midi at the moment is handled by audio kit on the back end we use go and graphql for our apis and the content itself the media all the strings all the translations and things like that they live in prismic and they just like piped into our go api it behaves like a micro service and then we consume that in the app um yeah that's it and now i'm gonna give a little bit more context around the journey to get to here to what you've just seen um i was actually at ace hotel i had the idea for a while and i was thinking about it but i was at ace hotel which now is closed but it used to be sort of a creative hub around here in shortage and when i was sitting there i always felt really inspired and sometimes i would just hang around the city and in shortage in particular and i would work a little bit and then i would go exploring take pictures and this day i was there and i was like i already had coded some prototype stuff just to get an idea of what we could do with it particularly with ableton push and i was like okay i'm going to create a landing page this time and validate if people are actually really interested in this uh i created this landing page in two hours or so and then i posted on facebook groups on reddit um and within roughly 24 hours 400 people signed up so i was like okay that's that's pretty good like there was almost no marketing no money put into this and 400 people are interested so i was like let's let's let's start let's start building this but to be honest only two years later maybe maybe even more because i was managing teams and i was focused on my career and i was just always trying to find the right time to to give love to this and all the research i was doing as well on it um only around the pandemic in november i decided to take the plunge and invest my savings into this project so i hired my good friend delcio battista who's a ux ui designer um and he started working on on on wireframes and we started interviewing people that were in our early access user base some of them were music tutors we were approached by by incredible people different people from everywhere and we were like well let's talk to them and learn from them and try to build something that is uh you know that that they're gonna love um then around april 2000 uh 2021 uh we built our first prototype this time i had dropped the contracts that i was doing and i focused on building an mvp a little with swift and swift ui uh basically replicating the the whole design um after a couple months i go back again like sort of part-time because money is running out uh i was paying my rent here in london all those things and i'm kind of like i'm not risk-averse but i'm kind of i can see like where things are going so i go back into that but we keep progressing i apply to apple entrepreneur camp and then apple chooses us to be a part of the entrepreneur camp eight people it was an amazing experience we learned so much through the two weeks there and we then do a demo to the apple employees and we get time to to ask them questions uh as well and and get their help on a little bit on the code uh as well so after after the validation we got from like leaders at apple uh people that for example work with multiple music apps and um and work with in within the the music platform itself uh we we felt validated and we were like you know and i i said we need to actually accelerate this so i then went and hired uh an ios and micros engineer to support me because things were really slow and some parts to be honest i wasn't as expert as she is uh i'll show you uh dory soon and um and yeah then we started focusing uh building a road map um focusing on getting to our beta and communicating more what we were up to uh and even within us um the group the little group we have the team uh just be more accountable and trying to deliver the things we promised to deliver um and our goal is to release a first version to the app store around midsummer and yeah so what's next um so next is i think we are we're going to focus on securing our seed funding round so we can spend time working uh full time on this and giving the loving needs and building an awesome product a magical experience uh we want to add more content before we launch on the app store uh then we launch on the app store and then we're gonna start working on our creators program we already were approached by multiple music experts want to work with artists and schools and try to create like rich content experiences that will help people learn their electronic music instruments so to do all of this we need a great team and here here we are i'm ricardo the founder uh the other ricardo which not over there um the other ricardo my co-founder and also the product designer uh dory dorota piacekova our ios mac os engineer who makes all the ui look nice and pretty uh and our senior software engineer on the back end named cloud maduro kadam and yeah here are contacts you can find us you can email us a team at yonko level which is actually the company that i built to kind of like fund this whole thing uh our website is mediacircuit.com and you can reach out on twitter at midi circuit or you can reach out directly to me it's underscore text brown tx brown and that's it really so thank you for listening to me do you have questions i think there was supposed to but like maybe one or two um yeah yeah i can make my mic live yeah do you want john i just want to ask uh what's your target audience like target user base yeah so the target user base i want to say everyone but it's really people who either just right now is people who just bought a media instrument or they lent it from a friend um and schools that's that's kind of like the audience we're looking for we already seen um schools are adopting electronic music instruments into their classroom uh in europe is becoming mandatory to have at least uh one hour per week of music in schools across u.s and europe are adopting uh electronic music instruments and all this cool stuff that some people here build and we can see teachers struggling to hold like some stuff like this to explain them but if we build like some virtual versions of those instruments that they can use them to to do their job better or more easily any more questions uh thanks i just wanted to ask about um focusing on uh mac os like whether you had plans to sort of port this over to windows at some point and how you kind of decided like i guess you've got to sort of wonder like i guess there's more people using windows but maybe more of the people using mac are doing music or something yeah so so so typically um in this industry people would use juice i spent a lot of time talking with josh making these decisions actually and uh i'm not a fan of juice i'm sorry um i have i have a background in engineering but i also have a strong a strong background in ui engineering and um i just didn't want i really really like to create experiences that feel native and i didn't feel like i could do that without spending a lot of time learning juice on its own maybe it's possible or trying to replicate the native experience i think it would be too hard uh so what i thought and after i talked with a bunch of people and then i was like you know what uh if there is money there is a way so if we do make enough money if this thing makes sense if someone wants to uh help us build it for windows it will happen and we can have a team and we'll make it as good as as possible on windows another option perhaps is using web assembly converting our you know swift ui views into uh native views um translate them to to to some web uh version on on windows but i'm not sure again like all this stuff is kind of like hurts me a little bit but um yeah we will have to though we will have to there was a little bit of pressure uh and another another other parts of this um okay cool cool well big thank you to our sponsors juice guys don't listen to him don't listen to him i'm sorry i'm sorry but i have huge huge respect for the project like that's for sure any more questions we've got one over the back you guys are getting my steps in today thank you um another technology start question but um why did you pick go on the back end just curious yeah so i think go go is really simple um and i was used to well is this actually not it i think you're wrong here we are um yeah so at lush um i worked with i worked at lush the cosmetics company and we were using go extensively and i got more and more familiar i built a couple of projects with co already and go is just really easy to learn that's the reason why we chose go and um strongly typed i just i felt like i wanted something reliable um yeah that's really it and i want something like with high performance um yeah you are you okay for one more question ricardo yeah i'll do one more and then one more yeah cool afraid sorry yeah it's really good to see you talk um today because in a way i have a similar parallel journey um but i'm also i'm at that stage basically i'm doing like an ar music app and but i use unity but and i'm at that stage where i want to kind of build a team and how did you find the right people especially at a stage where the money will come maybe a bit later but and people that you can rely on you know yeah that's that's a great question how did you compensate them yeah exactly so um what i did was i took my expertise and sort of my social capital i went contracting and fortunately there's people willing to pay pretty well for my skills then i take about 30 percent for my own personal stuff 70 i try to dedicate a fully to media circuit and then i find people that you know are willing i literally ask how much you how much your your how much you want like oh this is my price per hour and then i interview them i there is no sort of like coding challenge i'll pay you to work on midi circuit for two weeks and um i'll i'll see how you do this is literally it and so far everybody feels happy they actually i think everybody's is getting a good rate some people is a good rate like within their country i think so for example dory dory is actually traveling around the world all the time and she's working part-time so another thing is that uh people the team right now is literally built on part-time that i don't know like even when we get funding i'm not sure it's gonna be sort of worth the pressure of everyone being full-time on it because honestly i want people to be happy and to and and just get focused deep work when they you know come in to to to work um so another let me just add up something else um one thing i noticed is that um uh sorry guys like women are really honest when they are interviewing uh and guys tend to inflate i think this is common sense though inflate so much like what they can do the time they have available where women will be like i have this time available this is it this is how much i want to earn um this is how much i'm worth like i want to go for it and this these are my skills i don't want to do go i don't expect me to do this i want to do this and just you you get that and like um i'm really happy with um midi circuits starting with that foundation um and and i learned so much at lush i had worked with other women's women as well they're all doing great so shout out to women and [Laughter] shout out to the other sex and um yeah that's that's really that's just yeah to prove that there is space for for women in engineering and they do incredible job yeah cool fantastic thank you ricardo thank you thank you so can i wrap this up okay hey i'm back um thank you so much ricardo for telling us about midi circuit thank you for having me really useful tool for musicians and music educators okay yeah let's get set up okay um do we need to swap this thanks for the shout out as well ricardo speaking of women and uh underrepresented groups in c plus plus me and harriet run a group called dynamic cast happens [Applause] it happens uh is it going to be on the second monday of every monday second monday of every month 7 to nine pm at the focusrite offices near kings cross so please get in contact if you or someone you know is uh qualifying as an underrepresented group in your opinion to uh get in contact with us can we have one for chess oh yeah we have um well i'm on twitter madame modular it's my handle what's your handle so we also have a twitter for the group as well it's dynamic underscore cast i know it's cool right you will find it we've got um i i i'm one of the admins yeah i'm one of the admins so you'll end up chatting to me probably if you're based in london i want to identify that group so oh yeah and you can reach out to me as well i'm drawing underscore harriet so yeah brilliant yeah we're trying to increase diversity in the c plus plus industry just wanted to say something really super quick um some of you may be expecting the juice seven preview from tom paul but tom couldn't unfortunately make it down tonight so he's offended now he's not he's taken um [Music] i had to make something up [Laughter] so yeah tom couldn't make it down but uh if you're looking for information about g7 it is on the juice forum says form.juice.com juice is great for some people and i'll hand it back to rachel cool so next up tonight we've got the formidable force that is julian stora and cesare ferrari and tonight they're going to be talking a bit about what they've been working on lately they've just recently come out of stealth mode and they're going to be giving you an introduction to soundstacks take it away thank you very much it's so nice to be back in a room with people and beer i might sorry i think i'll sit down and i'll hop in when okay so we won't we won't keep you away from the pub too long because that's like that's why we're all here really but um josh asked us to come along and just say a few things about what what what the hell we're doing now um because cheers and i sort of went into a bit of a sabbatical mode for a lot of 2021 and uh kind of went off the radar and uh sorry is this is this feeding back are you okay i'm getting okay um and looked around for new avenues we could we could we could pursue and um ended up doing what i'm about to tell you about we announced this publicly our existence as sound stacks limited about a month ago but this is you're actually being treated to the first public announcement of a bit of what we're actually going to be doing because so far we just said hello we exist um so you might have heard about these guys sound wide now this used to be you would you would know them better as the company formerly known as native instruments and isotope who have and plug-in lines and brainworks as well all mashed up into a big audio mega corporation now um and if you see that on the end there little sound stacks is as part of this big group so what's happened is um we got chatting for them and we said we're looking for something to do and we're pretty good at building new audio platforms what are you guys up to and they invited us to come and get involved um we're all alongside alongside each other in this picture but kind of really sounds like his little little company on the bottom of this big 700 person sound wide company we're that we're a little so far two-person company sticking out the bottom uh doing our little thing um when they invited us to get involved like we sort of okay come on what's it all about and they have a really great mission statement that drew us in and um the kind of the pitch for this new sound wide organization is all about keeping musicians in the flow it's like uh they've got this whole mission statement as well it's about getting rid of the faff and the mess around the fun bit of making music and we just really like that as a concept and i think we've really bought into that so our role within the group technically is this chunk of text here this is the official we're in an independent sub-company of the sound white group and we will drive development of new audio platforms uh aimed at improving productivity and performance for audio developers across the industry and that our interpretation of that is we're there to keep whereas soundwind's role is to keep musicians in the flow we want to keep the developers in the flow audio developers in particular so that's our goal and we're going to build stuff to do that um this is a this isn't showing up for some reason the colors are all wrong there should be a big yellow bar down the middle there well anyway this is a good illustration that the soundwired guys were doing when they were pitching the um the flow thing is like they said imagine taking one hour in music creation what do you do in that hour you've got you know you've got a job um you've got one hour in the evening you're going to sit down you're going to make some music how much of that you actually spend making music and you sort of you know you spend your first 20 minutes just installing software or buying software and setting it up and making sure it works again and eventually you get this actually playing and doing a bit of composing and the fun bit and then you have the boring or some people don't find mixing boring but some people do and mastering all that kind of thing at the end and and we sort of oh there's there's my yellow bar um so we thought um let's think about that in audio software and it's even worse i mean you know you you you sit down to do a bit of coding you pull things in you fix the mistakes it doesn't work it's broken you've it's like you eventually get down to the fun bit you write about code you have a good idea you get it working you wait for minutes and minutes minutes for it to compile it doesn't work then eventually you push it to ci ches sends me an angry email saying that i've broken something that i didn't test on my machine and so on it's like um it's really it's really grim and so what we're going to build is stuff to make this better so what are we going to build um i mean it's this is a really nice opportunity to do something very um clean slate like we can do anything we want we have pretty much a blank blank check so to build something great that sound wide can use internally um but which will benefit the community and audio developers in general as well and just be a really great platform for everybody to use so we're going to go through a bit of a review of the good and bad bits of what we do at the moment and try and boil it down to what we should be doing and what we shouldn't be doing now whatever we do those at the moment obviously most people who are doing pro audio we do c plus and c plus plus is good it's standard it's um you know i've been doing it for countless 35 years or something i'm still getting the hang of it it's great because it runs fast um you can do anything that's that's why most people adopt it for the for a pro companies because you're never going to get to a point where i really need to ship this product tomorrow and there's a thing i'm trying to do and all of a sudden i can't do it and there's no way i can fix the tooling to do this you can always go down and write a bit of assembly language if you have to you can always do like you can really there's no brick walls in development and that's very important when you're actually building a company with schedules around something the developer tools for it are very very powerful they've been around for a long time they can do we've actually just come back i'm looking a bit bleary we've been at a a two-day llvm conference where it's like i mean it's like the geek level is is exhausting this is like these are the compiler these are the people who write the compilers and we're just like oh gosh there were a lot of beards there were a lot of beards there were a lot of um yeah a lot of there are a lot of very smart people very smart people and who would you know a lot of it was way over my head but um uh these are the people who write the tools and the tools can do amazing things and if you're really trying to debug something incredibly complicated you want you want c tools but they're very very hard to use um and you can also deploy c plus plus everywhere if you want to run it in the website you know in the in the web you can compile to webassembly you can embed scripts in it you can run on weird little embedded processes if you need to but on the bad side it's really hard to learn there's no standard library for audio there's lots of other libraries but you kind of have to find the ones you like put them together um they're all different you have to fix all the interactions between libraries that you're going to use you have terrible compile times if you're going to support a lot of different platforms you have to do different builds for all those platforms which can become really complicated and really yours your ci system ends up being your life supporting all these different and testing on all many many different platforms and writing your gui in c plus as we've just heard is not great um it's uh it is possible again you can do every anything you want but it's a lot of work um and it's not really designed for sql supports and most of all sister plus is dangerous and i've stood on stages many times and ranted on about how ridiculous it is that people are not very good at coding or allowed to write c plus that goes into a dll that gets loaded into the process space of a door along with all these other dlls and they all just get to rip around in the same bunch of memory and like it's just you should need a license to do that sort of thing so then you've got you've got c plus with all and plus your library of choice um you know you pick one you kind of go with your with a tooling framework again fast you know brick walls and what you can do with them these libraries are great they've got great communities here's one um but again it's you've got all the downsides of c plus plus it's hard it's difficult you make mistakes even when you're good at it and the build times are bad you turn around times when you're playing with stuff as bad bad for gooeys even even if you use juice and it's dangerous so what else can you do swift apparently is a good choice um uh better than juice apparently no no offense to take it um uh you know this this is a lot easier it's mac only it's you know you've got a great community again it's it's good it's easier than c plus just a bit easier um uh but again you've got like it's it's faster than c plus plus to compile but it's still a bit slow and you're just screwed if you want to use it on windows or linux or something faust we've been hanging out with fast guys um for the last two days which is faust is a great um i don't know if you know it's a functional language for audio it's fast it's pretty good um it's got great library support they've got all kinds of dsp algorithms in there they've got great tutorials it's supported on lots of platforms you can try things out very quickly it's good prototyping language so it's good for being inventive and cutting out the boilerplate and keeping you in your flow um is safe you can't crash the program with the computer with it um and it is is it easiest to learn the c plus plus i not for me i mean it's i find it gibberish um you're either you've either got a functional brain or you haven't and i i i i haven't um it's also tricky to debug and there are there are uses use cases where you simply can't do something you might need to do but you know people ship real products on it it's great but we looked at this in this sort of style then you can go to webassembly and javascript which is again easy to learn there's a it's easy it's easy to learn the languages um but it's kind of hard to learn the tooling there's like you end up using node.js and pulling in all libraries and tries to be mad the developer tools are good but there's lots of them and they change every five minutes um you you can if you set things up you can do like you can do live reloading of your audio code you can get some really good turnaround times on that and it's safe you can't you can't break anything with it um but the performance is not good even at its best it's going to be much slower than c plus plus and if you're really pushing the boundaries with what you're trying to do that can become a problem and um yeah deploying it becomes tricky i mean it's great if you want to run in the browser but if you want to run on an embedded device you start to wonder about your choices um we'll go through a few other max msb you might know great sort of locate the whole low code just dragging boxes together approach for building audio graphs is works really really well and so we that's that's something for us to to remember um but max itself is pretty slow it's um it's they may have their uh i forget what it's called the compiled version but um most people just use the dynamic version and um and it it's kind of it's also very very hard to deploy anywhere it's more for playing around for prototyping but again great community um very safe oh do you remember this one um this this this is pretty good this is this this idea that um that we came up with a while ago runs very fast so you got your c plus plus performance we we thought it was easy to learn we thought it was a good compromise between being safe and fast um and tried to make it cover all the use cases you could come up with downsides of soul is it doesn't exist anymore um and and there was never a clear plan for the gui or how you would write glue code around the dsp and um obviously you know one of the side effects of not existing anymore is that your library code's pretty limited and the tools aren't there but the concepts we still like a lot of what make this good we still think it's good one quick i think this is a last one last quick mention shout out to elementary audio which is a really elegant idea this is um nick thompson's javascript um i don't know what's called it library it's not a library it's a platform um that he demoed this adc and this was this is really nice um all in browser all the javascript very nice to write simple functional ish javascript and you can write live reload and things but again things like this start to become very narrow in their use cases and if you started to build a product on this you're going to hit something you can't do and be and be stuck so we did a big review of all this stuff and thought like what are we going to be what what can we what are we going to do here um these are the kind of criteria that we need to look at some of this some of these are a show stopper others are nice to have um don't bother trying to read all this we kind of put good and bad ticks in boxes and tries to think okay what what can we do is it can we make something that ticks all the boxes there um for performance we need to build something and that's got c plus plus performance and we decided looking at all the options um we we think a jit engine is the way to go we think you can when we've shown you can get c or better level performance out with jit using lvm and if you're running a browser that is inherently a jet engine and we we need to do wasm for that but we also know that there's a use case where people are writing a product where they want to export some c plus plus and compile it in an old fashioned or into some weird physic for their own reasons or embedded devices or for a very static project so we need to support all these use cases so whatever we build it's going to have to do this it's going to be easy to learn and for for us and looking at the kind of target audience we want to hit we think that means boring boring syntaxes c family c plus plus c sharp javascript java kind of kind of syntax where you write procedural code and there's no surprises but we also a big takeaway from from what from what's good out there is that graphs and um being able to plug streams of audio together visually is a really powerful thing so whatever we do needs to include that as one of its paradigms so procedural code within graphs and we need to be able to make this very accessible um to make it easy to learn so we need to make it easily easy to run online get it in playgrounds and we need to do good tools for code sharing and package management fast development as in sort of fast turnaround um so if you have a jit this is great because then you get your live code reloading um for the dsp side but we also want fast ui reloading so our our choice for for a gui platform will be html and javascript as it's as the basis of um of what we support um so you can be hot reloading this be and also hot reloading uh your gui with some javascript um great tooling is essential for something to be successful um i'm not going to go into this in detail but i think we've we've been around the block enough to know um we're going to have to put a lot of effort into building some really great tools for our for our language and we're going to dog food it and dog fooding is pretty good when you've got this huge parent company full of people who wants dog food your your work um you've got to have great libraries you've got to have some good content for people to use um so the way to do that is to get the hell on with it and write some good libraries and also to make it easier for third parties to contribute libraries to the project so this is all part of our game plan and whatever we do whatever we build the language has to be able to offer very very fine grain control so you don't end up in a situation where there's a bit of performance you just can't get right or a little bit of just some some some manipulation you can't do or can't express so we've got to really make it possible to get down to the bits and bytes level at least and be able to not not give people a that showstopper just before they're about to release a new version um and for on and for our glue code we're going to go with javascript so javascript and some other language are the kind of the the very boring and down-to-earth choices we're going to make for the kind of the syst the framework we're coming up with here you get safety for free with these so we're gonna yeah prefer our own language to be safe and javascript which is safe obviously gonna hit all the big deployment targets the main big three os's and we'll want to support all the plug-in formats so again very boring obvious choices a lot of work here one of the tick boxes on our our chart there is also industry adoption like how widely something's used in the library and that's usually the tricky part when you're doing something new we happen to be in a really good spot here because we can dog food and actually get it adopted ourselves by by our by our big powerful friends but very important and part of what we're doing here is we're an independent company so although we're part of sound wide we want to work with all the sound wide competitors as well and we have like a remit to be a very independent entity um so what our first goal is to make something that everybody in the industry is going to want and we're hopefully going to set up a steering group from the wider audio community to try and make sure that we don't go off and do anything um silly and have a sort of more committee approach to making sure that what we build is future proof and a great long-term platform for everyone to use um did i miss something out there cheers um well it's working no that's good yeah so what's it called hey jules what's it called yeah what's it called ah this is really annoying because what i wanted to do is come along here tonight and say hey and the great thing it was this thing is going to be called but the lawyers have said we can't use that name so um at the moment we don't have a name um well i say we thought that we could use the the first two initials of our of our names and put them together yeah um jules and chairs we thought juice or something like that that might work apparently that wasn't gonna that wasn't gonna fly with the lawyers either so uh yeah so yeah the the nice name that we have we have a code name but it's rubbish deliberately rubbish so we don't keep it um we're so annoying but hopefully we'll have a name soon and then we'll come back and say what it's called but um the the thing itself i've kind of given a summary of like what it's going to do um [Music] uh when will it be reese when you have a go we have a we have a working process type we're so sort of working with it internally we have stuff running on it we've got tests we've got a ci system we've got uh uh we're we're kind of doing lots of internal testing on it um when will it be released probably don't know yet not going to commit to anything right here and right now but um hopefully we'll have something out this year doesn't seem unreasonable and um uh and i'm sorry it's a bit hand wavy that's all we can say at the moment uh but i am willing to take questions and um sorry one of the important things is we've we've got budget to hire oh yes good point yes because at the moment there's two of us but we are hiring a few more people so um yeah if you if you think that that person could be you get in touch um if you think you think you can right compiler come on yeah come on come and give it a go um but yeah anything else i've missed or we could just have some questions no i think i think questions is the is the right place now questions um hi um thanks for the talk super interesting really cool um i'm sorry it did feel like i was being very handwritten but we are doing all those things um we just haven't got a name yet cool um have you considered any support for like um spatial audio formats and like integrating that into the libraries or and that sort of thing it would be a library thing i mean um what we're doing currently is agnostic about the what channels go in and out so we don't need to worry about that i don't think but um it would be a library and um so you're not even thinking about the library level at this point it's just about that would be a library yeah i don't think we'd need to do anything differently for our for our core platform yeah just be people yeah and that would be great to have actually um yeah we'll have to get ben to write one for us at some point not too busy hey uh something that was quite cool about seoul was that it kind of abstracted the idea of buffers you you know you didn't have to constantly write for loops over samples and channels so will that be a feature of this with it yes having a procedural interface yeah there was a lot of good ideas that came up in there that we we're going to reuse a juice machine that's about to be released um hey um this is really exciting and um i just actually want to ask you know follow up on the conversation that happened there it's like how are you planning to handle the ui layer yeah and we're going to we're going to go that will be html and javascript please and whatever you want to do within that so whether you want to use a react or just just write everything in plain old html or use some other framework that will exist next week is up to you um but we're gonna so uh if you write plug-in with this and you kind of launch it in a browser in a door it'll be an embedded browser window and you can do whatever you want in there and the nice thing about that is you we can also um we've also already got a prototype of like running that over a socket so you can have your dsp on a different process machine whatever network and it's and it all just it works nicely yeah uh this sounds really really cool it sounds super interesting but i suppose my question is you're introducing a new framework you're interesting up perhaps a new language how do you plan to make developers adopt this and train them up to to know how to use it okay hopefully just by momentum um what was the question the question was how we how do we expect to make anyone use this thing basically um sorry um within the group or within the community as a whole within the community as a whole right well um the intention is that the the um the group um are going to be developing for their own purposes uh library dsp code which will become available to the wider audience so um if this works out where you should be is have an amazing collection of really good quality dsp components that are used for commercial products that you're aware of and um this this will hopefully springboard um the project and make it um a fairly obvious go-to option um yeah i mean i can't speak on behalf of sound wide or what they're gonna build for the next five years but they're funding us and they're interested and we're and we're playing around with their engineers and seeing what we can do with this and we expect it to be you know it to be adopted and and hopefully um it'll be good enough that you will just want to use it anyway i mean that's the idea if we don't get that right then we will give up and go and do something else um but yeah i think i've mentioned it before but there's only so many times we should all be writing butterworth filters or you know whatever it is and so if there's a really good quality implementation that just works that is reliable we should all be using it i don't think the the the the gpu shader guys um think they need to reinvent the wheel every time um there's going to be libraries of standard components and people say i want this particular effect here is a sensible um implementation i'll i'll use it um yeah um so why is audio different yeah um yeah so so yeah our joint strategies on that one are uh do it well and i mean lord we've been staring this problem for years and i think i think we it so this is an itch we need to scratch we need to get this we we know what the right platform looks like for what we all do and we just need to finally make it but that's that's our one strategies do it well and the other strategy is brute force by having a an industry guerrilla behind us and i think between those we might might have a chance with this one but um yeah hi um congrats on a project and really really nice nice presentation um so i'm a lot into embedded devices and programming audio in the space and um has been surprised when i started my audio career about how we had to exactly reinvent the wheel every time we come on a new platform and but but how much are you planning on like supporting specific platforms or how much are you gonna go into that um yeah we're definitely gonna um have it on embedded that's um that's a big part of where we're going i think i think the the focus initially will be on um desktop platforms mobile um so so typical intel and arm devices and we'll tackle those unfortunately they won't be part of the initial target but we are totally aware of the limitations and we are thinking that way from the beginning yeah i think jules mentioned separating um gui components from the signal processing side um that's the kind of thing that makes us feel confident that we will be able to have a gui say on a desktop controlling dsp on a on an appliance he's next all right um so with the is it the idea with the kind of structure to be you put all your dsp in this kind of mysteriously named language and then um you'll use um javascript or other things to interface with it so yeah if you've got midi input streams to whatever you're doing then you can find javascript yes yeah for that example i mean you'd your javascript wouldn't do much other than say hello i'm i'm a plug-in and i have a and please put your midi in here and then i it wouldn't be javascript actually serving the midi or doing much work then the non-real-time stuff we want to lean on javascript the real-time stuff that's what this language is for and and javascript kind of holds it all together and starts it up and tears it down and you have javascript that can generate this code on the fly and change it and have it jitted to do different jobs so but um yeah i mean maybe you'd you'd get it on an input and you'd do some real-time code twiddling the bits and bytes send out some more some more midi well hopefully not because you use objects instead of really midi events okay uh-oh timmer so you said jit this is a big part of what you're trying to do so what are you going to do on ios well you're not allowed to jit that's a good question uh thanks i knew i could rely on you for the hard one um [Music] we will be able to generate c plus as well i mean um what we would do when i explore is running on the gpu with metal so we'll be allowed to do that it might not be as fast as on the cpu it might not work very well we might get latency issues but it would be possible or as web assembly take the performance hit run that in in your app um there are options or are we just going i mean if only we had some friends at apple um but uh yeah maybe down the line we can persuade them i didn't they i think we know their secrets oh yeah i've got the photographs okay we have a number of questions from online uh so one question from arvatronix is has any of the language actually been designed uh type system for example it's uh designed designed yeah it's running we have it we have it working okay so yeah sorry we have something running we can't share it it's not at that it's not at that stage but we have we you know we're at we're benchmarking on different platforms and um yeah we have we've got we work quickly right matthew hill asks will the unnamed tool support uh will the unnamed tool support third party protection toolkits and sweets um i i guess he's talking about like pace or something i suppose um i haven't really thought about it yeah i mean it whatever you build you could wrap in a in a signed rapper i suppose um there's no reason it couldn't um there's a whole discussion further down the line about whether we never need to obfuscate or encrypt the code when in a jit when you're using a jit yeah it's certainly an interesting question and um um i guess they were asking specifically about the type system uh the question yeah the other question sorry sorry i'm getting mixed up it's late it's nearly pub time yeah sorry to keep you yeah um come on is that it yeah i had yeah so um yeah the other the other going back to the other question they were asking specifically if you can reveal any details about the type system i've rewritten type systems so many times um it's a running joke um but yeah we're on you know refactoring the type system can only happen so many times until you finally go i literally can't ever change this again at the um at the llvm conference we were just at somebody said it's like mlir makes rewriting your type system really easy or something something like that and i felt a little sagging my knees at that moment but like yeah i never want to write rewrite the type system again but um yeah type system but um yeah um yeah we know we know our way around the type system these days okay and um what about mobile platforms android uh yes um i mean android's easy um ios again is easy as long as you don't want to deploy an app but actually doing the yeah getting support on these platforms is easy um i mean i think the way that i mean if you sort of plan for the whole community starts using um a jit architecture like this um um you know everyone moans at apple and says guys what are you going to do about it a solution will be found this is not you know this is not impossible um it might be but but then it's it's not impossible we can't do it no one well it can be it can be done it can be sorted out but um yeah i mean hopefully it won't be a showstopper anybody use ios for audio of course yeah [Laughter] i'm sorry well just because on the topic if you look into wazi um yeah web assembly yeah and and yeah well it's not really relevant for what we're doing to be honest yz is great if you're writing an actual app and you need all of the the posix level calls from webassembly for us we we only be using web assembly to do the pure number crunching bit so we don't need wazi but um but if you if you're meaning in terms of ios then yeah like web assembly on ios is kind of you're allowed to do that so we might end up having to do that although the performance will be pretty pretty yeah i think we we had a general feeling you get about 50 of the performance i mean ios i don't know specifically but across other platforms you see that sort of number um but there is a lot of i mean that community things are moving quickly and there's there's um work on cmd and things like that which again will will help so it might be actually webassembly is perfectly good for a lot of a lot of use cases but we don't know yet any other questions everything i see online is a permutation of questions that have already been mostly answered and stuff again so i don't know if it's been asked already is it is like the compiler and all the tooling going to be like open source and that sort of thing so i mean we don't we don't really have a plan for that at the moment sure i'd like to obviously it makes more sense and especially if you if you want adoption i mean obviously some of it will be open source we might keep a few good bits back i don't know but yeah i haven't got an answer at this point i i think um i think the way to to think about it the direction we're trying to go with the the the sort of a language steering group is um to get the community behind and and makes that aspect of the project open because that'll be available to everybody but it might feel like it's just a language but if you if you think about it there's a lot of communication between the various components um or what the why protocol is between the gui and the and and and the service and there's a lot of stuff to decide and and to think through um and we're gonna you know that we've there's two brains here and there's a lot of other people that know a lot a lot about this stuff so you know we collectively come together and we can come up with some really good standards that that work well um that are future future-proof and cover scenarios and and situations that we haven't thought through um this is you know the power of of the community as a whole so i think we want to leverage that and get everyone behind a different way of thinking about how audio is um how all the applications are put together um and and and then we will have an implementation of that protocol and that language um as far as whether we open it or not i don't know um it's a possibility but we we haven't we haven't decided anything really it seems likely but yeah we haven't no i've got an answer okay we have another question about the jit uh is the jit only audio side isn't this going to introduce non-deterministic run time on the live audio side no no no it's gonna it's gonna help it's gonna be more deterministic we've actually had some really good results from the jet i mean we were we were dog fooding some um machine learning uh matrix stuff yeah um i've been i've been looking at um matrix type operations um and comparing sort of eigen and other sort of c plus plus patterns that are commonly used and yeah we can we can match or exceed um those algorithms in some situations and this is this is the sort of stuff it's it's not a talking about determinism but yeah there's there's we've performance will not be a problem um certainly well-written library code will be tuned well um as far as determinism is concerned that's just a massive subject and we will absolutely aim to make to make the system deterministic because um the expectation the whole the whole power of these sorts of patterns is that you that you develop on one machine and you gain confidence with your with your dsp you deploy it um and it'll be running on platforms you haven't necessarily even got and it's got to sound the same i mean it's there's absolutely no point if um you do your development on your mac um and it sounds different or behaves differently on a windows machine that's that's not fun that's that's we're talking about the sort of developer flow and and trying to make people productive you want to just to have um gain confidence that you are not going to have to go around that loop of testing 14 versions of everything certainly if you're a sort of a a small indie developer using um webtech for the for the gui again gives you that sort of sense of independence so this is this is the idea is just just to use the sorts of tooling that is most likely to allow um yeah indie developers to be able to produce high quality products across a lot of platforms great okay mike hi yeah you mentioned a couple of um data flow programming languages as being you know very good for kind of flow state programming and you're alluding um to gen and max which gives you kind of a portal from a slightly lower level data flow environment into actual c plus plus code and there are other examples like game engines i think they're very good at this um so how much are you planning on incorporating some data flow level in your work and how much it might be a text based level and are these going to be i think you know equal citizens or yeah yeah what's the flow um yeah i mean i think we'll we'll be all it'll all be text-based but we we're designing it in a way that we can have graphical tools acting on the same data so um um text text that can be automatically edited by graphical tools um is the dream so you can you can either type it or you can snap some blocks in and then go into the generated textual code and start stop tweaking it by hand um it's kind of the dream um we can do that it's it's pretty straightforward i mean did i just say that out loud i gotta stop saying things like that yeah i'd like to see a demo of that next week jules the principles behind it are quite yeah someone else can write that bit great please give a hand for jules and cesaro [Applause] great anything else you want to say no we're done uh we want to go to the pub now please okay yeah so um yeah on that note i'll just say a few words uh i want to thank jules and cesare also ricardo harriet and rachel for giving their fantastic talks and hosting please give it up for everybody who's been part of this meetup also just wanted to give a big shout out to sonic's uh focusrite and juice for sponsoring our audio programmer meetups once again they're every second tuesday of the month uh we have a community on discord where we have over seven and a half thousand developers from all around the world come join us um what else to say uh thanks to you for coming out uh this is really exciting i love seeing the mixture of people from all different backgrounds all different experience levels i think this is really exciting and this has got me really excited for the future and on that note let's uh please don't be afraid to walk up to each other introduce yourselves even if it's somebody like jules i know that could be you know i get intimidated when i walk up to jewels still but but please don't be afraid to uh to mix and um you know to network and to introduce yourselves i think that's really exciting and with that uh let's let's all go have a drink you can uh hang out here at the venue for a little bit and then we normally go off to the pub across the street a little bit afterwards so uh hope to see you there and meet you and have a great evening [Applause] you
Info
Channel: The Audio Programmer
Views: 1,779
Rating: undefined out of 5
Keywords: juce, juce framework, audio developer conference, adc, vst, audio coding, audio programming, dsp, digital signal processing, audiodevcon, adc'21, creative coding, creative programming, plugins, software development, ableton, max msp, c++, sample rate, bit depth, nyquist theorem, tutorial, beginner, easy, games development, games programming, basics, openFrameworks, open Frameworks, ofx, Maxim, Maximilian
Id: 2smLOcflZbY
Channel Id: undefined
Length: 123min 50sec (7430 seconds)
Published: Wed May 11 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.