A minimal, beautifully designed music player for OS X.

Related tags

Sonora
Overview

Sonora

A minimal, beautifully designed music player for the Mac

Developed by Indragie Karunaratne

Designed by Tyler Murphy

Sonora

Sonora (previously sold on the App Store, now open source) is a relatively new music player for the mac with a clean, minimal design and some awesome features that greatly enhance your every day music listening experience. Some of the highlights of Sonora include:

  • Visually immersive. No more long, boring lists of text. View your albums in a grid with gorgeous artwork.
  • Fast. Almost all of Sonora's UI is built on top of Core Animation, which makes for a super smooth and silky experience.
  • Support for tons of formats. Literally. Sonora supports every format under the sun, thanks to SFBAudioEngine
  • Instant search. Type anywhere inside the app to instantly search through your albums, artists, songs, and mixes. It even has a global search window with a customizable hot key to play and enqueue music without interrupting your workflow.
  • Queue. Sonora utilizes a central queue for all music playback. Easily add, remove, and rearrange songs to customize your listening queue on the fly. Save your queue as a mix with the click of a button.
  • Social. Built in Last.fm scrobbling and sharing to Twitter, iMessage, and Email (via OS X Mountain Lion).

Why was this open sourced?

A lot of reasons. Read this blog post for more information on our decision.

How to compile

Prerequisites

For the next steps, you have two options. There is a fast way to compile Sonora and the best way. The fast way uses a ZIP of external libraries that I've already set up and configured, but these libraries may not be up to date because I don't have the time to update the ZIP every time something little changes. The best way is to set up the dependencies yourself and ensure that you always have the latest versions of the libraries.

Fastest way

  • Download the Libraries.zip file from the Downloads section
  • Unzip it into the Sonora folder, replacing existing directories if necessary

Best way

  • Add the Sonora podspecs repository to CocoaPods:
pod repo add Sonora-Podspecs git://github.com/sonoramac/Podspecs.git master
  • Download and set up all the pods:
cd <project directory>
pod install
  • Download the submodules:
git submodule update --init --recursive
  • SFBAudioEngine requires frameworks that aren't included in the main repository. Download the Frameworks archive here and place the Frameworks folder inside Sonora/External/SFBAudioEngine/.

After you've followed either method:

  • Read instructions in SNRConstants.m to fill in extra information that may be necessary
  • Compile (make sure to open Sonora.xcworkspace and not the xcodeproj)!

State of the Code

The app is very much functional, but there's certainly a lot of bugs to fix. Large parts of Sonora have been rewritten for Sonora 2, but a lot of old code remains. Some of this was written while I was still in the process of fully learning Cocoa and Objective-C, so I may be doing some unspeakably horrible things :)

I could definitely use everyone's help in fixing and improving things.

Looking for Sonora 1.0?

The source code in this repository is for Sonora 2.0. If you're looking for the version of Sonora that used to be sold on the Mac App Store (1.0.x) you can download it here.

You should delete the preferences file for Sonora 2 from ~/Library/Preferences/com.iktm.Sonora.plist before running this version because they both use the same bundle identifier.

Contributing

One of the reasons we open sourced Sonora is because a music player is difficult for one man to maintain, and the community's help is essential in order to keep Sonora in good shape.

If you want to contribute, please take a look at the issues for this repository and see if there are any bugs in there that you want to fix or features you want to implement. If you need a design to implement a particular feature, please create a new issue with the design tag and we'll do our best to supply PSDs.

Once you have made additions, please send us a pull request and we will review and merge your contributions. If you're actively making large contributions to Sonora, we would love to add you to the team and give you push access to the repository so that you won't need to bother with pull requests.

Bugs

If you find a bug, please file an issue with as much information as possible. DO NOT file issues for feature requests. We get too many of these and we will decide what new features are needed.

PSDs

The PSDs for Sonora's design are being cleaned up right now and will be posted in this repository when they are ready.

License

All of Sonora's assets (everything inside the Resources folder) are Copyright (C) 2014 Tyler Murphy and are NOT licensed for any commercial or non-commercial use.

Sonora's code is licensed under the BSD 3-Clause license. See LICENSE file for more info.

In other words:

  1. You can use the code in accordance with the BSD 3-Clause license.
  2. You can not use the design assets for any purpose.
  3. You may not redistribute the application in any form, commercial or non-commercial.
Issues
  • Build with the newest version of CocoaPods

    Build with the newest version of CocoaPods

    • Update the pods (depends on https://github.com/sonoramac/Podspecs/pull/5) just enough to build sonora. Can probably update some other stuff (like AFNetworking)
    • Specify podspec sources so new builds don't have to manually clone https://github.com/sonoramac/Podspecs
    • Check in Podfile.lock no pods won't be updated unless explicitly running pod update
    • Move submodule to the supported Sparkle branch (I didn't do extensive testing here but it builds successfully)
    • It seems like mogenerator had some churn here.

    The only other thing I had to do to build sonora was deal with some macro definitions from SFBAudioEngine. I'm not sure how to handle that long term.

    opened by keith 10
  • Can't build due to INAppStoreWindow pod spec

    Can't build due to INAppStoreWindow pod spec

    When attempting to install dependencies via CocoaPods, prior to building Sonora itself, it breaks due to an issue in INAppStoreWindow.podspec:

    ➜  Sonora git:(master) ✗ pod install
    Analyzing dependencies
    Pre-downloading: `INAppStoreWindow` from `git://github.com/sonoramac/INAppStoreWindow.git`
    
    [!] Invalid `INAppStoreWindow.podspec` file: [!] [INAppStoreWindow (1.2)] Clean paths are deprecated. CocoaPods now cleans unused files by default. Use the `preserve_paths` attribute if needed.. Updating CocoaPods might fix the issue.
    
     #  from /Users/arve/Projects/Sonora/Pods/Local Podspecs/INAppStoreWindow.podspec:9
     #  -------------------------------------------
     #      s.source        = { :git => 'https://github.com/indragiek/INAppStoreWindow.git', :tag => 'v1.2' }
     >      s.clean_paths   = 'SampleApp'
     #      s.platform      = :osx
     #  -------------------------------------------
    
    opened by aknuds1 3
  • Updated SFBAudioEngine

    Updated SFBAudioEngine

    I've updated SFBAudioEngine which fixed a bug where when importing a large number of audio files it would eventually fail to open any files at all.

    I've also made the successfully imported notification show the number of actually imported items instead of the number of items that were attempted to be imported.

    opened by jameshurst 3
  • Add a

    Add a "nightly" build to download

    The title says everything. (I guess)

    opened by dtorres 2
  • Activity?

    Activity?

    Is this project dead?

    opened by remi-grumeau 2
  • New Repo Building

    New Repo Building

    Hi,

    These are a few changes I had to make to build using a fresh repository (after installing the cocoapods and mogenerator).

    Hopefully this'll help others contribute more by getting them on the same enivornment quickly.

    opened by jridgewell 1
  • Fixes bug #1 which prevents album covers from displaying for some tile sizes.

    Fixes bug #1 which prevents album covers from displaying for some tile sizes.

    Selecting some tile sizes would cause the rounded value of size.width and size.width*4 not to be multiples of each other raising an exception in CGBitmapContextCreate and preventing the covers from displaying.

    opened by ebarnard 1
  • Remove note about CocoaPods and ARC

    Remove note about CocoaPods and ARC

    I updated the podspec to disable ARC on this file, so it's no longer necessary to do this manually.

    opened by jwilling 0
  • Fix hard-coded paths, ignore dirty submodules, show search window on all spaces.

    Fix hard-coded paths, ignore dirty submodules, show search window on all spaces.

    I should've put these in separate pull requests – I'm sorry.

    opened by jwilling 0
  • Mojave compatibility

    Mojave compatibility

    The app (both v1 and v2) crash on launch since I installed Mojave. I hope someone will take over the dev, this is so sad to have this beautiful music player forgotten.

    opened by Caliintz 0
  • Missing PSD files

    Missing PSD files

    I've been waiting for years for someone to take over this project as this is still my fav music player as of 2018 (tho I prefer sonora the v1 cause lighter)... Till now... nobody did, which I personally can't understand since this is a great project. But anyway, I noticed that the promised psd files were still missing, after all these years...

    opened by Caliintz 0
  • Main window hidden on launch

    Main window hidden on launch

    Have to go full screen and back to get the main window to be visible.

    Version: 2.0.0 (200) OSX 0.11.1 (15B42)

    Thanks for a great app. Great light weight replacement for iTunes :)

    opened by espen 0
  • Dead link in Readme

    Dead link in Readme

    "Why was this opensources"-link refering to a dead blogpost.

    opened by luclu 1
  • Update SFBAudioEngine in order to support Ogg Opus

    Update SFBAudioEngine in order to support Ogg Opus

    Sonora could be one of the few, cutting-edge, music players to lead the charge (along side VLC) in supporting the exciting Ogg Opus format. The version of SFBAudioEngine which Sonora currently uses is out of date, but by updating SFBAudioEngine, Sonora users could start using, what Slashdot calls, "the codec to end all codecs".

    opened by variadico 2
  • Deleting tracks and duplicated listings

    Deleting tracks and duplicated listings

    Hi, I was just wondering if right clicking and deleting tracks from the file system is suppose to be the intended way to remove items from Sonora index?

    I ran into an issue where an album I had got imported twice, and the only way I could find to fix this duplicated listing was to delete the entire album. I don't really like music players that think they should manage the file system too, although I realise it's down to preference.

    opened by unknowndevice 0
  • Dragging the main window causes it to tremble

    Dragging the main window causes it to tremble

    It happens every time when I drag the titlebar. I'm using OS X Mavericks, on a 15" macbook pro with Retina. I can provide you with more information about my system or make a video of the bahaviour, if you need it.

    opened by mik01aj 3
  • Global hotkeys for next/previous cause weird behaviour

    Global hotkeys for next/previous cause weird behaviour

    I can't reproduce it, but sometimes these hotkeys stop working - for example, I press "next" hotkey, and the music just stops, and after that none of the hotkeys work. Then I go back to Sonora interface, select the song and everything works as usual.

    opened by mik01aj 0
  • Error

    Error "-10810" on start

    After installing Sonora, importing from iTunes, and adding some flac files, I tried to use the search feature and Sonora immediately crashed. Now whenever I try to start it, I just get a dialog saying "The application could not be opened" and the message is "-10810".

    opened by samuela 0
  • Scan folder other than iTunes for music.

    Scan folder other than iTunes for music.

    This would be really useful for plenty of people. Thanks.

    opened by volb 5
Frugal and native macOS Syncthing application bundle

Syncthing for macOS Introduction syncthing-macos project is a native macOS Syncthing tray application bundle. It bundles its own syncthing instance an

The Syncthing Project 1.3k Sep 19, 2021
⏲ macOS app to plan and organize through timezones.

Clocker Clocker is an macOS menubar utility designed to help you keep track of your friends in different time zones. It's written using Objective-C Sw

Abhishek Banthia 399 Sep 7, 2021