Re: Ноти та C++
щось я застряв на конвертації нот, ніяк не виходить, надати вигляду "0x60003e90"
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include <windows.h>
#include <iostream.h>
#include <mmsystem.h>
#include <string.h>
#include <sstream>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
HMIDIOUT handle; //ініціалізуємо midi
void __fastcall TForm2::Button1Click(TObject *Sender)
{
unsigned char* notem;
unsigned int notemi[255];
AnsiString mas[255];
int k=0;
for(int i=0;i<=Memo1->Lines->Count;i++)
{
char* end=0;
notem=0;
mas[i]=Memo1->Lines->Strings[i].c_str();
notem=mas[i].c_str();
notemi[i]=strtol(notem,&end,16);
Memo2->Lines->Append(notemi[i]);
}
unsigned int DEFAULT_DEVICE = 0; // MIDI пристрій по-замовчуванню
DWORD Note1; //наша нота
unsigned int Instrument; //ініціалізуємо змінну інструментів
//Вибираєм інструмент
switch(ComboBox1->ItemIndex)
{
case 0 :
Instrument = 1;
break;
case 1 :
Instrument = 28;
break;
case 2:
Instrument = 118;
break;
case 3:
Instrument = 66;
break;
}
int Volume = 10;
unsigned int i = 0;
unsigned int a[]={
0x60003e90,
0x60003c90,
0x007f3e90,
0x497f5390,
0x60004590,
0x007f4590,
0x60004590,
0x007f4790,
0x60004790,
0x007f4890,
0x60004890,
0x60004190,
0x097f4390,
0x60004590,
0x007f4590,
0x60004590,
0x007f4790,
0x60004790,
0x007f4890,
0x60004890,
0};
if(!midiOutOpen(&handle, DEFAULT_DEVICE, 0,0, CALLBACK_NULL))
{
midiOutShortMsg(handle, (Volume << 16) | (Instrument << 8) | 0xC0); // Set instrument
while(a[i])
{
Note1=a[i];
midiOutShortMsg(handle, Note1);
Sleep(StrToInt( Edit1->Text));
i++;
}
}
else
Edit2->Text="Не ініціалізовано MIDI пристрій";
midiOutClose(handle);
}
//---------------------------------------------------------------------------
що не так? можливо якось можна попростіше?