2017-10-11 8 views
1

J'essaie d'utiliser audiokit pour recevoir des messages syses à partir d'un synthétiseur matériel dans une application sur le mac. Ces messages de synthèse sont construits de 11 chiffres, par exemple:Audiokit semble recevoir seulement les trois premiers numéros de messages MIDI sysex

240,00,32,51,01,16,112,00,40,95,247 

la version publiée actuelle de audiokit se bloque dès qu'il reçoit ce message, mais je l'ai trouvé que la branche développement actuel a fixe. Je veux dire, elle aussi se bloque, mais à un autre linenumber;) à AKMIDIEvent.swift:

line 143: computedLength += 1 << Thread 8: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 

J'ai été en mesure de résoudre ce problème avec l'ajout de

if (computedLength == 255){ 
    break 
} 

juste avant la ligne 143, mais je crains que cette solution en dit plus sur mon niveau de codage faible/simpliste que toute autre chose Lorsque j'imprime packet.data qui est reçu par la fonction init sur la ligne 127, il montre:

(240, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0) 

seuls les 3 premiers chiffres sont corrects, le reste est parti, tout le zéro est là. Dans Cubase, je peux voir que tout le message a été envoyé, mais en quelque sorte en audiokit, la plus grande partie est perdue.

Quelqu'un peut-il faire la lumière là-dessus? est ou n'est pas audiokit conçu pour analyser ce genre de messages syses?

merci d'avance!

+0

il me semble que audiokit coupe les messages syses en 4 messages plus petits de 3 bits chacun. Seul le premier message commence par 240 et est reconnu comme message syses. Les autres parties ne sont pas reconnues comme étant du tout et sont perdues. –

Répondre

0

Il me semble que audiokit coupe mes messages syses 11 bits en 4 messages plus petits de 3 bits chacun. Seul le premier message commence par 240 et est reconnu comme message syses.

Les 3 pièces suivantes ne sont absolument pas reconnues et sont perdues.

Le premier message laissera Audiokit tomber en panne car il ne contient pas le nombre final nécessaire (247).

J'ai essayé de changer ce comportement, mais sans succès. Audiokit est vraiment une très belle paix de travail, mais malheureusement pas pour mon projet je suppose.