Gros problèmes avec Core audio : avez-vous des infos?
Herve
Membre
Bonjour,
Il y a peu, je constatais des nouveautés dans Core Audio sous XCode 4.1. Chez Apple, on m'a renvoyé là :
http://developer.apple.com/library/mac/#technotes/tn2276/_index.html
J'ai bien appliqué à la lettre tout ce qui est indiqué, mais il semble que des classes de Core Audio aient été modifiées aussi, ce qui fait que je ne peux pas combler actuellement des projets AU en cours. La classe SynthNote en particulier :
la méthode
Auparavant :
Auriez-vous des infos ou une idée? J'ai juste trouvé ça :
http://www.squishycat.com/audio-units/creating-audio-units-with-cocoa-views-on-mac-os-x-10-7-lion
mais je le savais déjà ...
Je suis assez déçu à vrai dire, je ne m'attendais pas à ça. J'en regrette presque d'avoir quitté Snow Leopard!
Il y a peu, je constatais des nouveautés dans Core Audio sous XCode 4.1. Chez Apple, on m'a renvoyé là :
http://developer.apple.com/library/mac/#technotes/tn2276/_index.html
J'ai bien appliqué à la lettre tout ce qui est indiqué, mais il semble que des classes de Core Audio aient été modifiées aussi, ce qui fait que je ne peux pas combler actuellement des projets AU en cours. La classe SynthNote en particulier :
la méthode
virtual void Attack(const MusicDeviceNoteParams &inParams)
semble avoid été remplacée par virtual bool Attack(const MusicDeviceNoteParams &inParams)
d'où erreur de compilation. J'ai mis return Attack(inParams);
en fin de méthode pour corriger le problème. Mais j'en ai un autre :Auparavant :
TestNote mTestNotes[kNumNotes];
marchait très bien. Hors maintenant le compilateur me dit que je fais un tableau à partir d'une classe abstraite. SynthNote est une structure C++ tout à fait classique.Auriez-vous des infos ou une idée? J'ai juste trouvé ça :
http://www.squishycat.com/audio-units/creating-audio-units-with-cocoa-views-on-mac-os-x-10-7-lion
mais je le savais déjà ...
Je suis assez déçu à vrai dire, je ne m'attendais pas à ça. J'en regrette presque d'avoir quitté Snow Leopard!
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
DId you change the Render callback too? It now should look like this
virtual OSStatus Render(UInt64 inAbsoluteSampleFrame, UInt32 inNumFrames, AudioBufferList** inBufferList, UInt32 inOutBusCount);
puis
change
int numChans = inBufferList.mNumberBuffers;
to
int numChans = inBufferList[0]->mNumberBuffers; and
left = (float*)inBufferList.mBuffers[0].mData;
right = numChans == 2 ? (float*)inBufferList.mBuffers[1].mData : 0;
to
left = (float*)inBufferList[0]->mBuffers[0].mData;
right = numChans == 2 ? (float*)inBufferList[0]->mBuffers[1].mData : 0;
J'ai modifié aussi la méthode Attack. Avant, c'était un "void", maintenant un "bool". Je lui fais retourner un TRUE pour que cela fonctionne.
J'ai ensuite envoyé un mail à Apple leur demandant de modifier en conséquence les templates et les démos : je me suis permis de leur dire que le boulot n'avait été fait qu'à moitié...
(Nah!) >:(