Coder Social home page Coder Social logo

onpc's Introduction

License Release Status Documentation Dashboard

Enhanced Music Controller

Enhanced AVR controller: listen to music properly!

This app allows remote control of a Network Player or a Network A/V Receiver via the local network. The app supports Onkyo/Pioneer/Integra released in April 2016 or later and Denon/Marantz with build-in HEOS technology. Some TEAC models like Teac NT-503 are also supported.

The two most popular features of the app are music playback and sound profile management. Other benefits include:

  • Maximum privacy: No ads, no trackers, no telemetry, no special permissions like GPS
  • The modern Material design supports different color themes and works on smartphones and/or tablets in portrait and landscape mode
  • One-click access to music playback actions
  • One-click access to media items using shortcuts for Onkyo or Favourites for Denon
  • Full music playback control (play, stop, pause, track up/down, time seek, repeat and random modes)
  • Full tone control (listening modes, bass, center, treble and subwoofer levels)
  • Enhanced Play Queue support (add, replace, remove, remove all, change playback order)
  • TuneIn Radio, Deezer, Spotify and Tidal streaming (if supported by receiver)
  • DAB / FM / AM (if supported by receiver)
  • Multi-zone support (if supported by receiver)
  • Multi-room support: Allows control of groups of devices attached via FlareConnect (for Onkyo/Pioneer/Integra only). Ability to control FlareConnect without WiFi
  • Control of devices attached via RI (for Onkyo/Pioneer/Integra only)
  • Display device details and control device settings such as dimmer level, digital filter, auto power, and sleep timer
  • Allows control of receivers over an OpenVPN connection (even over a cellular connection)
  • Integration with "Tasker"

Versions

Free Android Version (Enhanced Music Controller Lite)

Get it on Google Play

Get it on F-Droid

Premium Version

This premium version is developed with Flutter, see onpc-flutter branch for source code

This "Premium" version implements exactly the same receiver control functionality as the free version, but has some additional features:

  • It is available for all desktop systems (Linux, Windows, macOS).
  • The Windows version allows to define global shortcuts for volume and playback control.
  • It allows to rename input channels when this feature is not supported in the firmware.
  • It allows to reorder the play queue using drag-and-drop, change the font and buttons size and show/hide/reorder all control elements for all tabs.
  • Android version allows to create home screen widgets.

On Android:

Get it on Google Play

On Mac, iPhone, iPad:

Download on the App Store

On Windows:

Download on Windows Store

Do you want try the last version in development?

Known Limitations

  • Please note that the app does not support the music streaming from your phone to the network player or the receiver
  • In order to login into Deezer, Tidal, or Spotify, you need the official Onkyo/Denon app additionally to this app
  • Pioneer models before year 2016 are NOT supported, for example: VSX-424, VSX-529, VSX-830, VSX-920K, VSX-923, VSX-924, VSX-1021, VSX-1121, SC-95, SC-LX79, N-50, N-50a, N-70A
  • Following Denon models are not supported: AVR-X1000, DNP-730AE, Heos Link 2
  • Following models do not support "Play Queue" feature (that is a limitation of the Onkyo firmware): CR-N765, DTR-40.5, HM76, HT-R693, HT-R695, TX-8130, TX-8150, TX-NR626, TX-NR636, TX-NR646, TX-RZ900

Supported devices

This list is based on the user feedback from Google Play and github. Not all from these devices are tested by developer:

Onkyo

Integra

Pioneer (models after 2016)

Teac

Denon with build-in HEOS

Marantz with build-in HEOS

Documentation

Documents from Onkyo describing the protocol, including lists of supported commands, are stored in 'doc' directory.

Publications:

Acknowledgement

  • Thank to Tebriz for Logo design
  • Thank to mrlad, onschedule for testing and improvements ideas
  • Thank to Michael for German translation and code contribution
  • Thank to John Orr for improvements ideas and code contribution
  • Thank to Andrzej Chabrzyk for Polish translation

License

This software is published under the GNU General Public License, Version 3

Copyright © 2018-2023 by Mikhail Kulesh, Alexander Gomanyuk

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program.

If not, see www.gnu.org/licenses.

Used Open Source Libraries

Screenshots

  • Playback screen in landscape orientation, Dark theme

  • Audio control in portrait orientation, Light theme

  • Media screen, Dark theme

For more screenshots, see directory images/screenshots.

onpc's People

Contributors

alexkarezin avatar anasofiagribeiro avatar chrish89 avatar gomanuke avatar mkulesh avatar mrlad avatar onschedule avatar pedromartinsteenstrup avatar quelbs avatar reyostallenberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onpc's Issues

TX-RZ900: empty content of DLNA list

TX-RZ900 does not provide the layers info in the ListTitleInfoMsg for DLNA list:
NLT[0001000000020000FF0000DLNA; SERVICE=MUSIC_SERVER; UI=LIST; LAYER=SERVICE_TOP; CURSOR=0; ITEMS=2; LAYERS=0; START=NOT_FIRST; LEFT_ICON=NONE; RIGHT_ICON=MUSIC_SERVER; STATUS=NONE; title=DLNA]
As a result, the XML list request is skipped and no DLNA entries are shown

Manual IP address entry UI enhancement request

After entering a IP address manually, a connection attempt isn't made until the network icon is tapped. This wasn't obvious to me. I had assumed that once I hit enter, it would try to connect. I think both options should be supported (icon and/or enter).

The sound gets cut for like a second for R-N855

Your app works great with R-N855. But as I said pretty much every time I go from an other app back to yours, the sound gets cut for like a second. Same if the phone goes to sleep and I turn it back on.
Same thing happens on all sources and if phone is rotated

Need for manual scan: Multi-device & Multi-network

Tonight, I tried the app at another location (where we have two Integras on the network). The app kept trying to connect to the IP address of my receiver at home.

For scenarios like this I think the following would be useful:

  1. Ability to manually force a scan for receivers
  2. Ability to select a receiver when multiple receivers are on the network
  3. Ability to save and/or pick a default receiver on the network.

No images shown for mp3

For me no images of the mp3 are shown, I only see the empty_cover.jpg image (the integra app shows the images).
My device is a TX-8150

Support menus & remote control keys

The official Onkyo app lets you get into/out of menus via a soft remote. Would be nice if this could be done with onpc too. This is a feature request for 0.8 or later.

Display of Input Selectors While in Standby

For the first time, I started up onpc while both the main and zone 2 were in standby. I found the display of the input selectors (i.e. media sources) confusing. The list was empty. I thought the app was broken and then a few minutes later, I figured out that they aren't shown when the device is in standby. It would be better if that tab were disabled/grayed out if the device is in standby.

Add support for Zone 2

My primary use case for this app is zone 2 (that is where I listen to the music server, Airplay, Pandora etc.). Could you please consider adding support for zones (zone power on/off along with controlling the net sources that currently control zone 1)?

Unable to play music from NAS

It is not possible to select any folder or song from a NAS with Music on it. Songs are shown, but all greyed out so the only.

Allow nightly build to co-exist with the Play Store Version

It would be useful for comparison purposes to have both the nightly build and the Play store version on the same device. It also is frustrating having to uninstall before every nightly build and lose all my settings. I know some other apps that I beta test are able to do this, but I'm not sure of the exact mechanism.

3-way toggle for Zone 2 A and B speakers

Rather than seperate "on / off" button for both Zone 2A and Zone 2B, perhaps one button that toggles between "Zone 2A + 2B" - "Zone 2A Only" and "Zone 2B Only" (this would prevent the unit from being sent to "Standby" power mode by accident when both zones are turned off at the same time?)

Problem with speaker toggle

I am able to switch from A to B but then the toggle is stuck and I cannot proceed to A+B nor back to A.
A log file will follow via e-mail.

Pioneer not auto discovered

Love this app - just what I needed.

I have a Pioneer amp (made by Onkyo). The app doesn't find it when searching the network. If I manually put in the IP address it connects fine and I can use the app to control my amp.

Is there any info I can give you to make the discovery process work?

Additional language setting "Use system language"

After a clean install the system language of the device is taken (if it is available), but when changing a setting (like theme) the language switches to English (probably because this is the first language in the list). There should be an additional setting "System language (if available)". That also would allow to use the language instead of English when it becomes available.

Consider a volume slider

The single step up/down buttons for volume control are nice for fine grained volume control, but it would be nice if there was a volume slider for rapid changes in between the single step up/down buttons. The official Onkyo app has a slider for its volume control.

Toggle repeat modes

There are multiple repeat modes (repeat-1, repeat-all, repeat-folder, no-repeat) are they available? I do not see which one is active/can be selected in the App.

Logo

Hi, I'm a logo designer, I saw your project and I can make a free logo for your project. So, what do you think?

Onkyo TX-NR414

I can confirm that this app is working with the named device in principle.
"Listen" and "RC" are working as expected, "Media" is empty and "Device" is a blank form.

Give option to use Friendly Name for Media Inputs

Could you please give us the option in settings to show the friendly name that is mapped to the default media input?

For example, I've mapped

  • Bluray to the BD/DVD input
  • HTPC to the PC input etc

Active Media Sources Not Saved Per Device

I've got a 30.7 and a 40.7 on the same network. I have only 3 sources enabled on the 30.7 and 5 sources on the 40.7. If I switch from the 30.7 to the 40.7, onpc will only show 3 sources on the 40.7. It seems like it remembered the number of sources active from the previous device (the labels were correct though, just the number enabled was wrong).

Consider Name Change for App...

Your App does so much more than Music Control. In my case, it also selects video source; allows receiver control via VPN, etc...

Maybe: Enhanced Onkyo Controller?

Refresh problem after rotating screen

After rotating my device the screen get refreshed. If I am in the radio station list, the list is afterwards empty.
Rotating the screen several times again brings back the station list.
Also the Listen tab is not correctly refreshed. The buttons and the current radio channel disappear after rotation.

Change bass, center, treble and subwoofer levels

Add the ability to change bass, center, treble and subwoofer levels. That is something which is missing. Currently, the App reacts on the level change as follows:

Changing center from +2 to +1 to 0 gives this logging:
#0427: MessageChannel: << new message CTL, size=26B, remaining=0B
#0428: MessageChannel: << error: ignored: No factory method for message CTL: ISCP/v1[16,10]: CTL(+1)
#0429: MessageChannel: << new message CTL, size=26B, remaining=0B
#0430: MessageChannel: << error: ignored: No factory method for message CTL: ISCP/v1[16,10]: CTL(00)

Changing subwoofer from +1 to +2 to +3 gives this logging:
#0639: MessageChannel: << new message SWL, size=26B, remaining=0B
#0640: MessageChannel: << error: ignored: No factory method for message SWL: ISCP/v1[16,10]: SWL(+2)
#0641: MessageChannel: << new message SWL, size=26B, remaining=0B
#0642: MessageChannel: << error: ignored: No factory method for message SWL: ISCP/v1[16,10]: SWL(+3)

java.lang.ClassCastException

Caused by: java.lang.ClassCastException:
at android.app.SharedPreferencesImpl.getString (SharedPreferencesImpl.java:225)
at com.mkulesh.onpc.config.PreferencesDeviceSelectors.prepareSelectors (PreferencesDeviceSelectors.java:63)
at com.mkulesh.onpc.config.PreferencesDeviceSelectors.onCreate (PreferencesDeviceSelectors.java:32)
at android.app.Activity.performCreate (Activity.java:6720)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2673)

Media Sources not refreshed after manual IP address entry

After startup, the app connected to my local receiver. I connected to the VPN, then manually connected to two different receivers. The first time, the media source friendly names updated. The second time they didn't (showed the names from the previous receiver). I suspect this is the same issue as previously reported with switching receivers after a subnet broadcast. But just in case it isn't, I'm opening this.

Power Button Coloring

Because the power button is the same color if the device is on/off its hard to tell from the onpc the state of the device. It would be nice if there was some type of visual indicator that the device is off (i.e. a greyed out button) or maybe the power button changes from greyed out to white or red to green? Just need some visual indicator of device state.

Supported device list

Onkyo arbitrarily limit which of their apps work on various receiver models (i.e. the controller app only works on the newer Integra/Onkyo receivers, while the older receivers only work with the Integra/Onkyo Remote app). The protocol seems relatively device agnostic and your app works on both the 30.7/40.7 and DRT 5.2 which I've tested. So this seems to be a big selling point for the app. Much wider compatibility potential.

It would be nice if you had a user generated and/or automated list of devices onpc is known to work with. This could be done one of two ways:

  1. Have the user send you a report (via a button or something similar)
  2. Add an Android permission to auto-report the info.

I know you want as few permissions required as possible, but throwing potential options out there.

This info then could be placed in the program feature list and/or the device settings page.

Please use device friendly name

Would like to see this info in two places

  1. In the device tab
  2. Option in settings to show either the model or the friendly name on the main screen

This info is in the official app and the DTS PlayFi app so it does appear to be part of the API.

WiFi connection Required for VPN usage

I tried to test out the Friendly Name for you when I only had an LTE connection (was trying to connect via VPN). Looks like onpc insists on a WiFi connection even if the IP address is manually entered.

Requiring a WiFi connection makes sense unless a VPN is in use. Can you please permit manual entry and connection even if there is no WiFi connection?

Next / previous Track in NET/USB not working for me

The keys do not work when listening to mp3

D/ViewRootImpl@acddcbc[MainActivity]: ViewPostImeInputStage processPointer 0
D/ViewRootImpl@acddcbc[MainActivity]: ViewPostImeInputStage processPointer 1
D/onpc: StateManager: sending message: NTC[null; ZONE_INDEX=0; CMD=TRUP]
D/onpc: MessageChannel: >> sending: ISCP/v1[16,10]: NTC(TRUP)
D/ViewRootImpl@acddcbc[MainActivity]: ViewPostImeInputStage processPointer 0
D/ViewRootImpl@acddcbc[MainActivity]: ViewPostImeInputStage processPointer 1
D/onpc: StateManager: sending message: NTC[null; ZONE_INDEX=0; CMD=TRDN]
D/onpc: MessageChannel: >> sending: ISCP/v1[16,10]: NTC(TRDN)

For TX-8150 ´NTC(RIGHT)´ and ´NTC(LEFT)´ would work fine.

Missed network services

On some receivers, the following network services are missed in the MEDIA tab, but are visible in the "Network Services" settings

  • USB/USB(Front)
  • USB(Rear)
  • DTS Play-Fi

screenshot_2019-03-06-17-19-26-791

screenshot_2019-03-06-17-20-15-653

Volume level off by 2x

The volume level in zone 1 and zone 2 are off by a factor of two.

I'm testing with an Integra DRX 5.2 if it makes any difference.

Text from Largest Font Size Cut Off

Some text fields are cut off when the system is set to the largest font size.

Most fields in the Device tab have cut off text.

Brand, Model and Year are fine.

The device, Device Info, Firmware and Google cast settings are cut off on that tab.

Media and Monitor tabs are fine.

Settings are ok

Application crash at connect to device if port is empty

NumberFormatException in DeviceFragment
java.lang.NumberFormatException:
at java.lang.Integer.parseInt (Integer.java:627)
at java.lang.Integer.parseInt (Integer.java:650)
at com.mkulesh.onpc.DeviceFragment.onClick (DeviceFragment.java:87)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.