Module REALbasic pour développer des applications MIDI
CoreMIDImodule est un module shareware pour REALbasic pour le développement d'applications MIDI sous Mac OS X (Universal Binary et PowerPC Carbon Mach O). Il est basé sur l'architecture CoreMIDI d'Apple. Toutes les fonctions ont été implémentées et parfois simplifiées (La gestion des paquets MIDI et de certaines routines est assurée par le module). Plusieurs exemples de projets REALbasic sont proposés dont :
CoreMIDImodule_Test.rbp
CoreMIDImodule_Control.rbp
CoreMIDImodule_Virtual_Synth.rbp
CoreMIDImodule_Delay.rbp
 |
Version 3.21 |
MacOS X UB |
(App) |
25 oct. 2008 |
Maintenant compatible avec REALbasic 2008R4
 |
Version 3.1 |
MacOS X UB |
(App) |
7 juin 2008 |
Nouvelles fonctionnalités ajoutées à la version 3.1 (5 juin 2008) :
- Maintenant compatible avec le développement d'applications consoles.
- Nouvel exemple : CoreMIDImodule_Console_3_1.rbp dans le dossier "For Advanced Users".
Nouvelle méthode : CM_BPMcalculator
Nouvelles constantes :
- kMIDIPropertyDisplayName
- kMIDIPropertyDriverDeviceEditorApp
- kMIDIPropertySupportsShowControl
 |
Version 3.0 |
MacOS X UB |
(App) |
28 mai 2008 |
- Nouvelles fonctionnalités ajoutées à la version 3.0 (24 mai 2008)
- Les données MIDI reçues sont maintenant stockées dans des tampons circulaires (dont la taille peut être ajustée par l'utilisateur) au lieu de tableaux 1D (le traitement des données MIDI devrait être plus rapide).
- Les pointeurs "Read" et "Write" sont gérés automatiquement.
- Les MIDITimeStamps sont maintenant gérés pour toutes les entrées.
Remarque pour les utilisateurs des versions précédentes, quelques changements dans le code sont à faire :
- Particulièrement dans la partie : Timer/Action qui devient plus simple.
- Quelques méthodes ou propriétés ont été supprimées ou modifiées (voir ci-dessous et voir les exemples mis à jour).
Nouvelles méthodes :
CM_CoreMIDImoduleInit
CM_IncrementReadIndex
CM_IncrementNotificationReadIndex
CM_IncrementMIDISysexSendRequestReadIndex
CM_MIDINotification
CM_MIDISysExSendRequest
Nouvelles propriétés :
ReadIndex(15) As Integer
NotificationReadIndex As Integer
MIDISysexSendRequestReadIndex As Integer
Méthodes supprimées :
CM_FlushCompleted
CM_FlushRequest
CM_MIDINotificationFlushRequest
CM_MIDINotificationFlushCompleted
CM_MIDISysexSendRequestFlushCompleted
CM_MIDISysexSendRequestFlushRequest
Propriétés supprimées :
MIDIEvent0(0)...MIDIEvent15(0) As Integer
MIDITimeStamp0(0) As UInt 64
MIDINotification(0) As MemoryBlock
MIDISysexSendRequest(0) As MemoryBlock
MIDISysexSendRequestFlushRequest As Boolean
MIDISysexSendRequestMaxIndex As Integer
Autres changements :
Nouveau programme dans le dossier Goodies : Starfield.
Le Manuel de l'utilisateur a été mis à jour.
Développé avec REALbasic 2008 Release 2.
 |
Version 2.1 |
MacOS X UB |
(App) |
28 févr. 2008 |
Les fonctions CoreMIDI sont maintenant toutes implémentées.
Les messages du type MIDINotification et MIDISysExCompletion sont gérés.
RefCon est un argument pour plusieurs fonctions.
Nouvelles méthodes :
CM_MIDIObjectGetDictionaryProperty
CM_MIDIObjectGetProperties
CM_MIDIObjectSetDataProperty
CM_MIDIObjectSetDictionaryProperty
CM_MIDIObjectRemoveProperty
CM_CFRelease
CM_GetCFStringRef
CM_ConvertCFString
CM_MIDINotificationFlushRequest
CM_MIDINotificationFlushCompleted
CM_MIDINotificationNumber
CM_MIDISysexSendRequestFlushRequest
CM_MIDISysexSendRequestFlushCompleted
CM_MIDISysexSendRequestNumber
CM_ErrorCodeToString
Modifications :
CM_MIDIClientCreate
CM_MIDIDestinationCreate
CM_MIDIInputPortCreate
CM_MIDIPortConnectSource
CM_SendSysEx
CM_SendSysExFromArrayOfInteger
CM_SendSysExHex
Nouvelles propriétés :
MIDINotification(0) As MemoryBlock
MIDISysexSendRequest(0) As MemoryBlock
Propriété supprimée :
MIDISetupHasChanged As Boolean
Nouvelles constantes : un grand nombre, voir le Guide de l'Utilisateur.
Autres changements :
Nouveau dossier : For Advanced Users, avec de nouveaux exemples.
Le Manuel de l'utilisateur a été mis à jour.
 |
Version 2.0 |
MacOS X UB |
(App) |
8 janv. 2008 |
Nouvelles fonctionnalités ajoutées à la version 2.0 (3 janvier 2008)
Méthodes pour la gestion du temps. Remarque : nécessite REALbasic 2007 (plus compatible avec RB 5.5.5 à cause de l'utilisation de variables du type UInt64 et UInt32). Non testé avec REALbasic 2006.
Nouvelles méthodes et propriétés :
Sub CM_StartTime
Function CM_MIDITimeStamp
Function CM_AudioConvertHostTimeToNanos
Function CM_AudioConvertNanosToHostTime
Function CM_AudioGetCurrentHostTime
Function CM_AudioGetHostClockFrequency
Function CM_AudioGetHostClockMinimumTimeDelta
Function CM_NanoSecToHour
StartTimeHostTimeFormat (global property)
MIDITimeStamp0() (global property)
Autres changements :
- Nouvel exemple : CM_CoreMIDImodule_Delay
- Dossier "Goodies"
- Modification de plusieurs méthodes pour prendre en compte la gestion du temps :
CM_SendMIDIPacket, CM_SendMIDIPacketHex,
CM_SendMIDIPacketFromArrayOfInteger, CM_MIDIReceivedPacket,
CM_MIDIReceivedPacketHex, CM_MIDIReceivedPacketFromArrayOfInteger.
- Le Manuel de l'utilisateur a été mis à jour et réécrit avec TexShop
 |
Version 1.3 |
MacOS X UB |
(App) |
6 juin 2007 |
Version 1.3 :
- Maintenant compatible Universal Binary (Mac Intel et PowerPC)
Autres changements :
- Mise à jour du document ReadMe.
 |
Version 1.2 |
MacOS X PPC |
(App) |
20 mars 2007 |
Nouvelles fonctionnalités ajoutées à la version 1.2
- Maintenant 16 tableaux MIDIArray0 à MIDIArray15 pour séparer et stocker les évènements MIDI provenant de différentes sources.
(attention au changement de MIDIEvent en MIDIEvent0 ! )
- Nouvelles fonctions :
CM_FlushRequest
CM_FlushCompleted
CM_MIDIEvent
CM_MIDIEventsNumber
Autres changements :
- CoreMIDImodule_Control : amélioration du traitement MIDI grâce aux fonctions ci-dessus
- Correction de bugs dans la méthode MIDIPacketAnalysis.
- Mise à jour du document ReadMe.
 |
Version 1.1 |
MacOS X PPC |
(App) |
23 févr. 2007 |
Nouvelles fonctionnalités ajoutées à la version 1.1
- Changement dans la fonction CM_MIDIPortConnectSource pour traiter plusieurs sources MIDI
- 8 tableaux du type MIDIEvent pour séparer et stocker les évènements MIDI provenant de différentes sources
- Busy : nouvelle variable globale pour aider à la synchronisation du traitement des données MIDI
- Nouvelles fonctions utilisées dans le cas de sources virtuelles :
CM_MIDIReceivedPacket
CM_MIDIReceivedPacketHex
CM_MIDIReceivedPacketFromArrayOfInteger
Autres changements :
- CoreMIDImodule _Control : amélioration du traitement MIDI
- Mise à jour du document ReadMe
 |
Version 1.0 |
MacOS X PPC |
(App) |
8 sept. 2006 |
Première distribution
REALbasic 2008 ou plus et Mac OS X 10.4 ou plus.