You only want to build an embedded version of MKPerformSndMIDI and the
SndKit if you intend to copy those frameworks inside an application,
such that a single application binary can be distributed to a user and
they then don't have to worry about placing the frameworks into
/Library/Frameworks. The application must be built to link against the
embedded frameworks and copy those frameworks inside a Frameworks
directory inside the .app directory. Apple's embedding approach is
flawed as of Project Builder 2.1 but this should only effect the
application building, not the frameworks. Also, this only applies to
the most recent CVS repository versions.
Since you are attempting to build command line tools, you want to build
MKPerformSndMIDI and SndKit using the typical install command line
sudo pbxbuild -buildstyle Deployment install DSTROOT=/
I think by default the buildstyle should be Deployment, I'll check
this, certainly it should not be Embedded.
Building for Deployment will install the frameworks into
Now that queue preemption is completed (reducing the time to play a new
sound), I'm working on overhauling the conversion operations. I intend
to replace SndConvertSound with a method in SndAudioBuffer
-convertToFormat:channels:samplingRate: such that full conversions can
be performed on an audio buffer, and then use the audio buffer method
to apply to a Snd. This will fix the current problem playing mono files
and have the benefit of further reducing the use of SndStruct's which
are SoundKit era and much better replaced by SndAudioBuffer objects.