level and speed up stuff

This commit is contained in:
2024-04-23 12:45:39 +02:00
parent ac4801c7cf
commit ff95034605
11 changed files with 77 additions and 13 deletions

View File

@ -13,7 +13,7 @@ CFLAGS+= -g3 -ggdb -gdwarf-2
LDFLAGS=-mmcu=$(MCU) -L $(TOOLCHAIN_PREFIX)/include
$(ARTIFACT).elf: main.o scheduler.o spi.o spi_init.o sequencer.o melody_tetris.o melody_tusch1.o psg.o mute.o
$(ARTIFACT).elf: main.o scheduler.o spi.o spi_init.o sequencer.o melody_tetris.o melody_tusch1.o psg.o mute.o melody_pling.o
$(CC) -o $@ $(LDFLAGS) $^
$(OBJDUMP) -D $(ARTIFACT).elf > $(ARTIFACT).txt

View File

@ -0,0 +1,29 @@
#include <stdbool.h>
#include <stddef.h>
#include "psg.h"
#include "sequencer.h"
#include "scheduler.h"
const t_tone plingVoice1[] = {
{ .octave = e_O_5, .note = e_C, .length = e_L_1_4, .legato = false, .staccato = true },
{ .octave = e_O_5, .note = e_G, .length = e_L_1_4, .legato = false, .staccato = true },
{ .octave = e_O_Null, .note = e_Null, .length = e_L_SyncMark,.legato = false, .staccato = false },
{ .octave = e_O_Null, .note = e_Null, .length = e_L_StopMark,.legato = false, .staccato = false },
{ .octave = e_O_Null, .note = e_Null, .length = e_L_EndMark, .legato = false, .staccato = false },
};
t_melodies pling = {
.melodies = { { .chip = 1, .amplitude = 12, .tones = plingVoice1 } },
.numOfMelodies = 1,
.pace = 200,
.slotMask = 0x02
};
void playPling() {
sequencerPlayMelodies(&pling);
}

View File

@ -0,0 +1,8 @@
#ifndef _MELODY_PLING_H_
#define _MELODY_PLING_H_
void playPling();
#endif // _MELODY_PLING_H_

View File

@ -930,11 +930,18 @@ t_melodies tetrisTheme = {
};
void playMelodyTetris() {
tetrisTheme.pace = 160; // reset to start value each time
sequencerPlayMelodies(&tetrisTheme);
}
void playMelodyTetrisFaster() {
tetrisTheme.pace += 10;
sequencerChangePace(&tetrisTheme);
}
void stopMelodyTetris() {
sequencerStopMelodies(&tetrisTheme);
}

View File

@ -4,6 +4,6 @@
void playMelodyTetris();
void stopMelodyTetris();
void playMelodyTetrisFaster();
#endif // _MELODY_TETRIS_H_

View File

@ -3,6 +3,7 @@
#include "psg.h"
#include "sequencer.h"
#include "scheduler.h"
#include "melody_tetris.h"
const t_tone tusch1voice1[] = {
{ .octave = e_O_5, .note = e_C, .length = e_L_1_4, .legato = false, .staccato = true },
@ -79,6 +80,7 @@ t_melodies tusch1 = {
void playTusch1() {
sequencerPlayMelodies(&tusch1);
playMelodyTetrisFaster();
}

View File

@ -127,3 +127,7 @@ void sequencerStopMelodies(t_melodies *melodies) {
schDel(melodies->taskId);
}
void sequencerChangePace(t_melodies *melodies) {
melodies->quarterLength = 60000 / melodies->pace / SEQUENCER_PERIOD; // duration of a 1/4 tone in ms
}

View File

@ -64,5 +64,6 @@ typedef struct {
void sequencerInit();
void sequencerPlayMelodies(t_melodies *melodies);
void sequencerStopMelodies(t_melodies *melodies);
void sequencerChangePace(t_melodies *melodies);
#endif // _SEQUENCER_H_

View File

@ -9,6 +9,6 @@
#define SOUND_FANFARE 0x10
#define SOUND_LOCK 0x20
#define SOUND_MOTION 0x40
#define SOUND_SPEED_UP 0x80
#define SOUND_PLING 0x80
#endif // _SOUND_CODES_H_

View File

@ -52,10 +52,10 @@ spiCmdHandler_7:
;; insert a call here
bic #SOUND_MOTION, &cmd
spiCmdHandler_8:
bit #SOUND_SPEED_UP, &cmd
bit #SOUND_PLING, &cmd
jz spiCmdHandler_end
;; insert a call here
bic #SOUND_SPEED_UP, &cmd
call #playPling
bic #SOUND_PLING, &cmd
spiCmdHandler_end:
ret