'I never imagined working in the music industry'
For two master's students, the Embedded Systems programme at KTH opened up some unexpected doors.
Working with technologies for connected musical instruments and audio processors began as a student degree project for Sharan Yagneswar and Nitin Kulkarni, who studied Embedded Systems at the School of Electrical Engineering and Computer Science at KTH. Now the two KTH alums are working in Stockholm with their project sponsor, Elk Audio.
Yagneswar worked on Elk’s smart guitar product, which enables musicians to use infinite modulations and effects in real time and in a natural way, without the help of any accessory or computer. Kulkarni (who did a dual degree with TU Eindhoven with the joint EIT Digital program ) worked with Elk’s operating system, which drastically reduces delay when audio signals are transmitted via the network.
We asked them recently to recount their experiences.
Each of you worked on different projects, tell us about those.
SHARAN: The overall project involved running complex audio processing algorithms in real time for Elk's guitar. These algorithms should be processed as fast as possible so that they have low latency, while keeping CPU usage as low as possible as well. My project in short was about optimizing some core DSP operations (such as IIR biquads, FFT and complex multiplication) using SIMD instructions.
NITIN: The overall project was to reduce the round-trip latency of audio processing on a Linux based platform . Linux is traditionally not used for low latency audio application because Linux is not a real-time operating system per se. There are few flavors of Linux optimized for audio but they aren't good enough for pro audio applications where the quality of audio has to be absolutely glitch-free.
How did each of you contribute?
SHARAN: Essentially, it was about trying to find as many parallel mathematical operations for each of the algorithms (total of 9) and implementing them with SIMD instructions (ARM NEON). This helped the code to perform 2-3x faster than the optimized code that the compiler could produce. Apart from that, I also needed to find a very accurate way of measuring the time taken for execution as well.
NITIN: My contribution was that I was able to tweak the Linux kernel with a technique that improves Linux's real-time capabilities (The Xenomai project) and also write an audio driver for real-time audio processing.
Now both of your work has been commercialized, as part of the ELK offering.
SHARAN: Yes, in an indirect way. Most of the knowledge I obtained from that were used for optimizing other real time code.
NITIN: Yes. The audio driver of Elk Audio OS is essentially my master’s thesis project.
What was the most challenging part?
SHARAN: I would say that implementing accurate execution time measurement was the most difficult part. Apart from that, It was difficult to keep the balance between writing highly customized and optimized code with no flexibility (aka reusable in other projects) vs having flexible code which trades off some optimization. At the end of the day, having reusable code is always better I feel.
NITIN: Linux kernel is a massive code base and it's a steep learning curve to learn about the kernel internals for a newbie. The Xenomai dev community is a small one and a few people know exactly how it works. You essentially have to try everything and I have been stuck at a problem for weeks and wasn't progressing. It requires a lot of patience.
You’re both musicians. Do you see a connection between that skill and how you approached your work?
SHARAN: Yes, I have been playing the drums and guitar since my early teens. I would have not understood the objective or the reasoning behind the project if I was not a musician. In fact, the whole reason I wanted to pursue Embedded Systems was because I wanted to get into real time audio processing as a career and wanted to make my own guitar processors. I could intuitively relate to how the DSP operations work and how they affect the sound.
NITIN: Like most of us at Elk, I’m a musician too. I think it definitely helps in the way you approach your work since you are also a user of the technology that you are developing. The most important thing is the drive and motivation to work on something that you really love.
What did you learn from your project?
SHARAN: I gained a lot of professional and personal experience. It taught me to be disciplined, logical, and more importantly, patient when approaching problems that look insurmountable. On the technical side, this was my first deep dive use of tools such as Git, CMake and bash, along with using Linux in general.
NITIN: I think I learnt a lot from this project since I had no idea about Linux kernel and how it works. As an embedded systems engineer the whole product development and how the driver fits in it was really fascinating to learn.
How did it feel to be part of it?
SHARAN: This was something I always wanted to get involved since I got my first guitar processor when I was 15. So I feel great to be a part of this.
NITIN: It was really challenging but it was also a joy to work on something that is related to music. When I tested the final outcome of the project, I was playing a guitar connected to an Elk board running some audio effects. It's incredibly satisfying as a developer and a musician.
When you first started at KTH did you foresee working in the music industry?
SHARAN: I knew I wanted to somehow end up there, though I absolutely did not foresee this. When I chose to come to KTH for my master's degree, I had no idea how many Swedish companies are involved in music tech, many of whose products I used a lot myself.
NITIN: No, I never imagined working in the music industry, working as an embedded systems developer. But back then, I didn't know about the music tech ecosystem of Stockholm. I think Stockholm is a great place for someone who wants to work in music tech.
What Advice would you have for a student who is interested in enrolling in your master’s program?
SHARAN: This is a difficult one since everyone has their own interests and way of learning. I would say that the best way to learn something is to get involved in a project which uses it. I learnt 99 percent of my curriculum through the lab sessions – which were awesome. I would advise everyone to pay full attention to those.
NITIN: I think Embedded Systems is a wide area of subject and there are a lot of tracks. It's worth trying out different courses and see which one feels more interesting for you. Also, if you know a specific industry or area is of special interest – like music tech – then try to do your master’s thesis in a company that works in that industry.