Chronotron on ARM and the Chicken and Egg Problem

You may have noticed a number of remarks in the app change log regarding specific improvements on ARM CPUs. Knowing that Chronotron isn’t available for Windows Mobile, what’s the point of those “DSP performance enhancements on ARM”?

The answer is that there are a few Windows laptops and convertibles out there which sport an ARM CPU instead of the more familiar Intel x86 chip, and Chronotron should be able to run on those. For example, the Asus NovaGo, the HP Envy x2 and the recently announced Lenovo Yoga C630 WOS all run full Windows 10 on ARM. And by full, I mean Windows 10, not its Mobile sibling.

I haven’t got my hands yet on a Windows on ARM device I could use for testing and debugging. Currently I rely on the fact that Windows Mobile implements a fair subset of the Windows 10 APIs, so I can run Chronotron on a Lumia 950 phone – which happens to have the same kind of CPU – to perform limited testing and performance optimizations.

This means that I presume the app runs well on Windows on ARM devices, but until I could actually acquire one (they aren’t generally available here in Europe as of this writing), I won’t be able to tell for sure.

It’s not that I haven’t tried, though. I contacted the regional Asus distributor to get a test unit. At the time they didn’t have a review unit yet; however, they told me that once they got one, it would be sent first to tech magazines and websites. This is unfortunate for me, though understandable.

Another thing I did was submitting a suggestion to the Microsoft Developer Rewards Portal about issuing a few perks for developers porting their apps to Windows on ARM. After all, if Microsoft really wanted to incentivize developers to port their apps, the portal would be the place to facilitate early access to the platform. No reaction so far.

There’s also the software side of things. Some tech websites tell you that porting an app to ARM is “as easy as recompiling”, which is not entirely true. For example, Microsoft forgot to enable one of the components of the Windows SDK for the ARM64 target (namely Microsoft.Midi.GmDls), so apps using that specific component can’t just be compiled for 64-bit ARM.

Developers of apps that rely on advanced CPU features and multithreading – like video games and media players – face enough significant differences between the x86 and the ARM architectures to justify serious testing on each. Also, let’s not forget that there are also compiler bugs that surface only when targeting certain CPU architectures.

Going back to the original question in this post, I share the enthusiasm around Windows 10 on ARM: getting Chronotron ready for when such hardware becomes mainstream reflects my endorsement as developer. At the current level of Microsoft involvement, though, it looks like this will take a long time.

The situation I describe above is often referred to as the chicken and egg problem: a platform success depends on apps being developed for it, but there won’t be many apps developed for a platform that isn’t widely available.

Until then, Chronotron on ARM is a chicken hatching from a dinosaur’s egg.

Everyday Chronotron

I’ve been using Chronotron as my daily driver since Release 43, when it first supported playlists.

Even though Chronotron main purpose is to deconstruct tunes – audio and video material in general – and to assist musicians while they practice an instrument, the app has evolved over the years to become an all-rounder media player as well.

Having the developer spend more time testing the app is a good thing, but I also find myself using it regularly because Chronotron fits my own casual usage: I often play a lot of music and videos in sequence on a touchscreen-enabled laptop.

One killer app feature, at least when it comes to playlists, is the ability to apply different parameters – tempo, key, equalizer, etc. – to each individual track. You could, for example, play the same song multiple times at a different pace. And let’s not forget video! You could pump the brightness of those dark Michal Jackson videos a bit up, while playing all other clips in the playlist at the default setting.

As a lesser-known bonus, Chronotron lets you decide which parameters are specific to a playlist item, and which ones apply to the playlist as a whole. After all, you may want to play all video clips in your playlist mirrored without having to toggle the Horizontal Flip switch on every single track.

You do this via the Settings pane, as shown below.

All are unchecked by default, which means that each playlist item will remember its own settings for each parameter, but you can check the ones that will be remembered for the whole playlist regardless of the track (like Video Flip in the example above).

While there are a couple of features you might miss if you’re a Winamp nostalgic – gapless playback is one that comes to mind – Chronotron is still a capable media player.

Do you use Chronotron as your regular player? If not, what features prevent you from doing so? Let me know in the Comments section below.

Using Playlists in Chronotron

Chronotron supports playlists since Release 43. The playlist functionality is accessible through the Playlist pane, which you can open by selecting Playlist out of the hamburger menu.

In this post I’ll go through the ins and outs of playlists in Chronotron.

Creating Playlists

There are multiple ways to create playlists in Chronotron. You can either:

  • Select multiple files during Open (Ctrl + O). By the way, the complete list of keyboard shortcuts can be found here.
  • While the Playlist pane is visible, click Add (Ctrl + Shift + O) to select the files to be added to the current playlist.
  • Drop media files from Windows Explorer into the Playlist pane.
  • If you made Chronotron your default app for media files in Windows, then opening multiple files directly from Windows Explorer will launch the app and create a new playlist with those files.
  • From the Recent or Library dropdowns, clicking the “+” button – depicted below – will add the media to the current playlist. If, by accident, you missed to hit the “+” button, the Revert button will come in handy.

You can save the playlist for later use once you’re happy with it. Just click Save (Ctrl + S) and select the location where you want the new playlist to be stored. If you saved the Playlist at any location under your Music or Video libraries, then the app will also show your playlist under Playlists in the Library dropdown.

Playlist AutoSave is enabled by default, so you don’t have to care about saving the current playlist every time you modify it. You can disable AutoSave via the Options pane.

The New and Save As commands – shown below – allow you to start building a new playlist from scratch or saving the current playlist to a different .m3u file, respectively.

Playlists Created with Other Programs

Chronotron supports opening .m3u files created by Winamp, Windows Media Player or other programs.

Unlike most other programs, though, Chronotron stores the media parameters used for each file in the playlist, that is, tempo, key, speed, equalizer settings, volume, balance, channel selection, video flip and video delay. This allows you, for instance, to add the same song multiple times to the same playlist, each time at a different tempo or key.

A .m3u file is just a text file listing the locations of the files to be played in sequence. The screenshot below is an example of what a .m3u file looks like when opened in notepad.exe.

While that’s a simple – yet powerful – approach, it turns out that with great power comes great responsibility: a maliciously crafted playlist could induce the player to load harmful content by exploiting bugs, either in the app or in the OS, to compromise your system security.

To mitigate such threats, Microsoft Store apps are granted limited access to files stored in your PC. Apps are only allowed to load files resulting from an explicit user action, like the Open File dialog box or drag & drop into the app window, or files stored in certain locations, like the Audio and Video libraries (i.e. My Music and My Videos).

In the above example, you can see that the media files are stored under D:\Playlist Media. Because that location is currently not part of my Windows libraries, when I first tried to open this playlist with Chronotron, I got the following error message:

If the media files were stored under My Music, Chronotron would have played them just fine. However, the app is now complaining about the fact that it cannot access the location where these files are stored.

So, all I need to do is go to the Options pane and authorize Chronotron to access D:\Playlist Media – or even the whole D:\ drive, if I feel like I trust the app – and voilà: the playlist plays. The screenshot below shows the relevant section of the Options pane.

Alternatively, I could have made D:\Playlist Media part of My Music library, in which case the app would have been automatically authorized to access the files.

Other Common Playlists Tasks

You can reorder playlist items by dragging them around, either using touch or the mouse. Please note that, when using touch input, you need to tap and hold on the item to start dragging it.

Another way to move playlist items is by using the Up and Down buttons in the bottom toolbar. This toolbar also allows you to remove selected items and select all items in one go.

If your device sports a touchscreen, you can remove items without selecting them by swiping the item you want to remove to the left.

Conversely, if you hover the mouse over playlist items, you can enter selection mode by clicking the checkbox next to the item.

Wrap Up

I hope this post provides a good understanding of how playlists work in Chronotron. Don’t hesitate to post your comments here or contact me via the usual support channels if you have questions, comments or suggestions.

The Clock-Clef

The G-clef is arguably the most recognizable musical symbol, also for non-musicians. Its familiar shape looks like a distorted ampersand symbol, though you might be surprised to learn that it actually emerged as an evolution of the letter G (well, I’d say it’s as close to the original as this portrait of Picasso, but historians know better than me).

The Chronotron logo, which represents the fusion of a G-clef and a clock – a “Clock-clef”, if you will, took shape more than one decade ago. Credit where credit is due, it’s my wife who came up with the idea and first sketched it on paper. Later on, the Cuban designer Diego Monzón produced the first vector image of it, which is still at the heart of today’s app branding.

Since Chronotron became an app, the app logo consisted in the original Clock-clef enclosed in a guitar pick shape.

This layout conferred the app logo some volume and emphasized the suitability of the software for guitarists, but unfortunately it also turned the original logo into an afterthought. In fact, I bet most of you actually believed that the Chronotron logo was just a G-clef drawn on a guitar pick.

Because Chronotron today covers a wide range of use cases reaching far beyond its original audience, it’s time to update the app imagery accordingly. So, starting from Release 104, we have…

A New App Logo!

Indeed, the most noticeable change in Release 104 is the revamped logo, which is depicted below.

The Clock-clef symbol is now much more prominent than before and it sits on a blurred score, which reduces its verticalness and gives a sense of speed.

If you happen to use Chronotron as the default player for certain file types, you will also notice that the file icon now consists in the Clock-clef symbol on a dark blue background.

Other Changes in Release 104

The audio scroller is now visible by default, but you can still hide it via the Options pane. Waveforms are cached when a file is first loaded, so they load almost instantaneously the next time you open the same file.

A new release is always an opportunity to smash a few bugs. One of these bugs prevented the playlist from moving to the next track while the app is minimized or when the Windows session is locked. This issue was reported by a user – through an app review – and has been fixed in this release.

Honest feedback is much appreciated. Don’t hesitate to contact me via the corresponding app menu option, or by leaving a comment in this blog.

Chronotron and the Ventriloquist Machines

Ventriloquists can utter entire phrases while their lips remain still. Their second voice doesn’t appear to come from the usual parts of the body you would expect it to come from, yet it is there. So, when I first saw Jeff Dunham perform, I joked to my colleagues “This guy must have two soundcards”.

The two-soundcard metaphor is an amusing one. In reality, though, ventriloquists don’t have the ability to use their two voices at the same time, whereas some systems can play music over one soundcard while using a different device for monitoring.

You may be interested to know that Chronotron also allows you to select which playback device to use, provided that your PC has multiple soundcards. This comes in handy, for example, if you need to switch often between your headphones and your main boxes.

You could enable this behavior in previous versions of the app by turning on the option Use alternative playback engine. The good news is that, starting from Release 103, the new playback engine is now the default one so device switching is readily accessible. No additional tweaking needed.

Click on the speaker button at the left of the transport controls, as shown above, then select the device you want to use out of the popup menu. And that’s basically all there’s to it.

Just like ventriloquists do, the app can switch from one soundcard to another, even during playback (as of this writing, only one device can be active at the time).

Does your system have multiple soundcards? Are there other scenarios you would like to see implemented in Chronotron? Let me know via the Comments section or through the usual support channels.

Your Voice is My Command

When I use Chronotron to practice guitar licks, I find it cumbersome to operate the app while having my two hands lying on the instrument. For us guitarists dropping the pick to hit a button isn’t a big deal after all, but things get really bad when you’re playing violin or cello.

There are different ways to address this challenge. For example, the app could support footswitches (though guitarist already have too many of them) or implement a delayed playback command so you have time to get ready before the music begins.

I decided to go for a different solution, though: voice commands. Assistive technology has been around for quite some time and works really well, so why not controlling Chronotron with your voice? This is what Release 102 is about.

Configuration

Chronotron understands English, French and Spanish. The app will try to use the recognition language selected in your Windows’ Speech settings, which may or may not be your Windows display language, as shown below.

If the selected language isn’t supported by the app, then the app display language will be used, provided that the corresponding voice recognition Windows package is installed. You can add voice recognition languages to Windows through the Region & Language settings.

Hardware Setup

A rehearsal room is usually a noisy environment. I recommend wearing a headset mic so the computer doesn’t get confused by the sounds coming out of your instrument. In my own setup, though, I can talk directly though my laptop’s mic without any issues because – to my neighbors’ delight – my guitar rig is routed through my headphones.

Windows has a wizard that allows you to fine-tune voice recognition to best match your hardware configuration. Running that wizard isn’t compulsory, but it does improve recognition accuracy.

Talking to the App

By default, Chronotron won’t listen for commands. To talk to the app, press the Voice Commands button located inside the small command bar at the top left corner of the window.

You can use your voice to start and stop playback, play slower or faster and work with loops and markers, which are the things you will most likely want to do without touching the PC.

The complete list of supported commands, including their translation into all app languages, can be found in here. The command “what can I say?” – or its equivalent in the selected language – opens the documentation in your web browser.

Here is what the list looks like as of this writing:

Voice Command

Action

What can I say?

Open the documentation in your web browser

Stop listening

Stop listening for voice commands

Start playing

Play

Stop playing

Pause

Play slower

Decrease tempo by 5%

Play faster

Increase tempo by 5%

Go to start

Go to the beginning of the track

Go to loop

Go to the loop start point

Enter loop

Enter loop

Exit loop

Exit loop

Go to marker 1

Go to marker number 1

Go to marker 2

Go to marker number 2

Go to marker 10

Go to marker number 10

Raise Your Voice

Does it work for you? Are there any other app commands that you would like to control with your voice? Let me know via the usual channels or by posting a comment.

How Old are You, Windows User?

A friend of mine asked me recently why Chronotron is a Windows-only app.

This is not an infrequently – nor unfrequently – asked question. Chronotron is a media player app whose design language is clearly touch-oriented. Music apps have been the realm of Macs for as long as I can remember, and today most touch-enabled apps run on Android or iOS. So why Windows?

The answer has of course a lot to do with the app history and the developer’s experience with that platform, but not only. The typical Windows desktop/laptop/tablet hardware configuration is capable of doing pretty serious number crunching, and that’s the kind of power needed to perform time-stretching in real time at DAW quality levels. And when it comes to user experience, Windows has a nice UI and supports a myriad of input methods, including touch.

However, my friend’s question is motivated by a growing concern out there: does Windows have a future in the consumer space?

Before going any further, let me tell you that I’m by no means an aspiring OS market analyst. This post is based only on my personal observations and experiences as an app developer.

A lot has been written elsewhere about Microsoft becoming the new IBM, so it seems that future Windows relevance to end users is indeed a subject. There’s certainly more to it than tech news clickbait: I keep hearing stories from colleagues, friends and relatives about companies relegating Windows to the data center – or to the cloud – and running their few remaining desktop apps virtualized. I have noticed myself that some enterprise software, which used to rely on fat clients, have become browser-based in their newer releases and therefore less dependent on the client OS.

Some go as far as saying that “Windows is done” when it comes to end-user computing, though in my opinion this is largely exaggerated. However, there’s something that worries me a bit going forward as an app developer: user age demographics.

A picture is worth a thousand words.

The total number of samples over the selected period is a four-digit figure (niche app obliges), but I have seen election polls conducted with less samples than that. Also, we’re talking here about paid software which most would classify under Productivity Tools rather than under Time-Wasters. It has no “social features” and no “engagement notifications”, though it does support stuff like touch, the Surface Dial and – scoop, scoop! – soon speech.

Still, one could assume that the elders would be more likely to stay with a previous version of Windows – therefore not having access to Store apps – so younger age groups would get a boost in the stats, or in any case appear less dim. Such simplistic interpretation might be wrong. Actually, I hope I’m wrong.

But what about Microsoft’s vision and message? The push to get desktop apps to the Microsoft Store is a good move, though I doubt it will help rejuvenating the Windows user base. On the other hand, the Dev Center Benefits website – a rewards program for app developers – hasn’t been updated since almost one year ago. So yes, Microsoft could work harder on telling us developers what their vision for the consumer market is.

Time will tell if Windows will succeed as an app ecosystem. At the moment I have no plans to port Chronotron to other platforms because, as a Windows developer, I want to believe.

And I love you, dear user, the way you are.

 

[Edit 2018-03-12]

I’ll share some more data with you, at the risk of adding fuel to the fire that my original post started.

Below is the age demographics of Chronotron Mobile, a free version of Chronotron that ran on Windows Phone 8.1. The app lived from Nov 2014 to Nov 2016.

Now comes the interesting thing. Chronotron Mobile offered in-app purchases, and here’s the age demographics of the paying customers:

We all know purchasing power matters. However, the above chart is closer to what I expected from a platform having a reasonable share of younger users (Windows Phone 8.1 in this case).