Update on my progress.
All of the database stuff that I've tried has been pretty simple, so the ability to fetch albums and songs is pretty much complete.
I ran into quite a bit of difficulty once I tried controlling the piano from my java app though (this uses a separate connection). I can make it do a lot of the simple things (play, stop, etc), but I can't select a different song/album. It seems that the research paper and project are either out of date (I've been unable to make the project itself work), or I'm just doing something wrong. What's there already though works well. The UI and Socket are on separate threads, and there is a thread that heartbeats "<active/>" with the piano every 3 seconds.
I did notice that the piano is sending me XML that indicates that I should pop up a message box informing the user that the software is out of date running version "too old to tell", and that they should update to 2.0. :-) That makes me wonder how much of the protocol has changed.
So, I've ended up having to install linux so I can get a wireless card into "monitor" mode so that I can sniff the traffic. I'll do that tonight to try to solve the simplest of cases (waking up from standby, and selecting an album/song).
-Kevin
----- Original Message ----
From: Kevin Goroway <kgoroway@...>
To: disklavier@yahoogroups.com
Sent: Friday, November 2, 2007 8:07:13 AM
Subject: Re: [disklavier] Re: Alternative to tablet and PDA for MKIV
Matt, and Chris,
Thanks so much for joining our conversation! The background is very interesting.
Matt, I think you've done a wonderful job under the circumstances, and it's opened up a world of possibilities.
I'm wrapping up a pure java implementation that doesn't try to mimic the PRC at all. Instead it's basically a song and album browser (with search capabilities) and the ability to play them once you find them. I'm also planning to include the ability to dump your songs and albums to a CSV file so you can move them wherever you'd like (excel, access, whatever), and a rudimentary reporting view so that you can at least get a hardcopy of what you have on your
Disklavier.
Like Matt, I program for a living (well, mostly manage now), and with 3 kids at home I don't get much time to write code when I get there...besides, I also want to actually play piano! :-) So, it may take a little while to actually wrap this up, but it's already got some real functionality. I plan to release it as source so that others can continue it, and hopefully flesh it out to be more of a tablet/pda replacement.
Thanks again for joining us, and any insight you can provide would be most helpful!
-Kevin
----- Original Message ----
From: mrmuk7 <mrmuk7@gmail. com>
To: disklavier@yahoogro ups.com
Sent: Thursday, November 1, 2007 10:40:56 PM
Subject: [disklavier] Re: Alternative to tablet and PDA for MKIV
Hello all,
I'm certainly surprised and pleased to see such enthusiasm regarding
our software controller for the Disklavier. I never expected anyone
to actually scrutinize those development notes I made while working on
the project :-)
As Chris mentioned, we choose Flash initially because we suspected the
original software used Flash due to its transparency effects and
animations. It also seemed like a good choice because it had a built
in class called XMLSocket which would conveniently send XML on ports >
1024, just like the original software. It is too bad we never got
access to some of Yamaha's UI Elements; with those in place, the
software would have a much more familiar feel to less technical users.
In retrospect, I do agree that the overall architecture of the
software is somewhat of a hack due to the java backend running in a
separate process. Note that this whole thing was thrown together in
about 4 months with only one person working on it, and no help from
Yamaha, so I had little time to evaluate and implement a more elegant
solution.
We had already invested a large amount of time in Flash when I
realized I needed a direct database connection. I couldn't find any
free Flash plugins/source that could send SQL statements
synchronously. A few existed, but they cost money, and we wanted the
software to be completely free and redistributable. To get around
this problem, I implemented the Java backend, which of course takes
XML from the Flash app, restructures it into a query, and then sends
the results back to the Flash app asynchronously.
If members here are interested in rearchitecting the program, I would
be wary of Flash. It is not what I would consider an elegant or
powerful language. Even the simplest tasks took hours to accomplish,
and in the version I was using (Flash 8), there were very annoying
bugs. For example, in certain cases, the program compilation is
actually affected by where you place comments in the code!
Ridiculous, I know. That's not to say that if you didn't use Flash,
you couldn't make a pretty interface. There are a lot of great
alternatives now that look as good, if not better, than Flash...
including things you can do with WPF 3.0 and Silverlight (though I
haven't worked with them first-hand myself).
When we were asking Yamaha if we could publish the paper disclosing
details of their software, they mentioned that they might incorporate
additional security precautions in future versions. I don't know if
that is a good or bad thing, but I certainly hope they keep the
protocol open and easy for third party devs to access. Plus, judging
by their current history of software releases, this shouldn't happen
any time soon.
Regardless of Yamaha's position, a community of Disklavier users
enthusiastic about improving the capabilities of their instrument will
only serve to promote Yamaha's product. I'll be happy to stop by here
every so often and provide any insight I can. I do work full time now
doing software development, so when I come home at the end of the day,
writing software is usually quite low on my activity list; but I still
live near the University and will be happy to support any development
efforts that commence (testing, troubleshooting, different firmwares,
etc).
I can help you get the software working if you would be so kind as to
post details such as: firmware version, PostgreSQL JDBC driver
version, java version, exact error messages, and the like. I know of
at least 3 people around the world that have got it working successfully.
Thanks for your interest!
____________ _________ _________ _________ _________ __
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail. yahoo.com
<!--Message
Re: [disklavier] Re: Alternative to tablet and PDA for MKIV
2007-11-06 by Kevin Goroway
Attachments
- No local attachments were found for this message.