uMIDI
The swiss army knife for quick and easy developement of MIDI applications.
Macros | Functions | Variables
whammy.c File Reference

Sequencer module implementation. More...

#include <stdlib.h>
#include <util/delay.h>
#include "lib/gpio.h"
#include "lib/hmi.h"
#include "lib/leds.h"
#include "lib/midi.h"
#include "lib/sequencer.h"
#include "lib/usb.h"
#include "lib/wave.h"
#include "config.h"
#include "whammy.h"
Include dependency graph for whammy.c:

Macros

#define STRING_NEXT   "next"
 
#define STRING_PREV   "prev"
 

Functions

static void sequencer_tick_handler (void)
 
bool exec_speed (const char *command)
 
bool exec_tap (const char *command)
 
bool exec_pattern (const char *command)
 
void decrease_speed (void)
 
void increase_speed (void)
 
void init_whammy_module (void)
 
void select_next_pattern (void)
 
void select_previous_pattern (void)
 
void tap_tempo (void)
 
void toggle_sequencing (void)
 

Variables

const struct sequencer_pattern factory_patterns []
 
const uint8_t factory_patterns_size = sizeof(factory_patterns) / sizeof(struct sequencer_pattern)
 
struct sequencer_channel sequencer
 

Detailed Description

Sequencer module implementation.

Macro Definition Documentation

◆ STRING_NEXT

#define STRING_NEXT   "next"

◆ STRING_PREV

#define STRING_PREV   "prev"

Function Documentation

◆ decrease_speed()

void decrease_speed ( void  )

◆ exec_pattern()

bool exec_pattern ( const char *  command)

◆ exec_speed()

bool exec_speed ( const char *  command)

◆ exec_tap()

bool exec_tap ( const char *  command)

◆ increase_speed()

void increase_speed ( void  )

◆ init_whammy_module()

void init_whammy_module ( void  )

◆ select_next_pattern()

void select_next_pattern ( void  )

◆ select_previous_pattern()

void select_previous_pattern ( void  )

◆ sequencer_tick_handler()

static void sequencer_tick_handler ( void  )
static

◆ tap_tempo()

void tap_tempo ( void  )

◆ toggle_sequencing()

void toggle_sequencing ( void  )

Variable Documentation

◆ factory_patterns

const struct sequencer_pattern factory_patterns[]

◆ factory_patterns_size

const uint8_t factory_patterns_size = sizeof(factory_patterns) / sizeof(struct sequencer_pattern)

◆ sequencer

struct sequencer_channel sequencer
Initial value:
= {
.speed = 40,
.running = true,
.tick_callback = &sequencer_tick_handler,
}
static void sequencer_tick_handler(void)
Definition: whammy.c:117
The pattern is looped as long as the sequencer channel is active.
Definition: sequencer.h:85
Sequencer pattern 01.
Definition: sequencer.h:48