Main Menu

MPXT

Started by Scott Bradshaw, February 11, 2004, 01:57:31 PM

Previous topic - Next topic

matthias

I hope I can tell you what kind of function I´m looking for.
I use m3u playlists and m3d database to play my mp3s. m3u playlists have the advantage that they are easy to find and select through MPXT. But at the end of the album mpxplay stops. Is there anyway to tell mpxplay to advance to the next album?
I know that this function is part of m3d database but it´s a pain to select an album through the menu or maybe I didn´t understand how to use this feature so far...

admin

Matthias:

You could try "play database".  It would build a large playlist and send it to MPXPlay, but all of the songs would be lumped together.  MPXPlay does have sublist support, but I've never tried it.

--------------------------------------------------

I can't promise much in the way of features for the next beta.  Over the weekend, I made a number of changes to the structure of MPXT.  At the same time I changed the way that it was using the serial library and rewrote about 2/3 of the IR libary.  MPXT could use some restructuring in places to make it easier to maintain, but the way I went about it didn't work out very well.  

As for the serial/IR library...it would've been really neat if what I was trying to do would've worked.  (I wrote a quick and dirty IRMan simulator program, the other day, so I was able to run some tests.)  With MPXT running in the foreground it was pushing keystrokes, but after shelling out to MPXPlay I'd always get runtime errors.  The serial library that I was using is fine, but the way I was using it, didn't work out.

Then after looking over the original serial library, I determined that although it uses dynamic memory allocation (a big no no in tsrs/interrupt handlers), the actual memory allocation happens before going resident.  In other words, there's nothing wrong with the old serial library.

To undo the nightmare that I created, I had to back everything down to Beta2.  Tested the IR with MpXT in the forground.  It worked.  Shelled out to MPXPlay and hit a button.  It worked.  Hit another button...crash!  The good news is that I found a couple of bugs in the original IR routine when I was in the process of rewriting it.  So, I should be able to take what I learned and use it to fix the original IR routine.

Found another bug too:  Play/Search->PlayDatabase->Esc->Esc->PlayListMenu->PlayList->SelectPlaylist->Pla yNormal
results in a stack overflow (runtime error 202).  The memory must not be getting free'd up when exiting out of PlayDatabase.

Short term goals:
*Fix both crasher bugs
*Re-add at least some of the post beta2 features/bugfixes, that have already been written

matthias

@admin
I think I will use the "play database" feature and then skip from one playlist to another. Would be nice to have a function to skip 10 back/10 ahead (like you already did for me inside the playlist menu - works great - thanks) or better a function to skip from one letter to another. From A to B... So you can easily choose the album you want to hear and mpxplay will advance to the next album at the end of the playlist.

If you need some ressources for testing the IR features you can place a link here and I´ll do some tests. No problem at all.

Matthias

admin

Matthias:

I have another test version of MpXT for you to try.

------------------------------------------------
Changes since beta 2:  

For parallel port LCDs, the delays no longer depend on cpu speed.

Skip ahead 10 / Skip behind 10 for playlist selection, and playlist editing.

IR codes are stored internally, using all 6 bytes, instead of crunching it down to two bytes.  The format of the .ir files has changed too.  Each entry has two hex bytes for the keycode, then an = sign, then the six hex bytes for the IR code.

There's now an option to tell MpXT not to mess with the IR while MPXPlay is running.

There were a few keyboard options that had no entries in mpxt.cfg  This has been fixed.

I kept getting a runtime error 002, when selecting "Load Database".  I think I have that fixed.

If this version turns out to be reasonably stable, I'll post it on the download page as Beta 3.

http://techworld.dyndns.org/download/mpxttest4.zip" target="_blank">http://techworld.dyndns.org/download/mpxttest4.zip

Known issues:
IR seems to work ok while MpXT is running, but it's still kind of hit-and-miss while MPXPlay is running.  Sometimes it works, sometimes it doesn't...I haven't been able to find a definite pattern to it yet.

There may be a runtime error or two that I haven't caught yet.  Please report them.

Future plans: (after beta 3)
Add letter skipping for playlist selection and/or playlist editing.

I'm thinking about adding keystroke translation to the tsr, for some of the more common items.  Example: "." gets translated to an "esc" to exit out of MPXPlay.  No promises, I'm still thinking about this one.

matthias

@Admin
Sounds very good!!!
I´ll do the test over the next days and place my experiences in the forum.

Thanks

Matthias

matthias

@Brent
Wow, I think you´re on the right way. But...
"I kept getting a runtime error 002, when selecting "Load Database". I think I have that fixed" I still get that 202 Runtime Error at 05A3:1D91 sometimes when I try to play my Database.

IR Support sometimes works, but when it works it´s very very good. It might be the problem that MPXT doesn´t shut down the seriall port quick enough because mpxplay reports, when closing, "no IR device found"
I configured my mpxt.cfg like this:
UseIR=True
UseX10=False
UseInMPXPlay=True
Comport=1

Playing the Database has a new strange effect. When the command starts mpxplay, the player starts to load file informations. That takes very long. It´s similiar to starting mpxplay alone with the Option -ds (driverletter). I switched back to testversion3 and then the database directly starts to play.


I hope this information helps

admin

Matthias,

I had the same runtime error, a while back, but it didn't show up during my last round of testing.  When I get the chance, I'll take a look at it.

For the IR, UseInMPXPlay=False tells MpXT to shut down the IR handler, before launching MPXPlay, then start it up when MPXPlay is finished.

So, if you're using MPXPlay's built-in IR handling, you'll need to set UseInMPXPlay to false.

The last issue is probably a new bug, caused by the runtime error 002 fix.  I'll add that to my to-do list.

matthias

Brent,

maybe rename UseInMPXPlay to USEIRinMPXPlay.

But after changing that the last issue has gone.

When I switch to mpxplay IR works fine, when I go back to mpxt it doesn´t work anymore. Restarting mpxt doesn´t change it - mpxt with no IR support, but mpxplay works fine. After rebooting the PC IR support in mpxt works again...

Have a nice weekend

Matthias

I´ll keep an eye one the runtime error.

matthias

After I switched back from mpxplay to mpxt and start IRtest it reports IR not active.

Matthais

matthias

hm, not too much going on over the last weeks. anybody out there ;-) ?

Matthias

admin

Matthias,

I'm still here.  Just took a little break from MPXT.  I'll get back to it sometime in the next week or two.

-Brent

matthias

@brent
I´m busy too - my daughter was born last week ;-)

MichaelO

Just wondering if anyone was using Dev-Cpp /MinGW / GCC under windows to compile any MpxPlay /MPXT related programs as I am use to the front end.


matthias

Need more DOS memory?
Then try this configuration. Looks strange but works perfect with 624 K available DOS memory:

Config.sys:
DOS=HIGH
DEVICEHIGH=C:DoSHimem.sys  
DEVICEHIGH=C:DoSEMM386.EXE NOEMS NOVCPI HIGHSCAN
FILESHIGH=22
BUFFERSHIGH=13,0
STACKSHIGH=0,0

FCBSHIGH=4,0
LASTDRIVEHIGH=R
DOS=UMB

autoexec.bat:
@ECHO ON
SET PATH=C:Dos;
LH c:DosSMARTDRV.EXE 4096 /X
REM RAM Disk is loading
LH C:DosXMSDSK.EXE 524 R: /Y
COPY C:COMMAND.COM R:
SET COMSPEC=R:COMMAND.COM

frank

Hi,

I'm just looking into building my own mp3 player, but haven't started yet,
and I have some questions about MPXT.

It's a frontend for Mpxplay:  why?
What does it do or add to mpxplay?
I can't run mpxplay by itself?

What type/size lcd displays does it support?
serial/lpt?  20x2, 20x4, 40x4?  hd4448, hd4478?

I see here and on Matthias' page you linked to,
that you both install windows, either 95 or 98.
Why?  Can't I get by with just dos6.22?
or does it need the dos7 from win?
or something else from win?  
or some other reason?

I see the links here and on Matthias' page about dos networking and lfn,
so I think that answers a couple other questions I would have had.

Thanks

Quick Reply

Name:
Email:
Verification:
Please leave this box empty:
write the numbers seen in 8asA6DD7azmzme6:
write the first three numbers in 7sfar8wsx9132:
Shortcuts: ALT+S post or ALT+P preview