Skip to content

tesshucom/jpsonic

CI with CodeQL Known Vulnerabilities Codacy Badge Codacy Badge

Jpsonic

What is Jpsonic?

Jpsonic is a free, web-based media streamer, an Airsonic Clone. Most media servers have difficulty managing Japanese songs. To solve this, Development of Jpsonic has started.

Since v110.2.0, conversion for Romanized Japanese has been supported to make it easier for non-native Japanese people to handle Japanese. And it is also possible to bypass Japanese processing and use it like a general Subdonic server.

Usage

Features

Evolved meta processing

It supports standard tags, and the SONY/APPLE specifications that take into account global multilingual support are used as a reference. To process Japanese well on a machine requires quite complicated mechanism. The index, sort, and search features of Jpsonic have been replaced with more accurate and reliable processing than Subsonic and Airsonic. Some distinctive features have been added.

  • Advanced sort tag support. In particular, artist names are automatically merged and copied, ensuring that the name and the reading correspondence is the only pair in the server. If the sort tag corresponding to Japanese is not registered, the analysis engine performs complementary processing. This guarantees the accuracy of sorting and can handle some dirty data. Regardless of Japanese, it is very advantageous for managing songs using sort tags.
  • In the case of Chinese character competitors such as Chinese, coexistence is expected by using pinyin, etc.
  • Jpsonic search covers the artist name sort-tag in addition to the regular fields. You can use apps that support server side search and use speech recognition, such as Subsonic Music Streamer.
Reimplemented DLNA features

DLNA (UPnP) and OpenHome is mainstream technology in Japanese typical household. For this reason, many new features have been added to Jpsonic. And stream and transcoding bug fixes have been made to make it easier to control performance in the high resolution band.

HighRes FLAC and DSD support, Cooperation with various mobile apps

Indicates whether the feature is available when using a typical traditional application. Applications other than those listed here can be used, but the realization of comfortable usability also depends on the client implementation.

[Apps]

No App Name Platform Protocol Other cloud features by the app
A Subsonic Music Streamer Android Subsonic API
B MusicBee Windows10 Subsonic API
C BubbleUPnP Android UPnP Qobuz/TIDAL/Google Drive/Dropbox/Box/OneDrive
D MediaMonkey Android UPnP
E foobar2000 Android UPnP
F Hi-Fi Cast - Music Player Android UPnP
G AK Connect 2.0 Android UPnP TIDAL
H MediaMonkey 5 Windows10 UPnP Youtube
I foobar2000 Windows10 UPnP
J Windows MediaPlayer 12 Windows10 UPnP
K BubbleDS with BubbleUPnP Android OpenHome Qobuz/TIDAL/Dropbox/Box/OneDrive
L Kazoo with BubbleUPnP Android OpenHome Qobuz/TIDAL

[Main cooperation features]

In the case of BubbleUPnP, you will be able to receive DSD and pass it to your local renderer without any special settings. The dsd/dsf MIME can be changed by boot options.

No Features Perspective
1 FLAC playback Whether it can be played including high-res
2 Transcode (to MP3) Whether stream transcoded from FLAC to MP3 can be played
3 Transcode (to CD qual) Whether resampled stream from high-res FLAC to CD qual can be played
4 Sort Whether client does not destroy the element order by the server by default
5 Server-side search Whether it supports server-side search
6 Voice input Whether it supports server-side search with voice input
7 Lazy loading Whether partial content acquisition is used in UPnP requests
8 Downloader Whether to have a practical downloader

[Correspondence situation]

  1 2 3 4 5 6 7 8
A  
B  
C ★1 ☆2 ★3
D ★1 ★3
E ★4 ★3
F ★1 ★3
G ☆5 ★1
H       ★3
I   ★1   ★3
J     ★6
K ★1 ★3
L ★1 ★3
  • ★1 The client app's search query is respected and it maps to the Jpsonic model. Therefore, the usability depends on the spec of client app. Clauses containing non-standard properties are partially ignored.
  • ☆2 Previously supported, but no longer seems to be available.
  • ★3 The specified value is different for each client.
    • BubbleUPnP/MediaMonkey(Android)/Hi-Fi Cast : Get the rest after getting the data for view area.
    • MediaMonkey(Win) : Get data for a specific quantity.
    • foobar2000 : Get for each fixed number of items, but it may be difficult to obtain benefits due to the large number of items acquired at one time.
  • ★4 Playback may not be possible if resampling takes a very long time, such as high-resolution classical songs. (There is a clear timeout process)
  • ☆5 High resolution may be difficult.
  • ★6 Special process. Crawl all resources at startup.
No Tofu
  • Java logical fonts are used by default. 'sans-serif' (that does not have extending features called "serifs" at the end of strokes) on your system will be referenced.
  • It is also possible to use the built-in Japanese fonts with a startup option. -Djpsonic.embeddedfont=true This allows off-screen rendering even on systems without fonts. Also, it may be possible to avoid font troubles due to the combination of specific OS and JVM.
  • Jpsonic's Docker is configured with the Noto CJK font as the standard font. CJK also includes Latin, Cyrillic, and glyphs, so many languages are assumed to be rendered using Noto. Strings outside the range of Noto CJK fall back to Dejabu.
Noto CJK(Default) + DejaVu(Font Fallbacks)

Noto has higher visibility, and even song names that combine several languages can be displayed in a well-balanced manner. 

History

Subsonic, Libresonic, Airsonic

The original Subsonic is developed by Sindre Mehus. Subsonic was open source through version 6.0-beta1, and closed-source from then onwards.

Libresonic was created and maintained by Eugene E. Kashpureff Jr. It originated as an unofficial("Kang") of Subsonic which did not contain the Licensing code checks present in the official builds. With the announcement of Subsonic's closed-source future, a decision was made to make a full fork and rebrand to Libresonic.

Around July 2017, it was discovered that Eugene had different intentions/goals for the project than some contributors had. Airsonic was created in order to provide a full-featured, stable, self-hosted media server based on the Subsonic codebase that is free, open source, and community driven.

Jpsonic

Around July 2018, Jpsonic was created in order to strengthen browsing and searching in Japanese.

In Japan, Subsonic is famous, but Airsonic was not yet well known. Today, Airsonic, with its great engineers and great community, is gaining recognition.

history

Jpsonic had to update its indexing, sorting, and searching due to its characteristics. Many of these features have bug fixes or enhancements. An update to the Jpsonic search engine has been provided to Airsonic. Therefore, the design of the search function of Airsonic and Jpsonic is a bit similar.

Cherry Blossoms

The Japanese loved cherry blossoms for hundreds of years. Please ask the Japanese people "What is a flower?". The Japanese will answer "Sakura". The Japanese frequently plants cherry blossoms in international exchange to show respect for partners.

License

Jpsonic is free software and licensed under the GNU General Public License version 3. The code in this repository (and associated binaries) are free of any "license key" or other restrictions.

The Subsonic source code was released under the GPLv3 through version 6.0-beta1. Beginning with 6.0-beta2, source is no longer provided. Binaries of Subsonic are only available under a commercial license. There is a Subsonic Premium service which adds functionality not available in Airsonic. Subsonic also offers RPM, Deb, Exe, and other pre-built packages that Airsonic currently does not.

Japanese morphological analyzer
Kuromoji is an open source Japanese morphological analyzer written in Java. Licensed under the Apache License v2.0 and uses the MeCab-IPADIC dictionary/statistical model.
(C) 2011-2014 Atilika Inc.
Japanese font
Kazesawa is Japanese TrueType font aims to achieve both visibility on the screen and appropriate information density. Provided under the SIL Open Font License.
(C) 2002-2015 M+ FONTS PROJECT.
Icon font
Ionicons is a completely open-source icon set with 1,300 icons crafted for web, iOS, Android, and desktop apps, are free to use and licensed under MIT.
(C) 2021 ionic-team
Avatar Icon
Created using Iconpon, a material site that provides image materials such as icons and related services.
Icon by iconpon.com