tsquillario / jamstash Goto Github PK
View Code? Open in Web Editor NEWHTML5 Music Streamer for Subsonic
Home Page: http://jamstash.com
HTML5 Music Streamer for Subsonic
Home Page: http://jamstash.com
I set A-Z words in Subsonic as the following:
0-9(0123456789[() A-Z(ABCDEFGHIJKLMOPQRSTUVWXYZ) #
In Subsonic, it will show "0-9 A-Z #" in the buttom.
But in MiniSub, it will show "0-9 A-Z 0-9", and "#" disappear.
Playing the song "Nød og løst", the <title> shows "Nø og løt".
When I hover over toHTML.un(title) in player.js:170, it says title is "Nød og løst", while the output gives "N\370 og l\370t" – shouldn't this simply stay unchanged instead?
Hi,
after updating to the latest version of Minisub i cant contact my subsonic server (Alert says "Bad Server" and Console tells the access-control-allow-origin multiple domains problem).
I tried to allow it via my apache vhost config - but it didnt work either.
Thanks for your help!
Backbone might be a good option here.
My default web player in subsonic is now controlled by minisub apparently and doesn't show the flash player on the same line as the choosing of the player.
After uprading Chrome to version 18.0.1025.142, minisub hangs randomly on playing.
I need to close the webpage and start a new one. Refresh (F5) is no use.
No such problem when using chrome version 17.
What I can do for this situation ? What information I can give u ?
I created a media folder in subsonic administration. My mp3's are located directly in this folder and not in sub folders. minisub does not show them. Minisub only shows me mp3's that are inside folders within my media folders.
Consider adding a textbox in the preferences section to enter the client application name so different transcoding options can be used. A default name such as "MiniSubWeb", rather than "subweb", can be there by default that better reflects this application.
It's unfortunate that there doesn't appear to be a way to get the player names from the REST API ( http://www.subsonic.org/pages/api.jsp ) to put these in a drop-down list.
The navigation letters on the bottom left of the Music Library page overflow onto the content listing on the right side.
Can they wrap like the main Subsonic web application?
Occurs on both Firefox 9x for OSX 10.6.8 and Chrome 16x for Windows 7.
Did not try other browser or OS versions.
Found this with 2.2.6 from the Chrome store.
otherwise they're just confusing ;)
Browser's title can't show unicode correctly ... The following is my modification ...
app.js:
19,33d18
< var toHTML = {
< on: function(str) {
< var a = [],
< i = 0;
< for (; i < str.length;) a[i] = str.charCodeAt(i++);
< return "&#" + a.join(";&#") + ";"
< },
< un: function(str) {
< return str.replace(/&#(x)?([^&]{1,5});?/g,
< function(a, b, c) {
< return String.fromCharCode(parseInt(c, b ? 16 : 10))
< })
< }
< };
<
377c361
< scrollTitle(toHTML.un(artist) + ' - ' + toHTML.un(title));
scrollTitle(artist + ' - ' + title);
379c363
< setTitle(toHTML.un(artist) + ' - ' + toHTML.un(title));
setTitle(artist + ' - ' + title);
i just loaded minisubs today and im not getting a play list or albums list
The HTML5 player only plays the song length divided by 2.
I know the goal here is simplicity, and I know I can use the arrow buttons, but forward and back buttons would be great!
Also the album artwork is also not working for me.
One more suggestion, and I don't know if this is just a flex thing:
It would be great if the size of the player was stretched to the size of the window, similar to the way google music beta does it.
Do you have a google music beta acct? I'd be glad to invite you. They have a great web app but it relies on google's cloud.
This is always null for me. Any guesses why?
After reverting to 4.5 where the Content-Length header is not set which is just an estimation and apparently a very wrong one. The AudioJS has no idea how long the song is and subsequently will not play the next song. Any ideas how to work around this?
I'm not sure if the Subsonic API allows for it but would it be possible to automatically play the next track from the selection?
Example; If I'm in an album and double click to play the second song in the album, once the song has finished playing the player stops and does not select the next track, the only way to achieve this is by adding all of the tracks to the current playlist and selecting from there (or by selecting 'Play album)
If a song is selected this would wipe the playlist and replace it with the current albums playlist.
Also, a repeat option would be awesome.
I've noticed myself pushing the wrong button every now and then when adding music to the play queue. As such I'm now usually checking the tooltips which is not very nice.
In the track listing the first item is "Add to current playlist", which leads to think the first +Playlist in the toolbar is also that (just shortened), and even the title suggests that, since there is some ambiguity between "playlist" and "current playlist" ( is the latter the Play Queue or a currently selected playlist? ).
Partly I think this is also a consistently issue:
Suggested solutions:
If you want to keep the separate +Current and +All buttons, I'd rename the +Current to +Selected, so it would read "Add selected" and "Add all". +Playlist would still be technically wrong, but as it's the last, there would be less chance for confusion.
Here's an image of what I think would be the nicest and most clear:
I'd like to be able to play Ogg files through MiniSub without transcoding, however after deactivating "mp3 audio" transcoding through the MiniSub player preferences in the Subsonic UI, it doesn't work. It thought it would, since my browser support the Ogg Vorbis codec through HTML5.
Here is the Soundmanager log when I try to play an Ogg file :
[14:00:04,195] soundManager.createSound(): audio (http://example.net:4040/rest/stream.view?u=lavamind&p=enc:663372263239387230306765&v=1.8.0&c=MiniSub&id=2986&salt=94263) @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:04,196] SMSound() merged options: {
id: audio,
url: http://example.net:4040/rest/stream.view?u=lavamind&p=enc:663372263239387230306765&v=1.8.0&c=MiniSub&id=2986&salt=94263,
stream: true,
type: audio/mp3,
multiShot: false,
whileloading: { var percent = this.bytesLoaded / this.bytesTotal; var scrubber ... },
whileplaying: { var percent = this.position / this.duration; var scrubber = $("... },
onload: { var duration = $("#audio_wrapper0").find(".duration"); var dp =... },
onpause: { if (debug) { console.log("Pause Event: " + " playState:" + this... },
onresume: { if (debug) { console.log("Resume Event: " + " playState:" + thi... },
onsuspend: { if (debug) { console.log("Suspend Event: " + " playState:" + th... },
onfinish: { var next = $("#CurrentPlaylistContainer tr.playing").next(); if... },
ontimeout: { if (debug) { console.log("The status is " + status.success + ",... },
autoLoad: false,
autoPlay: false,
loops: 1,
multiShotEvents: false,
pan: 0,
usePolicyFile: false,
volume: 100
} @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:04,197] SMSound.play(): Attempting to load "audio" @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:04,197] SMSound.load(): http://example.net:4040/rest/stream.view?u=lavamind&p=enc:663372263239387230306765&v=1.8.0&c=MiniSub&id=2986&salt=94263 @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:04,199] (Flash): auto-play allowed @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:04,199] SMSound.play(): "audio" is starting to play @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:04,326] GET http://example.net:4040/rest/stream.view?u=lavamind&p=enc:663372263239387230306765&v=1.8.0&c=MiniSub&id=2986&salt=94263 [HTTP/1.1 200 OK 43856ms]
[14:00:04,327] GET http://example.net:4040/MiniSub/images/pause_24x32.png [HTTP/1.1 200 OK 177ms]
[14:00:04,328] GET http://example.net:4040/rest/scrobble.view?u=lavamind&p=enc:663372263239387230306765&v=1.8.0&c=MiniSub&f=json&id=2986&submission=false [HTTP/1.1 200 OK 170ms]
[14:00:07,132] Saving Track Position: songid:2986, albumid:2980, position:null @ http://example.net:4040/MiniSub/js/libs/api.js:996
--
[14:00:48,089] SMSound._onload(): "audio" failed to load? - http://example.net:4040/rest/stream.view?u=lavamind&p=enc:663372263239387230306765&v=1.8.0&c=MiniSub&id=2986&salt=94263 @ http://example.net:4040/MiniSub/js/sm/soundmanager2-jsmin.js:32
[14:00:52,134] Saving Track Position: songid:2986, albumid:2980, position:null @ http://example.net:4040/MiniSub/js/libs/api.js:996
The current playlist (and other playlists too, but the queue is the most important one) should be sortable by the user, i.e. changing the order of the entries. And I am not talking about Subsonic's pure crap implementation featuring up&down arrow buttons next to each list entry - drag&drop is the way to go.
Perhaps this could be useful: http://jqueryui.com/demos/sortable/
Since 1.2.0 Subsonic supports Basic-Auth. Iposonic supports it too.
This could help caching: if two users requires the same resources the request will hit the same URI.
Large playlists are not loading. Not sure where the breaking point is but a 513 song playlist will load but a 1439 one will not. Both lists load OK using the Subsonic player.
When attempting to load the large playlist the loading notification appears but it stops after a few seconds without displaying a response such as "x song(s) loaded".
Version used: 7/20/2012 - 2.0.5. Unknown if the issue occurs with prior versions.
It would be great if the playlist view could shift the page up to the currently playing track. It would be really useful especially when loading very large playlists to see where you're currently at and what's coming up.
I would assume that on track change we could implement a smooth scroll jQuery plugin like this (http://flesler.blogspot.com/2007/10/jqueryscrollto.html) to shift the window to focus on the currently selected table row.
Does anyone have any ideas on how to implement this into the code?
MiniSub is currently assumed to be running on the same web location as Subsonic.
Consider adding a server option so MiniSub can be run on another Intranet or Internet location.
The times do not match between the time listed and the play time at the bottom, 65:03 at the bottom, 5:06 in the listings.
If the artist or track name has a non-ASCII character, the next letter in the name does not appear in the title of the window. Everywhere else the name looks fine. Using 2.2.6 from the Chrome store.
I've noticed that if I pause a song and restart it a few minutes later it will stop playing part way through the track. This generally happens after a few minutes, not immediately, but it nearly always happens before the restarted track finishes. Perhaps when paused, the track stops loading, and upon restarting playback the loading remains paused?
When loading, minisub displays the content of all the folders in subsonic.
In my case, I have several folders like 'Music','Video', 'Documentary',...
I'd like to filter on one specific folder (like Music).
If songs are being played ...
When using "Play Album" in Library to play new songs, it won't clear old songs and play the songs automatically.
I found that Desktop Notification can't show unicode in the latest version. The following modification maybe a solution ...
I can't test the following code, because I can't save the Desktop Notification setting if the website is from my local computer. But no problem to save the setting when using Chrome App.
421c421
< showNotification(baseURL + '/getCoverArt.view?v=1.6.0&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart, toHTML.un(title), toHTML.un(artist + ' - ' + album));
showNotification(baseURL + '/getCoverArt.view?v=1.6.0&c=' + applicationName + '&f=jsonp&size=50&id=' + coverart, title, artist + ' - ' + album);
//UDATE arf my subsonic server is down.... //
//UPDATE my sever is up and i still have the problem (API 1.8.0)
Form a fresh install on my own server the playlist build fail. I see the "a" tab but no artists ;
Error in api.js :
line 58 : if (index.artist.length > 0) {
//Uncaught TypeError: Cannot read property 'length' of undefined
artists = index.artist;
Tracks greater than one hour in length do not get time rendered properly. The minutes:seconds are shown, but not the hour(s). One hour, 3 minutes, 30 seconds renders as 3:30.
currently only album is clickable, it'd be really nice to be able to go straight into a view of all songs by that artist.
Hi,
I am having an issue in playing the next song from MiniSub, infact I cannot play any other song after I have played the first song. I have to refresh my firefox page to start another song. I dont see any error in the subsonic logs. I have been running my subsonic server on my Raspberry Pi for quite sometime now using the Raspbian distro. Its works fine on the standard subsonic page or when I play from the iSub application on my ipod touch. Only the MiniSub is having having problems.
I am running MiniSub 2.0.5 and its installed in /var/subsonic/jetty/3105/webapp/mini/. Access the MiniSub in Firefox 15.0.1 on Windows XP. Subsonic server is 4.7 (build 3105).
Cheers!
The Flash fallback component of jPlayer seems to be missing in 2.2.7 ?
If I download it into js/jplayer, it works.
Would be a nice option to put toggles in the Preferences tab to show/hide the Chat and Now Playing portions in the AudioJS component.
It would be great if a "random" button could be added to the top toolbar when viewing all albums of a selected artist so that it will generate a playlist of random tracks from all albums of that artist.
Playing a song is broken.
Uncaught TypeError: Cannot call method '_createSound' of null
I'm not sure if it's possible and I've been digging through the code and can't find it, but it would be really useful if we could add small "Next Track" and "Pause/Play" buttons in the Chrome notification window that pops up when tracks change. That way you can quickly skip a song if you don't like it without having to go to the full UI.
thanks!
Great work on this interface! Thanks for taking the time to not only develop it but to release it on github. Mad props!
After installing MiniSub and navigating to the correct URL I was faced with an empty music library. Pointing my browser to the REST URLs indicated my Subsonic install and hence API was out of date (Error Code 30). See the "Error Handling" section of the Subsonic API for more details.
I think it would be handy to inform the user of this via some method.
I'm getting the following error when trying to play anything in my collection in Chromium with MiniSub. Using the standard subsonic UI I have no issues. Using Firefox with either UI I have no issues. I'll try to add as much info as I can.
Error in chromium UI:
Error loading: "http://my.domain.tld:port/rest/stream.view?v=1.6.0&c=subweb&f=json&id=2f6d656469612f6d757369632f4d757369632f416c69636520696e20436861696e732f466163656c6966742f6d616e5f696e5f7468655f626f782e6d7033"
The only other error I see is a 500 error on getCoverArt.view
but I get that in both Firefox and Chromium so I believe that's unrelated to this issue.
Now that I look a little closer I get two requests to stream.view
. One just sits at "(Pending)" and the other returns "HTTP206: Partial Response". This appears to be the actual music stream as the content type is "audio/mpeg"
If there is anything else I can get you that may help you troubleshoot this I'll be happy to provide it.
The AudioJS component overlaps the bottom of the preferences tab output masking some of the keyboard shortcut options.
Consider placing the AudioJS component of the Preferences tab in a section similar to the Music Library, Current Playlist and Playlists tabs to prevent overlap.
Might be worthwhile to arrange some of the Preference options horizontally to better use the white space.
Hi,
I'm missing a repeat mode, i.e. a button which when toggled, would start the current play queue from the beginning.
I prefer having playlists sorted by artist so it's easy to quickly find a song if I suddenly want it; but still be able to play in random order, could you perhaps implement a "non-destructive" shuffle, that doesn't alter the playlist? Would be awesome.
hi,
i am trying to use minisub ( as i kind of don't like flash )
i have become diehard fan on minisub and therfore is dying to use it.
However, as web standards are dirty ( with fights over mp3/ogg/webm), i am having some serious issues.
all the browsing , recently played list are perfectly fine, the only issue is playback.
i have setup a transcoder to server ogg files
ffmpeg -i %s -acodec libvorbis -ab %bk -f ogg -
transcoding a 5 min mp3 takes around 10 secs ( i am even okay with the delay between songs, but atleast the songs should play)
first i will let you problems with
in debug mode, i get this
GET http://localhost:8080//rest/stream.view?u=admin&p=enc:61646d696e31323334&v=1.8.0&c=MiniSub&id=47420&salt=4524 , this is marked red ( as it has failed, however it transferred 64 KB of data )
also, i see this
stream.view//rest GET (canceled) soundmanager2-jsmin.js:37 Script 72.71KB 72.42KB 5.2hrs 777ms
chromium build string
18.0.1025.168 (Developer Build 134367 Linux) Ubuntu 11.10
i tried firefox 11 ( as alternative )
firefox has same issue, after double-click on song, it comes down, but it never gets the song time.
i also don't see any subsonic logs ( so it looks like it doesn't even request transcoding )
in google chrome ( latest stable ), same issues as chromium, however, it shows NaN, in song time,
the code falls down into the loop, of re-downloading the song again and again.
in chrome, i cannot playback songs less than 2 mins also
i used to code in c many years ago.however, from the looks, i some how feel that the song caching/downloading engine seems to be faulty.
also, note that i am connected over 128 kbps lease line, however, songs are of 64 kbps quality.
can you help me with this, please
best case would be, if i can get it to work on firefox.
if you need more info, please let me know.
Regards,
Mike
If I'm browsing through playlists, and double-click (or click the play icon on) a song within one of them, it would make sense to replace the current playlist with the playlist of the song I double-clicked.
One minor layout issue, bringing up right pane pushes the center column down and partially offscreen. See snap below
http://img821.imageshack.us/img821/3779/screenshotfrom201209111.png
Hey tsquillario,
Nice work on MiniSub. One of my favorite features of subsonic I can't find in any client is the "chat" and "see what others are playing" features. I imagine these aren't of great priority to you. But would love to see this in MiniSub!
Also, can this be run as a standalone app? Or as a chrome app in its own window?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.