Hacker News new | past | comments | ask | show | jobs | submit login

Hi, Concertmaster developer here.

Thanks for trying the app. Very surprised by the repercussion!

Well, the current version of Concertmaster has a known bug which freezes the app in its first run. (This issue will be solved in a major update January, but I’m seriously thinking of releasing a fix today or tomorrow.)

Please try closing the app and running it again. It may work




Tried this with the Linux version, no luck. (I'm using Arch Linux but unpacking the .deb reveals an executable that appears to run, it just gets stuck on Loading as you describe.)

I really look forward to trying this out when that's fixed, or if you can suggest a workaround. It's a subject I'm very interested in both as a listener and a developer. I spent a while thinking about this problem a few years ago, in the hope of making a music player that could tell you things like "what other recordings of this work are there?", "what else can I listen to that is arranged for cello, violin, and piano?", "suggest one recording of each of Carl Nielsen's symphonies", etc. Or even apparently very simple things like "play the symphony from this album, but stop when you reach the end of the work, don't play the overture they stuck on the end to fill up the CD". At the time I was still imagining something based on a mixture of local CD rips, things available on download services (which could be suggested but not necessarily played), etc.

Anyway, I didn't really do anything -- I got only as far as throwing together this messy RDF dataset http://dbtune.org/classical/ -- and I haven't returned seriously to the problem since. It's remained on my mind though, not least because I would still love to be able to use such a thing, and I'll be very interested to see how you're approaching it.


I fixed the loading screen bug like this:

    sudo pacman -S asar
    cd Concertmaster/resources
    asar e app.asar app
    rm app.asar
    printf "1018a1019\n>                                 var listul = '';\n" | patch app/js/lib.js
I was able to start playing something, but then it freezes. Currently looking into that...


Ooh! That works for me (so far). Thank you. This is a very nice UI, I'll have to explore it more. I especially like the play timeline for the whole piece with movements as subdivisions.

Only complaints so far: the horizontal scrollbar is a bit thin and hard to grab; and, er, when I click the yellow button at top right (of the three Mac-style blobs) the window disappears entirely without leaving any way I can find (under Gnome) to get it back again.

Terrific work though.


Fun to see other people looking into my code. Great job :)

Concertmaster is built over Electron and, as such, it is 100% JavaScript. In fact, it's not a more convenient website only because of Spotify's limitations.

It would be possible to make Concertmaster open source, but it's far from professional - it's more like a hobby I'm keeping for 3, 4 years.

(Concertmaster is more than the client. It has several server-side functions as well.)


Don't worry about code quality, it's perfectly readable. Although I only have very limited javascript knowledge, I would love to contribute if you make this open source. It's really a great project!

After a few seconds, it still freezes for me, so that's one thing I could try to fix :)


I use Concertmaster all the time on my Mac, with no problems at all. Which OS are you running?


I'm running Arch Linux with spotify version 1.0.67.582.g19436fa3. It gets stuck at this screen as soon as I start playing something:

https://i.imgur.com/WJZKiUA.png

After that, the GUI elements just don't respond at all. There is no CPU usage, so it's probably not an infinite loop.

I enabled logging, but don't see anything significant.


Hi! Nice to hear from you.

Classical music has a very complex taxonomy and the so-called “metadata problem” hasn’t been solved by any streaming provider so far. There are some guys in Berlin that are creating a completely new streamer called Idagio, and it seems promising. But they are struggling to sign deals with labels, the process of adding recordings to their database is understandably slow, and subscribing a new streamer implies an additional cost to listeners.

I tried to solve the “metadata problem” using existing infrastructure: Spotify and All Music Guide. (Scraping AMG website sits in a legal gray area, I know.)

DBTune looks very nice; I recall a similar app in early 2000s called ClassiCat. Anyway, if you have the UPC of an album, it’s fairly easy to play it in Spotify.

Cheers!

PS: I’m a Nielsen fan too :)


Check out MusicBrainz for metadata. E.g., https://musicbrainz.org/artist/1be1367d-119f-4b08-bdfe-50b95... (Nielsen's artist page) or e.g., https://musicbrainz.org/release/d757ff3a-5502-4e86-952e-dc1e... (an album page) — note all the classical metadata.

Further — the data is licensed freely, and there is an API to get at it all; no scraping needed.


Thanks! If I can recall correctly, MBz API doesn’t inform UPC numbers - something essential to the Spotify integration. But it seems nice and I’ll study it further.


Hi! MusicBrainz team member here. We do have UPC numbers (well, barcodes), although if it was me doing this I would depend on those as a second source, and first check if there's an actual Spotify album ID (which we already store, but we don't have that many of right now). In fact, this seems like the kind of app that might make people actually go and add more Spotify album IDs in MusicBrainz just to get more/better content in Concertmaster.


Concertmaster seems to be simpler and more focused, in terms of metadata, than anything I might have made would have been. Which is a good thing -- having used it a bit now (by applying the fix provided elsewhere in this thread) I have to say I'm delighted with it. The UI-first design, in which the complexities of the metadata are very well hidden, is a joy.


Thanks so much!

I'm very sorry for the bug, it'll be fixed shortly.


As for Nielsen recordings, you presumably have the (Excellent!!!) set of all six symphonies released on BIS a couple of years ago? (Sakari Oramo/Stockholm Symphonic Orchestra)

Thanks for the reminder, as a matter of fact I think I'll put on his 3rd for lunch.


Great recordings indeed! I'm specially fond of the classic Blomstedt renditions in San Francisco. Schoenwandt and Alan Gilbert are also very good. I had the pleasure to attend the Gilbert/NYPO rehearsals of 5th and 6th symphonies for these recordings - amazing experience!


Looks neat, but I have the bug. As a "workaround" (as someone mentioned later in the thread), if I click on the tray icon I can open the app, and then close the splash screen manually. However, I can't get it to play anything, and when I go to the Options screen, the Spotify Status is always "Spotify is not running or unresponsive".


Which Spotify version do you have? They keep changing things and these changes often break Concertmaster. I'll release a new version tonight and it will, hopefully, fix most bugs. So far, it's running flawlessly on my own computer.


The new version of Concertmaster fixed it for me...the splash screen goes away, the main window comes up, it detects Spotify, and actually plays music.

So far, it's amazing...great job!


Spotify version 1.0.69.336.g7edcc575, installed this morning when I read about Concertmaster.


Please do. Closing the app didn't work, killing all its processes it didn't work (Win10).


Ubuntu 17.04. the process is hanging even when quitting from the UI, and killing the process through CLI just bring back to the initial state. I would love to try it and I even reinstalled spotify for it.


Cool app idea! I listen to a lot less classical music than I would like exactly due to the problem you are trying to solve.

I have the loading screen problem running the linux version aswell. Running the app with logging enabled gives the following output. Hopefully this helps you with debugging.

  λ ~/ export ELECTRON_ENABLE_LOGGING=1 && /opt/Concertmaster/concertmaster --remote-debugging-port=8315
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token )", source: /opt/Concertmaster/resources/app.asar/js/jquery.js (1)
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token )", source: /opt/Concertmaster/resources/app.asar/js/jquery.js (1)
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected string", source: file:///opt/Concertmaster/resources/app.asar/js/jquery.mousewheel.js (1)
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token =", source: file:///opt/Concertmaster/resources/app.asar/js/jquery.leanModal.min.js (1)
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Invalid or unexpected token", source: file:///opt/Concertmaster/resources/app.asar/js/html.sortable.0.1.3.js (1)
  [20025:1213/104849:INFO:CONSOLE(2)] "Uncaught SyntaxError: Unexpected token }", source: file:///opt/Concertmaster/resources/app.asar/js/toggles.min.js (2)
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Illegal return statement", source: file:///opt/Concertmaster/resources/app.asar/js/select2/js/select2.js (1)
  [20025:1213/104849:INFO:CONSOLE(96)] "Uncaught SyntaxError: Error parsing /opt/Concertmaster/resources/app.asar/node_modules/@exponent/electron-cookies/package.json: Unexpected token e in JSON at position 2", source: module.js (96)
  [20025:1213/104849:INFO:CONSOLE(1)] "Uncaught SyntaxError: Unexpected token )", source: file:///opt/Concertmaster/resources/app.asar/js/lib.js (1)
  [20025:1213/104849:INFO:CONSOLE(41)] "Uncaught ReferenceError: request is not defined", source: file:///opt/Concertmaster/resources/app.asar/index.html (41)
  [20025:1213/104849:INFO:CONSOLE(0)] "Failed to decode downloaded font: file:///opt/Concertmaster/resources/app.asar/css/PetitaMedium.ttf", source: file:///opt/Concertmaster/resources/app.asar/loader.html (0)
  [20025:1213/104849:INFO:CONSOLE(0)] "OTS parsing error: invalid version tag", source: file:///opt/Concertmaster/resources/app.asar/loader.html (0)
  [20025:1213/104849:INFO:CONSOLE(0)] "Failed to decode downloaded font: file:///opt/Concertmaster/resources/app.asar/css/Sanchezregular.otf", source: file:///opt/Concertmaster/resources/app.asar/loader.html (0)
  [20025:1213/104849:INFO:CONSOLE(0)] "OTS parsing error: invalid version tag", source: file:///opt/Concertmaster/resources/app.asar/loader.html (0)
  [20025:1213/104849:INFO:CONSOLE(153)] "Uncaught ReferenceError: $ is not defined", source: file:///opt/Concertmaster/resources/app.asar/index.html (153)
  [20025:1213/104849:INFO:CONSOLE(0)] "Failed to decode downloaded font: file:///opt/Concertmaster/resources/app.asar/css/PetitaMedium.ttf", source: file:///opt/Concertmaster/resources/app.asar/index.html (0)
  [20025:1213/104849:INFO:CONSOLE(0)] "OTS parsing error: invalid version tag", source: file:///opt/Concertmaster/resources/app.asar/index.html (0)
  [20025:1213/104849:INFO:CONSOLE(0)] "Failed to decode downloaded font: file:///opt/Concertmaster/resources/app.asar/css/Sanchezregular.otf", source: file:///opt/Concertmaster/resources/app.asar/index.html (0)
  [20025:1213/104849:INFO:CONSOLE(0)] "OTS parsing error: invalid version tag", source: file:///opt/Concertmaster/resources/app.asar/index.html (0)
  [20025:1213/104849:INFO:CONSOLE(284)] "Uncaught ReferenceError: spotinit is not defined", source: file:///opt/Concertmaster/resources/app.asar/index.html (284)
  [20025:1213/104849:INFO:CONSOLE(347)] "Uncaught ReferenceError: $ is not defined", source: file:///opt/Concertmaster/resources/app.asar/index.html (347)
  [20025:1213/104849:INFO:CONSOLE(360)] "Uncaught ReferenceError: $ is not defined", source: file:///opt/Concertmaster/resources/app.asar/index.html (360)
System info:

  λ ~/ lsb_release -a
  No LSB modules are available.
  Distributor ID: Ubuntu
  Description:    Ubuntu 16.04.3 LTS
  Release:        16.04
  Codename:       xenial
  λ ~/ uname -a
  Linux thom-laptop 4.4.0-101-generic #124-Ubuntu SMP Fri Nov 10 18:29:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  λ ~/




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: