How I Got Started With Audio Programming (And How You Can Too!) | WolfTalk #001

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hi my name is jan wilcek welcome to wolf talk the first ever podcast about audio programming [Music] in this podcast you will learn how to build your career in programming or research related to audio meet programmers and researchers from all around the world and learn about the intricacies of sound [Music] the first session will serve as an introduction when i browse through the forums all around the internet i can see this question popping up over and over again how do i get started with audio programming what do i do to change sound with code well i think one of the ways to answer this question was to share my path how i got started with audio programming and in this episode i will try to tell you the story of how i got started in this audio programming business the first thing that i want to say is that throughout my education in ground school middle school and then high school i always had very good teachers and especially good teachers were in mathematics i had the pleasure of working with one of the brightest minds of the area that i was living in and i could learn not only from from great teachers but also from great students who are passionate about mathematics and this interest in mathematics actually led me to where i am today but it wasn't only this in like already in my early years i had a very strong interest in music i was playing the piano since i was six years old and then in high school i started to learn playing the electric guitar and especially in high school i was very involved in music creation there i was playing keyboards in a in a rock band and i was also actively composing my own music actually i was composing music from 2012 or so even before high school and i was uh i started to be interested in this process of how to mix music how to make music sound as it sounds on cds or on the radio and i discovered the concept of a digital audio workstation where you can put different recordings and mix them together and ultimately obtain obtain music also in 2012 i started my first compositions which ended on my music album which was released in 2020 which is called the firewall rise but this is not the topic of this episode so i was let's say good and good at mathematics and i also enjoyed music a lot and i learned about this possibility to study in krakow poland what is called acoustic engineering so maybe on a click note i was born in 1996 in poland and i lived all my life until i left for the university in in katowice and for the university i left to left for krakow and krakow is not far from katowice it's around 80 kilometers in poland and there is a great place to study acoustics and i started studying their acoustic engineering because primarily i wanted to combine music with mathematics and also because i knew that they had some courses on sound engineering so exactly how to mix music and it was a very interesting study program and it definitely shaped a lot of my future career so i started there in 2015 and what is important to know about this course is that it involves courses from different areas and one of the courses was signal processing the follow-up was a digital signal processing and apart from that we also had courses on programming and these were i believe the most important subjects that are necessary to talk about doing audio programming and what it concerns the programming itself i already had programming in high school and i must say then in high school i was really bad at it and it is because there is something to programming that makes it not so easily learnable and by this i mean more of this algorithmic side so i have a problem i want to solve it with code now how do i go about this when we have a mathematical task i don't want to oversimplify but in at school it most often boils down to combining a few theorems that you know a few formulas and voila you have the result or you have the proof but in programming it's not that easy you need to build the whole whole array of tools that you can use to actually solve problems and until you do that there are some kinds of problems that are will be very difficult to solve and that was exactly my case back in high school but also in high school i learned the satisfaction that comes from overcoming problems related to programming also of course problems related to mathematics but i mean especially hard problems that aren't straightforward and give you this taste of satisfaction but anyway i thought that i was not a good programmer and then i went to the university and there it turned out that my programming skills which i thought were quite poor actually are enough to put me in a position of let's say top 10 percent of the students and actually programming on the first year was a major issue for a quite significant number of students because well it's not very it's not easy when you when you're just starting out so that was maybe something you can relate to maybe also have troubles starting with programming but believe me with enough practice and experience you'll overcome these problems okay but back to my acoustic engineering course so after one year after talking to my friends there we thought that okay we learned something and something is not very related to what we wanted to study because as you may realize the first year on an engineering program is typically quite general like what do we do like do we continue studying this program and a few of my friends started studying computer science in parallel but i was a little bit scared i was scared that i want to manage to to do that to combine two study programs but i definitely wanted to learn programming more so what i did i tried to get an internship and i was maybe too desperate you would say because i was ready to work without being compensated for it and this is not something i advise other to do fortunately i did not end up in a position of a free internship but uh i believe that in the current market you just should be compensated if you're doing any kind of programming service even even as an intern so basically after one year i realized that i want to be a programmer because it would give me a job in the future most probably and i also believe that being a music producer uh is not something that would give me the the degree of life stability that i wanted and please don't get me wrong you can still make a living being an audio programmer and audio engineer but it requires a lot of work and a lot of dedication i had the privilege of meeting one of the yeah in my opinion best music pro sound engineers in the world and they basically work 24 7 and to the point where they even cannot listen to music they like they just are constantly involved in producing in in making music for others and they still have financial problems so it's i'm not saying it's not a career path not worth following i'm just saying that at that point i was sure that it wasn't a career path for me and programming on the contrary and exactly in february 2017 i started my first let's say serious internship that internship turned full-time over summer of 2017 and in september 2017 in turn to have full job so i basically got employed by the company and this company was called tecmo it's based in krakow it's as it is a spin-off of my university and it's a company that does exactly audio programming so its main activity is in the field of speech they have speech recognition software and also text to speech services but what i was doing i was working on sound toolkit and sound toolkit is a sound spatialization engine for computer games so you may think of it as you have a unity project or an unreal engine project and you use sound toolkit to add a three-dimensional sound to it if you want to relate it to something to like a similar product on the market there is for example or there was back then something that is called steam audio steam audio from valve and also uh i think the most popular software that deals with audio in games is uh we wise so we may think that it was a kind of this type of software that deals exactly with 3d sound and working on this project i was able to learn from code and from my fellow programmers how to do audio programming and it is something incredibly valuable because you get access to a whole code base which deals with audio so you can see how it works you can also see what kind of issues come up while you're developing it i think a good alternative to this are the open source repositories and right now i know there is something called search synthesizer and they have a quite active community around this so if you're interested in looking at the code base and having a company like experience i think it's a great way to start other advantage of this job was that i could meet people from the game industry and i was lucky enough to meet people from a major game developer and also learn about their mindset their type of working and back then something that really made me not want to work for the game industry is the reality in which the game developers because allegedly they do something they like they are forced to also to work 24 7 to a point where it leads to poor quality code and to basically burn out so i knew that game or game programming is not nothing that i would like to do personally but audio programming started to be very interesting for me and uh during working at this company i developed the belief that this type of companies look for people who are specialized in a few areas one of these areas is definitely programming itself which is the programming language maybe specific frameworks libraries but also programming practices like design patterns other area of specialty is in this case was sound so digital signal processing algorithms how to process sound how to change sound and this is an area which gives a great field uh to be an expert in because there is just so much to learn and there is so much knowledge and expertise necessary so i somehow wanted to combine being an expert in sound processing but at the same time an expert in programming to be able to come up with um efficient algorithms and then being able to implement them so that they work in real time that was quite ambitious i know but at that time i thought that what i need is some more expertise in the area of computer science and it related to a lack of algorithmic knowledge and it was a fact i lacked knowledge on algorithms and data structures and also knowledge on the bare metal approach to programming so how do pro computers work because i believed back then and i do believe still now that in order to write efficient code you need to know how processors work how computers work because the most highly optimized code uses the knowledge of the platform it is running on for example when it comes to vector instructions okay with this mindset i decided to start a computer science program at the same university i was at in october 2017 and it is quite competitive uh program but i already i could basically pass some courses with the grades that i obtained from acoustic engineering and so at that time i had i was doing two courses to two programs at the same time acoustic engineering and computer science and i also had a part-time job at this company because i wanted to have this programming practice and this was quite challenging i must say but i was really interested in everything i was doing so it was a very interesting time for me and i really did enjoy this and i must say that at the end of the day when uh for example at 5 00 pm i started i was starting programming and then sat in the office until 8 pm uh this was uh quite pleasant so programming itself is uh is quite was quite pleasant for me and still so i know that i am able to do it for many hours throughout one day and i still still enjoy it and find it satisfying so this led me to complete the first year of this let's say two degrees and then do a full-time job during summer of 2018 so this proved to be quite challenging to have two study programs and also a part-time job so i decided to quit and go more into this area of learning expert things related to audio because i saw that as long as as long as i'm not an expert in audio the company won't give me responsible tasks related to audio so i wanted to be more knowledgeable in that field and then maybe return as a person who is highly highly desired in the industry because they combine the knowledge of programming and the knowledge of sound algorithms so i wanted to focus specifically on learning i wanted to learn more about sound i also knew that i'm going to write my bachelor thesis in the winter semester of 2018 and 19. so i knew that it would be harder for me to combine two study programs and a job so yeah in the in this winter semester of 2018 19 i started working on my bachelor thesis and my bachelor thesis was the sound synthesizer written in c plus plus which was which was integrated as a vst plugin using the juice framework and i say it in maybe in a weird way but i had my synthesizer programmed in a way to be separate from the juice library so i wanted basically to make my code to compile without juice and i can see that it was a very good approach very beneficial approach in that sense that after a few years i when i tried to compile my synthesizer with a new version of juice my library still compiled but juice [Music] interface let's say so the plugin processor did not because of some breaking changes and i found it really really hilarious that after this time my library still compiles so it was a good a good choice in the design in my opinion but you need to understand that i was really fascinated with synthesizers because well i was a keyboard player and i also loved bands like dream theater pink floyd yes when they where they heavily used some synthesizers and here especially i referred to jordan rudis who is my keyboard hero since i learned about dream theater so when i got to acoustic engineering there was this great professor who is called mark pluta and he's extremely knowledgeable about sound synthesis and sound processing which is related to music so he was the first person i turned to asking okay how can i learn about sound synthesis because sound synthesis is not a part of bachelor's curriculum at acoustic engineering and he recommended me two books at that time two books which was a computer music tutorial by curtis rhodes and also some synthesis and sampling by martin russ and i read about these books and i got even more excited about synthesizers because well there there were presented algorithms on how to process sound how to generate sound and with my c plus plus knowledge i was able to implement these algorithms and wow now my computer was capable of doing the same thing that require expensive plugins that can be bought online so i really wanted to learn these techniques and learn via implementation and so the idea of writing a synthesizer for my bachelor thesis was born and the juice framework was used because it was the easiest way to integrate a code into a vst plugin and i think even now it still remains the easiest tool to integrate your audio processing code with external environment but please don't quote me on that because obviously i don't know every available audio and plug-in framework out there so yeah i did my bachelor thesis and it was a quite a big success in my opinion it was also praised by some awards at the faculty and at the conference but with this in mind i was already convinced that i need to find a place where i could study this more advanced audio algorithms and i knew that i don't want to do room acoustics i don't want to deal with vibration in their machines and i don't want to be a sound engineer i knew that i wanted to do audio processing with algorithms and code so i wanted to find a master's program where i would learn specifically about that and at the time i met another great professor at the university which was called conrad kovaldrik so basically conrad employed me for one of his research projects which was about speech processing and in my with with uh multiple microphones and in my case it was about source separation so how to separate the recordings of two speakers from a mixed recording from a so-called mixture and it was my first uh time in in actual research where i had to read research papers and understand them which was quite difficult for me at that time but it was a nevertheless an interesting project and conrad is a great person to work with and to learn from and he basically showed me this world of various possibilities of studying and two of the places he recommended was the alto university in finland and the friedrich alexander university so the university of erlangen nuremberg in germany and it turned out that in erlang in germany it's the home of mp3 actually because the university cooperates very closely with the fraunhofer institute where the mp3 format was born and both of these places altered and erlangen are heavily involved with processing and both of these places are hubs for different kinds of activity related with audio there are several professors that deal with audio there and there are also masters courses related to audio out of these i end up being accepted to what is called advanced signal processing and communications engineering it is a very long name but it boils down to this advanced signal processing so signal processing with advanced methods and to the second part which is communications which i obviously did very little of because communications is not my primary interest and what asc enables you to do is to have very specialized courses and these courses actually exceeded my expectations i mean by this i had courses in statistical signal processing i had a course in machine learning and signal processing and i also had audio processing laboratory and statistical signal processing laboratory and these are courses that you cannot learn easily through reading books or through watching youtube videos because actually there are almost no youtube videos on this apart from my channel wolf sound so you may imagine that when i was doing my research in the summer semester of 2019 i felt uh quite alone because for programming you can find a lot of videos and tutorials but for these very highly specialized domains you cannot so i was very happy with this courses additionally i could also study sound synthesis which was led by by maximilian schaefer and also embedded systems so i [Music] came out with a type of knowledge that is not easily accessible and is above all a great thing to be explained by someone who knows this stuff so you can always ask a very stupid question and they explain to you what and how and this leads me to my next point which is the presence of great researchers in erlangen and i want to especially let's say underline that i was happy to to meet walter kellerman and minard mueller and also my mentor emmanuel habetz because i think that these people are not only great researchers but are above all great teachers great mentors who are willing to share their knowledge their expertise and their advice and being able to talk to them and ask them about career advice or highly specialized topics regarding audio is for me priceless it's it was priceless and i'm very thankful not only to them but to all the professors there for being open to students and always willing to help them and answer their questions so this was a great experience but i didn't stop there when i started in elgin when i started in germany ac program i wanted to do something more throughout my studies so as soon as i knew that i want to be a programmer i started reading programming books and i believe books are one of the best resources to learn and for me they are definitely one of the greatest and i especially like the fact that i can copy a huge book a thousand page book on my e-reader and actually read this huge book when i'm on a train or on a bus and i noticed that even the biggest books can be read in the end so among the titles that i was interested in was java for android development by jeff friesen so learn java for android development and android 6 for programmers by alexander walt harvey dietl and paul deitel you need to understand that at the beginning i was heavily considering mobile development i also read more general programming books like the pragmatic programmer by david thomas and andrew hunt also the programming pearls by john bentley and these were mainly driven by my question how do i write good code how to create good code how to be a good programmer as a follow-up i read a clean code by robert c martin and from all these books i think the one i enjoyed the most was definitely clean code and i can recommend it to anyone who's writing code even who does this for research purposes it's still a great book to learn from and it helps a lot in programming actually um like ever since i started programming everyone around me says that my code is incredibly clean and i think there is still a lot of room for improvement but this improvement now requires of course practice other book that i read was head first object oriented analysis and design i also read a quite big part of operating system by william stallings which is a great book if you want to understand operating systems and which actually showed me how computers work internally i really loved this and finally i read the books that were well one of the most important ones for my programming knowledge which was the c plus plus programming language by bjarns trustroop so before i had only a c plus plus course at my university and of course c plus plus practice at at the company i was working at but the c plus programming language actually took all of my knowledge consolidated it and expanded in enormous way and now i understand why certain things are in this way that they are in c plus plus and also what is the uh let's say desired style of writing in c plus plus and the most recent book i read about programming were the design patterns by the gang of four and this also a great book because as soon as you have some practice in programming you know there are some problems and you want to know how to solve them best and when i was reading this book it was like okay so that's the best way how to solve this problem so each day was like an epiphany when i was reading design patterns apart from reading books i also in the autumn of 2019 started wolf sound and wolf sound was initially and still is a platform for me to share my knowledge but also to consolidate and organize my knowledge everything i learn i want to put on wolf sound so that i know that i actually know this because when you teach something you learn it twice and i highly believe it to be accurate and i already noticed that when i was writing some articles or recording videos i was able to identify certain gaps in my knowledge and i think it's a great experience i plan to continue it further and further with more advanced topics and finally i was also developing my own projects but i must admit i wasn't as heavy on this as my fellow programmers are so of course if you want to learn programming practice is king actually but in my case i focused more on reading because it was something that i could do at hog but still i had some smaller projects or projects that eventually ended up being my bachelor thesis for example that i was developing so i studied all these courses in london but i had also this desire to grow to do a great master thesis and i wanted this master thesis to be related to audio processing audio and maybe audio effects let's put it this way for musical purposes because what you need to understand is that in erlangen there's a lot going on about audio but very little when it comes to creating audio effects or audio or sound synthesizer or plugins there is something of this but it is not the most prominent course and actually i think there is right now there is no professor that does sound synthesis per se so i wanted to find a place where i could you know gather additional experience abroad and also do an interesting topic in my master thesis and again thanks to my great mentor emmanuel habetz i was able to get in touch with professor veza valimaki of the acoustics lab at alto university and he actually was so kind to propose that i would cooperate with a phd student alec wright on deep learning in audio effects and that's exactly the topic of my master thesis which is modeling audio effects analog audio effects which is also called virtual analog using deep learning and i must admit it was a great experience to travel to finland to visit auto acoustics lab to learn the people here how they work what they're interested in and i'm very thankful i'm deeply thankful to alec who is my supervisor to professor valimaki and also to professor hobbits for making this possible and exactly in 11 days i should graduate with the master's title because my master thesis is almost ready and then hopefully we'll work on publishing some of the results of the thesis maybe extend them a little bit and on december the 1st i'm going back to industry i'm starting to work as an audio programming company in berlin so that is my path to audio programming from the early days when i started playing the piano to where i am today when i'm doing a master of thesis research in deep learning and going back to industry i hope you found it useful and i hope you can somehow relate to this path and if you have any questions don't hesitate to reach out to me via twitter via email via facebook vara via youtube comments i am always happy to answer any questions relating regarding the topics that i discussed one thing that i want to mention here is that if you want to learn audio programming then please go to www.thewolfsoundthewolfsound.com newsletter and please sign up for wolf sound newsletter as i said wolfsout is a place where i'm sharing my knowledge about audio programming and i know from my experience what is important what really matters and also i try to raise uh talk about topics that are important that are present in a lot of issues but at the same time are not well explained on the internet or not intuitively explained in books so from my newsletter you will know about all of my latest publications and releases on my articles my blog posts my videos and also episodes of this podcast and you will be able to become a professional audio programmer i hope to include more people on the show so that they can share their story and you can learn from them but for now please sign up for the wolf sound newsletter you will find links to the materials that i described above all two books but also to the places i was talking about on again www.thewolfsound.com [Music] once again it's www.thewolfsound.com slash talk001 i whoreheartedly thank you for listening to that first episode and we'll see you in the next one take care [Music] you
Info
Channel: WolfSound
Views: 318
Rating: undefined out of 5
Keywords: career, programming, audio, sound, research, c++, learning, sound synthesis, deep learning, virtual analog, university, aalto, asc, signal processing, mathematics
Id: 0kBpcACGM6g
Channel Id: undefined
Length: 40min 58sec (2458 seconds)
Published: Fri Oct 29 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.