Jump to content

A plan for using a Palm PDA as a display for a MidiBox


fluke

Recommended Posts

Like many people on this forum, i would like to use my Palm PDA as a display for a MidiBox.  I have a plan for how to do this.  However,  i also have a 6 week old son, so i don't have time to build a MidiBox at the moment.  I will probably have time to write the Palm software side.

My plan isto take the PalmOrb software and replace the commands with ones that take full advantage of the screen.  The Palm would be linked to the Midibox Core via an IIC_MIDI interface speaking RS-232 at 38400 baud instead of MIDI. Newer Palms without a serial port could be connected via IR.

The command set would include characters at 3x6, 5x8 and 10x16 sizes, line, box, filled rectangle and bitmap drawing.  Some extra custom functions could be developed for drawing such things as ADSR envelopes.

So if someone has time now to build the hardware and write the software for the Core module, let me know and i'll start on the Palm software.

Link to comment
Share on other sites

linked to the Midibox Core via an IIC_MIDI interface speaking RS-232 at 38400 baud instead of MIDI. ...

So if someone has time now to build the hardware ...

Wouldn't the MBHP LTC module do for this?

It's a nice plan :)  I can see how taking advantage of the full screen would be good.  I'm assuming by using the PalmOrb code as a starting point, the Palm would still be emulating an MO display, but with an arbitrary size to use the full screen width and height.  Or is this more of a jumping off point, and you plan to create a custom Palm serial LCD software controller? 

Any thoughts on emulating any of the other existing LCD types, like HD44780?

Using the touchscreen or buttons on the Palm to emulate MIDIbox button presses would be somewhat cool too.

Link to comment
Share on other sites

There might also be something useful in TK's MIOS TV project

Btw.: the next MIOS version will support a new display type #6 which redirects all print commands directly to the MIDI Out based on the new MBHP_TV protocol. By changing the device ID up to 128 "MLCDs" can be addressed in this way - not only the MBHP_TV itself, but also other "slaves" which support this protocol (example driver for a character LCD as slave will follow).

I also plan to include a "soft font" feature into the MBHP_TV which allows to create special characters dynamically like known from character LCDs - hold the line ;-)

Link to comment
Share on other sites

I am planning on a completely custom protocol.  PalmOrb already emulates a 20x4 Maxtrix Orbital, which is a HD44780 accessed via serial, so i wanted to do something more, a bitmap display rather a purely character based one.  I was thinking of using MIOS's custom LCD driver functionallity and upgrading the applications to take full advantage of the Palm. (Not that i have time to do that at the moment.)

The MBHP LTC would work if the display was accessed over MIDI, but wouldn't that mean you'd loose access to the MIDI out port of the Core?

Link to comment
Share on other sites

Sorry if I'm pointing out things you've already discovered.  You're the first of us to put up a coherent plan to bring this off.

The MBHP LTC would work if the display was accessed over MIDI

Well, there's a serial COM port on it as well, but you may be right about IIC straight to RS-232 or IR being a better bet.  My last quote seems to indicate so.  And it seems you wouldn't have to update the OS/apps, just build a new LCD definition.

but wouldn't that mean you'd loose access to the MIDI out port of the Core?

Not sure.  I'll read some more.

Link to comment
Share on other sites

but wouldn't that mean you'd loose access to the MIDI out port of the Core?

Nope, in the first lines of the MBHP_LTC page it says it's a second MIDI out, a MIDI through, and a COM port.

But as the custom LCD definition from the MBPH_LCD page says it already provides for IIC displays, converting that to RS-232 might be simpler.  I dunno, last time I went looking for IIC to RS232 stuff I couldn't find a chip for it, just expensive diagnostic handsets.  But perhaps the Google gods were not with me that day.

Today they seem a little kinder

Link to comment
Share on other sites

Here's a screenshot to illustrate what sort of commands i'm planning to implement:

mbhp_palm_screenshot1.png

While you could use it as a framebuffer, i'd expect most of the commands to be text drawing, with the occasional line or box.

The P87LPC760 is 8051-based microcontroller.  PICs are nicer to use and we already have the IIC_MIDI and IIC_SPEAKJET projects to base it on.

Link to comment
Share on other sites

Just my 2 cents.... If you consider the full capabilities of the system before you design it, then even if you don't want to use those capabilities right now, at least they will be simple to add later. If you build limitations into the system now, they're going to be hard to get out....

Link to comment
Share on other sites

What do you mean by "the virtual MIDIbox tools"?

I was planning on starting with a simple system for mostly text, so as to offload most of the work from the Core module to the Palm, but still make it general purpose enough that it won't need a fully custom Palm application for each sort of MidiBox.

Link to comment
Share on other sites

Other than my dislike of vitual knobs (sliders are much easier to use with a mouse, only 1 axis to travel), it's possible.  But it's getting out of the "Palm as a display" realm and into the "Palm port of JSynthLib" realm.  Which is something i can't write myself without a Midibox or Palm MIDI interface.  I could help someone else write it though, PalmOS isn't very hard to program for in C and it'll mostly consist of writing handlers to convert button presses into SysEx messages.

Link to comment
Share on other sites

Yeah I see your point.  I imagine instead something like a virtual SID step B control surface - the display element, and a small number (5?) of on-screen buttons and one virtual fader, to allow menu selection and parameter editing.  It would still act as a straight display as far as signal from the MIDIbox to the Palm, but it would also send serial signals back to the core identifying button presses and slider movement, which the MIDIbox would interpret as if they were the corresponding hardware buttons coming through a DIN.

Link to comment
Share on other sites

That's doable.  I'm still not sure i like the interface though, so i went ahead and wrote it.  It looks like this:

sid-b.png

You can download the PRC file from http://one-two-three-four-five.com/palm/sid-b.prc.  It'll need at least PalmOS 3.0, but it doesn't check for it.  Tap either side of the encoder to rotate it.  It doesn't do anything else.

Link to comment
Share on other sites

A rotary encoder isn't the same thing as a linear slider though, it doesn't stop at each end.  It's really two buttons, one for each direction.  A pair of buttons doesn't have the same metaphore as a knob on screen though.  Hence my request for someone else to do the UI design. ;)  The knob could be made smaller, i was just using all the left over space.

Link to comment
Share on other sites

It works, even on my old Palm Vx :)

palm.jpg

But I would also prefer a slider, or better: dedicated menu screens for sound parameter settings with buttons and sliders for intuitive and especially fast usage :)

Best Regards, Thorsten.

Link to comment
Share on other sites

There are ports of J2ME to PalmOS, but they don't have access to the serial port.  JSynthLib won't run on J2ME anyways and the entire interface would need reworking for the small screen.

How about a system where locations of buttons, sliders, "LCD" display, etc and the MIDI command to send are defined in a Memo (or text file linked into the application)?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...