update sequences

This commit is contained in:
sigil-03 2025-11-06 11:31:26 -07:00
parent 1bdb68c0d4
commit a1767420f2
3 changed files with 158 additions and 317 deletions

View file

@ -295,7 +295,7 @@ pub struct Sequences {
pub led0: sequencer::BasicSequence<'static>,
pub led1: sequencer::BasicSequence<'static>,
pub led2: sequencer::BasicSequence<'static>,
pub audio: &'static [&'static [sequencer::SequenceEntry]],
pub audio: &'static [(&'static [sequencer::SequenceEntry], usize)],
}
// things that touch hardware
@ -528,9 +528,8 @@ impl App {
// TODO
#[cfg(feature = "enable_print")]
println!("click");
self.services
.sequencer
.play_sequence(self.sequences.audio[self.settings.button_sound_index], 1);
let data = self.sequences.audio[self.settings.button_sound_index];
self.services.sequencer.play_sequence(data.0, data.1);
self.settings.button_sound_index += 1;
if self.settings.button_sound_index > self.sequences.audio.len() - 1 {

View file

@ -267,7 +267,7 @@ fn app_main(mut p: hal::Peripherals) -> ! {
let sample_player = DacService::new(ch32_hal::timer::Channel::Ch4, dac_service_data);
sample_player.load_data(coin_sound);
let sequencer = app::sequencer::DynamicSequence::new(&SEQUENCE_LIST[0], tick_rate_hz);
let sequencer = app::sequencer::DynamicSequence::new(&SEQUENCE_LIST[0].0, tick_rate_hz);
let app_services = Services {
led0: LedService::new(led0_ch),

View file

@ -62,367 +62,87 @@ pub static WAHWAH: [SequenceEntry; 9] = [
},
];
pub static DECENDING_TONES: [SequenceEntry; 71] = [
// SequenceEntry {
// frequency_hz: 1000,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 990,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 980,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 970,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 960,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 950,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 940,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 930,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 920,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 910,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 900,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 890,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 880,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 870,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 860,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 850,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 840,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 830,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 820,
// duration_ms: 50,
// },
// SequenceEntry {
// frequency_hz: 810,
// duration_ms: 50,
// },
pub static DECENDING_TONES: [SequenceEntry; 21] = [
SequenceEntry {
frequency_hz: 1100,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1050,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1000,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 950,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 900,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 850,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 800,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 790,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 780,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 770,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 760,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 750,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 740,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 730,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 720,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 710,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 700,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 690,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 680,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 670,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 660,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 650,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 640,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 630,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 620,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 610,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 600,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 590,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 580,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 570,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 560,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 550,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 540,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 530,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 520,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 510,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 500,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 490,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 480,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 470,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 460,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 450,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 440,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 430,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 420,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 410,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 400,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 390,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 380,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 370,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 360,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 350,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 340,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 330,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 320,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 310,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 300,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 290,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 280,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 270,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 260,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 250,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 240,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 230,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 220,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 210,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 200,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 190,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 180,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 170,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 160,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 150,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 140,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 130,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 120,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 110,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 100,
duration_ms: 50,
@ -494,12 +214,134 @@ pub static SOUND_8_BIT_GAME_3: [SequenceEntry; 3] = [
},
];
pub static SEQUENCE_LIST: [&'static [SequenceEntry]; 6] = [
&SOUND_8_BIT_GAME_3,
&SOUND_8_BIT_GAME_1,
&SOUND_8_BIT_GAME,
&COIN_CHIRP,
&WAHWAH,
&DECENDING_TONES,
// PLAY 1 TIMES
pub static ASCENDING_TONES: [SequenceEntry; 29] = [
SequenceEntry {
frequency_hz: 100,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 150,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 200,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 250,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 300,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 350,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 400,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 450,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 500,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 550,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 600,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 650,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 700,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 750,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 800,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 850,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 900,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 950,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1000,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1050,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1100,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1150,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1200,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1250,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1300,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1350,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1400,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1450,
duration_ms: 50,
},
SequenceEntry {
frequency_hz: 1500,
duration_ms: 1000,
},
];
pub static SEQUENCE_LIST: [(&'static [SequenceEntry], usize); 7] = [
(&ASCENDING_TONES, 0),
(&SOUND_8_BIT_GAME_3, 2),
// TODO: this one is broken:
(&SOUND_8_BIT_GAME_1, 1),
(&SOUND_8_BIT_GAME, 1),
(&COIN_CHIRP, 0),
(&WAHWAH, 5),
(&DECENDING_TONES, 0),
// &TEST_SEQ,
];