All Projects → aidewoode → Black_candy

aidewoode / Black_candy

Licence: mit
A self hosted music streaming server

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Black candy

Fredboat
A Discord music bot sharing 1 million servers with 20 million users
Stars: ✭ 471 (-31.34%)
Mutual labels:  audio, music
Tauonmusicbox
The Linux desktop music player from the future! 🌆
Stars: ✭ 494 (-27.99%)
Mutual labels:  audio, music
Librosa
Python library for audio and music analysis
Stars: ✭ 4,901 (+614.43%)
Mutual labels:  audio, music
Jukebox
Code for the paper "Jukebox: A Generative Model for Music"
Stars: ✭ 4,863 (+608.89%)
Mutual labels:  audio, music
Audio Visualizer Android
🎵 [Android Library] A light-weight and easy-to-use Audio Visualizer for Android.
Stars: ✭ 581 (-15.31%)
Mutual labels:  audio, music
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: ✭ 445 (-35.13%)
Mutual labels:  audio, music
Hifiberry Os
Linux distribution optimized for audio playback
Stars: ✭ 487 (-29.01%)
Mutual labels:  audio, music
Matchering
🎚️ Open Source Audio Matching and Mastering
Stars: ✭ 398 (-41.98%)
Mutual labels:  audio, music
Jetpack Musicplayer
即使不用云音乐听曲儿,也请务必收藏好该库!🔥 一行代码即可接入,音乐播放控制组件 - Even if you don't listen to the music by Spotify, be sure to collect this library, please! 🔥 This music player component can be accessed by only one line of code. Supporting by LiveData & AndroidX.
Stars: ✭ 577 (-15.89%)
Mutual labels:  music, musicplayer
Wavesurfer.js
Navigable waveform built on Web Audio and Canvas
Stars: ✭ 5,905 (+760.79%)
Mutual labels:  audio, music
Audiomentations
A Python library for audio data augmentation. Inspired by albumentations. Useful for machine learning.
Stars: ✭ 439 (-36.01%)
Mutual labels:  audio, music
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (-12.54%)
Mutual labels:  audio, music
Skplayer
🎵 A simple & beautiful HTML5 music player
Stars: ✭ 437 (-36.3%)
Mutual labels:  audio, music
Soundsync
Virtual cables between any audio source and any speaker in your home
Stars: ✭ 453 (-33.97%)
Mutual labels:  audio, music
Bitmidi.com
🎹 Listen to free MIDI songs, download the best MIDI files, and share the best MIDIs on the web
Stars: ✭ 422 (-38.48%)
Mutual labels:  audio, music
Q
C++ Library for Audio Digital Signal Processing
Stars: ✭ 481 (-29.88%)
Mutual labels:  audio, music
Beats
A command-line drum machine. Convert a beat notated in YAML into a *.wav file.
Stars: ✭ 389 (-43.29%)
Mutual labels:  audio, music
Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (-42.42%)
Mutual labels:  audio, music
Monstercat Visualizer
A real time audio visualizer for Rainmeter similar to the ones used in the Monstercat videos.
Stars: ✭ 571 (-16.76%)
Mutual labels:  audio, music
Sonobus
Source code for SonoBus, a real-time network audio streaming collaboration tool.
Stars: ✭ 586 (-14.58%)
Mutual labels:  audio, music

Black candy logo

Black candy

Test Lint Ruby Style Guide Docker Pulls

Black candy is a self hosted music streaming server built with Rails and Stimulus. The goal of the project is to create a real personal music center.

Screenshot

screenshot theme dark

screenshot theme light

Getting started

Black candy use docker for simplify deployment, development and test process. So you should install docker and docker-compose first.

Black candy support mp3, m4a, ogg, oga, opus, flac, wma and wav formats now.

Installation

Black candy has built docker images. You can use docker compose to run all services.

First, you should ensure your music files stored under "/media_data"

Then run:

$ curl https://raw.githubusercontent.com/aidewoode/black_candy/v1.3.0/docker-compose.yml > docker-compose.yml
$ docker-compose up -d

That's all. Now, you can use initial admin user to login (email: [email protected], password: foobar).

You can also change the docker-compose.yml for your own needs.

Note: When the SECRET_KEY_BASE environment variable is not set, Black candy will generate SECRET_KEY_BASE environment variable every time when service start up. This will cause old sessions invalid, You can set your own SECRET_KEY_BASE environment variable on docker service to avoid it.

Try in PWD

You can try black candy on Play with Docker

Try in PWD

When the service is ready, access black candy from port 80. Then use initial admin user to login (email: [email protected], password: foobar). This demo already contains some sample music file. You can go to the setting page and click the sync button of the media path to import the sample music into the database.

And feel free to try it.

List for all sample music for the demo:

If like their music, you can buy their albums to support them.

Upgrade

Pull new image from remote

$ docker pull blackcandy/blackcandy

Restart services:

$ docker-compose restart 

Development

Requirements

  • Ruby 2.7
  • Postgres 11
  • Redis 6.0
  • Nodejs 12
  • Yarn 1.22
  • Imagemagick 7
  • ffmpeg 4.3

You can use nix to setup dev environment easily.

# First, install nix. You can check out the nix doc for more details.
$ curl -L https://nixos.org/nix/install | sh

# Then clone the repo.
$ git clone https://github.com/aidewoode/black_candy.git

# Change to the directory.
$ cd black_candy

# Go into nix shell, the nix shell will auto setup all dev requirements you need.
$ nix-shell 

# Install foreman.
$ gem install foreman 

# Install requirement gems.
$ bundle

# Install npm packages.
$ yarn

# Setup database.
$ rails db:setup

# Finally, start all services.
$ foreman start -f Procfile.dev 

Test

# Runing test
$ rails test RAILS_ENV=test 

# Runing lint
$ rails lint:all 

Integrations

Black candy support get artist and album image from Discogs API. You can create a API token from Discogs and set Discogs token on Setting page to enable it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].