1.0.0 - Fixed type errors

This commit is contained in:
2025-06-21 12:11:54 -06:00
parent 6e1078703b
commit 1434b0d0ed
4 changed files with 17 additions and 3 deletions

2
Cargo.lock generated
View File

@ -684,7 +684,7 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "musicgen"
version = "0.1.0"
version = "1.0.0"
dependencies = [
"clap",
"cpal 0.16.0",

View File

@ -1,6 +1,6 @@
[package]
name = "musicgen"
version = "0.1.0"
version = "1.0.0"
edition = "2024"
authors = ["Atridad Lahiji <me@atri.dad>"]
description = "Generate electronic music without AI"

View File

@ -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,
})
}

View File

@ -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);