Astronomia.cpp

#include <bits/stdc++.h>
#include <unistd.h>

const int q_do = 262;
const int qre = 294;
const int qmi = 330;
const int qfa = 349;
const int qso = 392;
const int qla = 440;
const int qsi = 494;
const int _do = 523;
const int re = 578;
const int mi = 659;
const int fa = 698;
const int so = 784;
const int la = 880;
const int si = 988;
const int _do1 = 1046;
const int re1 = 1175;
const int mi1 = 1318;
const int fa1 = 1480;
const int so1 = 1568;
const int la1 = 1760;
const int si1 = 1976;
const int sq_do = 277;
const int sqre = 311;
const int sqfa = 370;
const int sqso = 415;
const int sqla = 466;
const int s_do = 554;
const int sre = 622;
const int sfa = 740;
const int sso = 831;
const int sla = 932;
const int s_do1 = 1046;
const int sre1 = 1245;
const int sfa1 = 1480;
const int sso1 = 1661;
const int sla1 = 1865;

// q前缀为低音,1后缀为高音,s前缀为半音阶

using namespace std;
void Beep(int x, int len) {
  string a = "beep -f " + to_string(x) + " -l" + to_string(len);
  system(a.c_str());
}

void init() { system("sudo apt install beep -y ; sudo modprobe pcspkr; "); }

void init_manjaro() {
  system("sudo pacman -S beep -y ; sudo modprobe pcspkr; ");
}

void debug() {
  usleep(1);
  Beep(la, 200);
  exit(0);
}

int main() {
  int f;
  cout << "Initialize?" << endl;
  cin >> f;
  if (f)
    init();
  int pai = 400, ban = 200;
  int ting = 128;
  while (1) {
    for (int t = 1; t <= 4; ++t)
      Beep(_do, ban);
    for (int t = 1; t <= 4; ++t)
      Beep(mi, ban);
    for (int t = 1; t <= 4; ++t)
      Beep(re, ban);
    for (int t = 1; t <= 4; ++t)
      Beep(so, ban);
    for (int t = 1; t <= 4; ++t)
      Beep(la, pai);
    Beep(la1, pai << 1);
    Beep(re, ban);
    Beep(_do, ban);
    Beep(qsi, ban);
    Beep(qso, ban);
    vector<pair<int, int>> vice = {
        {qfa, ban}, {_do, ban},  {fa, ban},  {la, ban},  {_do1, ban},
        {la, ban},  {fa, ban},   {_do, ban}, {qso, ban}, {re, ban},
        {so, ban},  {si, ban},   {re1, ban}, {si, ban},  {so, ban},
        {re, ban},  {qla, ban},  {mi, ban},  {la, ban},  {_do1, ban},
        {mi1, ban}, {_do1, ban}, {la, ban},  {mi, ban},  {qla, ban},
        {mi, ban},  {la, ban},   {mi, ban},  {qso, ban}, {mi, ban},
        {so, ban},  {mi, ban}};
    vector<pair<int, int>> Main = {
        {qla, pai / 3}, {qmi, pai / 3}, {q_do, pai / 3}, {qla, ban},
        {mi, ban},      {re, pai},      {_do, pai},      {qsi, pai / 3},
        {qso, pai / 3}, {qre, pai / 3}, {qsi, ban},      {qsi, ban},
        {re, pai},      {_do, ban},     {qsi, ban},      {qla, ban},
        {qmi, ban},     {qla, ban},     {_do1, ban},     {si, ban},
        {_do1, ban},    {si, ban},      {_do1, ban},     {qla, pai},
        {qla, ban},     {_do1, ban},    {si, ban},       {_do1, ban},
        {si, ban},      {_do1, ban},
    };
    // for(auto t:vice)
    // Beep(t.first,t.second);
    for (int t = 1; t <= 3; ++t)
      for (auto t : Main)
        Beep(t.first, t.second);
  }
  return 0;
}

posted @ 2020-05-21 19:55  谁是鸽王  阅读(270)  评论(0编辑  收藏  举报