1.0.0 - Fixed type errors
This commit is contained in:
@ -8,6 +8,7 @@ use crate::core::{
|
||||
Track,
|
||||
};
|
||||
use crate::scales::{Scale, ScaleType};
|
||||
use crate::synthesis::Waveform;
|
||||
|
||||
/// Track-based composition
|
||||
#[derive(Debug, Clone)]
|
||||
@ -90,12 +91,22 @@ impl Composition {
|
||||
_ => InstrumentType::Lead,
|
||||
};
|
||||
|
||||
let waveform = match instrument_type {
|
||||
InstrumentType::Lead => Waveform::Sawtooth,
|
||||
InstrumentType::Bass => Waveform::Square,
|
||||
InstrumentType::Pad => Waveform::Sine,
|
||||
InstrumentType::Arp => Waveform::Triangle,
|
||||
InstrumentType::Percussion => Waveform::Noise,
|
||||
InstrumentType::Drone => Waveform::Sine,
|
||||
};
|
||||
|
||||
Ok(Track {
|
||||
name: track.name.clone(),
|
||||
octave: 4, // Will be overridden by note specifications
|
||||
octave: 4,
|
||||
notes,
|
||||
volume: track.volume,
|
||||
instrument_type,
|
||||
waveform,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -4,6 +4,7 @@
|
||||
//! the musicgen library for representing notes, tracks, and compositions.
|
||||
|
||||
use crate::scales::ScaleType;
|
||||
use crate::synthesis::Waveform;
|
||||
|
||||
/// Musical note representation
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
@ -50,6 +51,7 @@ pub struct Track {
|
||||
pub notes: Vec<Note>,
|
||||
pub volume: f32,
|
||||
pub instrument_type: InstrumentType,
|
||||
pub waveform: Waveform,
|
||||
}
|
||||
|
||||
/// Composition styles (kept for compatibility)
|
||||
@ -296,6 +298,7 @@ mod tests {
|
||||
],
|
||||
volume: 0.8,
|
||||
instrument_type: InstrumentType::Lead,
|
||||
waveform: Waveform::Sawtooth,
|
||||
};
|
||||
|
||||
composition.tracks.push(track);
|
||||
|
Reference in New Issue
Block a user