Real Time Audio Production:Taking it a Step Further
Ok, so you have installed a real time kernel and you are beginning to understand how it works, but you feel that something is still compromising your low latency objectives. Maybe you are running JACK(JACK Audio Connection Kit) and you are experiencing an unusual amount of dropouts and inconsistencies. Or, maybe you just want push the boundaries and determine the lowest latency that is possible on your hardware. Well, keep in mind that your latency is affected by everything from the cache in your CPU to the device driver for your sound card. This test will scan your system and perform a number of checks. The checks are intended to help you achieve minimal latencies with an acceptable amount of predictability. This way, your computer will act as a tool for your audio production needs as opposed to a hindrance to your creativity.
Checking Your Configuration
This first program was shown to me by Arnout Engelen. As far as I know, he wrote this program without any help.
(Note to the wary):This program will only scan your computer for real time settings. It will not change anything on your computer.
You can download it from this link and
follow the instructions on the site or you can use my instructions that are provided below. Notice that my instructions will run the command line version as opposed to the GUI version and that the GUI version is still experimental.
To install this program, you will need to install mercurial. So, from a terminal, do
su -c 'yum install mercurial'
1. Download the program:
hg clone https://realtimeconfigquickscan.googlecode.com/hg/ realtimeconfigquickscan
2. Navigate to the ~/realtimeconfigquickscan directory
cd realtimeconfigquickscan/
for the last part I choose to run the command line version as I have had better results with it.
3.So, type
./realTimeConfigQuickScan.pl
and hit enter.
Now, if the scan reports that something is not optimized, it will not only tell you, but it will give you a link to thelinux musician's wiki , which has detailed information about the many checks that are performed with this program. I encourage you to learn as much as you can about the things you choose to alter. The more you understand, the more comfortable you will be while playing and composing music with your computer.
Granted, all of the tests in this scan may not apply to you and your hardware, but this is where the real fun begins. And we all know that real fun can only happen in real time.
The very last thing you will likely see from the output of this scan is something like this
** Set $SOUND_CARD_IRQ to the IRQ of your soundcard to enable more checks. Find your sound card's IRQ by looking at '/proc/interrupts' and lspci.
Do not be perturbed! According to Arnout Engelen, the writer of this program, this last part of the scan has only proved beneficial in one case and is not worth worrying about. There is a nice bash script by the name of rtirq that you can get from the Planet CCRMA repositories. For more information on how that script works, I suggest checking out this website.
The scan may be slightly modified by the time you read this tutorial. As I understand it, this is an ongoing project. To check for news and changes and to post comments or suggestions, follow this link to the forum discussion.
Tools for Benchmarking
As I became more interested in the real time concepts, I experimented with a few simple, yet interesting benchmark tests. You may want to do the same. However, be warned that the average benchmark test only tests the benchmark program itself, and our goal is to make and/or record music using our computer. These tests are super interesting, and you can find more information about them here. For the most part, these tests are short and sweet and are a great way to begin learning about shell scripting as well. But, to avoid digressing into another topic completely, your best benchmarking tool may be the JACK Audio Connection Kit using your preferred settings and applications.