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).

Release 100 is Here!

A hundred years make a century, so goes the saying. What about a hundred app releases? A centu-re-lease.

Bad jokes aside, reaching the 100th release of Chronotron is quite a milestone. It means the app package has been rebuilt, the release notes updated and the Microsoft Store review process completed at least as many times.

In this post I’ll show you what’s new and changed in Release 100. The first thing that you likely noticed – and probably the reason you’re here – is the prominent link to this blog on the app welcome page. As you can see, I’ve already written a couple of posts and shared some how-to videos. Scroll down through this page if you’re curious about what the app can do and don’t hesitate to leave comments if you have questions.

Video Adjustments

When it comes to app functionality, the most visible change is the new Video Adjustments pane.

The brightness, contrast and saturation controls are all new. The video flipping switches were already present in previous releases; however, a welcome improvement is that these controls now also work when rendering media to disk.

Playlist Improvements

Chronotron works best with touch input and the Surface Dial, though I’m aware that many of you run the app on a regular PC with a mouse. Now, when hovering the mouse over playlist items, a checkbox appears that allows you to select the item in just one click.

The Playlist pane underwent some additional revamping – regardless of the input method – based on customer feedback. A Select All button has been added. While in selection mode, if all items are unchecked then the selection mode is turned off automatically. Finally, clicking on the item that is currently playing restarts playback form the beginning of the track.

Usability Improvements

In Release 99 a couple of switches were moved from the main panes to the Options pane (refer to the change log for details). This time it’s the Audio Scroller switch that moved to Options, under the Appearance section. This also means that now you can make the scroller always visible without having to flip the switch every time you start the app.

Also, as part of the continuous effort to make the UI more intuitive, the Instrument pane has been made more readable. Take a look at the two screenshots below.

Can you spot the difference? The one at the left is the new screen layout. Before this change, the user needed to click on the Instrument dropdown list just to see which instruments were available (most customers didn’t even notice when Bass Guitar was added in Release 98!). The Layout options now appear in a dropdown list for the sake of saving screen real estate, but this should pose no usability challenge as the other selection choices are obvious.

By the way, the same principle was applied to the Solo Channel function in the Audio Adjustments pane.

Other Changes

The advent of Always-Connected PCs (ACPC) running full Windows 10 on ARM is a new challenge for app developers. Even though I don’t expect many musicians to use an ACPC as their main system, as a Windows developer I aim to reaching as many Windows devices as possible. This is why almost every Chronotron update brings performance improvements on ARM CPUs, and Release 100 is no exception.

Last, but not least, in this release there are also few changes under the hood to support the new features and pave the way for upcoming functionality. For example, having tighter control on video frames opens the door to other kinds of video processing.

I hope you will enjoy using this release as much as I did coding it!

Pimp Your Chronotron

The wide variety of Windows-compatible hardware out there poses a challenge to developers of apps that rely heavily on device CPU and GPU capabilities, let alone the developers of the OS itself. In apps like video games and media players, the configuration dialog always has a couple of settings whose sole purpose is to accommodate for platform idiosyncrasies or even driver bugs.

In Chronotron, such settings can be found under the Performance section in the Options pane.

While the defaults were carefully chosen to make the app run fine on virtually any hardware that supports Windows 10, you can still fine-tune these parameters to get the most out of your system. A detailed documentation of the various configuration options – not just performance-related – can be found here.

The Fast PC

If you have a fast, modern PC, any combination of settings will likely work great.

Still, you may want to crank up audio quality to enjoy better note definition, provided that your sound system lets you hear the difference. There’s one gotcha with the Highest quality setting, though: as mentioned in the documentation, formant preservation uses a more accurate algorithm that may produce sound artifacts on non-vocal-only audio material, so if you use Chronotron to transpose entire songs, it may be better to stick to Very High quality instead of Highest.

Using the alternative playback engine comes in handy if your system has multiple sound cards, because you will be able to switch between audio outputs on the fly (for example, between the main boxes and the headphones).

Disabling audio processing on multiple CPU cores may also help if you want to run other CPU-demanding apps side-by-side with Chronotron.

The Small Tablet or Netbook

It is on more modest systems that tweaking some of these settings can make a real difference. Many tablets and netbooks have limited memory capacity and relatively slow CPU cores – albeit a reasonable amount of them – so one of the goals here is to distribute workload evenly across processing units. Another goal is to reduce the app memory footprint as much as possible.

First, enable audio processing on multiple CPU cores, and make sure video hardware acceleration is also enabled so the app offloads some of the video processing work to the GPU.

If you use the Hold mode frequently, you can further reduce memory pressure by limiting the maximum reverse playback length to 2 seconds. You may also want to choose not to display the waveform in the scroller.

As a last resort, decreasing audio quality to Very Good may give your CPU some more breath. Alternatively, switching Solo Channel to MONO during playback – via the Audio Adjustments pane – will cut CPU usage roughly by half without making any audible difference in such devices, unless you’re wearing headphones.

What About the Other Performance Settings?

Seamless Loop and Low-latency Playback – both of which are enabled by default – are there for troubleshooting purposes. If you experience playback stability issues these are the ones to look at.

Casting shadows on transparent controls improves the readability of on-screen app elements when playing videos having a white background, for example. However, enabling this option has a significant impact on CPU and memory usage, so do it only if it is absolutely required for your usage.

As a final word, note that the app can be customized in many ways that I haven’t covered in this post. Reading the documentation will give you some ideas – and because default values are also documented, there’s no reason not to try – so go ahead and pimp your Chronotron!

The Loop of the Tiger

Many great pieces of music come to us from a time when popular songs were the ultimate expression of artistic talent rather than mere technological achievements. That’s not to say that good songs are no longer written today; however, in my opinion music is consumed – and produced – nowadays in such a way that more often than not it ends up being ephemeral background noise. Do you remember the last time you sat down to just listen to music?

The Eye of the Tiger by Survivor is one of the songs that has survived the test of time (pun intended), though some will say that the movie this song was written for didn’t age as gracefully, but I digress. Its rhythmic intro is so catchy that even toddlers can perform it distinctly.

I chose The Eye of the Tiger for a demo video of one of the most frequently used Chronotron features: the ability to create loops. Keep reading if you want to go through some details, otherwise skip to the video below and enjoy.

Basic Operation

The Loop In and Loop Out buttons perform the same functions as in CDJ players: press the Loop In button to set the loop start point, and when playback reaches the point where you want to start over, press the Loop Out button to set the end point and begin looping. It’s really that simple.

The Loop button toggles looping on and off. Clear Loop removes both loop points, once you confirm you really want to do so.

Adjusting Loop Points

You can adjust the loop points by dragging them around with the mouse – or the finger, if you have a touchscreen. However, there are cases when you want to change their location more precisely. The Loop pane – depicted below – allows you to manually edit the loop points either by entering their position as text (more on this below) or by increasing or decreasing their location in 25ms steps.

Whenever you make changes and the Play loop end… switch is on, Chronotron will seek closer to the end of the loop so you can hear if the loop juncture sounds right, without waiting for the whole loop to complete. This comes in handy especially when creating long loops.

In the input boxes you can enter any integer number of hours and minutes, appended with “h” and “m” respectively, and/or any number of seconds with or without decimals places, optionally appended with “s”. For example, entering “200.5” is the same as entering “200.5s”, “3m 20.5s” or “3m 20.5”.

By the way, I hear you saying that it would be great if you could also enter a number of beats in there. However, in order for such feature to be useful some more automation will be required (as of this writing Chronotron has a manual beat detector), but it is definitely in my to-do list.

The Demo Video

Here is a short video showing how the Loop feature works in Chronotron. Be warned, though: a song may stick in your head for the rest of the day.

Questions and suggestions are always very welcome.

The Left-Handed Guitar-Playing Animal

I learned only recently that animals can exhibit handedness, or simply put, that some species statistically tend to prefer one side over the other.

In humans, the ratio of left-handed to right-handed individuals is about 1 to 9, which is pretty low. I ignore whether or not the ratio of guitarists to non-guitarists is the same for each handedness group, but still, I kind of suspect that left-handed guitarists are a minority. Suffice to check the price tag of the LH guitar variant as compared to the same “standard” model – which by the way isn’t even labelled as RH. Talk about offer and demand in play!

Seriously, though, I thought it would be a good idea to do something in Chronotron to help musicians learn songs regardless of their handedness. Left-handed pianos not being mainstream yet, this post is mainly for those who play other instruments, though you can of course use Chronotron no matter what instrument you play.

Video Flipping

For us right-handed guitarists, watching a video of a left-handed player and figuring out what she’s doing shouldn’t be more difficult than watching ourselves play in front of a mirror, right? Try that. For whatever reason the mirrored fingering looks really awkward.

In Chronotron, you can apply a mirror effect during video playback by turning on the corresponding switch in the Adjustments pane, which instantly turns Eric Clapton into his left-handed twin.

Note that in the current and earlier releases (version 99) this switch has effect during playback, but not when video is rendered to disk. In the upcoming release the mirroring effect will also work when rendering media.

Left-Handed Guitar and Bass Fretboards

The purpose of the on-screen instrument in Chronotron is twofold: it serves as the visual support for note detection, and it also allows you to play notes – or even chords, if you have a touchscreen – on the go. You can choose between a piano keyboard, a guitar or bass fretboard.

Unsurprisingly, the fretboards are right-handed by default, but with the flip of a switch they become left-handed.

Ideas are Welcome

If you’re reading this you’re probably left-handed. Are there any other valuable features for lefties you can think of? I’m all ears.

Unfrequently Asked Questions

Some of the Chronotron features are rooted in my own usage, others are the result of customer feedback and a few of them are just there for historical reasons. Then, there are those features that every media player must have, which we just take for granted and rarely think about how they actually work.

Examples of the latter are the Balance control and the Graphic Equalizer. Most people are already familiar with balance and equalization so maybe that’s why I seldom, if ever, get any questions about these features. However, while implementing them I did have questions for which I had to figure out the answers. In this post I’m sharing a couple of such questions – and their answers – with you.

The Chronotron Equalizer

What Pan Law to Use for the Balance Control?

In a nutshell, the pan law governs how much you attenuate or amplify the audio signal to compensate for the gradual loss of the left or right channel as you move the balance control in the opposite direction. A lot has been written about pan laws elsewhere so I’m not going to enter into the details.

Chronotron uses a 3dB pan law, which means that it boosts the remaining channel progressively, by up to 3dB, as the fading channel becomes less audible. This keeps the perceived volume reasonably constant during playback and is the same pan law used by many audio equipment.

If you google for articles on pan laws, you may be wondering why I didn’t choose to apply a higher boost, like 4.5dB or 6dB. After all, Chronotron is a media player and not really a mixing app, right?

Well, there are karaoke videos, music lessons and play-along CDs that take advantage of stereo channel separation to let you adjust the level of the backing track vs. the lead instrument just by using the balance control. In Chronotron, balance is applied before the Solo Channel setting, so if you come across this kind of audio material, you can set Solo Channel to MONO to enjoy sound from both speakers while still controlling the mix with the balance control. Handy, isn’t it? In this situation Chronotron behaves like a mixer and the 3dB pan law is still a reasonable tradeoff.

The above example illustrates the well-known fact that the order in which audio controls and effects are applied can sometimes make a big difference, which led me to the following question…

Should the Graphic Equalizer Come Before or After Tempo and Key Manipulation?

I made a case for putting the balance control before any further processing, but what about the equalizer? If we put the equalizer before tempo change and note detection, we cold leverage its effect to prevent some time-stretching artifacts or to improve the accuracy of the detected notes. If we put it after, we could use it to fine-tune the final result for a particular listening environment, for example.

I thought it would be a good idea giving users the choice and that’s what the Pre/Post switch does.

The default position of the switch is Post, which means that equalization occurs – just like in many other media players – at the end of the sound processing chain. In this position the equalizer does its expected job without causing any side effects.

In the Pre position, though, things get more interesting because you can now use the equalizer to make the note detector emphasize a certain frequency range. Also, when using the equalizer as a notch filter, you will notice that its effect will be preserved even after changing pitch.

The choice is yours.

Have Questions? Feel Free to Ask

Ask questions via the Chronotron web site or by posting your comments here. Unfrequently asked ones are welcome!