- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 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 класса музыкалки...