From 0c47920918c35210019217b2b13b378dbfc98dbb Mon Sep 17 00:00:00 2001 From: EvanR Date: Thu, 4 Mar 2010 12:59:24 -0600 Subject: [PATCH] Fixed note off bug in default instrument. 'Fixed' volume. I'm going to need to rethink the volume levels, reduce to as much as possible, then amplify. --- org.c | 4 +- soundtest.c | 138 +++++++++++++++++++++++------------------------------------- 2 files changed, 55 insertions(+), 87 deletions(-) rewrite soundtest.c (75%) diff --git a/org.c b/org.c index cb2c2b6..69233df 100644 --- a/org.c +++ b/org.c @@ -109,11 +109,11 @@ void default_gen(struct defstate* data, int z, float out[], int count){ } } - //float factor = normalize(data->note[z] + data->bend) * data->release[z]; + // float factor = normalize(data->note[z] + data->bend) * data->release[z]; //float amp = sine_table[data->ptr[z]]; float amp = sine_table_interp(data->ptr[z]); // out[i] += amp * factor; - out[i] += amp / 16.0; + out[i] += amp / 16.0 * data->release[z]; data->ptr[z] += step; while(data->ptr[z] >= TABLE_SIZE){ data->ptr[z] -= TABLE_SIZE; diff --git a/soundtest.c b/soundtest.c dissimilarity index 75% index 2b467b2..95a5014 100644 --- a/soundtest.c +++ b/soundtest.c @@ -1,85 +1,53 @@ -#include - -#include -#include -#include -#include -#include -#include -#include - - -int main_note = 0; - -#define CHANNEL 1 - -void play(int note){ - seq_instant(EV_NOTEON, CHANNEL, note+main_note, 0); -} - -void stop(int note){ - seq_instant(EV_NOTEOFF, CHANNEL, note+main_note, 0); -} - -void bend(int amount){ - seq_instant(EV_PITCHBEND, CHANNEL, 0, amount); -} - -int bend_amount = 64; -int bend_v = 0; - -static void press(input in){ - if(in.button == ESCAPE_KEY){ - game_is_over(); - } - - console_printf("%s", input_str(in)); - - switch(in.button){ - case LEFT_BUTTON: play(0); break; - case RIGHT_BUTTON: play(4); break; - case DOWN_BUTTON: play(2); break; - case FIRE_BUTTON: play(5); break; - case JUMP_BUTTON: play(7); break; - case SPECIAL_BUTTON: play(9); break; - case L_BUTTON: bend_v = -1; break; - case R_BUTTON: bend_v = 1; break; - case START_BUTTON: main_note-=12; break; - case SELECT_BUTTON: main_note+=12; break; - default: break; - } -} - -static void release(input in){ - switch(in.button){ - case LEFT_BUTTON: stop(0); break; - case RIGHT_BUTTON: stop(4); break; - case DOWN_BUTTON: stop(2); break; - case FIRE_BUTTON: stop(5); break; - case JUMP_BUTTON: stop(7); break; - case SPECIAL_BUTTON: stop(9); break; - case L_BUTTON: bend_v = 0; break; - case R_BUTTON: bend_v = 0; break; - default: break; - } -} - -static void update(){ - console_update(); - - bend_amount += bend_v; - if(bend_amount > 0x7f) bend_amount = 0x7f; - if(bend_amount < 0x00) bend_amount = 0x00; - if(bend_v != 0){ - bend(bend_amount); - } -} - -static void draw(){ -} - - -void setup_inner(){ - set_handler(update, draw, press, release); - console_clear(); -} +#include + +#include +#include +#include +#include +#include + +#include + + +int x = 0; + +static void press(input in){ + if(in.button == ESCAPE_KEY){ + game_is_over(); + } + + if(x){ + console_printf("pausing music"); + music_pause(); + x = 0; + } + else{ + console_printf("playing music"); + music_play(MUS_TEST1); + x = 1; + } +} + +static void release(input in){ +} + +static void update(){ + console_update(); +} + +static void draw(){ +} + + +void setup_inner(){ + set_handler(update, draw, press, release); + console_clear(); + + if(music_load("last_battle.mid", MUS_TEST1) < 0){ + printf("open music failed\n"); + } + else{ + printf("open music worked\n"); + music_play(MUS_TEST1); + } +} -- 2.11.4.GIT