121 iPS Mobile Audio and DJ Player App with Gábor Szánto

00:00 0:43:59
Download MP3

01:18 - Gábor Szántó Introduction

02:46 - Superpowered

Typical Applications

13:00 - Audio Apps on iOS vs Android

16:59 - Superpowered Cost

17:51 - Connecting Code

22:18 - Algorithms

24:25 - DJ PLAYER and The DJ Market

Hardcore History (Jaim)Whynter Ice Cream Maker (Andrew)The Aggregate Magic Algorithms (Mike)Solarbotics Bundles (Mike)15 Minute Podcast Listener chat with Charles Wood (Chuck)Pebble Time (Chuck)The DFT “à Pied”: Mastering The Fourier Transform in One Day (Gábor)

Transcript

**[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York and L.A. bid on iOS developers, providing them with salary and equity upfront. The average iOS developer gets an average of 5-15 introductory offers and an average salary offer of $130,000/year. Users can either accept an offer and go right into interviewing with a company or deny them without any continuing obligations. It’s totally free for users, and when you're hired they also give you a $2,000 signing bonus as a thank you for using them. But if you use the iPhreaks link, you’ll get a $4,000 bonus instead. Finally, if you're not looking for a job but know someone who is, you can refer them on Hired and get a $1,337 bonus as thanks after the job. Go sign up at Hired.com/iphreaks]****CHUCK: Hey everybody and welcome to episode 121 of the iPhreaks Show. This week on our panel we have Andrew Madsen. ANDREW: Hello, from Salt Lake City. CHUCK: Mike Ash. MIKE: Hello, from fair-fetched Virginia. CHUCK: Jaim Zuber. JAIM: Hello, from Minneapolis. CHUCK: I’m Charles Max Wood from Devchat.tv, and this week we have a special guest and that’s Gábor Szántó. GÁBOR: Hi everyone, from a very long name place in Hungary. It’s called Kaponashnik. CHUCK: Awesome. Do you want to introduce yourself really quick? GÁBOR:**My hobby – I have two main hobbies. One is [inaudible] and the other one is DJ-ing. I was starting with DJ-ing first in the ‘90s. I had a few residencies here in Budapest, Hungary, then I started to produce music and – with my friends. We had a band called Techtonic. We get signed to Strictly Rhythm New York and we had a few dance chart hits in the UK and in the US, some top 20 titles. Then my other hobby was – always was programming and coding and especially low level stuff assembly. So I started to move in that direction. Obviously I did some web development first because that was the hottest topic in the 2000’s, but when the iOS SDK became available, I started to develop a DJ application for my own. And I quickly realized that implementing a desktop class or professional class audio on mobile devices is definitely not straightforward because of the resource constraints off the devices. So I started to research audio and optimization stuff and slowly I built some serious audio DSP algorithms and now we have a startup built around that. It’s called Superpowered.**CHUCK: What does Superpowered do? GÁBOR:**Superpowered is a cross-platform audio processing library. It’s [inaudible] library without any third party dependency and it doesn’t use any features of the underlying operating system. And it also has the highest performance available on mobile device providing you very low CPU usage and very high battery life, which is very important for users. And it also provides desktop class audio processing so it’s not a limited stuff, but it really provides you the audio processing tools to port from desktop class applications to mobile devices. It’s cross-platform meaning it runs on iOS and Android, and you can use exactly the same code on both platforms so you just write your audio code once and then it’s copy-paste between iOS and Android. We also have a great focus on low latency. Every Superpowered feature has exactly zero latency except time stretching because, obviously, going from tan domain to frequency domain requires a few examples of delay but that’s it. So using Superpowered you eliminate any technical debts for your startup for your application because immediately you can create desktop class applications on a mobile device and you can immediately move it to iOS and Android without depending on Core Audio on iOS or open [inaudible] on Android and it contains almost everything. So it has audio decoders, players, time-stretching effects such as reverb, echo, loop roll – stuff like that. And resampling and pretty much everything you can imagine in an audio world. And because this package contains everything, this way your application will not depend on the underlying [inaudible] system features such as MP3 decoding or simple audio playback.**JAIM: What would be a typical application that would use Superpowered? GÁBOR: A typical application is a music instrument such as a synthesizer or some audio manipulation stuff, or DJ softwares. Pretty much everything which plays and manipulates audio, games; even most of our IP apps are using it. JAIM: Okay, so if I've got an instrument app – a guitar app, I want to add a delay effect. Am I writing interface with Superpowered in C? How are we writing that? GÁBOR: Uh-hm. Superpowered has a delay effect. Actually it’s called echo because there are two names for the same features, echo and delay so it’s the same. So yes, you write C++ codes. Why C++? Because C++ is the only cross-platform language between iOS and Android. And you can also level up in C++ for Mac OS 10, even for Windows. So it’s really a common denominator of program with languages. And also C++ is the only cross-platform language which is real time and has the highest performance assembly as well, of course. So yeah, this is a C++ library and you need to understand C++ correctly to use it. You don’t need to be a super professional in C++ but you should understand the basic concepts, how to allocate memory and simply how to talk with C++ classes. Unfortunately, this is an issue with new developers. I see with Superpowered that most junior developers are focusing on high level languages only such as Swift or Objective C and they don’t really spend any time with lower level stuff such as C or C++. While I still think that understanding C and C++ is a core knowledge for every kind of native application developer because serious stuff – if you really make some serious stuff then C and C++ are the only cross-platform in the entire performance languages. So you can talk with the operating system features or the UI library using Objective-C or Swift, but any serious processing should be really done in C or C++. JAIM: So what makes C++ and C so good for performance? GÁBOR: Because they don’t hide anything, so they don’t have garbage collection; they don’t have too many automatic things going on behind in the background. And almost every C or C++ feature is really well optimized because those languages are the basis for writing operating systems and stuff like that, so even the Apple’s own stuff such as UI kit or all of the other frameworks for iOS are written in C and C++, so it’s really the foundation of every operating system and framework today. ANDREW: So do you find though that having Superpowered via C++ library – I guess you sort of touched on this but is that a barrier to getting people to use it? It seems like a lot of people who are writing an iOS app or any Android app just want to write in Objective-C or Swift or Java, they don’t really – a lot of them don’t know C++. Even if they do know it it’s sometimes not the most fun language to work in. GÁBOR:**Yes, I agree. [Chuckles] Currently we see three types of developers. There are the very pro developers who, while they're understand using C or C++ very well, perhaps they are older dev guys with lots of experience, they can use Superpowered immediately without any hassle. Actually, it’s very easy to use for them. Then there are the, let’s call, the average developers who’s still understands and can write C and C++ code but they need a little bit of help. And we often provide them [inaudible] via e-mail or Zendesk or stuff like that. And there’s the third layer of the junior devs; they focus on the fancy languages such as Swift is a very hot topic today. And they don’t really understand it. At least in this moment they are not really interested learning C or C++. And then they cannot really use Superpowered because it’s too complex for them. Not Superpowered is complex but C and C++ in general. We know that Superpowered doesn’t serve well junior developers, and we have plans creating a, let’s call it an audio engine which is programmable from high level languages such as Objectice-C or Swift. And then similar to all the every audio engine which is really a layer on top of Core Audio; so we plan to release an audio engine like that. Obviously we need more time to make it happen. This is how audio engines work by the way. So there are basically created for junior devs for easy prototyping. And then if you would like to do any serious stuff then you must dig deeper. So like in iOS, you start experimenting with AV Audio Engine and then you will quickly realize that it’s not – that stuff is sophisticated so you go down to Core Audio. We plan a similar route where the custom audio engine built around [inaudible] but currently we don’t have that so you need to dig immediately deeper and use the core Superpowered functionality.**JAIM: Now is Superpowered built on top of Core Audio for the iOS part? ANDREW: Or the Mac? GÁBOR:**Definitely not. Superpowered have everything inside, so from audio decoders to every DSP functionality – everything is developed by ourselves. So even the math algorithms, we do novel [inaudible] research to provide you the best performance in mobile, so this is why we don’t use NFM. Obviously, audio input and outputs must be available, and the only way to talk with the iOS audio system is Core Audio specifically the remote I/O class or audio unit. But that’s the only Core Audio we are using – feature we are using now.**ANDREW:**I was just going to say I don’t think there’s a way to get audio in and out of the device without Core Audio but that’s pretty cool. You’ve been able to write something completely independent of Core Audio other than [crosstalk].**GÁBOR: Yes it is, and Core Audio is the only user’s space solution to talk with audio hardware. I wish if there would be a workaround or to bypass but that’s route. But fortunately the media server is iOS is written very well and you can reach really all latencies with reroute I/O. So this is not another problem with iOS; we have way more serious problems on Android where the audio engine – the media server which handles the audio hardware, all the input and output is quite poorly – not just poorly but written but poorly designed, and audio latency on those Android devices is simply horrible. And this is a great thing to prevent professional audio applications to appear on the Android’s platform. And unfortunately, there’s not workaround at least in the user’s space. ANDREW: Do you find that that holds apps back on the platform? It seems like a lot of the serious audio apps are on iOS and not really Android. And I wonder also if there’s anything going on that may change that situation. It seems like a pretty glaring downside for Android. GÁBOR: Yes, definitely. There are multiple problems regarding audio for Android; one is device fragmentation. The native audio functionality available through OpenSL ES is not fixed, meaning it can be different from device to device. Plus in some devices you can have a free band equalizer. Other devices, the equalizer is gone. It’s like having a audio uniting with Core Audio available on iPhone 4 only and another one available on iPhone 6 only, but obviously there are way more Android devices available so this is one problem. Fortunately Superpowered solves this problem because we are doing everything inside so you don’t need to use any manufactural dependence on the feature. Another problem is OpenSL ES itself – well it’s not a pretty API. I don’t know if you have ever saw some OpenSL ES code. Did you guys? ANDREW: No. GÁBOR: It’s a –. MIKE: I wrote some. It’s wonderful. GÁBOR:**Yeah. It’s quite an ancient looking interface – and vulnerable. So even if you would like to do – remember Core Audio stuff, spaghetti codes – you need to write a lot of spaghetti codes just to get a Core Audio feature working. Now multiply it by two or three for OpenSL ES, it’s really portable. And the third thing with Android audio is the media server. So even if we solve all the other problems with Superpowered [inaudible], the media server handling all the input and output is not good on Android; it has huge latency. And while Google is continuously trying to improve that situation, the first announcement was in 2011 or 12 and since then every Google I/O they announced some baby steps and reducing all the latency. But they are still not there because the Android media server have a huge design problem. The two biggest problem with Android’s media server is it has a push method so it’s not like iOS; the audio hardware, the sound cards dictates when the next piece of audio is produced. On Android it’s the opposite, so it’s like the application pushing all the [inaudible] to the audio hardware and certainly it gets out of sync all the time so the Android media server tries to mask this problem. And the other problem is that the media server doesn’t talk with the audio driver directly. There is another layer; it’s called the Android audio HAL. It’s provided by the manufacturers of the Android devices and it’s also often modified by the menders such as Horizon or AT&T, tweaking audio settings with the older driver and in many cases it’s horrible so Google should really tighten their grips on this. So this is the main problem with Android’s media server but we have written a very detailed article about this. It explains all the elements of the audio chain of Android and all the pain points are displayed. And we try to write this article to be understandable for everybody so you don’t need a very deep technical knowledge to understand what’s the problem.**ANDREW: I’m curious – changing topics just a little bit. Is Superpowered something you sell? Is it free, is it open source? What’s the model or motivation for the library? GÁBOR: Ah yes, great question and I don’t know why I didn’t mention this. Superpowered is free for application developers. So if you have a application and you distribute it either on the app store or in the Google Play store or any kind of app store, Superpowered is completely free for you regardless your success. So even if you have an application used by millions of users, t’s totally free for you except one small feature; HSL – HTTP Live Streaming playback. There’s a custom license fee for that but if you don’t use HLS then Superpowered is completely free for you. JAIM: If I’m going to introduce this into my app, how are we connecting the C++ world with Objective-C or Swift? How is that supposed to be done? GÁBOR: Objective-C is the easiest because basically there are two languages – Objective-C and Objective-C++. And in Objective-C++ you can use C++ classes inside and you can do any kind of C++ code inside without any limitation or restriction. And to magically convert a Objective-C file to Objective-C++ is very easy; you just rename the file from .m to .mm. So you just rename the extension from .m to .mm and it will magically become a Objective-C++ file. The only thing to deal with is that in the header file you shouldn’t put any C++ code or references because that way you will get a lot of compiler errors because the pure Objective-C classes will have problems understanding the C++ code you put in the header file. So every reference to C++ stuff must be inside your .mm file. So that’s the only thing you need to do – rename it to .mm and store the member variables in the .mm file, that’s it. With Swift, there’s a famous or infamous bridge solution. So you put your C++ code into an Objective-C++ file and then you create a bridging header to talk between Objective-C++ and Swift. Unfortunately, even with Swift 2.0 there is no way to use C++ code directly inside Swift. ANDREW: Yeah, it seems like one of the places where Objective-C still has an up on Swift is if you're trying to interact with C++ another solution is to wrap the C++ API in a pure C API which works for some kinds of libraries and then C has decent inter app with C – Swift has decent inter app with C now. GÁBOR: Yeah. Many developers are still thinking that Swift is the main language for iOS developments, but it’s simply not true. It’s still Objective-C and Objective-C++; more APIs are available for Objective-C and Objective-C++ than Swift. ANDREW: Yeah, and I think that was even more true before Swift 2.0 because of the C function pointer limitation in Swift 1.0 that made it so you really couldn’t use some of the pure C APIs that require you to pass in C function pointers or at least couldn’t use them without a lot of extra trouble. GÁBOR:**Yeah. Swift is great for 90% of every case of most application, and it’s a great prototyping tool and you can have a great fun with it. How I see that, both Google and Apple is trying to create APIs which covers 90% of all [inaudible] cases. So if you are just building a regular app [inaudible] clients a simple, [inaudible] game, or 90% of the applications are [inaudible] with Swift and they can be written with Swift. And it’s true for frameworks as well; every iOS framework or Android framework covers 90% of all functionality ever required by developers but there’s the rest – there’s the 10%. When you really need to create something serious, something unique, some sophisticated processing stuff, then you can quickly find yourself outside of these frameworks, outside the convenience of the iOS SDK or the Android SDK. And this is where complex things start to happen. In the audio world, you can quickly find yourself in this unique 10%.**JAIM: Yeah, definitely audio processing is so far outside the realm of what we’re normally doing – cranking things on the nibs and things like that and wire things up and network responses. It’s definitely a different world – a very cool world. GÁBOR:**And slow. [Chuckles]**JAIM: Is it true? So as the audio geek I was wondering what were the algorithms that helped you get ready for Superpowered that you used in your DJ app? GÁBOR:**I started to create model algorithms from scratch in 2009 – specifically for my DJ Player application – simply because many of the features available on desktop DJ softwares are running on laptops and desktop computers were simply not portable to mobile devices because at that time we had the iPhone 2/iPhone 3G with 400 MHz processor and it was simply impossible to port a desktop class older feature. So I started all these research and then I found a pattern or more like a set of optimization methods which became the core of Superpowered. So now we have a unique and [inaudible] by the way [chuckles] optimization method how to create super efficient audio processing on mobile devices. And this optimization method starts from mathematics research so it’s not like taking an existing code in C++ and then optimizing the hell out of it, but it starts in mathematics research and from that one it goes down to the last line of handcrafted assembly code and in this way you can have huge performance gains. Very often with C, 100 times of performance improvement or regular C code so the performance difference is huge. It’s like – I’m always saying that having a new CPU is nice; you can get 1.5 to 2.0 performance increase. But following a better developer to your problem can do not 1.5, not 2.0 but 10/20x performance.**ANDREW:**Before we finish the show, I’d like to talk to you a little bit about DJ Player and about the DJ market on iOS. [Crosstalk]**GÁBOR: Sure, sure. I really would like to; that’s my favorite theme still. ANDREW:**This is something – like I said I worked on DJ software for my day job, mostly on the desktop but we have one iOS app and are always kind of – [crosstalk].**GÁBOR: Which one? ANDREW: iMashup is our iOS app but I work for Mixed in Key. I work on all the Mixed In Keys Mac software. GÁBOR: So is the Flow 8 is your new product, right? ANDREW: Yeah, we launched that last week. GÁBOR: Congratualtions! ANDREW: Thank you. But it’s been interesting to see the proliferation of DJ apps on iOS. Native Instruments has a version of Traktor for iOS and there are a lot of – like Algorithm has DJ which has been pretty big. What do you think is behind this move to iOS for DJ-ing? Because my initial thought was that I didn’t know if iOS devices were really that well suited for actual DJ-ing. GÁBOR: Actually they are perfect for DJ-ing. Now this was my original statement in 2009 as well. So immediately when I saw the first iPhone, I thought that this device will be the main hubs in the DJ booth because obviously not the first iPhone, but the iPad is a super robust device for the stage. I think it’s better than a laptop so personally I never liked laptops in the DJ booths and on the stage because it doesn’t look natural for me. Laptops doesn’t really look like instruments on stage; they look like laptops and a DJ should perform on DJ gear and a DJ should contact with the crowd and read the crowd and not look like doing FaceBook out there. But the iPad or iOS devices look like instruments. They are touch screen instruments and they really don’t look like computers on stage. From the DJ’s point of view, an iOS device is more robust than a laptop. In the last six years, I bring my iOS devices tons of times to the stage and they are really robust for the purpose while I saw many laptops having server problems up there. Processing wise, the current iOS devices are awesome so they really have desktop class performance. And if you take the advantage of the ARM 64-bit architecture then actually you can create faster processing than on desktop devices. With Superpowered and with DJ Player on a 64-bit ARM device, they often have faster track analysis than with my Core i7 on my OS 10. So I think iOS devices are better than laptops up there. The only small problem is iTunes itself and the actual music. It’s not super friendly to manage your music and it’s made available offline stuff and playlist management is not perfect but this things will be eventually solved in the future. When I started DJ player my goal – from day zero – my goal was to provide a professional DJ application, which is really useable on the stage in front of a real audience, in real clubbing situations and still the only application in the app store with this focus. Yes we have Algoriddim DJ – hugely popular – Traktor DJ but these applications are not really targeted for the everyday performing DJ on the stage; these are more of having fun at home and having fun for bedroom DJs but they are not really made and designed for professionals. ANDREW: Our problem with iOS is the pricing structure on iOS. It’s hard to price very much for your app and people talk about this a lot, developers talk about this a lot. But how have you found the market to be, in terms of actually making money? Because DJ players is not a – it’s free but you've got in app purchase so it’s seems like you're actually trying to make some money with it. GÁBOR:**The app store in general is not the place making you rich. There are few exceptions, but even if you make a really popular application, the app store is not the place for huge money. DJ Player is doing well; it pays my bills but it will not buy me a new Tesla. Recently became available some revenue estimation tools for the app store such as Sensor Towers, Revenue Estimation or [inaudible] intelligence whatever stuff. And you can see there that even Algoriddim or Native Instruments with Traktor doesn’t really make any serious money. So the situation there money wise is not that bright or funny. I’m doing DJ Player because it’s my mission, it’s my media and money is secondary. And even if DJ Player degenerates to the same revenue as Algoriddim’s DJ which is top grossing, that’s still not much.**ANDREW: That’s about our experience, too. We have an iOS app on the app store that does quite well for an iOS app but it certainly can’t support the whole team; we put the money on the desktop. GÁBOR: On the DJ market you can make money – serious money with hardware especially with MIDI controllers. That’s the product which keeps companies alive. The DJ market in general including, not the iOS apps, but everything to the latest Pioneer, super Nexus, whatever player, it’s still small worldwide. So the DJ market is really – it’s like $120 million dollars a year. It’s not a huge market and it covers every DJ gear and stuff. And people doesn’t really want to pay for apps; people pay for physical goods such as a MIDI controllers. It’s quite strange situation because a MIDI controller – what is a MIDI controller? A few knobs, buttons and faders sending signals to the computer or iOS device and that’s it. A MIDI controller doesn’t really have any serious logic or software inside; it’s really a simple device. A MIDI controller is really just a box with faders, knobs and buttons sending messages and the majority of the work is done by the DJ software; the DJ software does everything, right? If you place a default audio, placed audio, time stretches audio, resamples, looping effects – everything is done by the DJ software but people doesn’t really want to pay for that. People wants to pay for a dumb box; that’s reality. ANDREW: Yeah, I don’t quite understand it either but it’s certainly the big players like Pioneer and Native Instruments are not making money in their software; they’re making it on their hardware. GÁBOR: Correct. ANDREW: Of course, the same is true of Apple, right? Seems like a decent model. GÁBOR:**Yes. People just simply learn that software’s free. It’s free, it’s something you can get and most people doesn’t really understand software at all. So what is it? How does it work? Hmm, I don’t know. It’s not something I can touch so it doesn’t seem so significant. Average people does not really pay for software. And of course there’s the problem of the markets outside of the developer’s world where software is absolutely free in people’s minds and by the way we’re kind of a non-material product such as movies and music and everything which you cannot touch, then it must be free. And here’s a small story; in 2005 I lived and worked and born and raised in Hungary, right? In central Eastern Europe. And in 2005 I was presenting with my friend in the Midem Conference in Cannes, France. In the Midam conference, I asked some kind of senior vice blah blah president of Apple. Personally, I asked him in 2005 why the iTunes music store is not available in Hungary because in 2005 almost every MP3 player sold in Hungary was an iPod; everyone has iPods here but you couldn’t purchase any music legally because the iTunes music store was not available in Hungary. So I asked him what’s the reason but he really didn’t knew. They didn’t care. It’s a small market anyways so they can do it later. And I told him, “Hmm, this is 2005; people already know that they can download MP3 from the internet for free. And if you don’t make iTunes store available in a few months, then it becomes a natural phenomenon that people will think that music is a free audio file download from the internet from some pirate’s place.” He told me, “Hmm, we don’t really care.” And then finally in 2010 or something like that, they made the iTunes music store available in Hungary and guess what, it’s still not popular; almost nobody’s using that. Not even Spotify, not even [inaudible], not even these fancy string services. Why? Because of the ignorance of big companies, people in these regions simply learn that music is a pirated audio file which you can download free to your computer and then you can transfer it to your iPod or iPhone and stuff like that. So it’s kind of a missed opportunity for big companies that they create, they cut short around piracy because they didn’t make the content available in time.**JAIM: That’s pretty common. Just as you said, if you can get something easily, you’re going to. Even if it’s free if it’s a pain to do, you're not going to do it. But if it is something you do you don’t have a paid alternative, that’s easy; they’re going to take the free approach just like you said. GÁBOR: Yeah. And today these piracy – pirates MP3 websites are very often more convenient than the iTunes music store itself both on the UX side so I can get a music way quicker from there than from the iTunes music store. That’s stupid. Off course I don’t do that; either iTunes Match, subscriber and stuff like that so I didn’t say anything. JAIM: But you could theoretically. GÁBOR: Yes. CHUCK: Yup. People build to have it one way and then it’s hard to get them to change. GÁBOR: Yeah, they will not change. I guess to make money from selling music even through direct MP audio file sales or from streaming services, the only markets left are in the developed world, in the western world and then outside of it everyone just gets it free. And the same happens with movies, TV series – stuff like that. CHUCK: Alright, well should we get to picks? JAIM: Uh-hm! CHUCK: Alright. Jaim do you have some picks for us? JAIM: Okay, I don’t really have a proper pick but I have a –. CHUCK: You have an improper pick? JAIM:**I have an improper pick, a recurring pick. I picked Hardcore History like [inaudible] Armageddon series on World War I probably a couple of months ago, two months ago. I finally punished it and I say, hey, it’s still worth it. So 20 or 30 hours of World War I and it’s all very good. So there we go, Hardcore History. That’s my pick.**CHUCK: Alright. Andrew do you have some picks for us? ANDREW:**I just got one pick today. It’s not programming related at all but I like to make ice cream at home and I make ice cream fairly often. And I have two ice cream makers; one is the kind that you put ice and rock salt in, and I have one that’s like a bowl in the freezer for 24 hours and you can use it on a stand mixer and I like both of those but they both have problems in the – one with ice and rock salt is kind off messy and you got to go buy bags of ice and salt. And it’s kind of a hassle in the freezer bowl one while you have to prepare 24 hours in advanced and you can only make one batch because you have to freeze it again before you make the other one. So I finally shelled out for an ice cream maker with a built-in compressor and it’s made by Whynter and I really liked it. It’s not cheap so if you don’t make ice cream often then it’s certainly not worth it but it’s kind of nice to be able to make as many batches [inaudible] with no preparations so that’s my pick.**CHUCK: Mike, what are your picks? MIKE:**Alright. I’ll make up for the lack of programming in that last one. I’ve got two today; one is The Aggregate Magic Algorithms. This is just a fun set of code that you can use for doing really basic integer manipulations. They’ve got a bunch of things like if you ever need to reverse bits into number and you could compute the log2 or the integer or see if something is a power of two, it’s a bunch of really cool tricks that you can use for doing these things more efficiently than your typical four loop overall bits approach. And it’s written in a really approachable style and it’s got list code examples for each one. I’ve actually used a couple of these not very commonly; they don’t pop up that often but it’s just really fun to read through and get ideas for how to do things differently. The other one is Solarbotics. They’re a company that sells a bunch of robotics related electronics. They, as the name indicates, they specialize in solar panels and related equipment. They have a bunch of kits available for these things called Miller solar engines. Basically what they are are big capacitor and a set of circuitry that allows you to build something that collects sunlight slowly over a period of a few seconds or even a few minutes and then it stores that energy and unloads it all in a big pulse so that you can drive a motor [inaudible] with it for example And I built a little floor – light-seeking floor travelling robot with these things and they’ve got a lot of cool stuff and it’s a lot of fun so those are my two.**CHUCK: Alright. I’ve got a couple of picks. The first one is I’m still doing the 15 minutes chat with people who have listened to the show. So if you go to iphreaksshow.com/15minutes; I am happy to talk to you. I’ve had several people go ‘I’m new to programming’ or ‘I’m new to iOS/JavaScript or whatever programming depending on what show they listen to. And I’m just not sure that I have good feedback. I want to hear it from everybody and I think new people have an interesting perspective to give. So no matter if you're a veteran or you're new, I want to talk to you and just figure out what you're getting on the show so go sign up at that link. One of the pick that I have, I backed a few Kickstarter campaigns over the last year and one of the thing that I backed was the Pebble Time watch. I’m still waiting for a sign that hooks up to my computer, show up at my door, but that’s another thing that tells people I’m on the air. But anyway, this Pebble Tie watch is really cool. It’s a smart watch; kind of like the Apple watch except much less expensive and I’m really enjoying it. We had a discussion with Neil Ford about Ambient Information and I think this doesn’t – it’s just not as finely tuned to work with the iPhone as the Apple watch is but I’m really enjoying being able to get notified when things are going on. And I’ve been finding different apps that interface with the watch nicely so when I get a text, it comes on my phone or on my watch. When somebody is trying to get a hold of me on Skype it does – I can control my music – whatever I’m listening to – music or podcast with the pebble time. So anyway I’m really digging it. I still want the Apple Watch but it’s kind of down the road and for the mean time this is a really good alternative if you're not willing to drop whatever it costs for the Apple Watch. I think this one was only a hundred and something dollars. And this one’s the colored one; I got the Pebble Time Steel so I should be getting a metal band to go with it but the leather band that comes on is really nice, too. Anyway, that’s my pick. Gábor, wht are your picks? GÁBOR:My pick – I have one pick. My pick is the The DFT “à Pied” by Stephan Bernsee. It’s a 16-years old article on the internet and it’s still the best, explaining FFT and polar transform. These are very important for audio developers. I think very developers who’s into audio should read this because this is a great article explaining what’s this time domain to frequency domain stuff is all about, how do you get the phase and magnitude from an audio stream, what they really represent and what FFT does behind the scenes to provide you this data. It’s a very interesting article; a bit complex to understand and you need four to five runs to fully understand but after you understand it, it’s a great [inaudible].CHUCK: Alright. Well thank you for coming. If people want to know what you're up to or check out your DJ software, anything like that, where should they go and what should they do? GÁBOR: My DJ software is available in the app store, and its website is djplayerapp.com. It’s free to download and you can try every single feature for free; I support this try before buy movement. And then if you find it good and if you choose it as a weapon of choice then please purchase it. Use it in an in app purchase. Audio developers, please go to Superpowered.com which solves lots off headaches, audio-related headaches on iOS and Android. CHUCK: Alright, well thank you for coming. Thank you for coming, thank you everyone for listening and we’ll catch you all later. [Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.]**[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit cachefly.com to learn more]**[Would you like to join a conversation with the iPhreaks and their guests? Want to support the show? We have a forum that allows you to join the conversation and support the show at the same time. You can sign up at iphreaksshow.com/forum]**

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.