in ,

JPlay for iOS – UPnP Control Point

Most streamers and DAC/Streamers are “remote-controlled” by means of apps to be installed on Smart Devices, i.e., tablets or phones. Some of these apps are developed with dedication and great effort by the companies that produce the hardware on which they are to be installed; this is the case, for example, with the now defunct AURALiC, which developed the excellent Lightning for years, or with the apps of Linn, Lumin and dCS. Other companies prefer instead to rely on software made by external developers, such as Bubble UPnP, mConnect, etc. JPlay for iOS is the proposal, presented for quite some time now and therefore fully matured, of the Polish company JPlay, which for years has been making the program of the same name for Windows, as well as the popular JCat-branded hardware that I use with satisfaction in my audio PCs.

General framework

I begin by premising that the topic of UPnP(Universal Plug and Play) is rather complicated and lends itself well to “informational slips” on the part of those – yours truly in this case – who, in an attempt to make complex concepts understandable, might oversimplify. So I will be forgiven by readers who are more knowledgeable about this specific subject and have a higher technical background than I do.

UPnP: some brief hints

Originally created by Microsoft in October 1999 as a protocol package, UPnP was further developed by the Open Connectivity Foundation (OCF), which has been managing its developments since 2016. In its AV version, it is to date the most widely used protocol in the audio video industry. This basically explains why JPlay for iOS works with almost any network streamer or DAC on the market. Before we get into the merits of the app, I think it is useful to recall once again the basic concepts of the UPnP standard. A digital audio system based on this architecture consists of the following components Software side: Media Server, Media Renderer and Control Point. Music files are stored on the media server. The Media Renderer receives the music files from the server and converts them into a digital audio data stream, which is then sent to the digital analog converter (DAC). The Control Point acts as a “control center” between the media server and the renderer and displays the music tracks stored on the server. It does not actually affect the quality of audio playback directly, since the audio files are not sent from the media server to the renderer through the Control Point, but directly albeit with its intermediation. Nevertheless, a Control Point communicates with the server and the renderer through the network infrastructure. Keep this in mind, because we will return to it shortly.

UPnP schematics
In the diagram, a system architecture based on PC and DAC (via USB) and one based on UPnP are compared.

Description

JPlay for iOS is a Control Point compatible with the UPnP/AV standard, running on both Apple iOS and iPadOS; this implies that Android OS users are cut off; sorry, but they are. Actually, it also works on Macs as long as they have an M1 processor or higher. On the audio hardware side, compatibility is assured with almost all network DACs on the market. By this I mean those DACs that have a wired or WiFi network port. In case they do not have it, I am therefore referring to “pure DACs,” one can resort to an external component that adds such functionality, such as a WiiM or a Volumio Rivo Plus or a properly configured Raspberry, just to name a few. Consistent with its role as a Control Point JPlay scans content on one or more UPnP servers, finds UPnP renderers on the same network, and-if desired-connects to streaming platforms (Tidal and Qobuz). Beyond this there is to report a beautiful graphical interface through which one interacts with one’s music collection. The interesting thing is that JPlay does not need a Core (server) to work as is the case with, for example, Roon or Logitech Media Server.

JPlay - settings
Detail of the settings screen where we find the local libraries (two NAS with Minimserver in this case) and the Qobuz and TiIDAL platforms. The Audio Output section lists the Media Renderers found on the LAN.

Context of the evidence

Below I will describe the context in which I routinely use JPlay for iOS and in which my testing took place. This is by way of example only and with the purpose of providing useful elements to understand how, eventually, this app might integrate into your usage scenario and system architecture:

  • JPlay running on iPad or iPhone;
  • Local music stored on two (aging) QNAP NAS on which MinimServer 2 runs;
  • Streaming music from Qobuz;
  • Intel based audio PC with AudioLinux Operating System (MPD+UPNP DCLI) as UPnP media renderer with USB audio output ( JCat USB XE PCI sound card);
  • Aqua La Scala MKII DAC that receives the audio signal via the USB input.

As an alternative to the last two items:

  • Network interface Playback Design STREAM – IF (equipped with Ethernet port and UPnP compatible);
  • DAC Playback Design MPD-8 connected by optical fiber (P Link protocol) to the STREAM – IF;

Or again:

Technique

Before I report on the interface and usability of the app I would like to write something with respect to its technical rationale , summarizing what I was told by Marcin Ostapowicz, i.e., the developer as well as owner of JPlay/JCat. Typically a UPnP control point generates quite a lot of traffic on the network, constantly communicating with the server, renderers, streaming platforms and other entities (e.g., switches, routers, etc.). JPlay’s goal is to keep the traffic coming from the Control Point to an absolute minimum. To this end, on the settings page, we find the “Update Time” parameter, which is used to adjust the cadence at which JPlay performs playback status checks. The range of the parameter is from 1 to 12000–I ignore the unit of measure to which the number refers–and the developer urges using a value close to, but before, the point at which JPlay loses control of playback.

JPlay for iOS - settings
Highlighted in the image is the "Update Time" parameter discussed in the text.

My limited computer skills do not allow me to argue about how determinate this parameter can be with respect to playback quality. I merely report that JPlay outclassed in terms of pure sonic quality my usual reference in this area, namely mConnect. As for Roon, whose sonic quality is in my opinion relatively inconstant between versions, only with the latest upgrades can one say that there has been some competition. Transparency, detail, timbral balance, harmonic richness, everything in JPlay for iOS is at excellent levels. The “real competition,” assuming we can talk about it, is only with HQPlayer, which, however, requires dedicated hardware that can still be somewhat integrated by JPlay as we will see later.

User interface

My experiences of use with the control points mentioned in the opening of this article are mixed: while I appreciate their ease of use-assuming everything works smoothly, otherwise you’d be from listening tocomputer troubleshooting in no time at all-and their compatibility with a wide variety of hardware, they cannot, however, in any way compete with the completeness of the interface of the best software such as, as an obvious example, Roon. JPlay follows a different trajectory: I summarize the concept by reporting that, in most cases, friends who saw me using it thought it was Roon. And indeed, there is no denying that the reference is just that. Which, for yours truly, is the highest compliment I could pay, as I continue to consider Roon a reference in terms of user interface, search capability, and usability. JPlay for iOS shines in terms of quality of graphics, rational organization of content, richness of content with artist-referenced biographical notes, song lyrics, cross-references, in short, a richness that you really wouldn’t expect from a “simple” UPnP Control Point.

JPlay - Mini Player
Especially convenient is the Mini Player display mode.

Populating the JPlay for iOS database with content is very simple: basically you just select one or more media servers from the Settings page, and/or login to your TIDAL or Qobuz account (or both) if you have a subscription to them. Then JPlay will be the one to download the list of content (just the list, not the files themselves) and index it. The first aspect I want to bring to your attention is that JPLAY integrates streaming services and local content into a single interface. This allows for much more effective and easier navigation and search than players that drastically divide the sources. Nevertheless, for more traditionalist users-I know many of them-you can always enable navigation based on the hierarchy of folders on the server. A hierarchy that, especially some users who are particularly demanding with respect to this aspect, take years to fine-tune.

The home screen shows at the top the total number of: albums, tracks, artists, composers, and playlists present. A click on each of the panes takes us to the respective list view pages. Very convenient. Also on the home page is a list of the latest tracks played, Qobuz Top Albums and Playlists, favorite albums and tracks as well as the latest albums uploaded. For each item a small icon identifies its origin, i.e., whether from local server or streaming platform. I want to point out that the home contents mentioned above can still be edited and/or rearranged from the settings page. In practice, therefore, one can adapt JPlay to one’s own needs by “tailoring” its interface.

JPlay for iOS - Home
The home page can be configured by the user at will. Here we put the recently listened tracks and the Top Albums from Qobuz. At the bottom is the track running from Minimserver and finally, at the top, the general counters.

Moving to the album display page, it is possible to access the filtering function, which turned out to be really well done: not only can one perform searches by artist and composer, but also set up multi-criteria searches referring to different parameters-even technical ones-of the file. For example, “Find files in DSD format, Classical genre, period 1900.” The operation of the filters can also be somewhat customized by the settings that can be applied to metadata management from the appropriate settings page.

Through the Focus page, complex multi-criteria searches can be performed thanks to the TAGs associated with each audio track.

JPlay supports automatic contextual search, meaning that if I am listening to a Miles Davies album I will be offered other albums by the artist, or different versions of the same album, even suggestions of albums by different artists but somehow related to Miles Davies.

JPlay for iOS - album page
The playing album page shows, in addition to the tracks, information about the format and origin of the file being played.

The page of the album being played, in addition to the list of tracks, contains useful information regarding the technical characteristics of the file being played, as well as its provenance (server or streaming platform). Clicking on the artist’s name then opens (if available) a page with relevant biographical notes, discography and whatnot.

JPlay for iOS - Artist page
In-depth page on the artist (orchestra in this case).

Although I don’t happen to use it on a regular basis I must point out the presence of the JPLAY Radio option that takes charge of continuing to search for music consistent with what we were listening to at the end of a track, album or playlist. This option, very convenient when you listen to background music, he proposed tracks that were “consistent” with the previous ones and with my musical interests, which, in the course of the rehearsal, he somehow managed to learn.

Since I received the test version, which was followed by the purchase of a license, I have been using JPLAY for a very long time in my own system and in others’ systems, and it has always worked absolutely flawlessly, without freezing or faltering. The developer also constantly updates the app by fixing bugs and adding/improving features. Gapless playback, typically one of the aspects on which many playback systems fall apart, has also been perfect whether it is a 24/192 file coming from Qobuz or one coming from my QNap NAS running MinimServer. Finally, I like to mention how JPlay has recently started a certification program with some partner companies so that they can give absolute certainty regarding the compatibility of the app with different hardware. It will be a long road but it seems to me to be a serious approach to the problem.

JPlay for iOS and HQPlayer

As of the December 2024 update, Signalyst’s HQPlayer is directly integrated into JPlay for iOS, allowing users to take action on Qobuz, Tidal, and locally stored audio streams. This, of course, provided there is an instance of HQPlayer running on the same network in which JPlay is located. In my case this condition is met because one of the two computing cores within the Antipodes Audio K30 server is dedicated to this function. However, for the sake of completeness of the test, I configured a Raspberry Pi 4 with AudioLinux running embedded HQPlayer and everything worked perfectly. The nice thing is that the JPlay app allows for seamless integration and remote control of HQPlayer that would otherwise have to be managed through its cryptic and poorly understood web interface. For those who have never heard of it, HQPlayer enables advanced upsampling and audiophile-grade filtering, elevating the quality of playback to very high levels. Combined with JPlay”s intuitive interface, users can now experience the powerful features of HQPlayer more easily than ever before

JPlay - HQPlayer integration
HQPlayer's complex interface is accessible in a simplified form from JPlay for iOS

JPlay for iOS and Minimserver

As can be seen from the attached images and as written above, on my two QNAP NASes there is running Minimserver, an ultra-proven software that operates in a UPnP environment with a Media Server function. I think it is useful to point out that on the JPlay site there is a special section(Metadata and Sync Options) that illustrates how Minimserver should be configured so that the various metadata can be transmitted to JPlay in the best way possible, so that certain search keys can be taken advantage of. One of these is the Label TAG, which allows tracks to be searched by record label, or a long series of TAGs typically referring to the Classical music field such as Conductor, Orchestra Name, Movement, Movement Name, Date and Place of Recording, etc. It should be quite obvious, however, that where such metadata are missing, searches through them will be impossible. In that case software solutions such as SongKong or Bliss show their usefulness, which are able to integrate the missing metadata to your file collection just as Roon would do automatically and “behind the scenes.”

JPlay for iOS - Minimserver sync options
Detail of the screen for configuring synchronization options with Minimserver.

Conclusions

As far as I am concerned JPlay for iOS is the ultimate UPnP Control Point. Browsing and listening to your music library without having to think about computer technicalities is a real pleasure. The interface is comprehensive, elegant, and free of unnecessary frills. It comforts me to know that many of the friends to whom I have reported JPlay have had the same impressions as me, proceeding without delay to purchase it. It is worth mentioning in this regard how it is possible to try the app for a period of 15 days before deciding whether or not to purchase it, so that you can see for yourself its performance. As a reminder, JPlay has an annual subscription fee of US$49.99 to be paid in a lump sum. The subscription is automatically renewed, but can be cancelled at any time up to one day before the annual expiration. There is also the option to purchase a Lifetime license for 199 USD.If your system allows you to use it, I warmly invite you to take advantage of the free 15-day Trail to try it out and judge for yourself. In my opinion, in this category of apps, there is nothing that comes close to it in terms of both sonic quality and user interface, both of which are at superb levels on JPlay for iOS.

Giulio Salvioni

Written by Giulio Salvioni

Leave a Reply

Your email address will not be published. Required fields are marked *

GIPHY App Key not set. Please check settings

    Rega Brio MK VII

    Rega Brio MK VII

    Douk Audio Q-11

    Douk Audio Q-11 DAC with Dual Chip