A small article that can be interesting for developers?
Developers can start to delve into future goodness but we can also take a look at what is coming. Maybe the biggest news are with Midi.
Native MIDI APIFor apps that perform their audio processing in C++, Android Q introduces a native MIDI APIto communicate with MIDI devices through the NDK. This API allows MIDI data to be retrieved inside an audio callback using a non-blocking read, enabling low latency processing of MIDI messages. Give it a try with the sample app and source code here.
To read the whole thing and to lay your hands on the midi NDK go here:
This is great information that is good for anyone that is interested in using Android for playing synthesizer apps live etc and for developers to have a look at...
It is compiled by the developers of n-Track one of the main DAW's for Android. That i salso one of the two that have the possibility to hook up an external USB sound card for low latency professional recording as well.
A big reminder to any developers that reads this...
They have developed Audioroute which brings interconnection between apps on Android.
It is free to use so please contact them so we can get the Android music eco system to the next level!!!
Here is what they say regarding their latency tests:
Android devices audio performance chart
This page shows the latency calibration results performed by the n-Track Studio app. Results are collected anonimously.
Although the results are not scientifically accurate as each measurement is performed in different rooms with different acoustic conditions (as well as possibly different device volume settings), the results roughly represet the audio latency performance of various device.
We also show wether or not a device supports the FastPath, which is an optional feature of the Android audio system, which can help minimize audio latency when the app uses the recommended FastPath settings. "base" FastPath should allow for 45ms or lower latency, while "pro" FastPath should enable 20ms or lower latency. In the device detail page, for devices that support the FastPath, you can toggle between showing all results and only results obtained with the recommended FastPath settings.
We hope that this page will help orient users who care about realtime audio and want to identify devices that have good audio performance.
Latencies are measured in milliseconds.
And to see the results with clickable beautiful charts and suchlike:
Looks like a good exercise...
To read and act upon it go here:
Providing a great user experience on Android can be challenging. There are so many different Android devices, each with different audio latency, computational performance and hardware configurations.
n this session, Don Turner (Developer Advocate - Android Audio) will demonstrate techniques for optimising an audio app for Android. It will include: - How to pinpoint and investigate the cause of audio glitches -
Tools and techniques for code profiling ensuring you don't overrun your audio callback deadlines - How to obtain glitch-free audio at optimal latency using dynamic latency tuning -
Best practices and tips for publishing JUCE apps on Android.
Expect live coding, oscillators and cats.
There is some solutions on some devices and for some apps but this is huge news as it pertains to 99% of devices and up for grabs for any developer that wants to use it.
So maybe next year things will start to move fast forward not only if Oboe starts to get seriously implemented but also if Audioroute gets off the ground!!!
So here is some links for getting started etc:
We're proud to announce that Don Turner will be speaking at ADC 2018. The title of Don's talk is "Winning on Android," where he will demonstrate how to get the best realtime audio performance on Android devices.
To read the interview go here:
SunVox library for developers has been updated to v1.9.4c!
Look at the example: JS SunVox Player with generative demo songs.
This is what is coming for the next Android when it comes to audio and it looks like finally latency issues will be gone for most devices. Which it already is for some devices.
To read it all go here specially if you are a developer:
This is as reported by techchrunch.com:
The vast majority of Android developers use Google’s own Android Studio integrated development environment (IDE). Google offered a first look at what Android Studio 3.0 will look like. Most of these upcoming features are now available in the Android Studio early release channel.
As Google director of product management Stephanie Saad Cuthbertson told me, the company has only been increasing its investment in Android Studio since its launch four years ago. The theme of this release is “speed and smarts,” Cuthbertson noted. That means the IDE itself now allows developers to write their applications faster and it helps developers to better profile their applications to make them faster, too.
In practice, that means that Android Studio now has a full suite of profiling tools that help developers better diagnose performance issues in their apps. This allows developers to profile CPU, memory and network activity for their apps and see the details for all of these on a timeline that is automatically mapped to touch events, key presses and other events in the applications.
Another area Google focused on was to speed up the build time for complex projects. With this release, Gradle build speeds are significantly faster. The team tested this with projects that use more than a hundred modules, and Cuthbertson noted that for these highly complex projects, build times can go from minutes to seconds.
Android Studio 3.0 will also include a feature that will make it easier to debug any APK, no matter whether it was written in Java with Android Studio or with another tool or in a language like C++ (APK is the format Google uses for packaging Android apps). It also features an improved APK analyzer that helps developers optimize the size of their APKs, for example, by reducing the file size of images and other compressible assets, among other things.
With this release, Android Studio now also offers support for Instant Apps, Google’s format for allowing developers to break their applications into smaller pieces that can run individually and be loaded in seconds, right from its search results pages. To do this, developers have to break their applications into different modules — and Android Studio now supports this.
It’s worth noting that until now, access to Instant Apps — and distribution of their apps — was only available to a small number of developers. This project is now open to all developers.
Other new features in this release include support for Java 8 language features and APIs, an improved layout editor, support for adaptive icons in Android O and XML fonts and downloadable fonts, support for Android Things, updated system images for Android O (which is now in beta), Google Play store support in the emulator and support for Android Wear rotary controls in emulator.
Google also today announced that it is making Kotlin a first-class language for writing Android apps. This first preview of Android Studio 3.0 already includes full support for this new language.
From the Kotlin Blog:
Today, at the Google I/O keynote, the Android team announced first-class support for Kotlin. We believe this is a great step for Kotlin, and fantastic news for Android developers as well as the rest of our community. We’re thrilled with the opportunities this opens up.
For Android developers, Kotlin support is a chance to use a modern and powerful language, helping solve common headaches such as runtime exceptions and source code verbosity. Kotlin is easy to get started with and can be gradually introduced into existing projects, which means that your existing skills and technology investments are preserved.
Starting now, Android Studio 3.0 ships with Kotlin out of the box, meaning Android developers no longer need to install any extras or worry about compatibility. It also means that moving forward, you can rest assured that both JetBrains and Google will be supporting Android development in Kotlin.
In case you are concerned about other platforms that Kotlin supports (Kotlin/JVM for server and desktop, Kotlin/JS and Kotlin/Native), please be sure that they are as important for us as ever. Our vision here is to make Kotlin a uniform tool for end-to-end development of various applications bridging multiple platforms with the same language. This includes full-stack web applications, Android and iOS clients, embedded/IoT and much more.
Programming languages are just like human ones: the more people speak a language, the better. First-class support on Android will likely bring more users to Kotlin, and we expect the community to grow significantly. This means more libraries and tools developed in/for Kotlin, more experience shared, more Kotlin job offerings, more learning materials published, and so on. We are excited to see the Kotlin ecosystem flourish!
We will be partnering with Google to create a non-profit foundation for Kotlin. Language development will continue to be sponsored by JetBrains, and the Kotlin team (over 40 people and second largest team at the company) will operate as usual. Andrey Breslav remains the Lead Language Designer, and Kotlin will be developed under the same principles as before. We’ll keep our design processes open, because your feedback is critical for us in moving Kotlin in the right direction.
If you’re at Google I/O, make sure you stop by one of the Kotlin talks on the schedule. And of course, don’t forget to register for KotlinConf in San Francisco in November. It will be an amazing event!
A Big Thank You!When we started the journey with Kotlin over 6 years ago, we aimed at creating a language that would be in line with the same principles that drive our tools – create something that helps developers with the tedious and mundane tasks, allowing them to focus on what’s truly important. And of course make the process as enjoyable and fun as possible.
We want to thank Google and the Android team for their trust in Kotlin, but above all we want to thank you, our community, our users. Without you Kotlin wouldn’t be where it is today. Thank you for accompanying us during this journey and we hope you join us for the exciting road ahead.
Frequently Asked QuestionsWe’ve prepared answers to a series of questions that you may have in regard to this announcement. If your question is not covered, please feel free to ask us in the comments. If you are new to Kotlin, make sure you check out the FAQ on the web site where you can learn more about the basics.
Is Kotlin going to become primarily focused on Android?One of Kotlin’s goals is to be a language that is available on multiple platforms and this will always be the case. We’ll keep supporting and actively developing Kotlin/JVM (server-side, desktop and other types of applications), and Kotlin/JS. We are working on Kotlin/Native for other platforms such as macOS, iOS and IoT/embedded systems.
How does this impact Kotlin’s release cycles?Kotlin will continue to have its own independent release cycle from that of Android or Android Studio. The projects remain completely independent. Obviously there will be close collaboration between the product teams to make sure that Kotlin is always working correctly in Android Studio.
Who’s going to work on the Android Studio plugin?JetBrains will continue to work on the Android Studio plugin, collaborating closely with the Android Studio team.
Will this affect the support for IntelliJ IDEA, Eclipse or Netbeans?No. Kotlin continues to be a language that targets multiple platforms and support for other IDE’s will continue to be provided as before. Obviously emphasis will be placed on IntelliJ IDEA with hopefully community contributions on the other ones.
Will this affect support for macOS or iOS?No. We still have plans to support both of these systems with Kotlin/Native and nothing has changed in this regard.
Is JetBrains going to be acquired by Google?No. JetBrains has no plans of being acquired by any company. JetBrains is and continues to be an independent tool vendor catering to developers regardless of their platform or language of choice.
So there have already been low latency for some devices and with some apps already but very soon all newer devices will be low latency to satisfy anyone that wants to play things live and direct...
AAudio is a new Android C API introduced in the Android O release. It is designed for high-performance audio applications that require low latency. Apps communicate with AAudio by reading and writing data to streams.
To read the whole thing in glorious detail:
They do promise a professional audio solution with this version. Even though it seems to me that things is working really well on some devices already. But this will be more generally on all devices that will use Android O (what sweet starts with o?).
Here is what they say about audio:
AAudio API for Pro Audio: AAudio is a new native API that's designed specifically for apps that require high-performance, low-latency audio. Apps using AAudio read and write data via streams. In the Developer Preview we're releasing an early version of this new API to get your feedback.
To read the whole thing:
Please, pretty please make a donation to
Musical android You can do it! It will feel amazing afterwards!!!