- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
#include <iostream>
#include <Windows.h>
#define OCT_1 0
#define OCT_2 12
#define OCT_3 24
#define OCT_4 36
#define OCT_5 48
#define OCT_6 60
#define OCT_7 72
#define OCT_8 84
#define OCT_9 96
#define NOTE_C 0
#define NOTE_Ch 1
#define NOTE_Db 1
#define NOTE_D 2
#define NOTE_Dh 3
#define NOTE_Eb 3
#define NOTE_E 4
#define NOTE_F 5
#define NOTE_Fh 6
#define NOTE_Gb 6
#define NOTE_G 7
#define NOTE_Gh 8
#define NOTE_Ab 8
#define NOTE_A 9
#define NOTE_Ah 10
#define NOTE_Bb 10
#define NOTE_B 11
long double notes[200];
#define TEMPO 100
#define LEN1 (120000 / TEMPO)
#define LEN2 (LEN1 / 2)
#define LEN4 (LEN1 / 4)
#define LEN8 (LEN1 / 8)
#define LEN16 (LEN1 / 16)
#define melody_len 28
struct s {
int key, len;
s(int key, int len) {
this->key = key;
this->len = len;
}
} melody[melody_len] = {
s(OCT_4 + NOTE_E, LEN8),
s(OCT_4 + NOTE_E, LEN8),
s(OCT_5 + NOTE_C, LEN4),
s(OCT_4 + NOTE_E, LEN8),
s(OCT_4 + NOTE_E, LEN8),
s(OCT_5 + NOTE_C, LEN4),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_4 + NOTE_B, LEN8),
s(OCT_4 + NOTE_B, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_4 + NOTE_E, LEN4),
s(OCT_5 + NOTE_E, LEN8),
s(OCT_5 + NOTE_E, LEN8),
s(OCT_4 + NOTE_D, LEN8),
s(OCT_4 + NOTE_D, LEN8),
s(OCT_5 + NOTE_E, LEN8),
s(OCT_5 + NOTE_E, LEN8),
s(OCT_4 + NOTE_B, LEN8),
s(OCT_4 + NOTE_B, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_4 + NOTE_B, LEN8),
s(OCT_4 + NOTE_B, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_5 + NOTE_C, LEN8),
s(OCT_4 + NOTE_E, LEN4),
};
int main(int argc, char** argv) {
notes[0] = 32.7032;
for(int i = 1; i < 200; ++i)
notes[i] = notes[i - 1] * 1.05946309436;
for(int i = 0; i < melody_len; ++i) {
int key = melody[i].key;
int len = melody[i].len;
if(key < 0) Sleep(len);
else Beep(notes[key], len);
}
return 0;
}
Дохуя мелодия... с 1 класса музыкалки...
Комментарии (8) RSS