hackathon

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

bad-apple.c (6218B)


      1 #include <ctype.h>
      2 #include <stdio.h>
      3 #include "tones.h"
      4 
      5 #define SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
      6 
      7 typedef struct block {
      8 	int notes[4][26];
      9 } block;
     10 
     11 static const char song[][4][28] = {
     12 	{"4D--D-D--DC-dD--D-D--DC-dD-"},
     13 	{"4-D-D--DC-dD--D-FG--F-GD--D"},
     14 	{"4-D--DC-dD--D-D--DC-dD--D-D"},
     15 	{"4--DC-dG--F-GF--D-FD--D-D--"},
     16 	{"4DC-dD--D-D--DC-dD--D-D--DC"},
     17 	{"4-dD--D-FG--F-GD--D-D--DC-d"},
     18 	{"4D--D-D--DC-dD--D-D--DC-dG-"},
     19 	{"4F-G-F-D-F-D--f--F--G--A---"},
     20 	{"5--D--C--------------------","4--------A-----D-----A--G--"},
     21 	{"4F--f--D--f--F--G--A-----G-"},
     22 	{"4-F--f--D--f--F--f--D--d--f"},
     23 	{"5--------------------D--C--","4--D--f--F--G--A-----------"},
     24 	{"4A-----D-----A--G--F--f--D-"},
     25 	{"4-f--F--G--A-----G--F--f---"},
     26 	{"4--F-----G-----A-----D--f--"},
     27 	{"5------------D--C----------","4D--f--D-----F--A--F-----D-","4F--G--A-----------A-------","3------------------------A-"},
     28 	{"4----F--G--F--f--D--f--F--G","4----A---------------------"},
     29 	{"4--A-----G--F--f--D--f--F--"},
     30 	{"4f--D--d--f--D--f--D--f--D-","4------------------F--G--A-"},
     31 	{"5----D--C------------------","4----F--A--F-----D-----F--G","4----------A-----------A---","3----------------A---------"},
     32 	{"4--F--f--D--f--F--G--A-----"},
     33 	{"4G--F--f-----F-----G-----A-"},
     34 	{"5----C--D------------------","4----------A--G--A-----G--A"},
     35 	{"5--C--D--------------------","4--------A--G--A-----G--A--"},
     36 	{"4G--F--f--C--D-----C--D--f-"},
     37 	{"5-------------------C--C--D","4-F--G--A--D-----A---------"},
     38 	{"5--------------------C--D--","4--A--G--A-----G--A--------"},
     39 	{"4a--g--A-----G--A--G--F--f-"},
     40 	{"4-C--D-----C--D--f--F--G--A"},
     41 	{"5-----------C--C--D--------","4--D-----A-----------A--G--"},
     42 	{"5------------C--D----------","4A-----G--A--------A--G--A-"},
     43 	{"4----G--A--G--F--f--C--D---"},
     44 	{"4--C--D--f--F--G--A--D-----"},
     45 	{"5---C--C--D----------------","4A-----------A--G--A-----G-"},
     46 	{"5----C--D--------------D--f","4-A--------A--G--A---------"},
     47 	{"5--F--f--D--C--------------","4--------------A-----G--A--"},
     48 	{"6---------------------C--C-","5------------------A-------","4G--F--f--C--D-------------"},
     49 	{"6-D--------------------C--D","5----A--G--A-----G--A------"},
     50 	{"5--A--G--A-----G--A--G--F--"},
     51 	{"5f--C--D-----C--D--f--F--G-"},
     52 	{"6-------------C--C--D------","5-A--D-----A-----------A--G"},
     53 	{"6--------------C--D--------","5--A-----G--A--------A--G--"},
     54 	{"5A-----G--A--G--F--f--C--D-"},
     55 	{"5----C--D--f--F--G--A--D---"},
     56 	{"6-----C--C--D--------------","5--A-----------A--G--A-----"},
     57 	{"6------C--D----------------","5G--A--------A--G--A-----G-"},
     58 	{"5-A--G--F--f--C--D-----C--D"},
     59 	{"6-----------------------C--","5--f--F--G--A--D-----A-----"},
     60 	{"6C--D--------------------C-","5------A--G--A-----G--A----"},
     61 	{"6-D--------------D--f--F--f","5----A--G--A---------------"},
     62 	{"6--D--C--------------------","5--------A-----G--A--G--F--"},
     63 	{"5f--C--D-------------------","4------------------D--D-D--"},
     64 	{"4DC-dD--D-D--DC-dD--D-D--DC"},
     65 	{"4-dD--D-FG--F-GD--D-D--DC-d"},
     66 	{"4D--D-D--DC-dD--D-D--DC-dG-"},
     67 	{"4-F-GF--D-FD--D-D--DC-dD--D"},
     68 	{"4-D--DC-dD--D-D--DC-dD--D-F"},
     69 	{"4G--F-GD--D-D--DC-dD--D-D--"},
     70 	{"5--------------------C-D-F-","4DC-dD--D-D--DC-dG-A-------"},
     71 	{"5A-G-----------------A-GF--"},
     72 	{"5G-Ff--F-fD--f-DC--D-------","4------------------------A-"},
     73 	{"5----C---------------------","4-------A--G--a--G-----F---"},
     74 	{"6--------------------C-----","5--------C--D--F--A--------","4--G--A--------------------"},
     75 	{"6---D-----D-----F--------f-","5A-------------------------"},
     76 	{"6-f--f--F--f--D--C--D------","5---------------------AA---"},
     77 	{"6-C-----------------C------","5-------G--A--G--A--------A"},
     78 	{"5GG-A--G--F--------FfDf--bA","4------------fDCD----------"},
     79 	{"6----DC-C------------------","5GA----b---bAGA--FfDf------","4----------------------FfDf"},
     80 	{"5-----------C-C---------C-C","4--DC-C--A-A---b-bA-Ab-b---","3----b---------------------"},
     81 	{"5D-Df--G-----F--------f----"},
     82 	{"5-G-----F--f--G--F--f--G--F"},
     83 	{"5--f-G-F-f-G-F-f-G-F-f-G-F-"},
     84 	{"6-------C----D-----f-----F-","5A-----A-------------------"},
     85 	{"6-f--f-----D-----C-----C-dD"},
     86 	{"6--------------------C--D--","5--A--G--A-----G--A--------"},
     87 	{"5A--G--A-----G--A--G--F--f-"},
     88 	{"5-C--D-----C--D--f--F--G--A"},
     89 	{"6-----------C--C--D--------","5--D-----A-----------A--G--"},
     90 	{"6------------C--D----------","5A-----G--A--------A--G--A-"},
     91 	{"5----G--A--G--F--f--C--D---"},
     92 	{"5--C--D--f--F--G--A--D-----"},
     93 	{"6---C--C--D----------------","5A-----------A--G--A-----G-"},
     94 	{"6----C--D------------------","5-A--------A--G--A-----G--A"},
     95 	{"5--G--F--f--C--D-----C--D--"},
     96 	{"6---------------------C--C-","5f--F--G--A--D-----A-------"},
     97 	{"6-D--------------------C--D","5----A--G--A-----G--A------"},
     98 	{"6--------------D--f--F--f--","5--A--G--A-----------------"},
     99 	{"6D--C----------------------","5------A-----G--A--G--F--f-"},
    100 	{"6-------------d--d--e------","5-C--D-----b-----------b--a"},
    101 	{"6--------------d--e--------","5--b-----a--b--------b--a--"},
    102 	{"5b-----a--b--a--g--F--d--e-"},
    103 	{"5----d--e--F--g--a--b--e---"},
    104 	{"6-----d--d--e--------------","5--b-----------b--a--b-----"},
    105 	{"6------d--e----------------","5a--b--------b--a--b-----a-"},
    106 	{"5-b--a--g--F--d--e-----d--e"},
    107 	{"6-----------------------d--","5--F--g--a--b--e-----b-----"},
    108 	{"6d--e--------------------d-","5------b--a--b-----a--b----"},
    109 	{"6-e------------------------","5----b--a--b-----a--b--a--g"},
    110 	{"5--F--d--e-----d--e--F--g--"},
    111 	{"6---------------d--d--e----","5a--b--e-----b-----------b-"},
    112 	{"6----------------d--e------","5-a--b-----a--b--------b--a"},
    113 	{"6--------e--F--g--F--e--d--","5--b-----------------------"},
    114 	{"5b-----a--b--a--g--F--d--e-"}
    115 };
    116 
    117 
    118 
    119 void makeBlock(const char blk[28]) {
    120 	if (blk[0] == 0) {
    121 		printf("{");
    122 		for (int n = 0; n < 26; n++) 
    123 			printf("0, ");
    124 		printf("},\n");
    125 		return;
    126 	}
    127 
    128 	int oc = blk[0] - 48;
    129 	printf("{");
    130 	for (int n = 1; n < 27; n++) {
    131 		if (blk[n] == '-') 
    132 			printf("0, ");
    133 		else if (isupper(blk[n]))
    134 			printf("NOTE_%cS%d, ", toupper(blk[n]), oc);
    135 		else
    136 			printf("NOTE_%c%d, ", toupper(blk[n]), oc);
    137 	}
    138 	printf("},\n");
    139 }
    140 
    141 int main() {
    142 	for (int ch = 0; ch < 4; ch++) {
    143 		printf("int ch%d[][26] = {\n", ch);
    144 		for (int i = 0; i < SIZE(song); i++) {
    145 			makeBlock(song[i][ch]);
    146 		}
    147 		printf("}\n");
    148 	}
    149 }
    150 
    151