Git Product home page Git Product logo

mtg / dunya-desktop Goto Github PK

View Code? Open in Web Editor NEW
88.0 16.0 17.0 24.51 MB

A modular, customizable and open-source desktop application for accessing and visualizing music data.

Home Page: https://mtg.github.io/dunya-desktop/

License: GNU General Public License v3.0

Python 98.70% Shell 0.80% Makefile 0.22% Batchfile 0.29%
qt5 pyqt5 python music-scores visualization gui audio-recordings desktop-application pyqtgraph qt

dunya-desktop's Introduction

travis code-climate codecov AGPL CCBYNC

Dunya-desktop is a desktop application, developed for accessing and visualizing music data such as music scores, audio recordings, extracted features and analysis results. It is a modular and extendable desktop application that the users can customise according to their needs.

Dunya-desktop mainly uses PyQt5, Python bindings for Qt5 application framework, for the user interface design and pycompmusic module for reaching the backend of the Dunya.

Running

First, ensure that you have installed the relevant dependencies (see the Installation section below).

To configure Dunya-desktop, copy the file dunyadesktop_app/cultures/config.cfg.in to dunyadesktop_app/cultures/config.cfg, for example:

cp dunyadesktop_app/cultures/config.cfg.in dunyadesktop_app/cultures/config.cfg

Edit this file and replace the value DUNYA_TOKEN with your Dunya access token. You can retrieve this token after signing in to the Dunya website and visiting https://dunya.compmusic.upf.edu/user/profile/

Run Dunya-desktop by executing in the main directory:

./dunya-desktop

Installation

The code is compatible with Python 2.7+ and Python 3. We highly recommend you to use the code with Python 3 and with a virtual environment.

Installing dependencies on Mac OS

The given installation steps were tried on OS X El Capitan (v10.11.06) and OS X El Sierra (v10.12.1).

  • Install Xcode (can be installed via Mac App Store). Then install command-line tools:

      xcode-select --install
      sudo xcodebuild -license
    

    After the installation, make sure that you have agreed Apple's licence agreement.

  • Install Homebrew package manager:

      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

On Mac OS for Python 3.6

  • Install Python 3.6+, Qt 5.7 and wget with Homebrew:

      brew install python3 [email protected] ffmpeg wget
    
  • Create a virtual environment (virtualenv) and install requirements.

      pyvenv env
      source env/bin/activate
    
  • Go to directory of where dunya-desktop is downloaded.

    IMPORTANT: Don't forget to change 'path/to/dunya-desktop' with the actual directory name.

      cd path/to/dunya-desktop
    
  • Finally, install the package requirements.

      pip3 install -r requirements
      pip3 install PyQt5
    

On Mac OS for Python 2.7

  • Install Python 2.x, Qt 5.7 and wget with Homebrew:

      brew install python [email protected] ffmpeg wget
    
  • Download PyQt 5.7.1 and SIP source packages:

      wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19/sip-4.19.tar.gz
      wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.7.1/PyQt5_gpl-5.7.1.tar.gz
    
  • Untar and compile PyQt 5.7.1 and SIP:

      # compile sip
      tar -xvf sip-4.19.tar.gz
      cd sip-4.19
      python configure.py -d /usr/local/lib/python2.7/site-packages/
      make
      sudo make install
    
      # compile PyQt5
      cd ..
      tar -xvf PyQt5_gpl-5.7.1.tar.gz
      cd PyQt5_gpl-5.7.1
      python configure.py --confirm-license -d /usr/local/lib/python2.7/site-packages/ --qmake=/usr/local/Cellar/qt\@5.7/5.7.1/bin/qmake --sip=../sip-4.19/sipgen/sip --sip-incdir=../sip-4.19/siplib
      make
      sudo make install
    
  • Create a virtual environment (virtualenv) and install requirements.

      pip install virtualenv
      virtualenv --system-site-packages env
      source env/bin/activate
    
  • Go to directory of where dunya-desktop is downloaded.

    IMPORTANT: Don't forget to change 'path/to/dunya-desktop' with the actual directory name.

      cd path/to/dunya-desktop
    
  • Finally, install the package requirements.

      pip install -r requirements
    

Installing dependencies on Ubuntu 16.04

The given installation steps were tried on Ubuntu 16.04.02 LTS (xenial).

  • Install Qt 5.x and ffmpeg:

      sudo add-apt-repository --yes ppa:ubuntu-sdk-team/ppa
      sudo apt-get update -qq
      sudo apt-get install -qq qtdeclarative5-dev libqt5svg5-dev qtmultimedia5-dev build-essential
      sudo apt-get install -qq ffmpeg
      export QMAKE=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
    

On Ubuntu for Python 3.6

  • Install Python 3.6

      sudo apt-get install -qq python3-dev
    
  • Create a virtual environment (virtualenv) and install requirements.

      pyvenv env
      source env/bin/activate
    
  • Go to directory of where dunya-desktop is downloaded.

    IMPORTANT: Don't forget to change 'path/to/dunya-desktop' with the actual directory name.

      cd path/to/dunya-desktop
    
  • Finally, install the package requirements.

      pip3 install -r requirements
      pip3 install PyQt5
    

On Ubuntu for Python 2.7

  • Install Python 2.x

      sudo apt-get install -qq python-dev
    
  • Download PyQt 5.8 and SIP source packages:

      wget https://sourceforge.net/projects/pyqt/files/sip/sip-4.19.1/sip-4.19.1.tar.gz
      wget https://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.8/PyQt5_gpl-5.8.tar.gz
    
  • Untar and compile PyQt 5.8 and SIP:

      # compile sip
      tar -xzf sip-4.19.1.tar.gz
      cd sip-4.19.1/
      python configure.py
      make
      sudo make install
      cd ..
    
      # compile PyQt5
      tar -xzf PyQt5_gpl-5.8.tar.gz
      cd PyQt5_gpl-5.8/
      python configure.py --confirm-license --qmake=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake
      make
      sudo make install
    
  • Create a virtual environment (virtualenv) and install requirements.

      pip install virtualenv
      virtualenv --system-site-packages env
      source env/bin/activate
    
  • Go to directory of where dunya-desktop is downloaded.

    IMPORTANT: Don't forget to change 'path/to/dunya-desktop' with the actual directory name.

      cd path/to/dunya-desktop
    
  • Finally, install the package requirements.

      pip install -r requirements
    

License

The source code hosted in this repository is licenced under the terms of the GNU Affero General Public License (v3 or later). Any data (the audio recordings, music scores, features, figures, outputs etc.) are licenced under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact

Hasan Sercan Atlı hsercanatli AT gmail DOT com

Acknowledgements

Dunya-desktop is supported by the European Research Council under the European Union’s Seventh Framework Program, as part of the CompMusic project (ERC grant agreement 267583).

dunya-desktop's People

Contributors

alastair avatar hsercanatli avatar niccolopretto avatar sertansenturk 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dunya-desktop's Issues

Add missing features to the player

  • Audio based features

    • pitch
    • pitch_filtered
    • melodic_progression
    • makam
    • note_models
    • pd
    • pcd
    • transposition
    • tonic
  • Score&audio based features

    • makam
    • melodic_progression
    • note_models
    • notes
    • pitch
    • pcd
    • pd
    • sections
    • tempo
    • tonic
    • transposition
    • works_intervals

Mising usage instructions

I have successfully installed dunya-desktop in Ubuntu 16.04 without any problems, nice job.

However, there are no instructions on how to open the app itself, so I'm stuck now 😢

Login window

  • Add a login window
    • Check the connection of Dunya
    • Get token
    • Implement the design

SplashScreen

Show a splashscreen while the software is configuring

Basic statistics for user created collections

Add basic statistics for user created collections like for makam case,

How many recordings are there in a specific collection, statistics of makams, usuls, forms, how many of them have score and etc.

Error in playback

Ubuntu 16.04, Qt5

defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"

Db functions

  • Add/remove/modify elements
  • tags & descriptions

Waiting logo

Create an animation with compmusic logo for the long waiting processes

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.