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!

The Magical Hold Mode

I call the Hold mode one of the magical features of Chronotron. It makes the sound appear to be frozen in time, while allowing you to continue playback – either forward or backward – so slowly that you can distinguish every single note even in the fastest music passages. You can jump to the demo video below if you want to see it in action right away.

To access the Hold mode, click the button. Once in Hold mode, the Audio Scroller takes control of playback and the real fun starts.

The Audio Scroller

The Audio Scroller, or scroller for short, is depicted below. The center of the scroller represents the current playback position, which in this example is close to 02:14.

You can swipe left or right to play forward or backward respectively, as slowly as you want. This works great with a touchscreen, but if you don’t have one you can still use the mouse or the arrow keys. When using the keyboard, first click on the scroller so it gets the keyboard focus.

The red zone indicates that playback won’t be smooth if you happen to go that far back in time. This zone will appear closer to the playback position right after seeking to a new location within the media clip or after having played backward for a while. You can affect the amount of audio and video to be buffered before hitting the red zone via the setting “Maximum reverse playback length” in the Options pane.

In addition to supporting touch, mouse and keyboard input, the Hold mode can be operated with the Surface Dial.

The Surface Dial

According to Microsoft marketing, the Surface Dial is “a completely new way to interact with technology”, but you can just think of it as glorified jog wheel. It looks like this:

Pushing and holding the Dial brings up a radial menu showing the different things the Dial can control, and the Hold mode in Chronotron is one of them. There are other functions that can be controlled with the Dial, but let’s leave those for a separate blog post.

When controlling Hold, clicking the Dial allows to enter or exit Hold mode. Rotating the Dial is equivalent to swiping on the scroller left or right. That’s all there’s to it.

The Demo Video

This demo video shows how the Hold mode can be used together with the polyphonic note detection feature to make music transcription a breeze. Isn’t that magical?

Start using the Hold mode today and post your stories in the Comments section!

Release 99 is Now in the Store

Something Went Wrong with Release 98

Chronotron version 98 was a bit of a sloppy release, to say the least. It turned out that a nasty Microsoft compiler bug caused Chronotron to crash on some systems, rendering the app unusable for some of you.

Crash telemetry data from the Windows Store. The peak occurs at the date when Release 98 was published.

That’s really bad. Compilers bugs are one of the worst things that can happen to an app. They are hard to catch because we developers are programmed (pun intended) to assume that application errors are always our own fault, which most of the time is true.

After figuring out what the problem was, I reverted back to a previous version of Microsoft Visual Studio and submitted a new app build to the Store, which was promptly approved.

I’d like to thank those who were impacted – and those who reported the issue – for their patience.

The good news is that the next planned release – Release 99 – was already feature-complete, so in addition to the urgent bugfix, in the new build there’s also new functionality!

What’s New in Release 99

After my previous blog post on the demise of the Chronotron plug-in, a few of you reported that a key feature of the plug-in had not made it to the app, which is the ability to operate the Tempo and Key sliders simultaneously to perform pure resampling. This is akin to changing speed in a turntable and can be very useful in some scenarios.

Release 99 brings back this feature by the means of a new Speed slider, which can be found in the Tempo and Key pane.

Other improvements in this release are:

  • A couple of switches to control the app layout have been moved to the Options pane under the Appearance section, where they naturally belong. The documentation has been updated accordingly.
  • Polyphonic note detection now works better, especially with the bass guitar.
  • The layout of the Tempo and Key pane has been revamped.

The change log can be found here.

What Was New in Release 98

For those of you who could not fully enjoy Release 98, you will be glad to know that its most welcome feature is the addition of Bass Guitar to the Instrument pane.

As with every release, in Release 98 there were also some layout improvements, bugfixes and a major bug introduced by the compiler, but the latter is now a thing of the past.