dtseto / Hermes-master

ApolloGenome a Hermes Fork a Pandora Client for Apple Silicon and Intel compatible with 10.10+. Includes Pandora Music Genome project and Station Modes data.
MIT License
8 stars 0 forks source link
music pandora

ApolloGenome a Hermes fork Pandora MacOS client for Intel and Apple Silicon

Forked from Hermes built in Xcode 12.5 MacOS 11 as a universal app so works with apple silicon as well otherwise no major changes

Includes music genome project data when playing song information.

Also new feature includes pandora station modes.

A Pandora client for macOS Intel and Apple Silicon.

THIS PROJECT IS MAINTAINED BUT VOLUNTEERS ARE WELCOME

This means that bugs are documented and workarounds can be attempted.

New features will happen slowly.

You can also make pull requests and add to issues and I will try to reply.

Download ApolloGenome

If you would like to compile Hermes, continue reading.

Develop against ApolloGenome

Below for Hermes Thanks to the suggestions by blalor, there's a few ways you can develop against Hermes if you really want to.

  1. NSDistributedNotificationCenter - Every time a new song plays, a notification is posted with the name hermes.song under the object hermes with userInfo as a dictionary representing the song being played. See Song.m for the keys available to you.

  2. AppleScript - here's an example script:

    tell application "Hermes"
      play          -- resumes playback, does nothing if playing
      pause         -- pauses playback, does nothing if not playing
      playpause     -- toggles playback between pause/play
      next song     -- goes to the next song
      get playback state
      set playback state to playing
    
      thumbs up     -- likes the current song
      thumbs down   -- dislikes the current song, going to another one
      tired of song -- sets the current song as being "tired of"
    
      raise volume  -- raises the volume partially
      lower volume  -- lowers the volume partially
      full volume   -- raises volume to max
      mute          -- mutes the volume
      unmute        -- unmutes the volume to the last state from mute
    
      -- integer 0 to 100 for the volume
      get playback volume
      set playback volume to 92
    
      -- Working with the current station
      set stationName to the current station's name
      set stationId to station 2's stationId
      set the current station to station 4
    
      -- Getting information from the current song
      set title to the current song's title
      set artist to the current song's artist
      set album to the current song's album
      ... etc
    end tell

Want something new/fixed?

  1. Open a ticket! We'll get around to it soon, especially if it sounds appealing to us. We take all suggestions/feedback!

  2. Take a stab at it yourself if you're brave. Just send us a pull request if you've got something fixed. Here's some common things to do at the command line:

    make        # build everything
    make run    # build and run the application (logging to stdout)
    make dbg    # build and run inside LLDB
    
    # Build with the 'Release' configuration instead of 'Debug'
    make CONFIGURATION=Release [run|dbg]

    Please note that Media Key shortcuts will not work if compiled with CONFIGURATION=Debug (the default).

License

Code is available under the MIT License.