Code Monkey home page Code Monkey logo

museeks's People

Contributors

anthonychoi avatar briangzimmerman avatar cfollet avatar dipras avatar dkniffin avatar evandandrea avatar fkd13 avatar gilgameshxzero avatar haidang666 avatar igorer88 avatar jvegaf avatar khubo avatar martpie avatar qcasey avatar vprigent avatar yurysolovyov avatar zyrouge 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

museeks's Issues

Create a Dev mode

When a first version will be released, dev tools should not be shown, we could do a toggle or something, to show the dev tools.when needed.

Create a dark theme

That's important. Many friends told me it would be great.

It shouldn't be done right now as some major changes are on the road.

Async or async-like search

Currently, the track search feature is called with an onchange event on the search input. With 100 tracks it's ok, but when you have 3000 of them, the search being synchronous take a huge amount of time and resources.

Search should be async. Something like:

  • start to write in search input
  • if nothing was written for like 400ms, then trigger search
    (best solution imo)

or

  • start searching onchange, but do not display anything
  • if nothing was written for 400ms, then display results

just ideas.

Create playlists

It implicates a new view, and contextmenus changes and a kinda heavy work to create reusable component.

  • Routing
  • Playlist view
  • Navigation
  • Create
  • Rename
  • Delete
  • Add tracks to playlist
  • Remove tracks from playlist
  • Dynamically update TracksList on playlist update
  • Rearrange tracks in playlist (to be discussed) later
  • Adapt TracksList to be usable elsewhere
  • Fix tracks load between Library and Playlist (tempfix)
  • Create playlist from TracksList
  • Adapt dark theme
  • Fix search in playlists

Interesting

Hey man, I'm interested, what language are you going to use ? :)

What kind of player will it be, do you have any source of inspiration ?

๐Ÿ‘

Split Sass in multiple files

  • Split styles in multiple files (see Webpack behavior with that)
  • Use variables for colors
  • ... bla

and all that stuff. Use SCSS just for nesting is ridiculous.

Fix positionning

When the window is resized, positioning is going wrong.

  • Queue
  • Random/Shuffle buttons (should be aligned on the left)
  • Track time elapsed (should be aligne on the right)

capture

Render tracks as tiles

We're having problem wiith big libraries, TracksList render time is getting longer and longer, >3000 tracks make the render update noticeable with the eye.

We should implement what Atom has done with the editor view: render tracks in group (tiles), and only show the tiles needed when scrolling.

  • Tracks as tiles (absolute + translate3d transformation)
  • Show only needed tiles
  • Use onScroll on .tracks-list-body instead of onWheel
  • Move chunkArray to Store to improve performance even more ? (wontdo, not really needed, it takes 0.15ms)
  • Fix multi-select with maj.

helpers:
http://blog.atom.io/2015/06/24/rendering-improvements.html
http://blog.atom.io/2014/07/02/moving-atom-to-react.html

Symlinks in music directory

It may happen, e.g. using git-annex, that in the music directory are symlinks that point in or out of the music library. It would be nice to be able to ignore symlinks pointing inside|outside the music library. Another option would be to be able to ignore certain directories (the .git in the case of git-annex).

Re-implement shortcuts

Migrating to es6, mixins could not be used, and shortcuts were ripped out.

  • Space -> play/pause
  • arrows in ArtistsList
  • enter in ArtistsList

.wav support

Chrome can read them, but I'm not sure that musicmetadata can parse them.

edit: Uncaught Error: Could not find metadata header

Set up a real Babel + Gulp stack

including Babel and scss compilation. (Use Babel only for the jsx compilation, do not rewrite everything in es6, not for the moment)

Manage next tracks

In < Playlist / >, create a drag&drop management system to rearrange tracks.

Create builds for each platform

Ideally, at each release, 3 apps should be built:

  • .exe (installer xor not)
  • .app
  • .deb

Here are some tools:
https://github.com/maxogden/electron-packager
https://www.npmjs.com/package/electron-builder

And a related issue on Electron electron/electron#673

Here are how the build "should" be. All of this can be done in a script, preferably in JavaScript rather than in bash or something.

TODO

  • Start the script ?
  • Check if the ignore parameter works
  • Remove sources and add compiled files and assets

Improve PlayingBar

  • Be able to click and drag to select an exact time of a song
  • Add a tooltip onHover to get the time at the cursor position
  • When player is paused, click on the playing bar does not update the blue bar

Make a website

Now we're close from a first pre-release, It's now time do discuss about distribution through a website.

Improve library update

  • After adding some folders to the library and then come back to the tracks list view, the whole app is lagging as hell.
  • Resetting the library should AppActions.player.stop() then empty ArtistsList
  • Updating the library does not refresh ArtistsList

Use es6 + Flux

As the app is getting bigger, the app has to be rewritten with Flux in mind. Otherwise the code will be unreadable. es6 is a good option too.

After that we should be able to launch a first beta or someting.

Better overflows

We can't click on overflows to scroll down the page cause it's too thin. Keep a cool design but be able to scroll clicking on the overflow.

Fix shuffle rollback

Someting is getting wrong when we rollback a shuffle. There are duplicates, and other wrong stuff.

  • remove Action call from Store
  • wrong order & duplicates
  • what if search has changed ?

Notification would not disappear

Only occurs when using ReactCSSTransitionGroup to animate notifications

After triggering some notifications, I get this warning for an unknown reason. When caught, a notification does not disappear.

There must be a problem in alert.js, they react keys seem correct.

Warning: transition(): tried to perform an animation without an animationend or transitionend event after timeout (5000ms). You should either disable this transition in JS or add a CSS animation/transition.

Gapless playback

What

  • Reduce sound interuption between two songs

Currently, when a song is over, the src of the audio tag is changed, but the tag has to preload the file a bit. So there is a micro interruption of a few miliseconds.

  • Crossfading option between song ?

How

Instead of having a single Audio object, need to have an array of 3: [previous, current, next]. Then when playing next or previous, it should be faster, cause tracks will already be loaded + Pop/Shift audio when needed. not working :[

0.1 release

App icon is missing.
That's so stupid I didn't even think about that.

Using flexbox

As from now you are using the Bootstrap 3 grid, how about using a pre existing or an own build flexbox based grid ?

Remember options when reopening

The app should remember some things when reopening.

  • volume
  • window dimensions
  • window position

notice: localStorage does not work in main.js

Add install README

This project looks great. If you have a chance, do you mind adding installation instructions?

Full refactoring

As the features are almost all there, and the code is getting terrible to read, we have to refactor the whole stuff.

Main work

  • Convert es5 to es6, then transpile with babel
  • Leave global Instance states behind and use Flux pattern
  • Upgrade to react 0.14
  • Switch from gulp to webpack
  • Switch from routie.js to react-router
  • Switch from nconf to localStorage
  • Update all packages

Code

  • Code Consistency
  • Comments
  • Clean components

Smaller stuff

  • change the way themes are implemented

Other interesting stuff to considered/discussed:

The branch used for that is full-refactoring.

probably more to come, it's gonna be a heavy work.

Fix library refresh

Library stop refresh signal is sent while entering in "the last folder" instead of "the last track of the last folder"

Fix the volume value

<input type={'range'} min={'0'} max={'100'} onChange={ this.setVolume } /> is ok.

But I'd like the volume at 100 at start. But when setting the value parameter:
<input type={'range'} min={'0'} max={'100'} value={'100'} onChange={ this.setVolume } />, then, even if the change event is triggered while changing volume, the selector stay at the same place.

I think it is related to Electron and not React, but I'm not sure.

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.