Sequencer multi-track project helpers implementation. Plus de détails...
#include "seq_project.h"
#include <string.h>
#include "brick_config.h"
#include "board/board_flash.h"
#include "cart/cart_registry.h"
Macros | |
#define | SEQ_PROJECT_DIRECTORY_MAGIC 0x4250524FU /* 'BPRO' */ |
#define | SEQ_PROJECT_PATTERN_MAGIC 0x42504154U /* 'BPAT' */ |
#define | SEQ_PROJECT_DIRECTORY_VERSION 1U |
#define | SEQ_PROJECT_PATTERN_VERSION 1U |
Énumérations | |
enum | { STEP_FLAG_ACTIVE = 1U << 0 , STEP_FLAG_AUTOMATION = 1U << 1 , STEP_FLAG_OFFSETS = 1U << 2 } |
enum | track_load_policy_t { TRACK_LOAD_FULL = 0 , TRACK_LOAD_REMAPPED , TRACK_LOAD_DIFFERENT_CART , TRACK_LOAD_ABSENT } |
Sequencer multi-track project helpers implementation.
#define SEQ_PROJECT_DIRECTORY_MAGIC 0x4250524FU /* 'BPRO' */ |
#define SEQ_PROJECT_DIRECTORY_VERSION 1U |
#define SEQ_PROJECT_PATTERN_MAGIC 0x42504154U /* 'BPAT' */ |
#define SEQ_PROJECT_PATTERN_VERSION 1U |
enum track_load_policy_t |
struct __attribute__ | ( | (packed) | ) |
< Relative offset inside the project slot.
< Payload length in bytes.
< On-disk pattern version.
< Tracks stored in the payload.
< Reserved for future use.
< Directory identifier.
< Directory format version.
< Slot index inside external flash.
< Project tempo snapshot.
< Active bank when saved.
< Active pattern when saved.
< Runtime track count when saved.
< Reserved for alignment.
< Project label.
< Pattern blob identifier.
< Pattern blob version.
< Number of tracks stored in this blob.
< Reserved for alignment.
< Cartridge identifier.
< Size of the serialized payload.
< Slot used during save.
< Track flags (muted...).
< Capability mask.
< Step index inside the pattern.
< Step flags bitmask.
< Mask of enabled voices.
< Number of serialized parameter locks.
bool seq_pattern_load | ( | uint8_t | bank, |
uint8_t | pattern | ||
) |
bool seq_pattern_save | ( | uint8_t | bank, |
uint8_t | pattern | ||
) |
bool seq_project_assign_track | ( | seq_project_t * | project, |
uint8_t | track_index, | ||
seq_model_pattern_t * | pattern | ||
) |
void seq_project_bump_generation | ( | seq_project_t * | project | ) |
void seq_project_clear_track | ( | seq_project_t * | project, |
uint8_t | track_index | ||
) |
uint8_t seq_project_get_active_bank | ( | const seq_project_t * | project | ) |
seq_model_pattern_t * seq_project_get_active_pattern | ( | seq_project_t * | project | ) |
const seq_model_pattern_t * seq_project_get_active_pattern_const | ( | const seq_project_t * | project | ) |
uint8_t seq_project_get_active_pattern_index | ( | const seq_project_t * | project | ) |
uint8_t seq_project_get_active_track | ( | const seq_project_t * | project | ) |
const seq_model_gen_t * seq_project_get_generation | ( | const seq_project_t * | project | ) |
seq_project_pattern_desc_t * seq_project_get_pattern_descriptor | ( | seq_project_t * | project, |
uint8_t | bank, | ||
uint8_t | pattern | ||
) |
const seq_project_pattern_desc_t * seq_project_get_pattern_descriptor_const | ( | const seq_project_t * | project, |
uint8_t | bank, | ||
uint8_t | pattern | ||
) |
seq_model_pattern_t * seq_project_get_track | ( | seq_project_t * | project, |
uint8_t | track_index | ||
) |
const seq_project_cart_ref_t * seq_project_get_track_cart | ( | const seq_project_t * | project, |
uint8_t | track_index | ||
) |
const seq_model_pattern_t * seq_project_get_track_const | ( | const seq_project_t * | project, |
uint8_t | track_index | ||
) |
uint8_t seq_project_get_track_count | ( | const seq_project_t * | project | ) |
void seq_project_init | ( | seq_project_t * | project | ) |
bool seq_project_load | ( | uint8_t | project_index | ) |
bool seq_project_save | ( | uint8_t | project_index | ) |
bool seq_project_set_active_slot | ( | seq_project_t * | project, |
uint8_t | bank, | ||
uint8_t | pattern | ||
) |
bool seq_project_set_active_track | ( | seq_project_t * | project, |
uint8_t | track_index | ||
) |
void seq_project_set_track_cart | ( | seq_project_t * | project, |
uint8_t | track_index, | ||
const seq_project_cart_ref_t * | cart | ||
) |
pattern_blob_header_t |
pattern_offsets_payload_t |
pattern_plock_payload_t |
pattern_step_header_t |
pattern_track_header_t |
pattern_voice_payload_t |
seq_project_directory_entry_t |
seq_project_directory_t |