[Media_api] Portmidi installation problems
Fran Rodriguez
frdapena at gmail.com
Fri Apr 20 15:34:19 PDT 2007
Hello:
Thank you very much for the help!
Definitively in the download there is no "mm.vcproj (or mm.dsp & mm.dsw or
mm.something...)."
I've re-build what I've got, without test programs but with some of the
things you mentioned, and although I get a pm_dll.dll my program is not
finding the portmidi yet, so before boring you with the specifics of my
program, maybe it would be better if somebody could send me the missing
files so that I try again with the whole package :-)
If I can run the tests then I'll be sure the package is working and then my
fight will be just with Qt utility QMake.
It is funny but I've never had a situation like this where setting up a
system is much more easy in Linux than in Windows :-)
Another doubt...
In linux I understand that having several different distributions with
different libraries and stuff we need to build the portmidi library in each
system... but in Windows... wouldn't it be enough with just giving for
download the final library? I'm just wondering...
Thanks!!!
Regards,
Fran
On 4/20/07, Peter Castine <pcastine at gmx.net> wrote:
>
> Hi Fran,
>
> I've only just been going through the Windows stuff. Whenever the
> list archive for April is available you'll be able to see the
> correspondence.-
>
> > First thing. I don't have MS Visual Studio 6, I've got the .Net
> > edition (7.1). Windows XP.
>
> OK, my experience is w/VS 2005 Express, Net 2, yadayada. I think I
> had to install the Windows SDK on top of the std Express install to
> access the W Multimedia stuff.
>
> From there my experience was like yours with following differences:
>
> > 2) unzip portmidi.zip into directory: <...>\portmidi
> >
> > Ok.
>
> Make sure you have mm.vcproj (or mm.dsp & mm.dsw or mm.something...).
> If they aren't in the .zip archive you'll have to ask Roger to send
> them to you (or I suppose I can send the copies he sent me). I
> believe the plan was to update the .zip to include the mm.* files
> that were inadverdently omitted.
>
> > 4) start or click on the portmidi.dsw workspace
> >
> > ERRORS!
>
> With VS 2005 I was able to open the .dsw file, and VS generated
> new .sln & .vcproj versions of these documents. It was only after the
> conversion that I got compaints about the .dsp being corrupted, so my
> suspicion is the Visual Studio did the corrupting. Anyway, once I got
> my portmidi.sln and *.vcproj files, I trashed the *.dsp's since
> they're not needed anymore.
>
> But I did have .dsp's in the download. I think.
>
> > After this it loads the project. Well, I don't need the examples so
> > let's try to go with portmidi, portaudio and pm_dll which are the
> > things I'm interested in.
>
> I would build the test programs just to make sure that the project is
> working.
>
> You need to build the pm_dll first, because the other projects rely
> on it (they need pm_dll.lib to link and pm_dll.dll to run).
>
> > 5) the following projects exist within this workspace:
> > - portmidi (the PortMidi library)
> > - pm_dll (the dll library used to close midi ports on program
> > exit)
> > - porttime (a small portable library implementing timer
> > facilities)
> > - test (simple midi I/O testing)
> > - multithread (an example illustrating low-latency MIDI processing
> > using a dedicated low-latency thread)
> > - sysex (simple sysex message I/O testing)
> > - latency (uses porttime to measure system latency)
> >
> > Well, the first three exists and the rest are unavailable...
>
> Dunno, I got all eight.
>
> > 6) verify that all project settings are for Win32 Debug release:
> > - type Alt-F7
> > - highlight all three projects in left part of Project Settings
> ~~~~~
>
> The docs need to be updated: there are eight projects.
>
> > window;
> > - "Settings For" should say "Win32 Debug"
> >
> > Ok.
>
> On VS 2005 these are actually two separate popups, one for the Debug/
> Release config, one for the Win32 architecture. Not a biggy.
>
> > 7) use Build->Batch Build ... to build everything in the project
>
> Again, the menu structure has changed. I just hit F7 to build the
> entire "solution", which is easy enough.
>
> > Some warnings and a couple of these errors:
> >
> > c:\msys\1.0\etc\portmidi17Jan07\portmidi\pm_common\portmidi.c
> > (1002): error C2039: 'queue' : is not a member of 'pm_internal_struct'
> > c:\msys\1.0\etc\portmidi17Jan07\portmidi\pm_common
> > \pminternal.h(98) : see declaration of 'pm_internal_struct'
>
> You must #define NEWBUFFER.
>
> I did: select portmidi in Solution Explorer; Properties; Expand
> Configuration Properties, Expand C/C++; edit Preprocessor Definitions
> to add NEWBUFFER (and _CRT_SECURE_NO_DEPRECATE and
> USE_DLL_FOR_CLEANUP while you're at it). They don't need explicit
> values, they just need to be defined.
>
> The alternative would be to surround all the flagged error lines in
>
> #ifdef NEWBUFFER
> ...
> #endif
>
> blocks, but who knows what would happen?
>
> > Probably I'm missing some documentation somewhere or some forum
>
> The above is the first documentation in the forum that I'm aware of.
> I had promised a few days ago to post my experiences when I got PM
> running on Windows, so here they are.
>
> I would also add that I have now have PM working inside my own .NET
> 2.0 Forms application. (Yes, Aaron, somehow it does work!).
>
> The main things:
>
> 0) It's tempting to assume that because there is this this pm_dll
> thing you'll have all of PortMIDI available through the DLL. Ain't
> so. The pm_dll is *only* to provide a backup mechanism releasing
> system resources in the (un?)likely event that your app crashes.
> Nothing more! So you still have to add all the pm_*.* and pt*.*
> files to your project.
>
> 1) Make sure "Configuration: All Configurations" is selected in all
> of the following Properties modifications!
>
> 2) In my case the project defaulted to compiling all .c files with
> the C++ compiler, which was disastrous. I had to go to set Properties
> for each file, to wit: Expand Configuration Properties, Expand C/C++,
> Select Advanced, set the Compile As popup to Compile as C Code (/TC).
> (For better or worse, the project I inherited has a bunch of .c files
> that rely on C++ features, so I couldn't reliably set this the
> project properties level.)
>
> 3) While you're there, make sure that the C/C++ -> General ->
> "Compile with Common Language Runtime support" is set to "No Common
> Language Runtime support" (the C compiler *can't* support CLR, but VS
> won't do anything useful like automatically set the two options to
> match)-.
>
> 4) I never got VS precompiled header thing to work sensibly, so I
> took the path of least resistance and turned PCH's off for all my
> files. Properties -> Configuration Properties -> C/C++ -> Precompiled
> Headers -> Create/Use Precompiled Header popup set to "Not Using
> Precompiled Headers". The compiler is reasonably fast even if it has
> to parse all the header files, so unless someone wants to explain
> VS's PCHs to me, the hell with it, I say.
>
> I think that was it.
>
> Please let us know how it works with QuickTime.
>
> Buena suerte!
> --Peter
>
> -------------- http://www.bek.no/~pcastine/Litter/ -------------
> Peter Castine +--> Litter Power & Litter Bundle for Jitter
> Universal Binaries on the way
> iCE: Sequencing, Recording &
> Interface Building for |home | chez nous|
> Max/MSP Extremely cool |bei uns | i nostri|
> http://www.dspaudio.com/ http://www.castine.de
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.create.ucsb.edu/pipermail/media_api/attachments/20070420/b52766a1/attachment.htm
More information about the media_api
mailing list