Giter Club home page Giter Club logo

v4m's People

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

aterza moinelly

v4m's Issues

The two players should be specialized

In the current development branch, both players are the same - they are twice the copy of the same Player object sitting in player.cpp.

A second, stripped-down version of a QMediaPlayer (or possibly a QAudioDecoder class - which may be more useful) should be worked out so that it can play only the given set of built-in frequencies which should become basic sample arrays (see #3). This player class should be called FrequencyPlayer and its sources should reside in frequency_player.h and in frequency_player.cpp.

In the end, the DoublePlayer class (in double_player.cpp) should contain one Player class and one FrequencyPlayer class.

Specialized Frequencies should be hard-wired inside the code

As a simplification matter for now, there should be a set of arrays of samples which should contain all the needed (stereo) samples of specific frequencies required by the vibed app. This would allow the FrequencyPlayer (see #2) to play those frequencies without too much hassle.

This should be done like this:

  1. an audio/build directory should be created
  2. a csound .orc/.sco (multi-)pair of files should be created to synthesize these sounds
  3. an octave (or python, or ruby, or whatever) script should be created to convert the wave files into c++ arrays to be included into a Frequencies object in the code.
  4. a Makefile should be built to automate the build process

Repeat button on the music player

The music player should have a repeat button with the following functionality:

  • 1 tap: repeat one
  • 2 tap: repeat playlist
  • 3 tap: disable repeat

This button should be added to the Player object (the FrequencyPlayer object - see #2 and #3) will have other, different buttons.

Music Player should have the `straight/shuffle` button

The music player Player object currently is missing the straight/shuffle toggle button. The default should be straight, and when tapping it it should randomize the playlist (or the music repository if the playlist is non existant) with a common no-twice-in-a-row randomization algorithm. If tapped again it should go back to straight listening from the piece where it is onwards.

QML integration

Currently, the whole codebase has hard-wired graphics. We should shift graphics to QML, possibly to v-play.

QStandardPaths does not find the Music folder

The QStandardPaths class (http://doc.qt.io/qt-5/qstandardpaths.html) does not work as advertised. In particular, it will not set the proper Music folder on IOS, Android and for that matter, anywhere else.

As a result, this piece of code in player.cpp in the current development branch:

233      fileDialog.setDirectory(QStandardPaths::standardLocations(QStandardPaths::MusicLocation).value(0, QDir::homePath()));
234      qInfo() << "Music Directory: " << QStandardPaths::displayName(QStandardPaths::MusicLocation);

does not work properly (no music folder is opened, no music is displayed). Ideally, there shouldn't be an open button, the playlist field should fill itself automatically from the Music folder.

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.