From 1434b0d0ede14a563e09a6251a7c49b6c01d6c26 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Sat, 21 Jun 2025 12:11:54 -0600 Subject: [PATCH] 1.0.0 - Fixed type errors --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/composition.rs | 13 ++++++++++++- src/core.rs | 3 +++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eef30b4..4dd18f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -684,7 +684,7 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "musicgen" -version = "0.1.0" +version = "1.0.0" dependencies = [ "clap", "cpal 0.16.0", diff --git a/Cargo.toml b/Cargo.toml index 31025b1..89bf80f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "musicgen" -version = "0.1.0" +version = "1.0.0" edition = "2024" authors = ["Atridad Lahiji "] description = "Generate electronic music without AI" diff --git a/src/composition.rs b/src/composition.rs index 85424ea..906cb38 100644 --- a/src/composition.rs +++ b/src/composition.rs @@ -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, }) } diff --git a/src/core.rs b/src/core.rs index d6db6df..bf1a179 100644 --- a/src/core.rs +++ b/src/core.rs @@ -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, 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);