AudioTheory Grids combines intuitive music theory tools with the power of a grid-based sequencer. Customise your grid, program in a composition and then play it back on the piano and fretboard diagrams.
[img]{STEAM_CLAN_IMAGE}/38677940/2ae0343a8b0c62e361effd96c2eb3ac23d6a732a.png[/img]
A new update is here for AudioTheory Grids. This combines a series of 'under the hood' optimisations I've been making across the range of AudioTheory software. Let's dive into what's new...
[h3]AudioTheory Grids and the ASIO4ALL driver[/h3]
ASIO4ALL is a freeware audio driver designed for low latency playback. Most DAWs require the use of an ASIO driver, and whilst it is optional for AudioTheory Grids, it's highly recommended. It's very easy to install and you are guaranteed to get better performance than the built-in Windows driver.
Oh and yes, to confirm this is a Windows specific feature. Mac and Linux come with audio drivers that can handle very low latencies out-of-the-box. More on how the settings have changed on these platforms in a bit.
[img]{STEAM_CLAN_IMAGE}/38677940/8a3ea4bb5653d8f7883b12d371d9aa96c59ceb9f.png[/img]
[h3]Changes to the Windows version of AudioTheory Grids[/h3]
There are a few things now in place designed to help swap you over to the ASIO driver. If you load up the application without this installed you will see a one-time notification directing you to the ASIO4ALL website.
Once installed, the application will automatically swap to use the ASIO driver when its next loaded. You can see which driver is currently in use from the settings popup. Here can also swap driver using the dropdown, meaning you can revert back to the built-in driver if required. Any driver changes here require the application to be restarted before they take effect. Oh, and if you swap to ASIO here but the driver isn't installed then it's not going to work. In this scenario the application will prompt you to install it on your machine.
Please note that currently the option to record in AudioTheory Grids is only available when using the built-in driver. This works by directly capturing the audio output and writing it to a wav file, which can only happen when the built-in driver is being used to process audio. I am looking into an alternative method of supporting this feature with the ASIO driver, but unfortunately the options are somewhat limited. At least for now, the record button doesn't show if you're using ASIO.
[img]{STEAM_CLAN_IMAGE}/38677940/56b54fa6f9414f736e6f75d101f9279268e3a450.png[/img]
If the ASIO driver is in use, you will see a 'config.' button that lets you open up the ASIO4ALL settings. Here is where you configure your output device as well as the DSP buffer size. If you are not receiving any audio, the likely cause is that the correct output has not been selected here.
[img]{STEAM_CLAN_IMAGE}/38677940/2c30166126f7db7655e6480c490ef75c80b1c547.png[/img]
[h3]Changes to the Mac and Linux versions of AudioTheory Grids[/h3]
These still use the DSP latency settings that were previously in place. As above, the built-in drivers are able to support low latency without the need for an external driver. However I have swapped over the selector to a new dropdown which makes it a bit quicker and easier to select the value you're after.
[img]{STEAM_CLAN_IMAGE}/38677940/732cf1d5d0668b5bc8ac6446dc75f2aa98d65a8c.png[/img]
[h3]Velocity Playback[/h3]
Oh, another change along the same lines. MIDI input playback now registered the note press velocity, meaning the playback volume is controlled by how hard you are pressing the notes. This helps better simulate the effect of a real instrument.
[h3]Variable Render Rate[/h3]
Ah, the solution to all of life's problems. This week I've made a fair few optimisations in the name of performance, but the most noticeable is a new variable render rate that means the display doesn't update when it doesn't need to.
This works well because there are many scenarios where you may find the software idling, it is after all reference material so it makes sense to leave it open up on screen. The software now looks out for these moments and greatly reduces the CPU overhead when possible, before seamlessly resuming to business as usual when any sort of input (or any action that results in a visible change on screen) is detected.
[img]{STEAM_CLAN_IMAGE}/38677940/f3632e4cbb8b61adf441ebc2a2dc0e1677667b04.png[/img]
[h3]Run 'Out of Focus'[/h3]
I have also changed the default behaviour of the application so that it pauses running if the window is not in focus. This makes it a lot more practical to leave open in the background.
Originally this was not set because I imagined scenarios where it would be useful to poll for MIDI input when using the application alongside a DAW or other piece of software (e.g. you could be working in Logic on one screen and have AudioTheory running in the background on a second monitor). This may still be the case, so if your requirements do in fact mean that it's desirable for the application to run out of focus, then you can turn this back on in the settings.
That's all for today. Thanks for reading.
Fraser