Maximum MIDI Giordano Ribeiro Introduo Necessidade Preciso Driver
Maximum MIDI Giordano Ribeiro
Introdução ® Necessidade ® Precisão ® Driver ® MIDI ® Protocolo Simples ® SMF Complicado
Maximum MIDI ® Componente Visual C++ ® Borland C++ Builder ® Delphi ® VB ® ® Endereços: www. manning. com/Messick ® www. cin. ufpe. br/~musica/maxmidi. zip ® www. cin. ufpe. br/~grec/help. zip ®
Principais Classes – Visual C++ ® CMax. Midi. Out ® CMax. Midi. In ® CMax. Midi. Sync ® CMax. Midi. SMF ® CMax. Midi. Track
Principais Classes – Borland C++ Builder ® TMax. Midi. Out ® TMax. Midi. In ® TMax. Midi. Sync ® TMax. Midi. SMF ® TMax. Midi. Track ® TMax. Midi. Score ® Midi. Event
IDE Borland C++ Builder
Midi. Event struct { DWORD time; BYTE status; BYTE data 1; BYTE data 2; BYTE data 3; } Midi. Event; LPMIDIEVENT *Midi. Event;
TMax. Midi. Out ® BOOL Open(Device, Flags) ® void Close() ® void Flush() ® BOOL Is. Open() ® void Reset() ® BOOL Put(Midi. Event)
TMax. Midi. In ® Métodos BOOL Open(Device, Flags) ® void Close(void) ® LPMIDIEVENT Get() ® BOOL Is. Open() ® void Start() ® void Stop() ® ® Eventos ® On. MIDIData()
TMax. Midi. Sync ® Métodos ® BOOL Open(mode, timer. Period) ® void Close() ® BOOL Is. Open() ® BOOL Is. Running() ® DWORD Get. Position(units) ® BOOL Mode(mode) ® WORD Mode() ® BOOL Period(period) ® WORD Period()
TMax. Midi. Sync (continuação) ® Métodos ® WORD Resolution() ® void Resolution(resolution) ® BOOL Tempo(tempo) ® DWORD Tempo() ® void Start() ® void Re. Start() ® void Pause(reset) ® Void Stop() ® Eventos ® Process. Midi. Beat() ® Process. Sync. Done()
Exemplo: Inicializando ® Arquivo. h TMax. Midi *Max. Midi; TMax. Midi. Out *Max. Midi. Out 1; TMax. Midi. Sync *Max. Midi. Sync 1; ® Arquivo. cpp Max. Midi. Sync 1 ->Open(S_INT, 10); If(!Max. Midi. Out 1 ->Open(numero. Driver, MIDIOUT_DEFAULT) <mensagem de erro>
Exemplo: Tocando uma Única Nota Midi. Event *evt = new Midi. Event; evt->status = 0 x 90; evt->data 1 = 60; evt->data 2 = 127; Max. Midi. Out->Put(evt);
TMax. Midi. SMF ® void Close() ® int Get. Format() ® char Get. Mode() ® BOOL Is. Open() ® BOOL Load() ® int Num. Tracks() ® BOOL Open(filename, mode, format) ® BOOL Read(TMax. Midi. Track* p. Track) ® BOOL Read. Meta(TMax. Midi. Track* p. Track, BYTE Meta. Event, LPSTR* Value, DWORD* cb. Size)
TMax. Midi. SMF (continuação) ® WORD Resolution() ® void Resolution(resolution) ® BOOL Rewind() BOOL Save() ® BOOL Write(TMax. Midi. Track* p. Track) ® UINT Write. Meta(CMax. Midi. Track* p. Track, BYTE Meta. Event, LPSTR Value, DWORD time)
TMax. Midi. Track ® LPMIDIEVENT Get. Event(event. Num)
TMax. Midi. Score ® Atributo ® TMax. Midi. Track *Tracks
Exemplo: Lendo Um mudanças de tempo em um Arquivo MIDI TMax. Midi. SMF* Max. Midi. SMF 1; TMax. Midi. Score* Max. Midi. Score; Max. Midi. Score = new TMax. Midi. Score(num. Tracks); Max. Midi. SMF 1 ->Attach(Max. Midi. Score); Max. Midi. SMF 1 ->Load(Max. Midi. Sync 1); If(Max. Midi. SMF 1 ->Read. Meta(Max. Midi. Score->Tracks[0], META_TEMPO, &valor. Tempo, &tamanho. Tempo) <processamento da informação>
Exemplo: Lendo e tocando uma track if(Form 1 ->Max. Midi. SMF 1 ->Is. Open()) { if(!Form 1 ->Max. Midi. Sync 1 ->Is. Open()) Form 1 ->Max. Midi. Sync 1 ->Open(S_INT, 10); if(!Form 1 ->Max. Midi. Out 1 ->Is. Open()) Form 1 ->Max. Midi. Out 1 ->Open(0, MIDIOUT_DEFAULT); resolucao=Form 1 ->Max. Midi. SMF 1 ->Resolution(); Form 1 ->Max. Midi. Out 1 ->Attach(Max. Midi. Score); Form 1 ->Max. Midi. Sync 1 ->Resolution(resolucao); Form 1 ->Max. Midi. Sync 1 ->Start(); Max. Midi. Score->Start. Out( Form 1 ->Max. Midi. Out); Form 1 ->Max. Midi. Sync 1 ->Tempo(u. SPer. Beat); }
Programas interativos, respondendo a cliques (Módulo Educativo D´Accord) TMax. Midi. Out TMax. Midi. Sync TMax. Midi. In TMax. Midi. SMF TMax. Midi. Score TMax. Midi. Track
Programas de sequenciamento (D´Accord Violão) TMax. Midi. Out TMax. Midi. Sync TMax. Midi. In TMax. Midi. SMF TMax. Midi. Score TMax. Midi. Track
Programas que utilizem arquivos MIDI (D´Accord Editor) TMax. Midi. Out TMax. Midi. Sync TMax. Midi. In TMax. Midi. SMF TMax. Midi. Score TMax. Midi. Track
Programas que permitam gravação (D´Accord Editor) TMax. Midi. Out TMax. Midi. Sync TMax. Midi. In TMax. Midi. SMF TMax. Midi. Score TMax. Midi. Track
Tocar ® Out->Open ® Out->Put
Gravar ® In->Open ® Out->Open ® Sync->Open ® Score = new TMax. Midi. Score ® Sync->Attach(Score) ® In->Attach(Score) ® Sync->Start ® In->Start
Tocar SMF ® Sync->Open ® Out->Open ® SMF -> Attach (Score) ® SMF->Load ® Sync->Attach(Score) ® Out->Attach(Score) ® Sync -> Start
- Slides: 26