用C++midi播放只因你太美
没有怎么接触过音乐,加上哥哥的那段rap的调太难了
整体没有做到很相似,不过还是能凑合着听一下的
还是得说一下,我家哥哥真有才(doge)
只能通过visual studio运行
#include <iostream>
#include <Windows.h>
#pragma comment(lib,"winmm.lib")
using namespace std;
enum Scale
{
Rest = 0, C8 = 108, B7 = 107, A7s = 106, A7 = 105, G7s = 104, G7 = 103, F7s = 102, F7 = 101, E7 = 100,
D7s = 99, D7 = 98, C7s = 97, C7 = 96, B6 = 95, A6s = 94, A6 = 93, G6s = 92, G6 = 91, F6s = 90, F6 = 89,
E6 = 88, D6s = 87, D6 = 86, C6s = 85, C6 = 84, B5 = 83, A5s = 82, A5 = 81, G5s = 80, G5 = 79, F5s = 78,
F5 = 77, E5 = 76, D5s = 75, D5 = 74, C5s = 73, C5 = 72, B4 = 71, A4s = 70, A4 = 69, G4s = 68, G4 = 67,
F4s = 66, F4 = 65, E4 = 64, D4s = 63, D4 = 62, C4s = 61, C4 = 60, B3 = 59, A3s = 58, A3 = 57, G3s = 56,
G3 = 55, F3s = 54, F3 = 53, E3 = 52, D3s = 51, D3 = 50, C3s = 49, C3 = 48, B2 = 47, A2s = 46, A2 = 45,
G2s = 44, G2 = 43, F2s = 42, F2 = 41, E2 = 40, D2s = 39, D2 = 38, C2s = 37, C2 = 36, B1 = 35, A1s = 34,
A1 = 33, G1s = 32, G1 = 31, F1s = 30, F1 = 29, E1 = 28, D1s = 27, D1 = 26, C1s = 25, C1 = 24, B0 = 23,
A0s = 22, A0 = 21
};
enum Voice
{
X1 = C2, X2 = D2, X3 = E2, X4 = F2, X5 = G2, X6 = A2, X7 = B2,
L1 = C3, L2 = D3, L3 = E3, L4 = F3, L5 = G3, L6 = A3, L7 = B3,
M1 = C4, M2 = D4, M3 = E4, M4 = F4, M5 = G4, M6 = A4, M7 = B4,
H1 = C5, H2 = D5, H3 = E5, H4 = F5, H5 = G5, H6 = A5, H7 = B5,
LOW_SPEED = 500, MIDDLE_SPEED = 300, HIGH_SPEED = 150,
_ = 0XFF,
};
void JNTM()
{
HMIDIOUT handle;
midiOutOpen(&handle, 0, 0, 0, CALLBACK_NULL);
//midiOutShortMsg(handle,32<<8+0xC0);
int volume = 0x7f;
int voice = 0x0;
int sleep = 350;
int jntm[] =
{
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//34
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,//30
300,_,150,L6,L6,300,L6,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//38
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//39
150,_,150,L6,L6,M3,L6,L6,L6,150,L6,L6,L6,L6,150,L6,L6,L6,L6,//19
150,L6,150,L6,L6,150,M1,L6,150,M3,150,L6,L6,L6,//14
150,L6,L6,L6,L6,150,L6,150,L6,L6,150,L6,L6,150,L6,_,300,_,//18
150,L6,L6,M2,M3,150,_,150,M2,M3,150,_,150,M2,M3,150,_,150,L6,//19
150,_,L3,150,L3,150,L3,L3,150,L3,150,L3,L3,150,M5,150,M6,M6,150,L6,//20
150,_,L6,150,L6,150,L6,L6,150,L6,150,L6,L6,150,M3,150,M3,M3,L6,//19
150,L6,L6,L6,L6,150,L6,L6,L6,L6,300,L6,300,M2,150,M2,//16
150,L6,L6,150,M2,M3,L6,L6,150,M2,M3,L6,L6,150,M2,M2,L6,L6,300,M3,M3,//21
300,_,150,_,L6,150,M3,M4,M3,M4,300,M3,L6,//13 r
300,_,150,_,L6,150,L5,L6,L6,L5,300,L6,L6,300,L3,_,//16
300,_,150,L6,L6,300,M3,150,M3,M4,300,M3,L6,//13
300,_,150,_,L6,150,L5,L6,L6,L5,300,L6,L6,300,M1,//15
500,M4,500,M3,//4r
300,L6,L6,_,L6,300,L6,_,150,M3,M4,M3,M4,300,M3,L6,//16r
300,_,300,_,L6,150,L5,L6,L6,L5,300,L6,L6,300,L3,_,//16
300,_,L6,150,L5,L6,L6,L5,300,L6,L6,300,M1,//13
300,H1,300,M7,M5,M5,M3,300,M3,M3,300,H1,300,M7,M5,300,M5,M3,M3,300,M5,//21
300,_,150,M3,M3,150,M3,300,M5,M5,300,M5,M6,300,M7,//15
150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//31
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,//28
300,_,150,L6,L6,300,L6,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//38
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//39
500,M4,500,M3,//4
300,_,150,L6,L6,300,M3,150,L6,L6,150,L6,L6,M3,300,_,150,M3,M3,150,_,M2,M2,M2,150,M1,M1,L7,//28
500,M4,500,M3,//4
300,_,150,M5,M5,300,M5,M5,300,M5,M6,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//26
500,M4,500,M3,//4
300,_,150,L6,L6,300,M3,150,L6,L6,150,L6,L6,M3,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//29
500,M4,500,M3,//4
300,_,150,M5,M5,300,M5,M5,300,M5,M6,//11
300,H1,M7,300,M6,M7,300,H1,M7,300,M7,M6,M6,//13
150,L6,L6,300,L6,L6,300,L6,//8
150,L6,L6,300,L6,300,L6,//7
150,L6,L6,300,L6,L6,300,L6,//8
300,L6,L6,175,M3,L6,300,L6,//8
150,L6,150,L6,L6,150,L6,300,L6,L6,150,L6,//12
300,L6,L6,150,L6,150,L6,L6,//8
300,L6,200,L6,L6,300,L6,160,L6,L6,300,L6,150,L6,L6,//15
300,L6,300,L6,L6,//5
150,M2,L6,L6,L6,150,L6,L6,L6,L6,150,L6,L6,L6,L6,150,L6,300,M2,//19
150,L6,M2,L6,L6,L6,150,M2,L6,L6,L6,150,L6,L6,L6,L6,150,L6,150,M2,//20
300,M2,L6,300,L6,//5
150,L6,L6,L6,300,M3,L6,175,M2,//9
150,L6,L6,M2,M3,M2,M3,150,M2,M3,M2,M3,150,M3,M3,M3,M3,150,M3,M3,//20
300,_,150,_,L6,150,M3,M4,M3,M4,300,M3,L6,//13
300,_,150,_,L6,150,L5,L6,L6,L5,300,L6,L6,L3,_,//15
150,_,150,L6,L6,150,M3,M4,M3,M4,160,M3,L6,//13
300,_,150,_,L6,150,L5,L6,L6,L5,160,L6,L6,300,M1,//15
500,M4,500,M3,//4
150,L6,L6,150,_,L6,150,L6,_,150,M3,M4,M3,M4,160,M3,L6,//17
300,_,150,_,L6,150,L5,L6,L6,L5,150,L6,L6,150,L3,_,//16
150,_,L6,150,L5,L6,L6,L5,150,L6,L6,300,M1,//13
300,H1,150,M7,M5,150,M5,M3,150,M3,M3,300,H1,150,M7,M5,150,M5,M3,M3,300,M5,//22
300,_,150,M3,M3,150,M3,160,M5,M5,150,M5,M6,150,M7,//15
150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//31
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,//28
300,_,150,L6,L6,300,L6,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//38
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,150,_,//41
150,_,300,_,M5,300,M5,M3,300,M3,M4,300,M4,M3,300,M3,M2,300,M2,M1,300,M2,M3,//23
150,_,L6,L6,L5,150,L6,L5,L5,L5,300,L6,150,L6,L6,//15
150,L6,L5,L5,L5,300,L6,L5,150,L6,L6,L6,150,_,//14
150,_,180,_,M5,180,M5,M3,180,M3,M4,180,M4,M3,180,M2,M2,180,M1,M1,180,M2,M3,//23
180,M3,L6,M5,150,L6,L5,150,L6,L5,150,L6,300,L6,L6,//15
150,L6,L6,L6,L6,150,L6,L5,L6,L5,180,L6,L6,180,L6,//15
150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//31
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,//28
300,_,150,L6,L6,300,L6,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,//38
300,_,150,L6,L6,300,M3,M3,300,L6,150,_,M6,M6,M6,300,_,150,M3,M3,300,_,M4,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//39
500,M4,500,M3,//4
150,_,150,L6,L6,300,M3,150,L6,L6,150,L6,L6,150,M3,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//30
500,M4,500,M3,//4
300,_,150,M5,M5,300,M5,M5,300,M5,M6,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//26
500,M4,500,M3,//4
150,_,150,L6,L6,300,M3,150,L6,L6,150,L6,L6,150,M3,300,_,150,M3,M3,150,_,M2,M2,M2,150,_,M1,M1,L7,//30
500,M4,500,M3,//4
300,_,150,M5,M5,300,M5,M5,300,M5,M6,//11
300,H1,M7,300,M6,M7,300,H1,M7,300,M7,M6,300,M6,300,M6,300,M6,300,M6
};
int cnt = 0;
for (auto i : jntm) {
cnt += 1;
if (cnt == 1) cout << "只因你太美 baby\n";
if (cnt == 34) cout << "只因你太美 baby\n";
if (cnt == 64) cout << "只因你实在是太美 baby\n";
if (cnt == 102) cout << "只因你太美 baby\n";
if (cnt == 141) cout << "迎面走来的你让我如此蠢蠢欲动\n";
if (cnt == 160) cout << "这种感觉我从未有\n";
if (cnt == 174) cout << "Cause I got a crush on you who you\n";
if (cnt == 192) cout << "你是我的,我是你的谁\n";
if (cnt == 211) cout << "再多一眼 看一眼 就会爆炸\n";
if (cnt == 231) cout << "再近一点 靠近点 快被融化\n";
if (cnt == 250) cout << "想要把你占为己有 baby bae\n";
if (cnt == 266) cout << "不管走到哪里都会想起的人 是你 you you\n";
if (cnt == 287) cout << "我应该拿你怎样\n";
if (cnt == 300) cout << "所有人都在看着你\n";
if (cnt == 316) cout << "我的心总是不安\n";
if (cnt == 329) cout << "我现在已病入膏肓\n";
if (cnt == 344) cout << "eh oh\n";
if (cnt == 348) cout << "难道 真的因你而疯狂吗\n";
if (cnt == 364) cout << "我本来不是这种人\n";
if (cnt == 380) cout << "因你而变成奇怪的人\n";
if (cnt == 393) cout << "第一次呀变成这样的我\n";
if (cnt == 414) cout << "不管我怎么去否认\n";
if (cnt == 429) cout << "只因你太美 baby\n";
if (cnt == 460) cout << "只因你太美 baby\n";
if (cnt == 488) cout << "只因你实在是太美 baby\n";
if (cnt == 526) cout << "只因你太美 baby\n";
if (cnt == 565) cout << "eh oh\n";
if (cnt == 569) cout << "现在确认的告诉我\n";
if (cnt == 597) cout << "eh oh\n";
if (cnt == 601) cout << "你到底属于谁\n";
if (cnt == 627) cout << "eh oh\n";
if (cnt == 631) cout << "现在确认的告诉我\n";
if (cnt == 660) cout << "eh oh\n";
if (cnt == 664) cout << "你到底属于谁\n";
if (cnt == 675) cout << "就是现在告诉我\n";
if (cnt == 688) cout << "跟着那节奏\n";
if (cnt == 696) cout << "缓缓 make wave\n";
if (cnt == 703) cout << "甜蜜的奶油\n";
if (cnt == 711) cout << "It's your birthday cake\n";
if (cnt == 719) cout << "男人们的game\n";
if (cnt == 731) cout << "call me 你恋人\n";
if (cnt == 739) cout << "别被欺骗 愉快的\n";
if (cnt == 754) cout << "I wanna play\n";
if (cnt == 759) cout << "我的脑海每分每秒为你一人沉醉\n";
if (cnt == 778) cout << "最迷人让我神魂颠倒是你身上香水\n";
if (cnt == 798) cout << "oh right baby\n";
if (cnt == 803) cout << "I'm fall in love with you\n";
if (cnt == 812) cout << "我的一切你都拿走 只要有你就已足够\n";
if (cnt == 832) cout << "我到底应该怎样\n";
if (cnt == 845) cout << "我的心一直很不安\n";
if (cnt == 860) cout << "其他男人们的视线\n";
if (cnt == 873) cout << "全都只看着你的脸\n";
if (cnt == 888) cout << "eh oh\n";
if (cnt == 892) cout << "难道 真的因你而疯狂吗\n";
if (cnt == 909) cout << "我本来不是这种人\n";
if (cnt == 925) cout << "因你而变成奇怪的人\n";
if (cnt == 938) cout << "第一次呀变成这样的我\n";
if (cnt == 960) cout << "不管我怎么去否认\n";
if (cnt == 975) cout << "只因你太美 baby\n";
if (cnt == 1006) cout << "只因你太美 baby\n";
if (cnt == 1034) cout << "只因你实在是太美 baby\n";
if (cnt == 1072) cout << "只因你太美 baby\n";
if (cnt == 1113) cout << "我愿意把我的全部都给你\n";
if (cnt == 1136) cout << "我每天在梦里都梦见你\n";
if (cnt == 1151) cout << "还有我闭着眼睛也能看到你\n";
if (cnt == 1165) cout << "现在开始我只准你看我\n";
if (cnt == 1188) cout << "I don't wanna wake up in dream\n";
if (cnt == 1203) cout << "我只想看你 这是真心话\n";
if (cnt == 1218) cout << "只因你太美 baby\n";
if (cnt == 1249) cout << "只因你太美 baby\n";
if (cnt == 1277) cout << "只因你实在是太美 baby\n";
if (cnt == 1315) cout << "只因你太美 baby\n";
if (cnt == 1354) cout << "eh oh\n";
if (cnt == 1358) cout << "现在确认的告诉我\n";
if (cnt == 1388) cout << "eh oh\n";
if (cnt == 1392) cout << "你到底属于谁\n";
if (cnt == 1418) cout << "eh oh\n";
if (cnt == 1422) cout << "现在确认的告诉我\n";
if (cnt == 1452) cout << "eh oh\n";
if (cnt == 1456) cout << "你到底属于谁\n";
if (cnt == 1467) cout << "就是现在告诉我\n";
//cout << cnt << "\n";
if (i == LOW_SPEED || i == HIGH_SPEED || i == MIDDLE_SPEED) {
sleep = i;//Sleep(i/2);
continue;
}
if (i == 0) { sleep = 175; continue; }
if (i == 700) { Sleep(175); continue; }
if (i == _) {
Sleep(350);
continue;
}
// if (i == 900) volume += 100;
voice = (volume << 16) + ((i) << 8) + 0x90;
midiOutShortMsg(handle, voice);
//cout << voice << endl;
Sleep(sleep);
}
midiOutClose(handle);
}
int main()
{
JNTM();
return 0;
}