Chordious 2.0.9 now available

Chordious 2.0.9 is now available, and is functionally a minor update over the previous release.

Starting in 2.0.9, Chordious now requires .NET 4.6.2, rather than the previous .NET 4.5.2. This shouldn’t be a problem for most users, but it does mean that Chordious will no longer run on Windows Vista.

Why the change?

It is now possible to publish desktop apps to the Microsoft Store, and unfortunately, such apps must use .NET 4.6.2 or later. So good news for Windows 10 users, as I am currently in the process of submitting Chordious to the store!

I’ve also gone and updated all of the other dependencies to their latest versions, including properly citing those dependencies within the app licensing. It may not matter for most users, but Chordious does use the work of others, and I want that to be clearer within the app.

Finally, there are of course some select bug fixes.

Here’s the full change list for 2.0.9:

  • New WinStore build for the Microsoft Store
  • Updated to .NET 4.6.2
  • Updated SVG.NET to v2.4.3
  • Updated MVVM Light to v5.4.1.1
  • Consolidated licenses for dependencies into the UI
  • Fixed a bug with the shortcut icon not loading on some machines
  • Fixed a bug with the temporary files created during “Enhanced Copy And Drag”
  • Fixed a bug where 0% barre arc ratios made the barre disappear
  • Code cleanup and miscellaneous bug fixes

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with:
Posted in Releases

Chordious 2.0.8 now available

Chordious 2.0.8 is now available, and is a minor update over the previous release.

This is mostly a bug fix release, however there are three key new features:

  1. You can now specify which side the fret labels should appear when using the Chord / Scale Finder (thanks Cyril for the suggestion)
  2. If the instrument / tuning that you’re using in the Finders is not the saved default, Chordious will now conveniently prompt you to set them as the default
  3. You can now run multiple instances of the Portable version, presuming they’re using different config files

Here’s the full change list for 2.0.8:

  • Can now specify which side to put fret labels in Finder results
  • Prompt to save instrument/tuning when exiting Finders
  • Can now run multiple instances as long as they’re using different config files
  • Fixed bug with double-clicking to edit diagram
  • Fixed bug with adding bottom marks not using bottom mark style in editor
  • Code cleanup and miscellaneous bug fixes

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: , , ,
Posted in Releases

Chordious 2.0.7 now available

Chordious 2.0.7 is now available, and is a minor update over the previous release.

I like to call this the “Drag and Drop” release. I received an email from a “Muso City” about adding the functionality to drag and drop diagrams directly into external applications. After a little bit of investigation into how drag and drop works, I found that it’s very similar to how the clipboard works. So I’ve gone ahead and improved the functionality of both – you can now copy and paste or or drag and drop a diagram directly into external apps from Chordious.

If the target external app doesn’t support raw image data, but does support image files, there is now also an option to enable “Enhanced Copy and Drag”, which will create temporary images files too. It’s off by default (so Chordious isn’t filling up your disk with images) but with it, you can now copy and drag diagrams into a whole slew of apps, even directly into the File Explorer! That’s right, if you don’t want to bother with the regular diagram export, with “Enhanced Copy and Drag” enabled, you can drag diagrams directly from Chordious into folders on your computer.

Here’s the full change list for 2.0.7:

    • Improved compatibility when copying a diagram to the clipboard
    • Added drag/drop functionality for managing diagrams in the library
    • Added drag/drop of diagrams directly into external apps
    • Added “Enhanced Copy And Drag” option to improve copy/drag compatibility with external apps

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: ,
Posted in Releases

Chordious 2.0.6 now available

Chordious 2.0.6 is now available, and is a minor update over the previous release.

There are a few fixes to chord qualities, but mostly this update is to change the way the built-in update checking works. There was a change in the hosting on GitHub that meant older versions can’t download updated installers at all. Since it’s technically a security issue to have a program download and execute a file off the internet anyway, now checking for updates will merely take you to the download page, and give you the chance to download the update yourself. This has the bonus that now the portable version of Chordious can now also check for updates.

So apologies to everyone for having to manually update to 2.0.6, but hopefully there won’t be any problems going forward.

I also fixed a bug where X-shaped marks required a border thickness greater than 0 to appear, which was non-intuitive and made it look like that shape didn’t always work (thanks Dermot for the heads-up!).

Here’s the full change list for 2.0.6:

  • Added Major and Dominant 7th suspended chords
  • Fixed Added Tone chords
  • Fixed issue with X-shape not appearing unless the mark type was muted
  • Updating no longer downloads and runs the MSI, instead takes user to download page

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: ,
Posted in Releases

Chordious 2 Diagram Management tutorial now available

I’ve just finished and uploaded the tutorial for the Diagram Library:

See all of the tutorial videos in the ongoing Chordious 2 Tutorial playlist.



Tagged with: , ,
Posted in Tutorials

Chordious 2.0.5 now available

Chordious 2.0.5 is now available, and is a minor update over the previous release.

You can now create new tunings based on existing ones (simply right-click on a tuning in the Instrument Manager and select “Copy”). This makes it easier, if say you only need to change a single string from a standard tuning, rather than having to manually set every string. This even works to quickly create modifiable copies of the built-in default tunings.

You can now also right-click on the results in the Chord and Scale Finders, to bring up a context menu where you can copy the image to your clipboard. (You can still do it with Ctrl+C and Ctrl+Shift+C if you want to.)

Finally, starting with 2.0.5, by popular demand, there’s now a portable version of Chordious. It’s everything you love about Chordious packed in to a single exe that doesn’t need to be installed, so you can put it on a USB flash drive and carry Chordious in your pocket!

Here’s the full change list for 2.0.5:

  • The self-contained ChordiousPortable.exe is now available
  • Can now easily copy tunings in the Instrument Manager
  • Added context menus to the Finder results
  • Cleaned up unnecessary files

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: , , , ,
Posted in Releases

Chordious 2.0.4 now available

Chordious 2.0.4 is a minor update over the last release. The biggest new feature is to enhance the viewing of the default instruments, tunings, scales, and chord qualities. Within their respective manager window, simply double-click on any of the built-in items (just as you would for any of your own, custom items).

Here’s the full change list for 2.0.4:

  • Can now view default instruments/tunings
  • Can now view default scales/qualities
  • Copy to clipboard now standardized across Finders and Library
  • Fixed bug where checking for updates gets old cached version

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: , ,
Posted in Releases

Chordious 2.0.3 now available

I know it’s been a few months since the last release, but I’ve done a lot of work behind the scenes to improve this latest version of Chordious.

The primary impetus of this release is to improve accessibility. For my day job, I recently left Xbox and joined the Windows XAML team at Microsoft. XAML is one of the technologies developers use to create the GUIs (windows, buttons, text boxes, etc.) for their Windows apps, and it’s what I use for Chordious. Through my new job I’ve been exposed to some of the many accessibility features of Windows, things like screen magnifiers and readers for the blind or near-blind, closed captions for the deaf and hard of hearing, etc.

The previous versions of Chordious were downright atrocious to navigate with Narrator, the built-in screen reader. Same if you’re primarily a keyboard user, like many users of accessibility software. I had no idea how much work and testing I should have been doing to make sure those tools play nicely with my app. So a great deal of the work in 2.0.3 is to make Chordious friendly to screen reader software and keyboard users.

Most of the controls now have proper access keys now, that is, when you press ‘Alt’ on your keyboard, the little underscores that pop up so you jump directly to a particular control. You can for example, now press ‘C’ or ‘Alt+C’ on the main window to jump straight into the Chord Finder. You can now also press the ‘Esc’ key to exit just about any window, ‘Enter’ in lists of diagrams to open the editor, or press ‘Y’ or ‘N’ for Yes or No dialogs.

Hopefully, navigating around Chordious with a keyboard will be much easier.

I also put in a lot of work cleaning up the code for readability and future maintainability. That process helped me find and fix many bugs, but also improve the app’s overall stability and performance.

But what about new features, you ask?

Thank Peter from Switzerland for suggesting I make it easier to copy diagram directly into the clipboard, rather than require you to formally export them as image files. Now, if you select a diagram in either of the Finders, or in the Library, you can press ‘Ctrl+C’ to copy the image directly to your clipboard, or ‘Ctrl+Shift+C’ to get prompted to cleanly resize the image before you copy it. You can then paste the image just as you would any other into emails, word processors, graphics programs, etc.

You can also find “Copy to Clipboard” commands in the context-menu when you right-click on diagrams in the Library and the Diagram Editor. There you’ll also have an option to copy the raw SVG text to the clipboard, if you want to see that.

Here’s the full change list for 2.0.3:

  • UI is now friendly to Narrator and other screen readers
  • Improved keyboard navigation with alt-keys for most controls, ‘Enter’ to open list items
  • Can now copy diagram images directly to the clipboard via context-menu and/or ‘Ctrl+C’, ‘Ctrl+Shift+C’
  • Can now exit out of any window with the ‘Esc’ key
  • Improved handling of update failures
  • Fixed bug where changing text in dialogs didn’t enable the ‘OK’ button
  • Fixed bug where closing a Finder during a long search may cause a crash later
  • Fixed automatic versioning code to remove dependency on VS extension
  • Fixed many miscellaneous string and localization bugs
  • Fixed Code Analysis warnings and issues to improve code quality and style
  • Fixed Setup warnings
  • Tidied XAML files for readability
  • Performance and reliability improvements
  • Updated Svg.NET to 2.3
  • Updated MVVMLightLibs to

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: , ,
Posted in Releases

What the Chordious version numbers mean

Like many developers, I have my own specific set of rules for how and when I release updates to Chordious, and how I pick the new version numbers. Earlier today I outlined a system for automatically generating app version numbers, and then thought it’d make for a nice “real-world” example to pop over here and try to explain the rhyme, reason, and code behind the version numbers I use for Chordious.

The first thing to understand is that I have two different release channels, with two classes of builds: “Official” and “Preview”. In short, Official builds are stable, infrequently updated, and targeted for all users, while Preview builds are potentially unstable, frequently updated, and aimed for dedicated beta testers. See more here: What’s the difference between “Official” and “Preview ” releases?

Now, for Official builds, the version looks like this: Major.Minor.Build.

  • Major is set manually.
  • Minor is set manually and is always an even number.
  • Build is set manually and is simply an increasing number.

So for example, the latest Official build as of this post is 2.0.2.

For Preview builds, the version looks like this: Major.Minor.Build.Revision.

  • Major stays manually set, as before.
  • Minor is set manually and is always an odd number.
  • Build is auto-generated in the format YYDDD, where:
    • YY is the last two digits of the year that the code was compiled.
    • DDD is the day of year that the code was compiled.
  • Revision is auto-generated in the format HHMM, where:
    • HH is the hour that the code was compiled.
    • MM is the minute that the code was compiled.

For example, if I had released a Preview build of Chordious on August 19, 2016 at 8:40PM UTC, the version might have looked like: 1.9.16232.2040.

So how do I manage all of this? As the post linked to above describes, I use a T4 text template to auto-generate the version information for my builds. The code (as of this post, latest here) looks like this:

<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ output extension=".cs" #>
    int major    = 2;
    int minor    = 0; // Official == even, Preview == odd
    int build    = 2;
    int revision = 0;

    string version = String.Format("{0}.{1}.{2}.{3}", major, minor, build, revision);

    if (minor % 2 == 1) // Preview build
        // Auto-generate the build and revision
        DateTime buildTime = DateTime.UtcNow;
        build = (1000 * (buildTime.Year % 100)) + buildTime.DayOfYear;
        revision = (100 * buildTime.Hour) + buildTime.Minute;
        version = String.Format("{0}.{1}.{2:000000}.{3:0000}", major, minor, build, revision);
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
using System.Reflection;

[assembly: AssemblyCompany("Jon Thysell")]
[assembly: AssemblyProduct("Chordious")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

[assembly: AssemblyVersion("<#= version #>")]
[assembly: AssemblyFileVersion("<#= version #>")]

So, when I’m working on Official builds, I just set the version numbers at the top of the code. In this case, you can see that I’m working on Chordious 2.0.2. Since the minor version is even, the code just uses the values I’ve set directly. When I’m releasing an update from one Official build to another (ie. with the same minor and major version), I just increment the build number by one. So the next Official build in the Chordious 2.0 line will be 2.0.3.

Now, when I’m done working on the Official builds and ready to start working on the next Preview, I increment the minor version by one. In this case, I’ll then be working on the “Chordious 2.1 Preview”. And now that the minor version is odd, the code will automatically override the build and revision version with each release, freeing me to work fast and not worry about keeping track of version numbers.

Finally, when the “Chordious 2.1 Preview” is over, that is, when the builds have become sufficiently stable, I’ll get ready to push out all the new goodness to normal users. I’ll increment the minor version to two, and reset the build and revision to zero. At that point I’ll release Chordious 2.2.0 in the Official channel and switch to only fixing major bugs.

Why this whole odd / even switch? Version numbers in general help me keep track of user feedback (so I know which version they’re having problems with) but it also makes it very easy to tell if a person is using an Official or Preview build. It also helps me manage my time, as I switch between “rest” periods of maintaining “Official ” builds (maybe focusing on documentation and tutorials) and “active” periods on Preview builds (where I’m coding like a madman).

As for the major version, when I update that, it’ll be because I feel like I’m releasing a whole new app. When I stopped working on Chordious 1.0 (Classic Chordious) and rebuilt the entire app from scratch, that was worth bumping the major version number. At this point I have no idea what a Chordious 3.0 would look like, so that major version isn’t going to change for the foreseeable future.

Did you find this interesting? Would you like to see more “behind-the-scenes” posts like this? Sound off in the comments!


Tagged with:
Posted in Dev News

Chordious 2.0.2 now available

It’s been about a month since the last release, so time for another update!

The primary purpose of this release is to fix various issues in the Chord and Scale Finders and to implement some much needed unit tests. Adding barres to chord diagrams was always a little finicky, but they now work as intended for both regular and mirrored Chord Finder results. Also, it turns out a lot of valid scales weren’t being found by the Scale Finder, the result of several minor bugs in the search algorithm.

The only new feature in this release the ability to cancel long-running searches in both Finders. If you start a search but decide it’s taking too long or that you meant to search for something else, you can now press the ‘Esc’ key on your keyboard to stop the search.

Here’s the full change list for 2.0.2:

  • Chord/Scale Finder searches can now be canceled with the ‘Esc’ key
  • Fixed bug with full barres in the Chord Finder crossing open/muted strings
  • Fixed bug with partial barres in the Chord Finder not mirroring properly
  • Fixed bug where reach wasn’t calculating correctly in the Scale Finder
  • Fixed bug where scales past the 12th fret weren’t found in the Scale Finder
  • Fixed bug where many scales were missed by the Scale Finder
  • Added CoreTest unit testing project
  • Added unit tests for finding where to barre in chords
  • Refactored Chord/Scale Finder code for testability added some unit tests

Update to the latest version of Chordious today, and keep the feedback coming!


Tagged with: , ,
Posted in Releases