I made mpd-dbcreate to solve a problem; I didn't like mpd's databases. It wasn't all mpd's fault, some plugins were to blame; but it made mpd annoying to use despite the fact it was the best at what I needed it for. It solved this problem. The music flowed; and it made MPD absolutely perfect.
But it also caused it's own issue; you couldn't update with mpd anymore. You had to update with mpd-dbcreate, then restart mpd to load the new database. This maybe wasn't really that annoying, I put up with it for a few months. After building mpd-dbcreate my brain was kind of on the track of this would require the ability to commuinicate with mpd in a way that the client API or library provided...which mpd-dbcreate had stripped out of it anyway. But, it turns out, there is a way...
mpd-dbproxy, a mpd database proxy server. mpd has the ability to proxy it's music database to other mpd instances, a thing they call satellite setup. In this arrangement, all database operations are slaved to a "master" mpd and sent "raw" to the "client" mpd. The database itself is not transferred; just all the commands and responses. So you can run one MPD directly on your NAS, then your remote mpd doesn't have to scan over the network. Which...was one of the side-advantages of mpd-dbcreate. The difference is doing it this way means update works from within your client as normal; and you don't have to do the update-restart dance.
So...let's just build something around that.
This is basically what mpd-dbproxy does; it's basically the glue that makes update work seamlessly; with the side effect of making the remote-scanning feature easier to do. As of right now...I have verified that I can properly proxy a database. Everything else seems to be passing tests; but I haven't done a full-scale use-test yet. I did implement password auth and...most other things I thought it would need. It...like mpd-dbcreate; is forked from mpd to ensure compatibility.
I will have more details as I figure them out. It will not be a new project; but an addition to mpd-dbcreate since it depends on mpd-dbcreate to function.