mirror of
https://github.com/stevenhowes/CTheEscape.git
synced 2026-05-26 15:53:29 +01:00
Load and save of binary audio
Format in h/Sound
This commit is contained in:
Binary file not shown.
+2
-51
@@ -14,58 +14,9 @@ void intro()
|
||||
sound_set_voice(3,"WaveSynth-Beep");
|
||||
sound_set_voice(4,"WaveSynth-Beep");
|
||||
sound_composition_init();
|
||||
|
||||
// DUn, dun, daan duhhn
|
||||
sound_composition_element_add(currentstart,1,sound_note("A4#"),200);
|
||||
sound_composition_element_add(currentstart,2,sound_note("A5#"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,3,sound_note("F3"),200);
|
||||
sound_composition_element_add(currentstart,4,sound_note("F4"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,1,sound_note("G3#"),200);
|
||||
sound_composition_element_add(currentstart,2,sound_note("G4#"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,3,sound_note("C3"),200);
|
||||
sound_composition_element_add(currentstart,4,sound_note("C4"),200);
|
||||
currentstart += 200;
|
||||
|
||||
// DUn, dun, daan duhhn
|
||||
sound_composition_element_add(currentstart,1,sound_note("A3#"),200);
|
||||
sound_composition_element_add(currentstart,2,sound_note("A4#"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,3,sound_note("F2"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,4,sound_note("G2#"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,1,sound_note("C2"),200);
|
||||
currentstart += 200;
|
||||
|
||||
// Duh
|
||||
sound_composition_element_add(currentstart,2,sound_note("A3#"),400);
|
||||
sound_composition_element_add(currentstart,3,sound_note("A2#"),400);
|
||||
currentstart += 250;
|
||||
|
||||
// Dun De Da
|
||||
sound_composition_element_add(currentstart,1,sound_note("F1"),20);
|
||||
currentstart += 50;
|
||||
sound_composition_element_add(currentstart,4,sound_note("A2#"),5);
|
||||
currentstart += 20;
|
||||
sound_composition_element_add(currentstart,2,sound_note("D2#"),200);
|
||||
currentstart += 180;
|
||||
|
||||
|
||||
sound_composition_element_add(currentstart,3,sound_note("D2"),50);
|
||||
currentstart += 50;
|
||||
sound_composition_element_add(currentstart,1,sound_note("A2#"),30);
|
||||
currentstart += 30;
|
||||
sound_composition_element_add(currentstart,2,sound_note("G1"),50);
|
||||
currentstart += 50;
|
||||
sound_composition_element_add(currentstart,5,sound_note("C2"),50);
|
||||
currentstart += 50;
|
||||
sound_composition_element_add(currentstart,3,sound_note("A2#"),100);
|
||||
sound_composition_element_add(currentstart,1,sound_note("F2"),100);
|
||||
currentstart += 100;
|
||||
|
||||
sound_composition_load("cmpintro");
|
||||
|
||||
tick = clock();
|
||||
|
||||
sound_composition_start(clock());
|
||||
|
||||
+5
-34
@@ -8,6 +8,8 @@
|
||||
|
||||
//#defene PROFILE(X) lastprofile = clock(); X; printf("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%s %i\n", #X, (clock() - lastprofile))
|
||||
#define PROFILE(X) X
|
||||
extern sound_composition_save(char *filename);
|
||||
extern sound_composition_load(char *filename);
|
||||
|
||||
enum sprite_e{player_ship, durno_ship, ship_trgt, durno_ship2, ship2_trgt, player_shipl,player_shipr,explode_start,explode_shp2,explode_shp3,explode_end,photon1,photon2,plasma1,plasma2};
|
||||
char *sprites[] = {"player_ship","durno_ship","ship_trgt","durno_ship2","ship2_trgt","player_shipl","player_shipr","explode_shp1","explode_shp2","explode_shp3","explode_shp4","photon1","photon2","plasma1","plasma2"};
|
||||
@@ -842,40 +844,9 @@ void game1_death()
|
||||
sound_set_voice(3,"WaveSynth-Beep");
|
||||
sound_set_voice(4,"WaveSynth-Beep");
|
||||
sound_composition_init();
|
||||
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,1,sound_note("D2"),150);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,2,sound_note("G2"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,3,sound_note("B3"),75);
|
||||
currentstart += 40;
|
||||
sound_composition_element_add(currentstart,4,sound_note("G2"),75);
|
||||
currentstart += 50;
|
||||
sound_composition_element_add(currentstart,2,sound_note("B3"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,1,sound_note("A3"),100);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,3,sound_note("G2"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,2,sound_note("E2"),100);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,1,sound_note("D2"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,3,sound_note("D2"),150);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,4,sound_note("G2"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,1,sound_note("B3"),75);
|
||||
currentstart += 40;
|
||||
sound_composition_element_add(currentstart,2,sound_note("G2"),75);
|
||||
currentstart += 40;
|
||||
sound_composition_element_add(currentstart,3,sound_note("B3"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,4,sound_note("A3"),130);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,1,sound_note("G2"),200);
|
||||
currentstart += 300;
|
||||
|
||||
sound_composition_load("cmpagrac");
|
||||
|
||||
tick = clock();
|
||||
|
||||
sound_composition_start(clock());
|
||||
|
||||
+3
-34
@@ -74,40 +74,9 @@ void game2_death()
|
||||
sound_set_voice(3,"WaveSynth-Beep");
|
||||
sound_set_voice(4,"WaveSynth-Beep");
|
||||
sound_composition_init();
|
||||
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,1,sound_note("D2"),150);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,2,sound_note("G2"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,3,sound_note("B3"),75);
|
||||
currentstart += 40;
|
||||
sound_composition_element_add(currentstart,4,sound_note("G2"),75);
|
||||
currentstart += 50;
|
||||
sound_composition_element_add(currentstart,2,sound_note("B3"),200);
|
||||
currentstart += 200;
|
||||
sound_composition_element_add(currentstart,1,sound_note("A3"),100);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,3,sound_note("G2"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,2,sound_note("E2"),100);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,1,sound_note("D2"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,3,sound_note("D2"),150);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,4,sound_note("G2"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,1,sound_note("B3"),75);
|
||||
currentstart += 40;
|
||||
sound_composition_element_add(currentstart,2,sound_note("G2"),75);
|
||||
currentstart += 40;
|
||||
sound_composition_element_add(currentstart,3,sound_note("B3"),150);
|
||||
currentstart += 150;
|
||||
sound_composition_element_add(currentstart,4,sound_note("A3"),130);
|
||||
currentstart += 100;
|
||||
sound_composition_element_add(currentstart,1,sound_note("G2"),200);
|
||||
currentstart += 300;
|
||||
|
||||
sound_composition_load("cmpagrac");
|
||||
|
||||
tick = clock();
|
||||
|
||||
sound_composition_start(clock());
|
||||
|
||||
+40
-2
@@ -21,6 +21,35 @@ void sound_on()
|
||||
_kernel_swi(Sound_Enable,&inreg,&outreg);
|
||||
}
|
||||
|
||||
void sound_composition_load(char* filename)
|
||||
{
|
||||
int length;
|
||||
|
||||
// Attempt to get file info
|
||||
inreg.r[0] = 13;
|
||||
inreg.r[1] = (int) filename;
|
||||
_kernel_swi(OS_File,&inreg,&outreg);
|
||||
|
||||
// Length will be in R4 if it exists
|
||||
length = outreg.r[4];
|
||||
|
||||
if(length > sizeof(composition))
|
||||
{
|
||||
screen_nobuffer();
|
||||
printf("Composition exceeds %d bytes (%d bytes)",sizeof(composition),length);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
// Attempt to get file info
|
||||
inreg.r[0] = 16;
|
||||
inreg.r[1] = (int) filename;
|
||||
inreg.r[2] = (int) composition;
|
||||
inreg.r[3] = 0;
|
||||
|
||||
_kernel_swi(OS_File,&inreg,&outreg);
|
||||
|
||||
}
|
||||
|
||||
void sound_voices(int num)
|
||||
{
|
||||
inreg.r[0] = num;
|
||||
@@ -73,6 +102,17 @@ void sound_composition_element_add(int start, int channel, int note, int length)
|
||||
composition[current_element].Length = length;
|
||||
current_element++;
|
||||
}
|
||||
void sound_composition_save(char *filename)
|
||||
{
|
||||
// Attempt to get file info
|
||||
inreg.r[0] = 10;
|
||||
inreg.r[1] = (int) filename;
|
||||
inreg.r[2] = 0xffd;
|
||||
inreg.r[4] = (int) composition;
|
||||
inreg.r[5] = (int) composition+(sizeof(composition[0]) * COMPOSITION_MAX);
|
||||
|
||||
_kernel_swi(OS_File,&inreg,&outreg);
|
||||
}
|
||||
|
||||
void sound_composition_debug()
|
||||
{
|
||||
@@ -93,8 +133,6 @@ void sound_composition_debug()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
printf("%i elements at %i bytes each\n",current_element,sizeof(composition[0]));
|
||||
|
||||
printf("------------------------------\n");
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -5,5 +5,6 @@ struct CompositionElement {
|
||||
unsigned char Note;
|
||||
signed char Volume;
|
||||
unsigned char Channel;
|
||||
/*unsigned char word alignment*/
|
||||
unsigned short int Length;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user