use serde::{Deserialize, Serialize};
use std::sync::Arc;
use crate::instr_default::InstrDefault;
use crate::instr_ekn::InstrEkn;
use crate::instr_midi::InstrMidi;
use crate::instr_robsid::InstrRobSid;
use crate::instr_sid::InstrSid;
#[derive(Default, Serialize, Deserialize, Debug)]
pub enum InstrumentType {
#[default]
Empty,
Default(Arc<InstrDefault>),
Euclidian(Arc<InstrEkn>),
Midi(Arc<InstrMidi>),
Sid(Arc<InstrSid>),
RobSid(Arc<InstrRobSid>),
}
#[derive(Default, Serialize, Deserialize, Debug)]
pub struct Instrument {
pub name: String,
pub instr_type: InstrumentType,
pub muted: bool,
}