use serde::{Deserialize, Serialize};
use crate::instr_default::InstrDefault;
use crate::instr_ekn::InstrEkn;
use crate::instr_midi::InstrMidi;
use crate::instr_opl::InstrOpl;
use crate::instr_robsid::InstrRobSid;
use crate::instr_sid::InstrSid;
use alloc::string::String;
#[allow(clippy::large_enum_variant)]
#[derive(Default, Serialize, Deserialize, Debug)]
pub enum InstrumentType {
#[default]
Empty,
Default(InstrDefault),
Euclidian(InstrEkn),
Midi(InstrMidi),
Opl(InstrOpl),
Sid(InstrSid),
RobSid(InstrRobSid),
}
#[derive(Default, Serialize, Deserialize, Debug)]
pub struct Instrument {
pub name: String,
pub instr_type: InstrumentType,
pub muted: bool,
}