More harmonic playing with music keys

In the upcoming version of Neon, release Electric-sun, we will give you a new feature to detect the music key, the tonality, of a specific file.

This key can help you to create harmonic playlists where the playback either follows the same key or smooth transitioning to a nearby key.

A bit of theory…

A western music scale is made up of 8 notes arranged in a pattern of tones and semitones. A semitone is the difference in pitch between any two adjacent keys on the piano. A whole tone, or to save space simply a tone, is the difference between two notes that have one other note in between them – usually a black key, except in the case of notes B and E where there is no adjacent black key to the right.
To form a major scale, the pattern is tone – tone – semitone – tone – tone – tone – semitone. This helps explain why the piano keyboard is laid out the way it is. This pattern is followed by all of the white keys on the piano, forming the C Major scale (8B).
Quote from Mixed in key

By using the new commands in Neon, you can identify which specific tone/chord a track maps to. A key chord is for example A, A minor or D#. The returned key chord will be mapped to a key in the Camelot system:

camelot.png

 

The key will be stored on tags and in Neon’s database.

But how do I use it?

To take advantages of music keys, first be sure to generate them for your files via the Tag editors or via a script.

You can then do the following:

  • Perform a search to find music files related to a specific music files which have the same key. Playing those files will avoid melody clashes, so despite the genre of the next track, it will smoothly match the currently playing track.
  • Starting with a specific track and it’s key, create a playlist that starts with the specific key, and smoothly moves to tracks with nearby keys:
    • 10A (starting track)
    • 10A (track 2)
    • 10 B (track 3)
    • 9 B (track 4)
    • 8 B (track 5)
    • 8A (track 6)

It is recommended to move clock-wise or counter-clockwise around the wheel for the smoothest transitions.

We are also elaborating with taking advantage of the music keys from more tools, but more about that in a future post.

More tips and tricks

Neon stores the music key in the same way as Mixed-in-key meaning that the tags will be compatible with Rekordbox for example. This means that you can prepare your files for DJ mixing with Neon and after you have analysed the music key, just re-read the tags from Rekordbox.

Neon is using libKeyFinder and Boost libraries for detection of musical keys.

 

Automate tasks with Neon!

Starting with the next release, Electric-sun, we will add the possibility to automate tasks with scripting support!

Some history behind automating with Helium

In earlier versions of Helium we used a concept called Actions which could be used to run one or more specific jobs in a batch with a specific selection of files.

An Action was an operation without user-interface or interaction. For example you could change a specific tag field, delete a specific tag type or calculate AcoustId.

Actions were a great and widely used tool, although a bit too limited since it was not possible to add any logic to how the Actions were executed or to ignore a specific Action based on a condition.

Therefore we are now exposing a scripting engine which let you do almost anything by executing a script on a specific selection of files.

The core engine

You can write scripts with any text editor of your choice, we recommend an editor such as Notepad++ or Visual Studio Code which comes with color coding and intellisense support.

Scripts are written against the .NET framework in the C# language and when executed they are pre-compiled and will give you feedback of the script compiled successfully or not. If it was a successfull compilation it will be executed.

The anatomy of a script

A script needs to follow a specific structure to be able to be executed from Neon.

In short, a namespace needs to be set, a constant name for the entry point (class) needs to be set and last a static method signature needs to be written.

Does it sounds complex? It is not:

using System;
using NeonScripting; 
using System.Threading.Tasks;
using System.Collections;
using System.IO;
using System.Text;
using System.Linq;

namespace Neon
{
    public class Script
    {
        public bool Run(INeonScriptHost host)
       {
            // The actual code will be placed here
        }
    }
}

In the above code there are some important parts marked in bold:

  1. Using directives, System and NeonScripting must be referred
  2. The namespace must be set to Neon
  3. The class name must be Script
  4. The Run method is the entry point and must be defined as a bool method. If true is returned the script executed OK, otherwise not.

When the above skeleton is set, you are ready to do some scripting.

In general you can do everything that you can with C# and the .NET language, plus invoking Neon specific functions. These specific calls can be accessed via the host.RemoteCalls member.

So, what can it be used for?

Above we mentioned the “old” system with Actions and its limitations. With a script you can easily do the same but control it in more powerful ways. Below follows some examples:

foreach(var track in host.Tracks)
{
    if (track.Bpm <= 0)
    {
        track.Bpm = host.RemoteCalls.CalculateBpm(track.fullFilename);
    }
    else
    {
        track.IgnoreChanges = true;
    }
}
host.RemoteCalls.CommitAllChanges(host.Tracks);

In this example, we iterate over the selected tracks, check if the track contains a value for Bpm or not. If not, the Bpm will be calculated and set. Finally all changes will be commited (saved) to tags and the database.

Several different RemoteCalls are exposed from Neon allowing you to easily perform tagging, getting track-, album- and artist information, calculating bpm, renaming files (database will of course also be updated), executing the rename template engine and much more.

There are also several help functions available as remote calls which will allow you to select a specific output folder, output filename, execute confirmation dialogs and update progress.

We will include some sample scripts with the release that shows how scripting can be used in various ways, ranging from simple tag operations like switching field contents to renaming operations and more complex list generating functions.

Since the .NET framework is used a lot of functions will already be available to just use!

We can write a whole novel about all nice things and details that will be possible with scripting, but we would like to leave the creativity to you – the users.

We are eager to see what you will come up with using this new scripting support!
 

 

New Windows 10 apps under construction

We are working on a UWP (Universal Windows Platform) version for Windows 10 devices of Helium Remote.

This app will replace the old Windows gadget, Windows Phone and Windows RT version of Helium Remote.

The great thing with UWP apps is that they are designed to be use a responsive layout and can therefore run on any device, ranging from a Windows Mobile phone device, a Windows 10 tablet device to a fullsize desktop version.

The user interface will automatically be adjusted for the device and even the screen width it is running within.

Initially we are working with the core basics and Helium Remote, but we also plan to release a UWP version of Helium Streamer as well.

Please note that the design is under construction and not all functions are available yet.

Tidy up your file names

Helium has always offered good tools and options to rename files based on tags. Helium 12 will continue on this path but we have taken a different approach this time.

In order to create a new or modify an existing rename template in Helium Music Manager (version 11 and back) you needed to go into and out of a lot of dialogs. This may have helped some users since it’s a somewhat guided experience, but we also think it might have confused some since it deviated from what other apps were doing (and are still doing).

We decided to take on a similar approach as others, at least for the moment. We can always build on what we have if it turns out that our users were more comfortable with the old solution, although we do believe this new rename tool will satisfy old as well as new users, whether you have or have not used a similar feature before.

So, what have changed? Everything really.

Instead of a lot of user interface getting in the way, you will write your templates by hand. Creating a template that previously took minutes will now take seconds, as long as you are able to grasp how the template syntax works. This will be explained below. Lucky you!

If you have used a “tag to filename” or a similar tool in another application, or if you have used the “Filename to tag” feature in Helium Music Manager you will feel right at home.

Lesson 1 (the basics)

Say you want your filenames to look something like this:

David Bowie – Lazarus.mp3

Easy. Just type in this template and hit Go (or “Rename files” as the button is really named):

{{artist}} - {{title}}

What’s that around the artist and title names you ask? Curly brackets of course. Why do we need to use two opening and two closing all the time you ask? You’ll see.

Lesson 2 (prefixes and suffixes)

Say you want to include a little more information in the names such as a “Remix” field and a “Subtitle” field. Easy, you say. Looks like this:

{{artist}} - {{title}} ({{subtitle}}) [{{remix}}]

Of course. But what about files that don’t have any subtitle or remix tags set? That would end up with something like this:

David Bowie – Lazarus () [].mp3

You don’t want that. This is where the concept of prefix and suffix comes in. Prefix is something that is included before a field and suffix is included after the field. Look at this template:

{{artist}} - {{title}}{ ({subtitle})}{ [{remix}]}

As you can see we have included a prefix and suffix in between the curly brackets. This will make the field disappear entirely (including the prefix and suffix) from the file name if the field is empty in tags.

As you see you can use a combination of literal text (like the ” – ” between artist and title) and prefix/suffix. Literals work fine as long as you are sure that the fields before and after will always contain something. Use what fit your needs.

Lesson 3 (folders)

Creating folders based on tag information is important to any serious music collector. You can enter folders into your templates by adding backslashes to specify new folders. If you would want to move songs into artists’ folders like this:

David Bowie\Lazarus.mp3

You type in a template like this:

{{artist}}\{{title}}

Note that this would create an artist folder wherever the file was previously located which may not be what you expect. To tell Helium 12 exactly where you would like your files to end up you will need to explicitly include the path in your template, like this:

C:\My music\{{artist}}\{{title}}

Lesson 4 (numbers)

Numbers can be included just as any other field in a template. Just wrap the field between two curly brackets as usual:

{{track}}. {{title}}

which produces this file name:

3. Lazarus.mp3

Sometimes you might want to pad numbers with leading zeros, perhaps to make them line up neat in the lists. Would that be hard? You know it won’t. Example ahead:

{{track(2)}}. {{title}}

Insert round brackets after the field name and enter the number of numbers (no pun intended) you want your filenames to have. The above template would produce:

03. Lazarus.mp3

While

{{track(5)}}. {{title}}

would produce

00003. Lazarus.mp3

Lesson 5 (limit lengths)

If you want to limit the length of some fields you can do this in a similar fashion to how number padding works. Say you would want to create a file structure like this:

C:\My music\D\David Bowie\Blackstar\03. Lazarus.mp3

Your template would look like this:

C:\My music\{{artist(1)}}\{{artist}}\{{album}}\{{track(2)}}. {{title}}

As you see you include a limitor between round brackets. The 1 says that the artist field should be limited to a maximum of one character.

Lesson 6 (replacement for empty tags)

As mentioned earlier, an empty field will always be stripped from the filename along with the prefix and suffix. Sometimes you want this but sometimes you would want to include a placeholder to keep consistency in file names or folders. Consider the following file structure:

C:\My music\Album\2016\David Bowie – Blackstar\3. Lazarus.mp3

The following template would work as long as the “Release type” field contains some information:

C:\My music\{{releasetype}}\{{releaseyear}}\{{artist}} - {{album}}\{{track}}. {{title}}

But what if you run across a couple of files that does not have any value in the “Release type” field? These files would end up here:

C:\My music\2015\Basement Jaxx – Awesomeness (Bootleg)\5. Best. Song. Ever.mp3

See the missing release type folder? This can be solved using this syntax:

{{field|Replacement text}}

i.e. a pipe character after the field name followed by the text that should replace an empty field. The following template would fix the issue with folders ending up in the wrong place:

C:\My music\{{releasetype|Unknown}}\{{releaseyear}}\{{artist}} - {{album}}\{{track}}. {{title}}

Which would place the Basement Jaxx tune from above in this folder instead:

C:\My music\Unknown\2015\Basement Jaxx – Awesomeness (Bootleg)\5. Best. Song. Ever.mp3

Complete list of fields

Below is a list of all supported fields that will come in next release:

{{bitrate}}
{{encodingtype}}
{{frequency}}
{{album}}
{{albumartist}}
{{artist-so}}
{{album-so}}
{{albumsubtitle}}
{{artist}}
{{artist-so}}
{{bandorchestra}}
{{bpm}}
{{comment}}
{{composer}}
{{conductor}}
{{copyright}}
{{cd}}
{{track}}
{{custom1}}
{{custom2}}
{{custom3}}
{{custom4}}
{{custom5}}
{{custom6}}
{{custom7}}
{{custom8}}
{{custom9}}
{{custom10}}
{{encodedby}}
{{genre}}
{{initialkey}}
{{isrc}}
{{label}}
{{language}}
{{lyricist}}
{{media}}
{{mood}}
{{originalartist}}
{{originallyricist}}
{{originaltitle}}
{{preference}}
{{produced}}
{{rating}}
{{recordingyear}}
{{releaseyear}}
{{remix}}
{{situation}}
{{softwaresettings}}
{{subtitle}}
{{tempo}}
{{title}}
{{title-so}}
{{totalcds}}
{{totaltracks}}

End of story (for now)

We hope all of this makes sense and that it will speed up your work flow.

Have any suggestions to add? Missing a certain field? Let us know in the comments.

Welcome to Neon, release Deedrah

The long awaitened version of Neon, release Deedrah is now finally available!deedrah

This version comes with many new features and functions, a lot of them have been mentioned earlier in this blog. Below follows a list of our primary goals.

Primary goals with with release Deedrah

  • Support for editing of Subtracks. Subtracks should support all sort order fields.
  • The album pane in the Tag editor should be available for quick editing of album related information.
  • Track titles should be linked to a track details page which shows detailed information about the specific track.
  • Support for a search results page which should be shown when a search is performed from the qucik search field. The results should be presented as artists, albums and tracks.
  • Implementation of an advanced search tool.
  • Support for multiple users. This includes creation of new users, login support as well as individual ratings, favourites, playlists per user.
  • Support for smart playlists available from the playlists view.
  • Possibility to browse playing statistics for specific dates from the played on this day page.
  • Implementation of a genre view.
  • Implementation of a year view.
  • Auto enqueue support.
  • Web service support. The web service should be consumed for our mobile applications as well as made public with documentation.
  • Support for a light theme.
  • Full support for sort order as well as auto-set sort order in the tag editors.
  • Implementation of the duplicate finder too.
  • Basic support for downloading of track information from the Tag editor.

Apart from the major changes above a lot of fixes, refinements and small improvements has also been implemented. All of these features have made release Deedrah a very usable version.

If you are interested in testing Helium Remote for Android it is already possible. Please contact us for more details.

If you are interested in developing with our web service api, it is already possible. Please contact us for more details.

What’s planned for our next release, Electric-sun?

  • WASAPI sound support.
  • Implementation of the Analyse files tool.
  • Update of our mobile applications so that they consume our new web service api.
  • Support for multiple-download plug-ins
  • Possibility to edit label information.
  • Basic scripting support.
  • A first version of the Tag to filename tool.

Download and installation

Click here to download Neon build 416

Before installing this version, be sure to uninstall your previous version and delete your old settings files. The settings files can be found under C:\Users\Username\AppData\Roaming\Imploded Software\Helium. Simply delete all entries in this folder before installing the new release.

Control Neon with your Android device!

remote

The last weeks we have been working a lot with the new web services for Neon.

All services are wrapped in a new easy-to-use REST API which allows everything from browsing, searching, streaming and remote controlling.

Helium Remote for Android is the first mobile app which uses these new API’s. If you are interested in testing the revised version of Helium Remote for Android, this will be possible when Neon – release Deedrah is out.

But, it does not stop here – if you are interested in trying our new REST API’s in your own solutions, this will also be possible when the new Neon release is available.

News about release Deedrah

Release Deedrah is currently in it’s final testing phase and we hope to have it ready for an official release in the mid of February 2016.

A lot of things have happened since release Chakra, some of the major changes will be presented below:

  • The Subtrack editor is implemented. Since subtracks behave just as normal tracks in Neon, this is an important addition.
  • The album pane is back in the Tag editor. The album pane will be available when files from one specific album is open and allow you to quickly adjust information for album related fields as well as quickly manage the album picture.

     

  • Track details is a new view which can be accessed from all track views by clicking the title link. The track details view will show detailed information about a specific track such as:
    • Detailed tag information
    • Appearances, releases where the specific track appears
    • Other versions, remixes and other versions of the specific track
    • Similar tracks to this track
    • Playing history, at which dates and times the specific track were played
    • Lyrics for the specific track
  • Search results page. When a search is performed via the quick search bar or via the new Advanced search (read more about this tool below) results will be presented in a tabbed page allowing the end-user to smoothly review artist, releases and track matches.
  • The Advanced search tool is reintroduced and gives you the possibilities to create powerful searches to find exactly what you need from your collection.
  • Support for multiple users. Just as in earlier Helium versions it is now possible to create new users, set passwords to require a login and more. When working with multiple users ratings, favourites, playlists, smart playlists (read more below) will be unique per-user.
  • Smart playlists are now supported again and are available from the Playlists view. Smart playlists are designed with a tool similar to the Advanced search.
  • Various improvements has been made to Statistics. The statistics page will from this release show tracks played the last thirty days instead of the last month. When a specific date is clicked it shows which tracks that were played on that day. From that page you can now browse back/forward as well as select a specific date.
    From the artists and releases detail pages it will now be possible to see specific statistics about the artist or release.
  • A new view, the Genres view, has been introduced. From this view it will be possible to quickly select a specific genre and then view all artists, albums and tracks from that genre.deedrah-genres
  • Auto enqueue support. When playing tracks you can now enable the auto-enqueue function to quick and easily never let your play queue run out of tracks.
  • Another large – yet a bit invisible – feature that we have implemented for this release is web service support. By activating the web service you will be able to use our mobile apps to either remote control Neon from your device or stream music from Neon to your device. The first app that will be able to use the new web service is the Helium Streamer for Android app.

Apart from all of the major changes above we have of course made some minor useful improvements such as the possibility to cut, copy and paste Playlists and Smart playlists between folders, the possibility to shuffle tracks in the Play queue as well as support for media hotkeys.

As you can see from all things above, release Deedrah is a large release with many new features will take us one step further the final version of Neon – the new Helium!

 

Welcome to Neon, release Chakra

As an early Christmas gift we are today proud to present Neon – release Chakra!

artists

Since the previous release we have worked hard with all the feedback we have received to fine-tune the existing functionality as well as adding new features. A big thank goes out to our testers that as always have helped us a lot to fine-tune this release.

Primary goals with release Chakra

  • Correction of reported bugs and fine-tuning of features related to feedback
  • Implementation of a first version of the Music explorer view.
  • Creation of a new spreadsheet based Tag editor with support for all tag-fields
  • Implement a tool to convert files to different file formats whilst preserving tag information
  • Implement a tool to split files based on CUE files, sub-track information or manual data. The tool should optionally be able to convert the resulting files to another audio format.
  • Create a Now playing pane which can show more information about the playing track. This first version supports lyrics with basic HTML formatting.
  • Downloading of album pictures with the available plug-ins, the end-user should be able to select which specific resulting picture he/she would like to apply.
  • Create an optional filter for the artists view which will allow end-users to show all artists or only album artists.
  • Extend the information about a specific artists releases, splitting them into two different tabs, Discography and Appearances. The presentation should be grouped by release type-
  • Implementation of some of the more common options in an Options view to allow easier and wider configuration of the Neon.
  • Expose more and configurable columns for track lists (Music explorer, Playlists view and Tracks view)
  • Implement a landing page for Statistics with drill-down information for a specific day
  • Implement supports for calculating Bpm (Beats per minute) automatically and manually from both tag editors.

Worth to mention is that we have also worked hard on performance optimizations, added automatic replay gain support in the player and refined a lot of the user interface and the user experience flow.

What’s not included in this version

A lot of new features are implemented as you can see, but template editors, full customization of tools/view are not yet in place since we are still working on our core functions. The tag editor does not yet support the album mode, but this is planned for our next release.

If you miss a specific feature/configuration or such, please let us know!

What’s next?

For our next release, Deedrah, we plan to implement these functions:

  • Subtrack editing
  • The album mode in the Tag editor
  • A first version of web services
  • A first version of the File rename wizard
  • Advanced search
  • A Discogs plug-in

Download and installation

Click here to download Neon, build 318

Before installing this version, be sure to uninstall your previous version and delete your old settings files. The settings files can be found under C:\Users\Username\AppData\Roaming\Imploded Software\Helium. Simply delete all entries in this folder before installing the new release.

Helium Streamer 3

The work on Helium Streamer 3 is ongoing as well. The following new features can be used in this release:

  • Multiple user support.
  • Playing tracks now saves playing history and reports progress to Last.fm if enabled from Neon.
  • Rating of tracks can be done from the player.
  • Setting favourite on tracks can be done from the player.
  • Transcoding of FLAC and OGG is now enabled. You will need to change the user which the Windows Service (Helium Streamer) is running under to an account with access to the files.
  • Persistance of play queue between sessions.

We have also made good progress on some features that will be released in an upcoming version of the Helium Streamer. This includes the creation of a database and adding of files without the need to run Helium. Since the Streamer runs as a service this means that your database can always be up-to-date if you allow background updating of your library from the Streamer. It also allows for stand-alone installations of the Streamer which can be interesting for new users who may not need or want Helium at first.

Download and installation

Click here to download Helium Streamer 3, build 913

Before installing this version, be sure to uninstall your previous version and make sure that the folder at C:\Program Files (x86)\Imploded Software\Helium Streamer is emptied. It’s important to reboot the computer before installing the new release since the Windows Service that Helium Streamer uses can only be uninstalled upon a reboot.

It’s all about tagging

For the next release of Neon, release Chakra we have worked hard to get the tagging experience better.

We have implemented the standard Tag editor, a spreadsheet based tag editor similar to the one in earlier Helium versions but with even more functions.

Both the Tag editor and the Advanced tag editor supports the same (all) number of tag-fields with the same in-detail editors for pictures, involved peoples, multiple artists and more.

It also comes with smart extraction and switch functions to speed up your tagging tasks.

tageditor

Another new highly useful feature is that you can now caluclate bpm for all or specific files loaded to the tag editor in background, meaning that you can continue to adjust your tags whilst the bpm is being calculated.
The bpm calculation in Neon is also more precise and quicker than in earlier Helium versions.

Something we also have fine-tuned is the manual bpm calculation tool.
It now comes with a more intuitive user interface, showing your manual tapped bpm, the current calculated bpm which applies to the currently playing part of the track, how many taps you have made as well as an indicator for which beat within a bar you are in to more easily keep the tempo during the bpm measurement.

beat
Both the manual bpm calculator and automatic bpm calculation are of course available from both tag editors.