Sunday, October 15, 2017

Porting DAW Bench Projects to Ableton Live

Vin Curigliano's DAW Bench is the standard toolset for measuring digital audio workstation hardware and software performance. While the current DAW Bench suite includes projects for several different DAWs, Ableton Live isn't one of them- which was a problem for me, since I was planning to investigate the performance differences between Live and Cubase for an upcoming post. Rather than ditch DAW Bench and go to the effort of developing my own test suite from the ground up, I chose to port the DAW Bench Cubase sessions to Ableton Live. What follows is a detailed analysis of the original DAW Bench projects, and my account of the surprises and challenges I encountered when porting those projects to Live.

When I first began this effort I thought I was the first person to do such a thing, but I eventually discovered user on a music forum who did his own attempt at a Live port a few months back. His goal was different from mine, and his projects weren't direct ports (he only replicated DAW Bench's "DSP" tests, and he chose a different set of plugins for his projects from the ones used in the official tests), so I continued with my own effort.

It is October 2017 as I'm writing this, so my observations here are based on the 2017 edition of the DAW Bench DSP and VI projects.

Analyzing the DSP Projects

Each DAW Bench DSP project contains hundreds of instances of a given CPU-intensive effects plugin, simulating a very complex mix. The "score" of a DSP test is the number of plugin instances you can enable without encountering any glitches in the audible audio.
  • There are four audible tracks of pre-recorded audio, comprising the loop that plays while you enable FX plugins, listening for pops and drops. There are no effects plugins on these tracks.
  • There is another "monitor" track which is just a recording of a sine wave. I don't know its purpose, but its track volume is turned all the way down.
  • Next there are 40 more tracks of sine wave recordings, each with eight instances of the plugin under test filling the track's insert slots. Each instance is disabled when you first load the project. Track volume for each of these tracks is also turned down all the way.
  • All tracks are routed to the main stereo outs, but only the first four audio tracks are audible due to their volume settings.
  • There are three different DSP projects, one for each of these free-to-use effects plug-ins: SGA1566 (Shattered Glass Audio), MJUC jr. (Klanghelm), and a special version of ReaXcomp (Cockos) which is actually included with the DSP project download.
The DSP-1566 project on Cubase 9.

Analyzing the VI Projects

While the DSP projects are all about effects plugins, the VI tests only use instances of a virtual instrument plugin: Native Instruments Kontakt 5. The "score" of a VI test is the number of individual Kontakt "voices" you can have playing simultaneously before encountering audio glitches.
  • The project contains one "Multi1Orchband" instance of the Kontakt plugin that contains a 16-part multi (one part per MIDI channel) of different Kontakt instruments that comprise most of the audible content in the project.
  • Next there are ten "Multi2Poly" instances of Kontakt, each with 16 instances of the same instrument: A layered pad patch named "Light Breaks Through." Due to the patch's two sample layers, a single MIDI note played with this patch uses two Kontakt voices/oscillators. As with the sine tracks in the DSP projects, each instrument part in the Multi2Poly multis is turned down all the way. More on this later.
  • The project also contains 16 MIDI tracks, each routed to a different MIDI channel in the Multi1Orchband Kontakt instance.
  • Finally there are ten folders containing 16 MIDI tracks each, each one routed to its respective MIDI channel in one of the ten Multi2Poly instances. The MIDI tracks are simple clips that play a 16-bar sustained 10-note chord. So at play time, a single Multi2Poly instance can have up to 320 voices going at a time (16 parts of a 2-voice patch playing 10 notes each).
  • There are two flavors of VI projects, "CV" and "NCV." In the CV project. many of the instruments in the "Multi1Orchband" multi have convolution reverb enabled as an insert effect, while that effect is bypassed in the NCV project. Both projects use convolution reverb as a send effect on a few channels. Importantly, the Multi2Poly multi is identical between the CV and NCV versions of the project (no reverb effect actively enabled as an insert or a send), so the results between CV and NCV tests are generally not very significant.
  • The VI projects in DAW Bench were initially developed using Kontakt 4, whose factory library had a different layout from the library in Kontakt 5. While the current generation of the DAW Bench projects uses the Kontakt 5 plugin, the multis still use samples from the Kontakt 4 library. I am a licensed owner of Kontakt 4 but I do not currently have that version of the plugin installed anywhere, so I keep a folder containing all the necessary samples on my hard drive for when I need to do tests.
The VI CV project on Cubase 9.

Porting the DSP Projects

  • Session view vs Arrangement view: Cubase is a traditional "piano roll" DAW while Live offers both a piano-roll style Arrangement view and the clip/loop-based Session view. I chose to build my projects in Session view because of the looping nature of the tests (it's just a few measures of repeating audio, after all), and because this view offers better access to the plugin slots for every track (after some UI resizing, at least).
  • Audio tracks: The DAWBench DSP 2017 folder includes an "Audio" folder that contains the pre-recorded audio content (including sampled sine waves) used by these projects, which I easily imported into Live as stems. I grouped the tracks in the same order as the folders used in the Cubase projects.
  • Plugin presets: All instances of the effects plugins in these projects use identical settings, which is important, because some plugin presets can be more CPU-intensive than others. Since plugin settings are embedded in the DAW project, I didn't have preset files I could import into Live, so I noted all of the plugin values used in the Cubase projects and created presets matching those settings for each of the plugins in Live.
  • Plugin inserts: Just like with the Cubase projects, I inserted 8 instances of the desired effects plugin on each of the sine tracks. I enabled display of the insert slots in Session view and resized it so all 8 slots were visible at all times.
  • Levels and routing: All tracks are routed to Live's Master outs, but all of the "Sine" tracks are set at -inf volume.
The DSP-1566 project on Live 9.

Porting the VI Projects

  • MIDI tracks: For the MIDI parts that play into the "Multi1Orchband" instance of Kontakt, I dragged all of the MIDI clips out of Cubase and imported them into Live as MIDI clips. There were 16 MIDI clips for the Orchband multi, and another 16-bar MIDI clip for the polyphonic Sine tracks. This clip simply played a 10-note chord for a full 16 measures. Note: Due to an issue I discovered while performing benchmark testing, I discovered that the original 16-bar Poly tracks could not be used for reliable testing. (I will go into more detail on this in my next post.) Because of this I also created a 1-bar version of the Poly track that plays a sustained chord for the first seven 8ths of the measure. Session view allows me to add both the 1-bar clip and the 16-bar clip to every poly track and switch between them at will. Because of this I also edited separate copies of the original Cubase VI projects to use the same 1-bar loop.
  • Audio tracks: The VI projects include one audible pre-recorded audio track (a 2-bar drum loop to accompany the Orchband parts), and 16 sine wave tracks whose volume is turned to -inf/silent. I presume these additional tracks are to help simulate a real music project that is handling both virtual instruments and audio tracks.
  • EQ: In Cubase, each of the Sine audio tracks had channel EQ enabled, although it wasn't applying any boosts or cuts. This is not a default track setting, however, so I figured it was intentional. Since Live doesn't have built-in track effects, I instantiated an EQ Eight effect on each of the Sine tracks in Live, and only enabled the first four filter activators, setting them to the same frequencies as those in the Cubase projects, to simulate an equivalent processing load.
  • Levels and routing: All audio outputs are routed to the Master outs. The Cubase VI projects use the MIDI volume fader in the inspector to set the volume of each part in the Orchband multi. Live uses envelopes for this sort of thing, so I used the pink noise mixing method to set the MIDI levels of each of the audible MIDI parts. As mentioned before, all Sine audio tracks were set to -inf, and most importantly, all parts in the Multi2Poly instances of Kontakt were also turned down to -inf- which proved to be a problem during testing.
  • Kontakt multis:
    • I didn't want to have to go through the laborious process of browsing for the correct samples for each of the VI projects when loading them into Live, so in Cubase, I opened both the CV and NCV versions of the DAW Bench projects and saved the Kontakt multis as "monoliths," which include samples. I saved only one copy of the Multi2Poly multi (since it is identical in both flavors of the DAW Bench VI projects), and separate CV/NCV versions of the Multi1Orchband multi. To ensure that my choice of monolith vs. traditional NKI did not adversely affect my tests, I did do a project built that used the traditional sample loading method. I found that RAM consumption was identical whether you used a monolith or not (Kontakt appears to load all samples for all parts when it is able to do so).
    • Upon my first playback of my imported MIDI clips and multis, I discovered something very strange. One of the parts in the audible potion of the project was clearly out of tune, and not playing in the same way that it sounded when playing under Cubase. It took a while to debug, but I determined that the problem was ocurring in part 13 of the Orchband multi. It was a patch named "Mini Lead 2." This Kontakt patch is explicitly designed to be monophonic (to only play one note at a time). Strangely, the original Cubase DAW Bench projects play chords into this track and they are audible as chords. I don't know why this works under Cubase (because it's not supposed to). But basically, the patch's monophonic design was affecting how it interpreted the chords being sent to it under Live, resulting in strange and unexpected behavior. In order to make the project sound the same in Live as it does in Cubase, I had to bypass the Unisono behavior on Mini Lead 2.

      Here's a demonstration of the Unisono issue with the Mini Lead 2 part. It's a 16-bar track divided into four 4-bar sections: 1) The track as it's supposed to sound, 2) The Mini Lead 2 part correctly playing, soloed, 3) The track when the Mini Lead 2 part is not working correctly, and 4) The out-of-tune Mini Lead 2 part, soloed.

The VI CV project on Live 9.

The results

See my upcoming post about the DAW Bench results when I compared Live 9 to Cubase 9. I may also publish these project files at some point so others can do their own tests in Live.

Sunday, October 1, 2017

SOLUTION: Disabling Tap-to-Click on Alienware 13 Touchpad - Windows 10 Update

Back in early 2015 I bought my first Alienware 13 gaming laptop and struggled to figure out how to disable the tap-to-click feature of that computer's touchpad under Windows 8. Well that was a different Alienware 13 (it was the "R1" model) and a different Windows. I now own an Alienware 13 R2, and this weekend I installed a fresh copy of Windows 10 on it- only to discover that I was no longer able to disable tapping on this computer under Windows 10. So I was back to square one...

The first time I logged into Windows 10 on my laptop, I opened the Start menu and searched for Touchpad settings, expecting to see the same set of options available under Windows 8.1. Sadly, I was met with this confusing and anemic list of changeable settings:

Literally the only option I was able to configure was Touchpad sensitivity. Even though there was text saying, "Taps: Use taps to click, right-click, and select" there was no way to disable them. Clicking Additional settings just brought up the generic Windows Mouse Properties dialog, with no options at all for the touchpad.

I went to the Dell support page for the Alienware 13 R2 and located the Synaptics Touchpad Driver under Mouse, Keyboard & Input Devices. After installing this driver and rebooting, I checked the Windows 10 touchpad settings again and still only saw the single option to adjust Touchpad sensitivity. Nothing for taps. However, this time when I clicked Additional settings, something new appeared:

While none of the tabs in this dialog had any useful settings, clicking the "Click to change Touchpad settings" link on the Touchpad tab brought me here:

Now, on this Pointing Devices screen if you have the touchpad icon selected at the top and Sensitivity selected on the left, you should see a "Tapping >" link on the right side of the dialog. When you click that link, you then see this page:

Finally, you can uncheck the box next to Tap to click and then click Save. I did this and restarted Windows just to make sure the setting "stuck." And it did!

If these steps didn't work for you, or if you're having trouble finding the correct settings on Windows 8.1, please check out my original post about disabling tapping on Alienware laptops.

Saturday, September 30, 2017

How to Install Windows 10 on the Dell Venue 8 Pro Tablet

I stopped using my Dell Venue 8 Pro a couple years ago because Windows 8.1 just didn't deliver as reliable and satisfying a tablet experience as iOS did on my iPads. I recently decided to install Windows 10 on my Venue 8 to see if the new operating system would make the Venue a better tablet- but I was surprised by how complicated this process turned out to be. It took a lot of research and experimentation to upgrade my tablet, so I decided to compile all my notes and observations in one place to save other Venue 8 owners the trouble.

Pros and Cons of the Venue 8 Pro

I originally got my tablet, the Venue 5830 Pro model, at a huge discount when buying a laptop from Dell a few years ago. I used the thing almost daily for at least a full year before relegating it to a bookshelf when I won an iPad mini at a company picnic.

What I liked about the Venue 8 Pro:

  • It's got a bright, good-looking screen.
  • It's got a sturdy, solid build.
  • I like the simple, elegant vinyl folio case I bought with it.

What I didn't like about it:

  • The "Windows Store" version of Internet Explorer 11 that came with Windows 8.1 was really slow and unbearable to use. At the time, it was also the only browser available on the Windows Store, so I had to use the tablet in Desktop mode in order to run more responsive browsers like Chrome and Firefox.
  • At the time there were also no Reddit Enhancement Suite versions available for Windows Store-compatible browsers, and I find Reddit basically unusable without it, so that was another thing keeping me in Desktop mode on my tablet. (There is now a version available for Microsoft Edge.)
  • Windows 8.1 desktop mode sucks on a tablet (no mouse, tiny text, links hard to click, etc).
  • Every few weeks the tablet would refuse to wake from sleep mode and I'd have to go through an elaborate set of steps to force the thing to do a hard shutdown and power-on.

Before You Start

My Venue 8 only has 32GB of storage (and of that, only around 25GB is actually available to Windows with the default partitioning scheme), which means that there isn't enough room to do an OS upgrade; only a fresh install on a newly-formatted partition. In order to be sure you don't lose anything before doing a fresh OS install, make sure to do the following:
  • Back up your data. If you keep any unique files on your tablet, be sure to store copies of them. If your Windows 8.1 user account on the tablet is linked to a Microsoft account, the simplest way to back up those files would be to place them all into OneDrive folders, so they'll be waiting for you once you log into Windows 10 with your Microsoft account.
  • Back up your product keys. Even though the Windows 10 free upgrade offer officially ended in 2016, Microsoft quietly still lets licensed Windows 7 and Windows 8 owners upgrade for free with product keys for eligible editions. I used the free program Belarc Advisor to examine my tablet and saved the resulting profile as an HTML profile to my OneDrive account. The Software Licenses section of the profile included the product key for my OEM version of Windows 8.1, which is what I used to activate my copy of Windows 10. Note: While I think my tablet came with a license for Microsoft Office 2013 (version 15.0), I didn't see a product key for it listed in the Belarc report, and I don't know if this is because I never used/activated Office on the tablet or if Belarc Adviser doesn't pick it up. I do not use Office on the tablet anyway, though, so I didn't really care.
  • Charge your tablet. This is really important- you won't be able to power your Venue 8 while installing Windows 10, because you'll need to use your USB port for other things during that time. You do not want to run out of battery while installing an operating system, so make sure you're fully charged before proceeding.

Required Hardware

Once Windows 10 is fully installed and updated, you don't need any peripherals to use the tablet, but for several reasons, you will need several devices in order to install the operating system and some drivers.
  • A powered USB hub with at least three ports for connecting a mouse, keyboard, and thumb drive to your tablet. It must be a powered hub since the tablet's USB port doesn't provide enough juice for multiple devices. I can vouch for this D-Link 7-port hub but any solid powered hub should do.
  • A USB Type A female to USB Micro male adapter for connecting your USB hub to the tablet. I used a StarTech 5-inch Micro USB to USB A On-the-Go Host Cable Adapter.
  • A USB keyboard, since there will be no soft keyboard support during the Windows 10 install process.
  • A USB mouse, since there will be no touch screen support until after Windows 10 is installed and updated.
  • A USB thumb drive big enough to serve as a Windows 10 boot drive, and also for copying some necessary driver files to the tablet before it has access to the internet. The drive must be at least 5GB in size, and any data currently on the drive will be wiped out because the process of making it a bootable Windows installer involves formatting it. I get these 5-packs of Topsell 16GB USB 2.0 Flash Drives, and use them for this sort of thing all the time.
  • A separate internet-connected computer for downloading drivers and Windows installer files. 

Updating the BIOS

In order to fully support Windows 10, you should make sure you're running the most recent BIOS version for your Dell Venue model. In my case, I still had the BIOS version that my tablet shipped with (A04), but the most recent version available for my model (the 5830) was A14. I downloaded the Dell Venue 8 Pro 5830 System BIOS file from this Dell support page.

Installation is painless; just have your tablet plugged in, launch the downloaded file (in my case that was 5830A14.exe), and allow the tablet to reboot if/when prompted.

Preparing the Bootable Windows 10 Installer

There are a couple of easy ways to prepare your USB thumb drive for installing Windows 10. Regardless of which method you choose, keep these things in mind:
  1. The Venue 8 Pro can only run 32-bit (x86) versions of Windows, so you need to be careful which version you download from Microsoft.
  2. The Venue 8 Pro can only detect UEFI-capable boot devices. (Both of the following methods should account for this if you follow the instructions closely.)

Using the Windows 10 Download Tool

If you don't already have an ISO image for a Windows 10 setup disc, use Microsoft's Windows 10 Download tool to get the necessary files and prepare your USB drive. Go to the Download Windows 10 page and click the "Using the tool to create installation media" link to see detailed instructions. The quick steps are here:
  1. Plug in the USB thumb drive you plan to use as your Windows 10 installer.
  2. Click the Download tool now button to download the file MediaCreationTool.exe.
  3. Locate the downloaded program and launch it.
  4. On the first screen, select Create installation media and click Next.
  5. On the second screen, uncheck the Use the recommended options for this PC box and make sure to pick 32-bit (x86) for Architecture, and then click Next.
  6. On the next screen, select USB flash drive and click Next.
  7. On the next screen, select your desired target thumb drive from the list of devices and then click Next. The tool will download the necessary files and prepare your thumb drive.
  8. The Windows 10 Download Tool creates those infamous $WINDOWS.~BT and $Windows.~WS folders on the computer where you run it, and after your boot media is created there will still be hundreds of megabytes of content left in them. You can use the Delete Windows 10 Download Folders function of my free program, GWX Control Panel, to delete those folders when you're all done.

Using Rufus

As a Microsoft Developer Network subscriber I have access to ISO images of Windows setup discs, so I downloaded the x86/32-bit version of the latest "Windows 10 (Multiple Editions)" DVD image. Here's how to create a bootable USB drive from a downloaded Windows 10 ISO image:
  1. On the computer where you downloaded the ISO file, plug in the USB thumb drive that you intend to use as your Windows 10 boot drive.
  2. Download and run the latest version of the free tool Rufus.
  3. On the row that says "Create a bootable disc using," click the button that has a picture of a disc on it and browse to/select your downloaded ISO file.
  4. Select your target USB thumb drive from the Device list.
  5. For Partition scheme and target system type, select GPT partition scheme for UEFI.
  6. For File system, select FAT32.
  7. Make sure Quick format, Create a bootable disk using, and Create extended label and icon files are all checked, and "ISO image" is selected as the source format.
  8. Click Start to prepare your thumb drive. This process can take several minutes.

Booting the Venue Pro from the USB Thumb Drive (hardware and software setup)

Since the Venue 8 Pro comes with a UEFI Secure Boot configuration there is no "Press F12 for boot options" prompt when you power up the device. Instead you have two different ways to boot from a properly-formatted USB flash drive:

Booting to flash drive from Windows 8.1

  1. While logged in to Windows 8.1, connect your mouse, keyboard, and flash drive to your USB hub, and then connect the powered hub to your fully-charged Dell Venue Pro.
  2. Move your mouse to the upper-right corner of the screen to display the Windows 8 charms menu.
  3. Click the Settings gear at the bottom of the charms menu.
  4. Click Change PC Settings.
  5. Click Update and Recovery.
  6. Click Recovery, and then click Restart now under Advanced Startup. The tablet will boot into advanced startup mode.
  7. On the Choose an option screen, click Use a device.
  8. Your USB Flash drive will probably be labeled: "UEFI:Removable Device." If you see such an option, select it to boot from that device. If you do not see an option that looks like it might be your thumb drive, it might not be formatted properly.

Booting to flash drive from power-on

If your tablet's already powered off, there's no need to launch Windows 8 just to reboot it into advanced mode. These instructions are correct as of the latest available BIOS for my Venue Pro model (the 5830). I have seen a lot of alleged instructions posted around the internet for doing this and none of them worked for me. This is the only boot-to-USB-from-power-on procedure that I've managed to get working.
  1. With the tablet powered off, connect your mouse, keyboard, and flash drive to your USB hub, and then connect the powered hub to your fully-charged Dell Venue Pro.
  2. This part is tricky. You need to hold down the power button just long enough for the device to begin powering on, but let go before the Dell logo appears on-screen. On my tablet 3-and-a-half seconds seems to be the perfect amount of time. You might see lights on your connected keyboard/mouse flash right when you need to let go.
  3. While the screen is still black (and before the white Dell logo appears), release the power button and then hold down the tablet's Volume Up button until the Dell logo appears on-screen.

    If you see the spinning circle of dots that indicates Windows is loading, you missed your window. You might as well just follow the Windows method mentioned above if that happens.
  4. Once you see the white Dell logo for a couple of seconds, release the Volume Up button. The UEFI boot menu should appear:
  5. If your USB drive is properly formatted with a 32-bit version of the Windows 10 installer as described in the above sections about Rufus and the Windows 10 Download Tool, you should see an option for your thumb drive on this screen (mine is selected in the picture above). If you only see Windows Boot Manager, it means your tablet doesn't recognize your thumb drive. Use the Volume Up button to navigate to your thumb drive's entry on this screen and press Volume Down to boot from the selected device.
  6. After a short while, the Windows 10 Setup wizard should begin.

Installing Windows 10

After using one of the above methods for booting to your USB flash drive, you should now see the Windows 10 setup wizard:

Some quick notes to guide you during setup:
  • These steps assume you have already upgraded your tablet to the latest available BIOS.
  • During Windows installation, the tablet's accelerometer isn't available, so you can only work in portrait/vertical mode.
  • The touch screen doesn't work during Windows setup, so you'll be glad to have your USB mouse and keyboard here.
  • When you get to the "Which type of installation do you want?" screen, pick the Custom: Install Windows only option.
  • Choosing how to partition your tablet: On the Where do you want to install Windows screen you will probably find a bunch of partitions listed. Most of these are Dell-created partitions for backup/restore purposes and to store Dell's diagnostic tools. These additional partitions take up 6 gigabytes of the tablet's storage (and my model only has 32GB total). If you would like to keep the existing partition scheme, then you'll want to choose the largest "Primary" partition available (the one selected in my screenshot). The next bullet item in this section has some details on using that partition. If you don't think you'll need those other partitions and would like to reclaim that extra space, I have read that some folks have had success simply using the Delete button here to remove all of the pre-existing partitions and then letting Windows 10 partition the storage with its default settings. I have not tried this personally, so I don't know what you lose by going this route. (If anyone out there tries it, please let me know how it works out!)
  • If, like me, you choose to keep Dell's existing partition scheme, you might notice something like the below screenshot, where the Format and New commands are grayed out and there's a warning saying "Windows can't be installed on drive 0 partition 5." This is because the Dell Windows 10 configuration uses BitLocker drive encryption to protect your files. In order to use this space to install Windows 10, you need to select the partition, and then click Delete. After you delete the partition, it will appear as unpartitioned space, which you can then select as your install partition.
  • Since the Windows 10 installer doesn't include drivers for the Venue Pro's WiFi, you won't be able to connect to your network or create an online-connected user account during Windows Setup. After setup is complete and you install your WiFi drivers, you'll be able to connect your local user account to your Microsoft account for full Windows 10 functionality.
  • When/if prompted for a product key, use the key that you archived with Belarc Adviser (or other methods) in the "Before you start" section of this guide. If you choose the "I don't have a product key" option, the setup wizard will let you proceed, but it will ask you which edition of Windows you wish to install. You must be careful to choose an edition that is a valid upgrade path from your old Windows 8 install. The "Using the tool to create installation media" section of the Download Windows 10 page lists which Windows 7/8 versions map to specific Windows 10 editions.
  • Follow the rest of the prompts to allow Windows 10 setup to complete.

Installing drivers and finalizing setup

Once the initial Windows 10 setup procedure is complete, there are a few important things you'll have to do get things working normally, because right now you'll probably notice that:
  • There is no audio.
  • There is no WiFi or Bluetooth connectivity.
  • The accelerometers aren't working, so you have to work in portrait mode.
  • The touchscreen doesn't work.
  • You can only create/use "local" user accounts.

Install required drivers

First off, on an internet-connected computer, go to the Dell drivers page for the Venue 8 Pro and download the following drivers to a USB flash drive. (I created a "downloads" folder on my Windows 10 setup drive for this.)
  • Network > Dell Wireless 1538 WiFi/Bluetooth Driver
  • Chipset > Intel Atom Z3000 Series Driver
Connect your flash drive to your powered USB hub and install both drivers. Restart Windows when and if prompted.

After both drivers are installed, you should find that you can now do the following:
  • Pair Bluetooth devices.
  • Connect to WiFi networks.
  • Rotate the device to switch between portrait and landscape modes.
  • Use the touch screen.

Update the audio driver

The Z3000 Series chipset drivers actually include the correct driver for your on-board audio, but Windows seems to pick a different sound driver during Windows setup that doesn't work. Here's how to get the audio working (assuming you've already installed the chipset driver). You will want to have a mouse connected for this step.
  1. In Windows 10, open up the Device Manager control panel and expand the Sound, video and game controllers node.
  2. Right-click Intel SST Audio Device (WDM) and then click Update driver.
  3. Use the "Search automatically for updated driver software" option and Windows should locate your newly-installed driver.
  4. Repeat these steps for the Realtek I2S Audio Codec device. In my case, Windows reported that I already had the correct driver.
  5. Restart Windows. Once you log in you should be able to play and hear audio.

Connect to your Microsoft account

Since you probably had to create a local account during Windows setup, now that you have network connectivity, you should connect to your Microsoft account so that you can use OneDrive and the Windows Store.

After logging into Windows 10, bring up the account settings page by pressing the Windows key, clicking your user portrait, and then clicking Change account settings. (You can also open up the search box and type "Manage your account.")

On your account settings page there should be a link that says "Connect to a Microsoft account" or "Sign in with Microsoft." Click this link and enter your Microsoft credentials. From this point on you can log in with your Microsoft credentials.

Where did my desktop and taskbar icons go?

Once my tablet was connected to the internet it began downloading Windows updates, and I let it restart a few times to let all the updates install. At one point, though, when I logged into the tablet, something was very different!

Instead of being greeted with my desktop upon logging in:

I instead logged into what was essentially a full-screen Start menu:

There was no Desktop tile, and when I launched any apps their icons wouldn't appear in the taskbar, so I could only switch between them using hotkeys. What the heck happened?

Well it seems that after one of the Windows updates I had downloaded, Windows 10 realized my device was actually a tablet and "helpfully" forced it into "tablet mode" for me. This is a mode that's meant to make desktop windows feel more like a mobile/tablet operating system. It's fine for what it is, but there were still some things I wanted to do in desktop mode before I felt ready using the Venue Pro as a tablet again. Here's how to switch between modes:

  1. If you're in tablet mode, click the Settings gear on the left side of the screen. If you're in desktop mode, press the Windows key to bring up the Start menu, and search for "Tablet mode settings."
  2. On the Tablet mode screen, change the "When I sign in" setting to force desktop or tablet mode, or to let Windows decide which is best for your device.
  3. If you use Tablet mode, you can also decide whether or not to show taskbar buttons by changing the "Hide app icons on the taskbar in tablet mode" option.

Tuesday, September 5, 2017

Comparing DAW Performance of Recent Cubase Versions on Windows

I recently had to increase the buffer size setting on my audio interface to eliminate audio glitches in a music project on Cubase Pro 9. Since I almost never have to adjust my interface settings while producing a track, I wondered if perhaps Cubase 9 wasn't performing as well as previous Cubase versions I'd worked with. I searched around for some performance information, but I couldn't find any detailed, up-to-date comparisons of recent Cubase versions- so I decided to do my own.

Cubase versions under test

I decided to test the most recent available 64-bit versions of the last four major Cubase releases:
  • Cubase 6.5 - Originally released February 2012, the latest version is 6.5.5 from June 24, 2013.
  • Cubase 7.5 - Originally released December 2013, the latest version is 7.5.40 from Jan 19, 2015.
  • Cubase Pro 8.5 - Originally released December 2015, the latest version is 8.5.30 from Feb 22, 2017.
  • Cubase Pro 9.0 - Originally released December 2016, the latest version is 9.0.30 from July 20, 2017.
In addition to comparing basic performance of individual Cubase releases, I also wanted to examine the effects of ASIO-Guard, a feature Steinberg introduced with Cubase 7. By using smart management of CPU time and audio buffers, ASIO-Guard claims to increase the amount of plugins you can run without encountering audio glitches. Steinberg claims to have made improvements to ASIO-Guard over time, so I wanted to see how the feature had changed.

DAW Bench and Test Preparation

I installed each version side-by-side on my PC, patched them with the latest updates, and then downloaded the 2017 versions of the DAW Bench test projects. In case you're not familiar with DAW Bench, it's a collection of DAW projects assembled by audio professional Vin Curigliano to assess a digital audio workstation's ability to reliably produce audio while operating under heavy DSP workloads. When a computer's DSP resources are exhausted, audio suffers, with pops, drop-outs, and strange digital artifacts. Many factors contribute to a DAW system's ability to perform well: CPU, chipsets, drivers, operating system, DAW software, and audio interfaces all play a role.

The current iteration of DAW Bench includes five different Cubase test projects, broken into two categories.

  • The DSP projects contain some basic audio tracks with literally hundreds of instances of a specific effect loaded up on various tracks. These push your computer's computational digital signal processing capabilities to its limits. The "score" for a DSP test is the number of plugin instances that can be activated without glitching the audio.
  • The VI projects use instances of Native Instruments Kontakt to test your computer's virtual instrument oscillation/voice generation abilities by playing from hundreds to thousands of simultaneous notes of polyphony. The "score" for a VI test is the number of musical notes that can play simultaneously without glitching the audio.

Each of the DSP projects uses a different freely-available effects plugin:
  • DSP-1566 uses Shattered Glass Audio's SGA1566, which is a CPU-intensive emulation of a vintage tube amplifier.
  • DSP-MJUC uses Klanghelm's MJUC jr., a "variable-mu" compressor plugin.
  • DSP-REAX uses a specially-compiled version of Cockos ReaXcomp, a multi-band compressor. (Note: The correct version is included in the DAW Bench download, don't use the one from the Reaper site.)
There are also two flavors of the VI tests: The "VI-CV" tests use Kontakt's internal convolution reverb effect (using more DSP power), while the "VI-NCV" tests have no reverb enabled.

I performed the tests on my primary DAW PC. The full specs of the system are published elsewhere, but here's the pertinent information:
  • Processor: Intel i7 5930K @ 3.50GHz (6 physical cores)
  • RAM: 32GB
  • Video: NVIDIA GeForce GTX 960
  • Operating System: Windows 7 Professional SP-1, 64-bit
  • Audio Interface: RME FireFace UFX, in FireWire mode
  • Interface Settings: 44.1kHz, 256 samples.
  • Windows Optimization: The only Windows performance tweak I made was to select the High Performance power scheme in the Power Options control panel and to disable some unneeded startup processes and services. I have not adjusted any of the more arcane Windows settings such as the MMCSS options.
  • Cubase Optimization: In all of my tests I use the default Cubase performance settings, with the obvious exception of disabling/enabling ASIO-Guard for a specific round of tests. So this means I'm leaving Audio Priority to Normal, Activate Multi Processing is checked, Activate Steinberg Audio Power Scheme is unchecked (I'm using the built-in Windows High Performance scheme), and on versions of Cubase that offer various "ASIO-Guard Level" settings, I'm using the normal level.

DSP Test Results

The results of the DSP tests are below. For versions of Cubase with the ASIO-Guard features, separate scores are shown with the feature disabled ("no AG") or enabled ("AG"). Cubase 6.5 is the only tested version which lacks that feature.

DSP Test Raw Data (44.1kHz, 256 samples)
DSP Test Chart
The results weren't very dramatic, however they did show modest gains for the ASIO-Guard feature- particularly for versions 7.5 and 9.0. Cubase 8.5 with ASIO-Guard enabled scored the best for 2 out of 3 tests while Cubase 9.0 with ASIO-Guard disabled scored lowest in all three tests.

VI Test Results

The virtual instrument tests were a little more interesting. In the tests below, "VI-CV" are with Kontakt's convolution reverb effect enabled, while reverb is disabled in the "VI-NCV" tests.

VI Test Raw Data (44.1kHz, 256 samples)

VI Test chart

A few things stand out in these tests:
  • First, ASIO-Guard made dramatic improvements in both Cubase 8.5 and Cubase 9.0, while their ASIO-Guard gains weren't quite as impressive in the DSP tests. The feature shows a clear and demonstrable benefit, at least for some plugin duties.
  • The improvement ASIO-Guard made on Cubase 7.5 was much less impressive, and I am guessing it's because the Cubase 7.x implementation of ASIO-Guard did not fully support multi-timbral plugins such as Kontakt.
  • It was also interesting that while Cubase 9.0-with-ASIO-Guard gained the second-highest score in the test, without ASIO-Guard, Cubase 9.0 scored the lowest on these tests. Cubase 8.5 scored significantly higher, in both the ASIO-Guard enabled and disabled tests.

Final scores

I wanted to be able to rank individual Cubase versions in terms of performance, but I didn't want the VI tests to skew the numbers (since the VI scores reach up to the thousands while the DSP scores are all down in the low hundreds). In order to give each test equal weight, I divided the VI test scores by 10, and then I summed all 5 test scores for each DAW and ASIO-Guard setting.

Final Scores (raw)
Final Scores (chart)
With these adjusted performance scores, it appears that Cubase 8.5 with ASIO-Guard is the best-performing version of Cubase in recent years, although Cubase 9.0 still performs very well in second place so long as ASIO-Guard is enabled. However with ASIO-Guard disabled, Cubase 9.0 is the worst-performing version of Cubase of the versions tested.


  • Cubase 9 performs slightly worse than Cubase 8.5, given the same content and settings on the same system. Without ASIO-Guard, Cubase 9 performed about 4 percent worse than 8.5. With ASIO-Guard there was only around a 2 percent difference.
  • Core Cubase performance (without ASIO-Guard) has not changed significantly over time. With Cubase 7.5 and 8.5 performing around 1 percent better than Cubase 6.5 and Cubase 9.0 performing nearly 3% worse, Cubase has delivered more or less consistent performance across major releases.
  • ASIO-Guard can make a big difference, but it depends on the specific plugins and workload. Both Cubase 8.x and 9.x saw huge gains in the VI tests with ASIO-Guard enabled, but the gains were less impressive in the DSP tests.
  • Cubase makes very good use of multi-core processors and hyper-threading (*). Not all Windows DAWs handle modern CPUs the same, but Cubase has, for some time, been quite good at making use of both physical and logical CPU resources to deliver reliable audio under heavy DSP loads. Here's a screenshot of Windows Task Manager while Cubase is performing one of the DSP tests covered earlier. Every logical core of my i7 5930K is working at the maximum allowed by the Windows MMCSS settings (which reserve 20% of CPU power for background tasks). I plan to explore this stuff a little more in future posts.
(*) As of the time of this writing there is a known issue with Cubase on Windows 10 where Windows imposes a thread limit that can result in audio instability on CPUs with more than 14 logical cores (or more than 7 physical cores). For now, Steinberg recommends using Windows 8.1 or earlier for top Cubase performance on CPUs that exceed 14 logical cores, or using workarounds on Windows 10 which are documented at the above link to at least avoid the audio glitches resulting from this limitation.

Monday, June 12, 2017

How To Build Your Own NES Classic Edition That Plays Almost 500 Times As Many Games

In 2016 Nintendo released the NES Classic Edition, an adorable miniature replica of the Nintendo Entertainment System that connects to modern television sets and plays 30 iconic NES games. With an asking price of a mere $60 USD, the thing became a must-have among classic gaming enthusiasts- but Nintendo grossly underestimated demand. Any units that made it to store shelves sold out instantly (usually to scalpers who resold the consoles online at three times the cost), making Nintendo's most popular console in years their hardest to obtain at anything approaching a reasonable price. Nintendo then applied gasoline to the fire by discontinuing the NES Classic Edition altogether in early 2017.

Somewhat heartbroken by the reality that I would never get my hands on one of Nintendo's mini consoles (since I refuse to give scalpers my money), I started looking for alternatives- and I quickly discovered that for not much more money than the original retail price of the NES Classic Edition I could build my own mini NES that played not 30 but 791 NES games- and could also play over 14000 additional games from 37 platforms other than the original Nintendo Entertainment System. So I built one, and now I'm gonna show you how to build your own.


Our ability to make super-cheap purpose-built classic gaming devices is thanks to the Raspberry Pi Foundation, a non-profit organization who developed a computing platform with the goal of making it inexpensive and easy to learn how to make digital products. The Raspberry Pi is a single-board computer that runs a (usually Linux-based) custom operating system, often with a specific purpose. In our case, we'll be using a gaming environment called RetroPie that runs on top of a special Linux build created for the Raspberry Pi.

If you're not a "computer person" or a Linux expert- don't worry. The following instructions will walk you through every step of the process. But for those of you who are interested, the system we are building is based upon the following technologies:
  • The Raspberry Pi 3 is the computer itself. It's a single board that includes a processor, RAM, audio/video support, and WiFi/Ethernet networking.
    The Raspberry Pi 3.
  • Raspbian is a Linux-based operating system that supports the Raspberry Pi hardware.
  • RetroPie is a collection of hardware emulators that runs on top of the Raspbian operating system.
  • EmulationStation is an emulator "front-end" that RetroPie uses to provide an attractive, unified interface for browsing and launching games that you can navigate entirely with your game controllers.
  • We will be using a pre-built RetroPie image simply called "Nacho's Image" that includes all of the above software in addition to the "ROMs" for literally thousands of classic video games.


In order to follow these instructions, you will need the following items:
  • A television set with an available HDMI port.
  • An HDMI cable for connecting the Pi to your TV (the Raspberry Pi has a standard full-sized HDMI connector).
  • A computer running Windows, Linux, or Mac OS that can read microSD cards or SD cards (most microSD cards ship with a full-sized adapter). If your computer doesn't have any card reading ports, a USB 3 card reader or USB 2 card reader will do the trick.
  • A very small Phillips-head screwdriver.
  • At least 70GB free space on your computer for downloading images and tools.


Depending on which controllers you pick and whether or not you decide to include a wireless keyboard, the cost of building your own fully-functioning supercharged mini NES runs anywhere from $110 to $194 USD- which is less than most people are paying for the 30-game NES Classic Edition on eBay right now. Here are all the individual components you need:
  • CanaKit Raspberry Pi 3 with 2.5A Micro USB Power Supply. ($43 USD). This kit includes the Raspberry Pi 3 board, two heat sinks, and a power supply. (The power supply included in this kit is for USA-style AC/DC household electrical outlets. If you are outside the United States, you might need a kit with a different power supply.)
  • Buffalo iBuffalo Classic USB Gamepad ($19 USD per controller). These are nice, weighty USB gamepads that work for most of the games included in the RetroPie image. I have two of these, but for a less expensive option there is also the Classic SNES USB Controller 2-pack, which is a $17 USD for two controllers. These aren't as heavy feeling as the iBuffalo controllers, but they do work. In order to control games that work better with analog sticks, the system supports Xbox controllers and many others, as well.
  • SanDisk Ultra 64GB microSDXC UHS-I Card with Adapter ($23 USD). The Raspberry Pi doesn't have any built-in storage. Instead it reads its operating system and files from connected microSD cards or USB drives. Having a fast microSD card is important because it affects the speed of your Raspberry Pi. A 64GB card is required for the specific RetroPie image I discuss later in this post, but you can get larger or smaller cards if you intend to use different images.
  • Old Skool NES case for Raspberry Pi 3 ($20 USD). There are a number of cases you can get for your Raspberry Pi (including the "official" Pi case), but this one is the closest in appearance to the original NES.
  • LoveRPi MicroUSB Push On Off Power Switch Cable for Raspberry Pi ($7 USD). The Raspberry Pi doesn't have a power button of its own. This cable sits between your power adapter and the Raspberry Pi, giving you a simple on/off toggle switch, which is much nicer than having to plug the Pi in every time you feel like using it.
  • OPTIONAL: Logitech K830 Illuminated Living-Room Wireless Touchpad Keyboard for Internet-Connected TVs ($63 USD). While not required for following these setup instructions or for playing most of the console and arcade games in the RetroPie image, some of the computer-based emulators do require keyboard and/or mouse input: ScummVM, Infocom, MS-DOS, for example. You also need at least a keyboard if you want to do any in-depth configuration of the underlying Raspbian operating system. This keyboard is great because it's wireless, has great rechargeable battery life, and has backlit keys. Logitech also makes a much less expensive keyboard (the K400) that is similar but uses AA batteries instead of built-in recharging, and lacks the backlit keys. Honestly any USB keyboard/mouse will do, but I really like the Logitech combo solutions, mainly because they're wireless and only take up one USB port.


I'm using a RetroPie image called "Nacho's Image" that comes pre-configured with nearly 15,000 games for 38 different consoles and platforms. The image requires a microSD card that's at least 64GB in size. Here's a quick rundown of the image's contents:
  • Amstrad CPC: 486 titles.
  • Atari 2600: 647 titles.
  • Atari 5200: 71 titles.
  • Atari 7800: 63 titles.
  • Atari Lynx: 77 titles.
  • Bandai WonderSwan: 112 titles.
  • Bandai WonderSwan Color: 95 titles.
  • Classic Arcade Games: 2158 titles.
  • ColecoVision: 140 titles.
  • Commodore 64: 2231 titles.
  • Commodore Amiga: 2 titles.
  • DAPHNE (Laserdisc Arcade Emulator): 16 titles.
  • Infocom (text adventure emulator): 79 titles.
  • Mattel Intellivision: 212 titles.
  • MS-DOS: 1168 titles.
  • MSX Computers: 649 titles.
  • NEC PC Engine (TurboGrafx-16): 303 titles.
  • Nintendo 64: 303 titles.
  • Nintendo DS: 100 titles.
  • Nintendo Entertainment System (NES): 791 titles.
  • Nintendo Game & Watch: 54 titles.
  • Nintendo Game Boy: 490 titles.
  • Nintendo Game Boy Advance: 1129 titles.
  • Nintendo Game Boy Color: 528 titles.
  • Nintendo Virtual Boy: 26 titles.
  • Philips Videopac (Magnavox Odyssey): 52 titles.
  • Scumm VM (adventure game emulator): 94 titles.
  • Sega 32X: 33 titles.
  • Sega Dreamcast: 3 titles.
  • Sega Game Gear: 249 titles.
  • Sega Master System: 267 titles.
  • Sega Mega Drive: 819 titles.
  • Sega SG-1000: 68 titles.
  • Sinclair ZX Spectrum (Timex): 382 titles.
  • SNK Neo Geo: 155 titles.
  • SNK Neo Geo Pocket: 49 titles.
  • Super Nintendo Entertainment System (SNES): 786 titles.
  • Vectrex (GCE/Milton Bradley): 21 titles.
Is this stuff legal?
There is no single clear answer on whether it's strictly legal to share and/or use the classic game ROMs included in this image or available elsewhere on the internet. In the United States some of these game ROMs are covered by Fair Use doctrine in the sense that if you own the actual physical cartridge or arcade cabinet you're allowed to keep and use back-ups of those ROMs as you please. But at the end of the day, many of the companies that made these games don't exist anymore, and there is no way to legally purchase the majority of these games in the USA or anywhere else. Most of these titles are essentially abandonware. You can easily remove individual games you're not sure about from the image as needed.


In order to download the Raspberry Pi image, you need a BitTorrent client that supports magnet links, and you then need a way to write the downloaded image to your microSD card. There are dozens of free torrent clients and image burning tools for all major operating systems. I will recommend some specific tools I've used on Windows and Ubuntu Linux.

Recommended Programs
All of the utilities I use for these steps are free, and two of them are available for Windows, Mac OS, and Linux. My instructions assume you're using these tools.
  • Deluge is a cross-platform BitTorrent client.
  • Etcher is a cross-platform tool that burns image files to SD cards.
  • 7-zip is the tool I use to extract 7z, XZ, BZIP2, GZIP, TAR and ZIP files on Windows. There is a Linux version called p7zip-full. (Note: 7-zip isn't required for the specific RetroPie image I'm using for these instructions, but some other images available on the internet need to be extracted before you can burn them to an SD card.)
Instructions (for Windows, Linux, and Mac OS)
  1. Install the latest version of Deluge and Etcher if you haven't already. (If you are running Ubuntu Linux, follow the "Debian and Ubuntu based Package Repository" instructions on this page to install Etcher. You can install Deluge from the command line like this: "sudo apt-get update; sudo apt-get install deluge")
  2. Select the following magnet link with your mouse and copy it to your clipboard by pressing CTRL+C:


    Note: The above link may appear on multiple lines in your browser, but you must copy the whole thing (so select both lines of text if it appears that way on your screen).
  3. Launch Deluge. (Windows users: If you are prompted with a Windows Security Alert message about the Windows Firewall, make sure to that both the Private networks and Public networks boxes are checked, and then click Allow access.)
  4. Click the blue + icon and then click the URL button in the Add Torrents screen. If the magnet link is already in your clipboard it should pre-populate in the "URL" box. If there is no link listed next to URL, just press CTRL+V to paste the link there, and then click OK.

  5. Click Add to close the Add Torrents dialog. The program should now indicate that you're downloading a file called "Nacho's Image.img".
  6. Wait for the download to complete. Note: This could take several hours! Try to avoid quitting Deluge until the image is completely downloaded, but Deluge will resume the download the next time you run it if you ever have to stop the download while it's in progress. You will know that the download is complete when its status changes from "Downloading" to "Seeding."
  7. Insert the microSD card into your computer's card reader. Ignore any prompts to format the drive if they appear.
  8. Launch Etcher and click Select image, and then browse to the directory where Deluge downloaded the image (it defaults to the "Downloads" directory in your user profile, unless you changed this location in Deluge's Edit > Preferences screen). Select the file "Nacho's Image.img" and then click Open.
  9. Click the Select drive button in Etcher. If the program detects more than one potential external drive it will give you a choice. Be sure to choose the card reader containing your 64GB microSD card, and then click Continue.
  10. Once the image and target drive are selected, click Flash! Depending on the speed of your card reader, your computer, and even the card itself, burning the image can take anywhere from a few minutes to a couple of hours.
  11. Safely eject the drive from your card reader. This image is formatted with the Microsoft FAT32 file system, which is readable by all major operating systems, in case you ever need to add or remove games.


Hardware setup is the fastest part of this whole project. To reduce the chance of damaging your Pi via electrostatic discharge, try to work on a clean, flat surface in an area with a hard floor instead of carpet.
  1. Unpack your Raspberry Pi board and the heat sinks. Remove the plastic film covering the adhesive under each heat sink and attach the heat sinks squarely on their respective chips. (The big chip is the CPU and the smaller one is for networking.)
  2. Place the Raspberry Pi board between the upper and lower halves of the case, making sure to align the screw holes that fasten the halves together with the holes on the Pi board, and also making sure the ports are facing the correct directions.

    - Ethernet and USB ports face the front "cartridge slot" of the Old Skool NES case.
    - The left side of the case is where power, HDMI, and audio go.
    - The rear of the case is the location of the microSD slot.
  3. Carefully fasten the two halves of the case together with the included screws, using a very small Phillips-head screwdriver. Do not over-screw.
  4. Connect the Pi's HDMI connector to an available HDMI port on your TV or HDMI switcher.
  5. Firmly insert the formatted microSD card in the slot at the rear of the device. The card will only go one way (note that the Pi's card reader is technically at the underside of the board, so the pins of the card will be facing up when you insert the card).
  6. Turn on your TV set and select the appropriate HDMI input.
  7. Note: Don't plug any game controllers into your Pi yet! We'll do that in the next section.
  8. Plug your power adapter into an available power outlet and connect it to the female connector of your On/Off Power Switch Cable. Then connect the male end of the cable to your Pi's Micro-USB power connector. If the power switch is already in the ON position you will see a bright red LED illuminated on the back of the unit. If the LED is not lit, press the power button to turn the device on. If everything is working properly you should be greeted by the Nacho image's introduction video. (The video's pretty cool, but you will probably grow tired of seeing it every time you boot your Pi. I'll explain how to disable this in a later section.)


Now that you've got your image burned and your device assembled you're almost ready to play some games.
  1. After the intro video plays, the RetroPie image drops you into the EmulationStation top menu. The first thing you'll want to do here is connect one of your USB game controllers.
  2. If EmulationStation doesn't recognize your controller, it will prompt you to configure it. You should see a screen like this. Press any button on the controller that you wish to configure.

    If you don't get this screen when you plug in the controller, your controller might already be at least partially recognized. You can press Start on your controller to bring up EmulationStation's main menu, then use the controller's D-pad (plus pad) to navigate down to Configure Input, and then press A to display this screen.
  3. Once you have selected a controller to configure, the "Configuring" screen appears. This screen prompts you to press buttons or move controls in the requested directions so that the emulators know how to map the in-game controls to your individual controllers. Press the corresponding physical controls on your controller as requested, and repeat the process until you reach the end of the list.

    Sometimes you might be prompted to use a button or control that isn't physically present on your current controller. In this case, just press and hold down ANY button on your controller until the screen skips to the next control. You won't be able to exit the configuration wizard until you get to the end of the list.
  4. Once you've reached the end of the list and OK is selected, press A on your controller to save the settings for the current controller.
  5. Repeat the above steps for any of the controllers you plan to use. You can re-configure your controllers at any time by pressing Start on your controller and choosing Configure Input from the main menu.


EmulationStation is designed to be fully controllable with your game controller. You only need a keyboard (and sometimes a mouse) for specific emulators, or for doing Raspbian or RetroPie configuration.
  1.  Once the Pi is fully booted up, you land on the main EmulationStation screen:
  2. Move left or right with your D-Pad to choose which platform/console emulator you would like to use.
  3. Press A to see the list of games available for the selected system. Move down or up with your D-Pad to select a game. If you hold the Up or Down control for a while, the list will scroll very quickly, allowing you to navigate through very long lists.
  4. Once you have selected a game to play, press A.
  5. To exit any game and return to the EmulationStation menu, press START+SELECT on your controller at the same time.
  6. From the game list of any given platform, you can move left or right with the D-pad to cycle through the game lists of other platforms, or press B to return to the main EmulationStation screen.
  7. To gracefully shut your Raspberry Pi down you can press Start on your controller to bring up the main menu and then use the D-pad to select Quit, and press A. Then on the Quit screen, select Shutdown System and press A.

    Note: I personally rarely do this. Normally I just toggle the on/off switch on my power switch cable. Knowing this graceful shutdown process is useful in cases where you want to configure Raspbian or RetroPie, though. (You would use the Quit EmulationStation option instead of Shutdown System in these cases. Doing so drops you to a terminal prompt, which requires a keyboard to navigate.)


Note: Some of these steps require that you have a USB keyboard connected to your Pi!

Jittery video and audio at first-time use
The first time you connect your Raspberry Pi to your television and start up a new image, it can take a few minutes for the device to completely configure its video and audio settings. So you might notice some flickering video or choppy audio for the first few minutes that you use the system. This should clear up automatically after a short while. If it doesn't clear up, you might need to change some settings in the RetroPie configuration screen.

No audio when connected to an HDMI television set
First off, you should always make sure your TV is powered on and has the right HDMI port selected before powering on your Raspberry Pi. (If you turn on the TV or select the input port after the Pi has booted, the Pi might not detect your TV's audio connection.) Try doing this first (rebooting Pi after the TV is already on and selected) before continuing with the next steps.

The default settings of this image support most HDMI TVs, however some televisions use a different way of "presenting" their audio inputs to connected devices in a way the default RetroPie settings don't recognize. I have had to make the following change in order to get RetroPie to work on one of the TVs in my house.
  1. With the Raspberry Pi powered on, exit EmulationStation by pressing F4 on your keyboard or bringing up the Main Menu and choosing Quit > Quit EmulationStation.
  2. At the command prompt, enter the following command:

    sudo nano /boot/config.txt
  3. Navigate down to the line that says "#hdmi_drive=2". Remove the # so the line looks as follows:

  4. Press CTRL+X, and then press y to save the change.
  5. Type the following command to reboot the device:

Game doesn't work as expected
While most of the games in this image work great, there are a few that simply don't work, and others that might have special requirements. Here are some things to check and/or keep in mind if a game isn't working as expected:
  • Some games might require a different controller- for example if your controller has no analog sticks but the game was designed for analog controls, you won't have an ideal experience. Try switching out controllers if you suspect this is the case. I haven't figured out what's required to properly control Nintendo DS games, for example. Most of those games assume you have a stylus for touch control, but I don't know how that translates to the emulator included on RetroPie. If you know the answer, please leave a comment!
  • Some games/emulators require a keyboard or mouse. For example, all of these emulators assume you have a keyboard connected: MS-DOS, ScummVM, Infocom, VideoPac.
  • Sometimes the default button mappings might not be what you expect for a specific game. Try using X/Y instead of A/B, for example. Many of the games and emulators have configurable mappings, although the details of this are out of scope for this post. But you might look into custom mappings if you don't like the default control settings.
  • If you have multiple controllers connected to your Pi, all of them can navigate the main menus but usually only one of them is "Player 1" and another is "Player 2", etc. Make sure you're holding the correct controller if the controller doesn't seem to respond during gameplay.
  • Some games just don't work right on the Raspberry Pi, or with any current emulator. Try doing a web search for the specific game to see if other Pi users have gotten it to work. The RetroPie image you downloaded is customizable. If you find any games that you confirm just don't work, you can remove them and their associated metadata from your microSD card to free up space for other games.
Stop playing the "Nacho's Image" video every time the Pi starts up
If you'd like to skip the video that plays by default every time this image boots up, you can change this in the RetroPie settings. Note that these settings require a USB keyboard attached to your Pi.
  1. With the Raspberry Pi powered on, exit EmulationStation by pressing F4 on your keyboard or bringing up the Main Menu and choosing Quit > Quit EmulationStation.
  2. Enter the following command (note that unlike Windows, Raspbian is case-sensitive):

    cd /home/pi/RetroPie-Setup
    sudo ./

  3. The RetroPie-Setup Script screen appears. You can use the arrow, TAB, and ENTER keys to navigate menus in this program, and you can also use hotkeys (any letter highlighted in red) where available to select options. On the first screen, select the Configuration / tools option.
  4. On the Choose an option screen, use your arrow keys to scroll down to the splashscreen - Configure Splashscreen option and press ENTER.
  5. Select Choose splashscreen.
  6. Select RetroPie splashscreens.
  7. Choose one of the available splashscreens listed here. I use the one called retropie-2015.png. It looks like this:
  8. After making your selection, you should see a message that says "Splashscreen set to" and the path of the file you selected. Press ENTER.
  9. Exit the RetroPie Setup program. You can do this by pressing Esc or using a Cancel option, where available.
  10. Enter this command to reboot your Pi:

Enabling WiFi networking
While you do not need to connect your Pi to a network in order to use the preconfigured games in this image, you might want to enable Wi-Fi networking in order to remotely administer and customize your device. There is already a pretty good post about how to do this at the RetroPie site.

Note: When the RetroPie documentation talks about "the Retropie menu in emulationstation" they mean you use the left/right controls on your D-Pad to select RetroPie as if it were a console/platform:

And when you press A from there, you see this menu:

Important: Enabling Security on your Raspberry Pi
Although recent versions of the Raspian OS disable SSH access by default, I have noticed that it is enabled in the RetroPie image that I use. If you never connect your Pi to a network, this isn't a big deal, but if your device is connected to either your Ethernet or Wi-Fi networks, this is a potential security risk. To protect yourself, you should either disable the SSH feature if you're not going to use it or change the device's default password so your device can't be easily overtaken by a scripted attacker.

The raspi-config tool included with Raspian is where you can disable/enable SSH. You can get to it from a command line by exiting EmulationStation and running this command:

sudo raspi-config

You can also access it by selecting RetroPie from the main EmulationStation screen and choosing the "Raspi-Config" option from the RetroPie menu. You control the SSH setting inside the "Interfacing Options" screen of raspi-config. This page explains the process in detail.

You should also change the default password of your device if you ever plan to leave it connected to a network. If you're familiar with the Linux passwd command, you can use that. Otherwise you can use the Change User Password option in raspi-config to do this.

(The default username in Raspbian is pi and the default password is raspberry.)

I hope you found this guide helpful. Game on!