Code Monkey home page Code Monkey logo

musicdna's Introduction

MusicDNA - A Music Player like no other



Get it on Google Play Get it on F-Droid
A Music Player for android that makes use of the Visualizer Class for rendering a beautiful DNA (Visualization) of the currently playing music.

Background

The Music Player draws inspiration from paullewis's music-dna. The Player uses the FFT Data supplied by the Visualizer class of Android , calculates the Amplitude at that particular moment and plots the DNA.

The Player

MusicDNA combines the usefullness of a traditional Music Player app with the beautiful visualizations. The Player allows users to play both local music as well as Stream Music directly from SoundCloud. The Player also packs a Powerful Equalizer with BassBoost and Reverb effects

Build Instructions

After cloning the repo, create a file Config.java under \app\src\main\java\com\sdsmdg\harjot\MusicDNA Put the following code in it

package com.sdsmdg.harjot.MusicDNA;

public class Config {
    public static final String CLIENT_ID = "YOUR_SOUNDCLOUD_CLIENT_ID";
    public static final String API_URL = "https://api.soundcloud.com";
    public static final String GENIUS = "YOUR_GENIUS_API_KEY";
}

Replace YOUR_SOUNDCLOUD_CLIENT_ID with a client id received from SoundCloud or leave it blank if you don't want to use SoundCloud streaming.Get SoundCloud Client ID from here : https://developers.soundcloud.com/
Replace YOUR_GENIUS_API_KEY with an API key received from Genius or leave it blank if you don't want to use lyrics from genius.com. Get Genius API key from here : https://genius.com/api-clients/new
After that just import the project into Android Studio.

The Player - In Action

Video Demo : http://sendvid.com/b2hhc1pi
The video's length was cut short due to ADB screenrecord's limit of 3:00 min.
Credits for combining audio and video Piyush Mehrotra

License

MusicDNA is under CC BY-NC-SA license.

musicdna's People

Contributors

dakshitagrawal avatar hareshkh avatar harjot-oberai avatar jiparkyoung avatar mrdjohnson avatar natsu6767 avatar rohanbh avatar suyashmahar 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  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

musicdna's Issues

Config file is missing

i have clone repository but whenever i run app getting error config file is missing can you please update ?

Firebase Support?

Can Firebase be used as the source for audio files with this project?

Notification control not working properly

Notification controls automatically collapse to default size despite PRIORITY_MAX assigned.
Notification continues even after the app is killed in recents pane (on some phones).

Several fixes regarding gitignore.

  • Remove absolute path of Config.java. Also add a sample Config file so that anyone can build the project using their own key values.
  • Add .idea files to it

DNA has a huge spikes

Huge spikes usually are rendered during the first 2-3 seconds and during the last 2-3 seconds of the song.

Could not download gradle.jar (io.fabric.tools:gradle:1.22.0)

I can download gradle-1.22.0.jar from the browser,but build failed in Android Studio:

A problem occurred configuring root project 'MusicDNA-master'.

Could not resolve all dependencies for configuration ':classpath'.
Could not download gradle.jar (io.fabric.tools:gradle:1.22.0)
> Could not get resource 'https://maven.fabric.io/public/io/fabric/tools/gradle/1.22.0/gradle-1.22.0.jar'.
> Could not GET 'https://maven.fabric.io/public/io/fabric/tools/gradle/1.22.0/gradle-1.22.0.jar'.
> Connect to fabric-artifacts.s3.amazonaws.com:443 [fabric-artifacts.s3.amazonaws.com/54.231.114.146] failed: Connection timed out: connect

finally,I have to remove the Fabric...

minSdkVersion: '21'

Can you please downgrade the minSdkVersion becz it's not working on almost all my devices

The FFT data captured depends on the device volume

The data captured by the Visualizer using "onFftDataCapture()" method depends on the device volume as a result the DNA rendered is inconsistent if the user changes the Volume level.
If volume is high, so will be the data captured using FFT.

lose Config file

import com.sdsmdg.harjot.MusicDNA.Config;

i can't find this package, compile failed, could you help me?

error in build.gradle(Module.app)

Error:(66, 14) Failed to resolve: com.crashlytics.sdk.android:crashlytics:2.6.2
cannot resolve this error please help!!!

//Code//

buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }

    maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
}

}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

apply plugin: 'com.android.application'
apply plugin: 'crashlytics'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.sdsmdg.harjot.MusicDNA"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 24
    versionName "0.9.95"
    renderscriptTargetApi 19
    renderscriptSupportModeEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'jp.wasabeef:recyclerview-animators:2.2.3'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
compile 'com.squareup.okhttp:okhttp:2.2.+'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.+'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'de.hdodenhof:circleimageview:2.0.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'bz.tsung.android:objectify:1.1.1'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:palette-v7:23.4.0'
compile 'com.wang.avi:library:1.0.5'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.diogobernardino:williamchart:2.2'
compile 'tyrantgit:explosionfield:1.0.1'
compile 'com.google.code.gson:gson:2.5'
compile 'com.h6ah4i.android.widget.verticalseekbar:verticalseekbar:0.7.0'
compile 'jp.wasabeef:blurry:2.0.2'
compile 'me.priyesh:chroma:1.0.2'
compile 'com.github.amlcurran.showcaseview:library:5.4.3'
compile('com.crashlytics.sdk.android:crashlytics:2.6.2@aar') {
    transitive = true;
}

}

Add video demo

Add a video of about 10 seconds in the Player in Action section. The screenshots don't make it very clear how the feel would be while actually using it.

Tutorial out of screen

The buttons "next" and "done" are out of screen on 2 tested devices, it's nearly impossible to tap on them to get further.

crash when searching lyric

App crash every time I tap searching lyric, (genius API key has been added)
Also it always ask for permission every time it opened

License,

Is this project for free use? Since, of course, referencing the author?

Song picture doesn't updated

I was changing all song pictures in one album.
All works fine. Except at the number one song in those album, the pict doesn't updated.

I try to checked another music player and I see that pict song is updated.

Copyright violation

Hi @harjot-oberai

I found this app on the Google Play Store. This guy just took your source code, added some ads in it and put it on the Store, without warning this is free software (but they claim to be based on your source code...)

I don't know if you agree with this kind of "work", but because you are the owner of the source code, feel free to open a request to google here to remove the fake app from the Store, if it's your wish ;)

Don't forget to tell Google that:

  • The app is free software and this guy is violating the license;
  • He is falsely claiming he made the app;
  • Include screenshots of your app.

Application doesn't show up in File Manager

While browsing my songs library using my default File Manager, when I click on a audio file all the other music players show up but not MusicDNA.

I am using MIUI8 on Xiaomi Mi4.

Remove unused / unneeded Permission request

When first opening the application it asked for my microphone use. This seems unsafe to the potential user because there is no indication of a feature that needs a microphone

force closes

hi every time i try to run the apk it closes before the apk is started i can send logs if it will help

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.