• Stars
    star
    122
  • Rank 292,031 (Top 6 %)
  • Language
    Objective-C
  • License
    Other
  • Created almost 13 years ago
  • Updated over 11 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A libspotify-based Spotify client for Mac OS X Lion.

A Legal Note

Viva is not an official Spotify project. I work at Spotify, and the company has very graciously allowed me to use their graphics and logos. However, these are NOT covered under the BSD license that the code is under, and are NOT included in this repository - a build script will download them separately. Distribution of the graphics contained in Viva is strictly prohibited.

What Viva Is

Viva is a Spotify client for Mac OS X Lion. Both building and running require Mac OS X 10.7. Viva is built entirely on Spotify's libspotify C library.

This client's purpose in life is to be a showcase of the Spotify platform as well as a playground for experimenting with ideas and new APIs. It's very rough around the edges, and even whole views are blank.

Some features:

  • Nice playback experience (gapless playback, EQ).
  • Support for playing "local files" (MP3, M4A, Apple Lossless, FLAC).
  • Last.fm scrobbling.

What Viva Is NOT

Viva is NOT intended to be a replacement Spotify desktop client. It's missing many features which make it generally unsuitable for sole use. While this will be improved over time, it's not a priority. Issues filed against Viva along the lines of "It doesn't do [feature in desktop client]" will likely be closed.

The target audience of Viva is developers - please keep that in mind. In addition, Viva requires a Spotify Premium account - this requirement will never change. If you wish to build Viva from source, you also need a libspotify developer key, which can be requested from here: http://developer.spotify.com/en/libspotify/overview/

Downloading

If you'd like to download Viva without building, you'll find periodic snapshot builds in the Downloads section of the repository's home on GitHub. You don't need an appkey to use these, but you still need a Spotify Premium account.

Building

  1. Clone Viva using git clone --recursive git://github.com/iKenndac/Viva.git to make sure you get all the submodules too.
  2. If you got excited and cloned the repo before reading this, run git submodule update --init in the Viva directory to grab the submodules. If I get tickets about it not building and you haven't got the submodules checked out, you lose 5 internet points!
  3. Supply an appkey.c file (see above).
  4. Build away!

Interesting Areas

Viva has been made in my hackday and spare time, which has resulting in the code being rather... scattered. However, there are some nice examples of various Mac OS X technologies in there. A few of my favourites:

Core Data over multiple threads: LocalFileSource.m.

Core Audio Graphs, including a Graphic EQ: SPCoreAudioController.m.

Using AVFoundation to get media file metadata: LocalFileSource.m, -parseMediaFileAtPath:intoContext:.

Using AVFoundation to convert audio files to PCM data for manual playback through Core Audio: VivaAVAssetDecoderWorker.m.

Using FSEvents to watch a directory tree for changes: LocalFileSource.m.

Using libFLAC to get FLAC metadata: LocalFileSource+LocalFileSourceFLACAdditions.m.

Using libFLAC to decode FLAC files for playback: VivaFLACDecoderWorker.m.

More Repositories

1

Tofu

An easy-to-use two-factor authentication app for iOS
Swift
500
star
2

500px-Aperture-Uploader

An Aperture Export Plugin for exporting to your 500px.com account.
Objective-C
98
star
3

xcode-streamdeck-plugin

A Stream Deck plugin for Xcode.
Swift
91
star
4

SparkleDotNET

Automatic updating for .NET applications.
C#
46
star
5

Arduino-Dioder-Playground

A project playing with a set of IKEA Dioder LED strips connected to an Arduino Mega 2560.
Objective-C
41
star
6

Couch-Slouch

Mac OS X application to allow your Mac to be controlled by other devices on a HDMI bus, given the right hardware.
Objective-C
24
star
7

om-1-manual-firmware-install

Updating an OM-1, OM-1 II, or OM-5 camera the old-fashioned way.
21
star
8

verify-string-files

Objective-C
19
star
9

Timelapse-for-Aperture

An simple Export plugin for Aperture that exports images as a timelapse movie.
Objective-C
14
star
10

localized-strings-symbols

Generate Swift and SwiftUI symbols for localized strings files.
Swift
14
star
11

KNAppGuide

An "Apple Guide" style help system for Mac OS X applications.
C
13
star
12

create-ram-disk

A little Mac command-line tool to create a RAM disk.
Objective-C
11
star
13

SimplePlayer-with-EQ

Extending CocoaLibSpotify to add a graphic EQ.
Objective-C
10
star
14

responder-chain-in-swiftui

Handling responder chain actions in SwiftUI.
Swift
9
star
15

generate-string-symbols

Create a header file containing symbols for the given strings file keys.
Objective-C
8
star
16

generate-imageasset-symbols

A little command-line application to generate a header file containing string constants for images in a .xcassets folder.
Objective-C
6
star
17

KVOObservation

A simple little Key-Value Observing helper written in Swift.
Swift
6
star
18

DKSerialPort

A simple-to-use serial port class written in Objective-C.
Objective-C
5
star
19

lantmateriet-lookup

Tool for assisting with aerial photograph distribution submissions to Lantmäteriet, the Swedish mapping, cadastral and land registration authority.
Swift
4
star
20

KNFoundation

KNFoundation is a collection of classes I use in every single .NET application I make. Many of the classes are direct implementations of their Cocoa counterparts, including KNKVC, which is an implementation of Cocoa's NSKeyValueCoding and NSKeyValueObserving in C# .NET, which is a specific implementation of the Observer pattern.
C#
4
star
21

iTunesVisualizerHost

An Objective-C framework for hosting iTunes Visualiser Plugins in your own audio application.
C
3
star
22

KNControlsWinForms

An set of open-source Visual Basic .NET controls, including a demo application to show how it all works. Most of these are inspired by native Mac OS X controls.
Visual Basic
3
star
23

AmbienceBoard

A song board to help D&D DMs create and manage ambience tracks.
Objective-C
2
star
24

Viva-Libs

Pre-built libraries for Viva.
C
2
star
25

KNSharedCodeRepository

A collection of code I use in my apps.
Objective-C
2
star
26

USB-CEC-Fixer

Application to wake a USB-CEC adapter in "limbo". More info in project.
Objective-C
2
star
27

new-blog

My new blog, built with nanoc.
SCSS
2
star
28

KNControlsWPF

A collection of .NET WPF controls.
C#
1
star
29

Blog

My blog, generated by Octopress.
JavaScript
1
star
30

Dewey

A Sony Reader client for Mac OS X.
Objective-C
1
star