jukebox2's People
Forkers
pgr0ss slagyr mikepilat patrickgombert skatenerd deobald dpirotte wjdix mvboeke irfn snyaggarwal dpick daachi datalynk cesarmarinhorj narensh davidalphafoxjukebox2's Issues
Clicking skip should refresh the playlist
Clicking skip jumps to the next song, so we should automatically refresh the page to show the new song immediately rather than waiting for automatic refresh.
don't show search box if not logged in, since you can't add songs
since it's not obvious and i screwed it up :)
Add music browsing
Ability to drill down to specific songs and add them to the queue
track data does not update after skip if the next song is in the same album
... as discovered by me and cmonty today.
Album art not refreshing
The album art does not seem to reliably refresh between songs. Refreshing the browser will fix it. Could it be getting stuck in the browser cache?
Make UI non-ugly
It's pretty ugly now
Delete hammertimes
Need to be able to delete a hammertime
Display song progress
Needs volume normalization
...sometimes really quiet... OTHER TIMES REALLY LOUD!!!!!!!
Allow only signed in users to upload files
Right now anybody can upload music.
Skip count not saving
disable song requests for guests
if you want to request a specific song; ya gotta own up it.
Music upload fails on m4a files
There are two related issues:
- I cannot upload m4a files at all.
- If I select a bunch of files containing both m4a and mp3 and drag them into the site, the upload will fail to upload even the mp3 files.
Skipping tracks is still wonky
Just tested out skipping, it ends up playing multiple tracks simultaneously
Login form can't be filled out
Can't fill out login form because it disappears
Show play counts
Show the number of times a song has been played.
bcrypt blows up when user is not found
You get a null pointer exception
Only allow logged in user to skip songs
keyboard shortcut overlay
we should make a nice little list of available keyboard shortcuts that pops up when you press '?', a la gmail
send real growl notifications
the browser notifications are cool, but i'd like to be able to get notifications sent right to growl so i can style and configure them along with everything else i get notified about.
i installed an extension that converts chrome notifications to growl [1], which helps a bit, but it has only one notification style for every notification from every website, so i can't style it to match jukebox.
ideally i'd like to see album art as the icon along with artist and song sent to a specific notification.
it looks like this is possible via javascript with a flash swf shim to bridge to GNTP.
here's an example implementation we can borrow from:
http://www.growlforwindows.com/gfw/examples/js/
(yes the example works on mac, despite the URL - give it a shot)
[1] https://chrome.google.com/webstore/detail/efihdfpglnibppjnmnpbmdglmlljgcbk
E-Tag doesn't stop flicker anymore
Since I added the current time of the track to the view, the E-tag hashing method isn't going to work anymore...the returned html will always be different unless the player is paused.
Add music search
Search for songs by artist, title, album
add ability to delete own queued songs
to fix one's fat-fingering of song adding, but without allowing other people to skip your requests.
add songs to end instead of beginning of playlist
Add ability to play audio from youtube videos
OpenJDK 6 and getMicrosecondPosition
OpenJDK 6 doesn't implement DataLine.getMicrosecondPosition :(
deal with slashes in file names
When you add a slash in a song name it adds a folder to the music browser.
Put non-maven jars into a local maven repository
This will make it so "lein deps" is all a user would have to run, and all jars would be copied into lib correctly.
java.awt.HeadlessException being thrown on startup
Exception in thread "main" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it. (NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5440)
at clojure.lang.Compiler.eval(Compiler.java:5415)
at clojure.lang.Compiler.eval(Compiler.java:5391)
at clojure.core$eval.invoke(core.clj:2382)
at clojure.main$eval_opt.invoke(main.clj:235)
at clojure.main$initialize.invoke(main.clj:254)
at clojure.main$null_opt.invoke(main.clj:279)
at clojure.main$main.doInvoke(main.clj:354)
at clojure.lang.RestFn.invoke(RestFn.java:422)
at clojure.lang.Var.invoke(Var.java:369)
at clojure.lang.AFn.applyToHelper(AFn.java:165)
at clojure.lang.Var.applyTo(Var.java:482)
at clojure.main.main(main.java:37)
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:173)
at java.awt.Window.(Window.java:476)
at java.awt.Frame.(Frame.java:419)
at java.awt.Frame.(Frame.java:384)
at javax.swing.JFrame.(JFrame.java:174)
at clojure.java.browse_ui$open_url_in_swing.invoke(browse_ui.clj:20)
at clojure.lang.Var.invoke(Var.java:365)
at clojure.java.browse$open_url_in_swing.invoke(browse.clj:44)
at clojure.java.browse$browse_url.invoke(browse.clj:52)
at leiningen.ring.run_server$run_server.invoke(run_server.clj:34)
at user$eval850.invoke(NO_SOURCE_FILE:1)
at clojure.lang.Compiler.eval(Compiler.java:5424)
... 12 more
Emit events for tracks
Need to have Jukebox Player emit events when a track changes state (play, pause, skip) to keep web interface up-to-date.
Memory issues with hammertimes
To reproduce:
- create a hammertime from an m4a
- set the start and end near the end of the song
- try to play it
- watch the app crash
We have a pretty suboptimal algorithm we use to seek to the correct place. We might end up with 3 copies of the song in memory. Ideally, we can get that down to zero and only have a buffer full of data in memory at a time.
Take a look in the jukebox-player/mp4_track.clj.
Honor disabled users in randomizer
If a user is disabled, the randomizer should not select songs from their music.
Add ability to play tracks from spotify
Need to wrap the libspotify C library or find a Java one
Seems to totally screw up audio on OSX
Steps to reproduce:
- Run jukebox on OSX with an apple cinema display plugged in
- Music only plays out of ACD speaker at full volume
- Sound preference pane has no effect on output (volume or output selection)
User names should be unique
Currently, you can add multiple users with the same name. This shouldn't be allowed.
edit user
I'd like to be able to edit a user to change the avatar.
Investigate available data from echonest
Possibly create more issues with ideas of what we can pull in:
Too many open files
It seems we are not cleaning up after ourselves. The player code would be a good place to start.
java.io.FileNotFoundException: data/jukebox.fdb (Too many open files)
at java.io.RandomAccessFile.open(Native Method)
at java.io.RandomAccessFile.(RandomAccessFile.java:216)
at fleetdb.embedded$check_log.invoke(embedded.clj:16)
at fleetdb.embedded$read_db.invoke(embedded.clj:29)
at fleetdb.embedded$load_persistent.invoke(embedded.clj:71)
at jukebox_web.models.db$open_db.invoke(db.clj:11)
at jukebox_web.core$with_connection$fn__1056.invoke(core.clj:51)
at ring.adapter.jetty$proxy_handler$fn__77.invoke(jetty.clj:16)
at ring.adapter.jetty.proxy$org.mortbay.jetty.handler.AbstractHandler$0.handle(Unknown Source)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
file uploads don't work
I drag files on to the page, I get boxes with the file names in them. Nothing seems to happen. Also, how is it supposed to work for browsers without html5?
Add biased track selection
Favor popular tracks
Don't bias to people with a lot of music
skip artist
For example, somebody may want to skip all songs by Skrillex .
Add ability to pause after a hammertime
For stand up song
visual indication of disabled users on front page
either "X" out the users who are disabled or remove them from the list of "playing music from"
Add volume control
Add Free songs in /music dir
So tests can pass on checkout
Use a few different formats
Should we throw all music in one bucket instead of user folders?
Would avoid duplication of files
Probably need database for all music then, which opens up lots of possiblity
Schedule hammertimes
At a specific time, for stand-up songs
last.fm integration
Add last.fm artist and album info for the playing song.
Display album art
Can pull in from id3 tag; amazon service; other places
Browse for file when creating a hammertime
Right now it's just a text box and you have to know the full path - should be able to browse for a file.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.