A replacement for Prokyon3

  • Brian Millham

    Brian Millham - 2012-11-02

    I've been looking around to see if there is a replacement for prokyon3, and have come across one that I think works OK.

    Ampache. It's web based (required that you have Apache installed).

    It has some good things going for it:
    - Properly handles Unicode
    - Is a REAL relational database (instead of P3's weird database layout)
    - Currently supported and developed
    - Works on Ubuntu 12.04 (well, it should. I didn't actually test that yet, but no reason why it shouldn't)

    Some negatives about it:
    - Much slower than P3 scanning a library
    - No ability to edit tags, so you need another program for that (no big deal for me, since I use Puddletag for that already)

    You can speed up library updates by just adding new tracks. The slow part is verifying existing tracks for tag changes. And there is a way to update tags on a per album basis. Or, you can setup a cron job to verify tags nightly.

    I'm really considering completely switching to Ampache. Over the next few days, I'll look at what it would take to allow IDJC to use the Ampache database. If there is any interest, I'll share patches to the latest development version of IDJC to enable Ampache support.

  • Stephen Fairchild

    P3 is abandoned and IDJC support should be removed in the next version but only if a worthwhile replacement is found.

    I took a look at gmusicbrowser, a program that caused X to lock up the very first time I tried it. It also manages to lose track of player processes. Clearly not something I want to associate IDJC with.

    Other programs are too tied into their own player like Exaile for example. If Exaile can scan it's own music database then so should IDJC. This actually makes Exaile a bad partner program.

    Ampache from your decription is what I have been looking for. I managed to install Linux From Scratch. Why not this? It's just painful. Maybe I will have another look tomorrow.

  • Stephen Fairchild

    I managed to get Ampache running in Virtual Box on Ubuntu with not very much difficulty then got the music library accessible in the Virtual Box environment using an NFS share (phew). This points towards a specific use case where Ampache and the media files reside on one machine with streaming dutes being performed by another but raises an important issue regarding the need for pathname transformation (/etc/mtab contains useful info in this regard).

    In summary there is genuine interest in your getting this to work in IDJC.

  • Brian Millham

    Brian Millham - 2012-11-05

    I have my music stored on an external USB drive, and have it mounted on one of my laptops as /tardis/music.

    On the other laptop, I have it NFS mounted, also as /tardis/music

    That way the music library appears in the exact same place on both laptops.

    I have IDJC working with ampache. I just have one more thing to work out, and then I will share a patch.

  • Stephen Fairchild

    Pushed Ampache support on the newly created branch: feat/ampache.

    Database connection on the standard MySQL port.
    The tree view.

    Alphabetic order for artist, album in the tree view.
    Flat view.
    Pathname stripping/prefix support for users with their media and Ampache on a remote machine.
    A how-to guide.

  • Brian Millham

    Brian Millham - 2012-11-05

    You beat me to it :) I just uploaded a patch for this also. I'll grab your version and check it out.

  • Brian Millham

    Brian Millham - 2012-11-06

    I just submitted a bug report, loosely related to this. When connecting to a database, sometimes IDCJ will throw an error that "The mixer module has crashed" (version 0.8.5) or " Broken pipe" (0.8.8_development).

    After getting that error, the mic input quits working. Everything else works fine. Restarting IDJC is the only way to get the mic back again. I've had this happen accessing both local and remote databases.

  • Stephen Fairchild

    Regarding #6 I finished half the race and your code maintains support for P3 (no need to antagonise existing users).

    Regarding #7 this looks like a timeout issue. Simply allowing more time is not the solution since database sizes vary and I guess mine is too small to verify this. Perhaps you could make yours available over the Internet. For firewall purposes my IP is

    I think filling the tree view with the contents of the entire database at connection time is a mistake. I can grab album data for an artist when the artist tab is expanded. Same with the album. This reduces the data set by by around 30 times (a lazy estimate) and the degree of processing for simply adding the artists is minimal.

    Failing that it could be down to some crappy network latency due to badly configured IPv6 (on your end).

    The odds of something in the Python code crashing the backend is vanishingy small so my money is on a timeout issue. I guess I need to kill the backend and see if and how it kills the mic. The recovery code should recover the mic setting.

  • Brian Millham

    Brian Millham - 2012-11-06

    Unfortunately, I cannot make my database available to you. I have HughesNet, so there is no way to open ports :(

    But, I do have a copy on GoDaddy, so I could give you access to that version (it's Prokyon, not ampache). My music library has 39,000+ tracks in it.

    I don't think it's network configuration, because this also happens when accessing my database on localhost.

    I do see your recovery code working when this happens. It properly reconnects everything (I'm even using DSP to add echo to the mic input and compression to the stream). The compression continues to work, but no mic. Same it I don't route through Jack Rack for the mic.

    I'm going to re-work my patch a little more. I think I figured out why I ended up needing to use a global to track the DB type, instead of as part of the object. I'll work on that tonight when I get home from work.

    I'll also e-mail you the info to connect to the GoDaddy copy of my database.

  • Stephen Fairchild

    The e-mail address is putidjcinthesubjectline at bethere dot co dot uk. Note that idjc must be in the subject line or the e-mail will be deleted. The @sourceforge address is unmonitored for obvious reasons.

    If I am to obtain a database file please tell me where to put it. I have little doubt I can get this file to reproduce the bug since I have an unlocked CPU multiplier to play with. :)

  • Brian Millham

    Brian Millham - 2012-11-07

    I just added a new patch for handling the ampache database. Fixes a few problems with my original patch.

    I removed the original patch, and replaced it with the new patch in the patch thread.

  • Brian Millham

    Brian Millham - 2012-11-10

    Stephen, would you like me to add support for path transformation to my patch?

    I don't know if you noticed, but my patch does alpha sorting of artist/album, but does not use the prefix (usually The) for sorting. (My personal preference), so The Rolling Stones shows up under R instead of T. I could make that optional, so it works the same as when using a P3 database.

    Or it can be configured in Ampache what is considered a prefix, so if the user doesn't like it, then can change Ampache to not set the prefix.

  • Brian Millham

    Brian Millham - 2012-11-10

    I decided to go ahead and get path transformation working. I uploaded a new patch to enable it. It's an update to my Ampache patch.


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks