Hi all,
A new release of Roon is now going live on all platforms!
This release features a number of notable changes, including new editing functionality and support for new file tags related to Compositions, Performances, Credits, and more. This functionality should make Roon a more flexible product for classical fans and other users who have invested time grooming their files. This new functionality is detailed below.
This release also includes some long-planned changes under the hood, including a new streaming protocol for RAAT, and an updated implementation for the extraction of file tags. These changes have been thoroughly tested by our internal QA team and our alpha testers, and while the performance increases are significant, the effects of these changes should largely be invisible. Full details are below.
A number of bug fixes and other performance fixes are also included in Build 234. These include a new implementation of Airplayâs security model that should ensure Roon again streams to 4th Generation AppleTV devices, as well as to earlier Apple TV models even when their security settings are enabled.
Other bug fixes include changes to our Album Gallery feature, keyboard volume shortcuts, Tags, Export, Crossfade, and Radio. The full list of bug fixes is below.
That should do it for this release. Thanks everyone!
The Team at Roon Labs
Roon 1.3 (Build 234) Release Notes
Roon Build 234 is now rolling out for OSX, Windows, Windows (64 Bit), and Linux. Updated versions of Roon for Android and iOS have been submitted to their respective App Stores and will be available upon approval.
Build 97 of Roon Bridge is also live for all platforms.
All platforms and apps should update automatically.
Core platforms will run 234, while iOS and Android remain on 233. Build 233 was replaced on Core platforms shortly after release to fix two minor issues. Details at the end of this post.
New Functionality In Build 234
Improved Importing of Compositions/Performances from File Tags
In 1.3, we added support for WORK
/ PART
(and COMPOSITION
/ MOVEMENT
) tags, which made it easier to control composition/performance grouping for unidentified albums in your library.
This release expands on that functionality, by adding âprefer fileâ options both at the album level, and as global library settings. It is also possible now to use these tags on a subset of tracks within an album without un-grouping the rest of the album.
When using these tags, remember:
- When tagging single-part performances, provide
WORK
orCOMPOSITION
as well asCOMPOSER
tags on the track - When tagging multi-part performances, provide
WORK
orCOMPOSITION
,PART
orMOVEMENT
andCOMPOSER
tags on each track.
Improved Importing Of Track Credits From File Tags
Roon now offers more granular control of how credits are imported from your file tags. Up until now, merging of credits between file tags and Roonâs metadata service has used an algorithm that prioritizes de-cluttering over completeness. While weâve left the default behavior the same, we have created some new settings to enable track credits to be imported unconditionally.
This is implemented as a new set of library settingsâone per credit typeâthat allow you to âprefer fileâ or âmerge roon and fileâ for each of the credit categories: Main Performers, Ensembles, Conductors, Composers, Performers, Production. For more on credit roles and their respective types, see here.
Support for editing of Recording Date + Location at the Track Level
This has been a frequent request from some of our more serious classical collectors, since performance dates and locations are so fundamental to cataloging classical performances.
As part of this release, these fields have been made into track-level properties and opened up to editing, import from file tags, âprefer fileâ behavior, etc. Combined with some of the other metadata/editing mentioned above, this greatly enhances peopleâs ability to âgroomâ Classical albums.
New File Tag Support
A number of new files tags are now supported in Roon, including file tags needed for the functionality mentioned above. More information about our existing file tag support can be found here.
New File Tags supported in Build 234 include:
-
LIVE
file tag - Multiple
LABEL
tags - âTraditionalâ composer now recognized
RECORDINGDATE
- Alternate spelling:
PERFORMANCEDATE
Alternate spelling:RECORDING DATE
Alternate spelling:PERFORMANCE DATE
RECORDINGSTARTDATE
- Alternate spelling:
RECORDING START DATE
- Alternate spelling:
PERFORMANCE START DATE
- Alternate spelling:
PERFORMANCESTARTDATE
RECORDINGENDDATE
- Alternate spelling:
RECORDING END DATE
- Alternate spelling
PERFORMANCE END DATE
- Alternate spelling:
PERFORMANCEENDDATE
- LOCATION
- Alternate spelling:
RECORDING LOCATION
- Alternate spelling:
PERFORMANCE LOCATION
- Alternate spelling:
RECORDINGLOCATION
- Alternate spelling:
PERFORMANCELOCATION
- iTunes-specific classical tags in MP4 (AAC, ALAC) files
-
@wrk
- synonym forWORK
andCOMPOSITION
(used by iTunes -
©prf
- synonym forSOLOIST
-
©mvn
- synonym forPART and MOVEMENT
-
©con
- synonym forCONDUCTOR
Support for new AirPlay security model
A while back, Apple implemented a more secure pairing process for AirPlay devices. Among other things, this makes it more possible to deploy AirPlay in less secure environments.
They first implemented these features as an option on some older Apple TV models, but allowed them to be disabled by the user. As of TvOS 10.2 (AppleTV 4 only), these security features can no longer be disabled, and as of that OS update some users found themselves unable to use AirPay with software that didnât implement the new security model.
We have found a solution that should allow Roon to work properly with these devices moving forward. This also enables the use of Roon with older Apple TVâs that have these features enabled.
If you are using an Apple TV 4, we suggest that you set it up in either âPasswordâ mode or âFirst-Time Passcodeâ mode. The third optionââPasscodeâârequires frequent re-entry of credentials, which is very annoying.
RAAT Audio Streaming Optimizations
Most audio streaming protocols are designed, implemented in hardware, and then set in stone. This happens because updating firmware in hardware devices is difficult, and when that hardware is made by dozens of different manufacturers itâs nearly impossible. Thatâs why most AirPlay users never install a firmware updateâthe device is speaking the same AirPlay protocol it did on day one.
In an ecosystem like that, evolving is difficultâtoo many changes and you end up with a range of devices each with slightly different behavior. This is a nightmare for QA and support, so device implementations for protocols like UPnP AV and AirPlay are often set in stone.
When we set out to design RAAT, we hoped for a brighter future â a future that can evolve with our budding hardware ecosystem. Trying to push firmware updates to Roon users via our 60+ hardware partners wasnât realistic, so we designed RAAT to work differently: Instead of baking the audio streaming protocol into the device firmware, the firmware contains the absolute minimum needed for us to âbootâ a second piece of code delivered to the device the time when the Roon Core makes its connection to the device. This second piece codeâdelivered âjust in timeââdefines the streaming protocol that Roon uses to speak with RAAT devices.
Todayâs release of the core includes a re-design of RAATâs audio streaming protocol that uses TCP instead of UDP to transmit the audio stream.
In day-to-day life, most of the protocols you use are TCP-basedâbrowsing the web, viewing Netflix or Youtube. Streaming audio using TIDAL, Spotify, OpenHome, UPnP, MPD, or SMB. The two most popular UDP streaming systems that most people have contact with are AirPlay and Skype.
We have decades of experience building audio streaming protocols around UDP, and it has generally been our first choice, but we also know that both TCP and UDP, when implemented properly, are suitable for high-bandwidth, high-quality media streaming, so it was worth undertaking an exploration of âthe other sideâ to see if there was actually a reason to consider switching.
After a series of experiments and prototypes, and a detailed exploration of both approaches, we found that we were able to extract more performance and reliability from TCP, so we took it to the next phase and started experimenting with TCP in our alpha environment a couple of months ago.
We found that using TCP reduces CPU load on the audio device and in the coreâprimarily by reducing the context switching overhead associated with âwaking upâ for each packet. Using TCP also allows us to offload work associated with re-assembling the packetized audio stream from RAAT to the operating system kernel on the audio device, where it can be implemented more efficiently and simply.
We also found that TCP is a lot âfriendlierâ to poor networks and routers. Not all router manufacturers perform extensive QA with high-resolution UDP audio streams, but they all test to make sure Netflix and Youtube (both TCP-based) work. TCP is also less likely to create trouble with exotic network setupsâmanaged switches, jumbo frames, etc. If you have experienced trouble with these, itâs definitely worth taking another shot to see if the new protocol is easier on your network.
This change rolls out as part of the update to your Roon Coreâwhich will use the new protocol when speaking to all RAAT-based zones. Aside from updating the core, no firmware or software updates are required on any of your devices.
Infrastructure improvements related to file tags
Since the beginning, Roon has used an open source project called taglib
in order to read and write file tags. We have always maintained our own fork of this library because of our need to support some more exotic features (DSD formats, wave64, etc). As a result, the library we were using was very old. Upgrading major low-level components like this is not flashy, and not funâmostly just a lot of workâbut itâs necessary to keep Roon current.
With this release, weâve started with their most current version, merged in all of our changes from the past decade, and then undergone an exhaustive QA procedure to ensure that none of this creates unintended issues or behavior changes.
The new version of taglib has much improved support for large (>2GB) files, fixes dozens of small bugs related to tag extraction from nearly all file formats, addresses some problems with our export feature, and puts us in a better position to read and write file tags accurately and reliably going forwards.
Other New Functionality
- Shift-Ctrl-Up/Down can be used to increment volume by one unit instead of 5 units
- Volume control keyboard shortcuts now work during grouped playback by manipulating the master volume slider
- Deleting a file in Roon also deletes it from the database (no longer need to use Library Cleanup)
- Playlist details: Added âPlayâ to 3 dots on track rows
Bug Fixes and Performance Improvements in Roon Build 234:
- Upgrade to mono 4.8.1 (Mac + Linux only)
- Turns on new SSL implementation in mono
- Library Import settings properly applied
- SRC Changes CPU-optimized SRC paths for 48->{352.8,176.4,88.2}, 96->{352.8,176.4}, 192->352.8
- Fix focus behavior when using âView All Artistsâ on a tag that contains composers
- Waveform play-progress offset fixes with Sonos devices
- Android crash fixed
- Better error message in case of export failure
- Tracks no longer fail to import because of âVolume Normalizationâ and âCDDB1 Infoâ tags
- Export generates more compliant flac files
- Crossfade: double speed playback after rewinding fixed
- âDSD sample rateâ dropdown fixed
- Tagged composers work as expected in artist browser
- Fixed presentation of âDSD Sample Rate Conversionâ in signal path for some Roon Ready devices
- Fixed an endpoint crash on some very old Roon Ready firmware versions
- Minor changes to how we make TIDAL API requests to conform to their current rules
- Better storage errors
- Album Gallery: duplicate images fixed
- TIDAL removed from âother versionsâ
- Performer details: View All Production link goes to album focus
- âResetâ button shown on Composition and Playlist browsers when filtered
- Clumping issues with some dxd/dsd content resolved
- Last.fm log in issues resolved
- ALAC files >2gb now import properly
- Fix display error where parts were being considered like multi-performances
- Track editor: missing âFile modification dateâ option in âImport Dateâ section fixed
- Memory consumption no longer goes dangerously high after exporting big amount of files
- Fixed crash when detaching the drive with media during import procedure
- Fixed crash when a 2gb+ file is added to the watched folder
- Fixed playback stoppage when up-sampling to DSD256 with crossfeed ON
- Fixed issue setting metadata preferences via âAlbum editorâ for Recording Date/Location
- Fixed crash when entering an accented character in the search box on Mac
- Fixed bug causing the Delete confirmation window to not close in some cases
- Fixed issue exporting dff files
- âRead Change Logâ link is fixed on Roon Bridge
- Fixed issue displaying files paths in Japanese
- Fixed issue exporting 2gb+ files on Linux
- Audio playback no longer stops unnecessarily when phone goes to sleep. Note that it is sometimes impossible for us to keep the WiFi connection up when the screen is turned off and the phone is powered by the battery.
- Better handling of file tags with several discrete values
- ROCK is identified in Choose Your Core screen
- Proper error message is shown when attempting to playback content which isnât available
In Build 234 (replaces Build 233):
- Fix for playback issues on certain multi-channel devices
- Fix for âView All Tracksâ issue on Tags