[[bench]]
harness = false
name = "cache_realistic"
path = "benches/cache_realistic.rs"
[[bench]]
harness = false
name = "compressed_audio_test"
path = "benches/compressed_audio_test.rs"
[[bench]]
harness = false
name = "concurrent_mixing"
path = "benches/concurrent_mixing.rs"
[[bench]]
harness = false
name = "export_speed"
path = "benches/export_speed.rs"
[[bench]]
harness = false
name = "gpu_benchmark"
path = "benches/gpu_benchmark.rs"
required-features = ["gpu"]
[[bench]]
harness = false
name = "gpu_fft_benchmark"
path = "benches/gpu_fft_benchmark.rs"
required-features = ["gpu"]
[[bench]]
harness = false
name = "large_sample_pool_test"
path = "benches/large_sample_pool_test.rs"
[[bench]]
harness = false
name = "pipeline_benchmark"
path = "benches/pipeline_benchmark.rs"
required-features = ["gpu"]
[[bench]]
harness = false
name = "polyphony"
path = "benches/polyphony.rs"
[[bench]]
harness = false
name = "realistic_game_audio"
path = "benches/realistic_game_audio.rs"
[[bench]]
harness = false
name = "realtime_latency"
path = "benches/realtime_latency.rs"
[[bench]]
harness = false
name = "sample_cache"
path = "benches/sample_cache.rs"
[[bench]]
harness = false
name = "simd_effects"
path = "benches/simd_effects.rs"
[[bench]]
harness = false
name = "simd_sample_playback"
path = "benches/simd_sample_playback.rs"
[[bench]]
harness = false
name = "simd_wavetable"
path = "benches/simd_wavetable.rs"
[[bench]]
harness = false
name = "spectral_effects"
path = "benches/spectral_effects.rs"
[[bench]]
harness = false
name = "streaming_memory"
path = "benches/streaming_memory.rs"
[[bench]]
harness = false
name = "unrealistic_game_audio"
path = "benches/unrealistic_game_audio.rs"
[[bin]]
name = "tunes"
path = "src/main.rs"
[[bin]]
name = "tunes-live"
path = "src/bin/tunes-live.rs"
[dependencies.ahash]
version = "0.8"
[dependencies.anyhow]
version = "1.0"
[dependencies.bytemuck]
features = ["derive"]
optional = true
version = "1.14"
[dependencies.cpal]
version = "0.15"
[dependencies.crossbeam]
version = "0.8"
[dependencies.dashmap]
version = "6.1"
[dependencies.flacenc]
version = "0.5"
[dependencies.futures-intrusive]
optional = true
version = "0.5"
[dependencies.hound]
version = "3.5"
[dependencies.inventory]
version = "0.3"
[dependencies.lazy_static]
version = "1.4"
[dependencies.midly]
version = "0.5"
[dependencies.notify]
version = "6.1"
[dependencies.pollster]
optional = true
version = "0.3"
[dependencies.rand]
version = "0.9.2"
[dependencies.rayon]
version = "1.10"
[dependencies.ringbuf]
version = "0.4"
[dependencies.rustfft]
version = "6.2"
[dependencies.symphonia]
features = ["mp3", "isomp4", "aac"]
version = "0.5"
[dependencies.wgpu]
optional = true
version = "23.0"
[dependencies.wide]
version = "0.7"
[[example]]
name = "808_909_complete_demo"
path = "examples/808_909_complete_demo.rs"
[[example]]
name = "additive_synthesis_demo"
path = "examples/additive_synthesis_demo.rs"
[[example]]
name = "advanced_spatial_demo"
path = "examples/advanced_spatial_demo.rs"
[[example]]
name = "algorithmic_patterns"
path = "examples/algorithmic_patterns.rs"
[[example]]
name = "arpeggios"
path = "examples/arpeggios.rs"
[[example]]
name = "arrangement_demo"
path = "examples/arrangement_demo.rs"
[[example]]
name = "automation_demo"
path = "examples/automation_demo.rs"
[[example]]
name = "bounce_demo"
path = "examples/bounce_demo.rs"
[[example]]
name = "chaotic_sequences"
path = "examples/chaotic_sequences.rs"
[[example]]
name = "classical_techniques"
path = "examples/classical_techniques.rs"
[[example]]
name = "composition_markers"
path = "examples/composition_markers.rs"
[[example]]
name = "concurrent_playback_demo"
path = "examples/concurrent_playback_demo.rs"
[[example]]
name = "convolution_reverb_demo"
path = "examples/convolution_reverb_demo.rs"
[[example]]
name = "doppler_effect_demo"
path = "examples/doppler_effect_demo.rs"
[[example]]
name = "drum_808"
path = "examples/drum_808.rs"
[[example]]
name = "drum_grid"
path = "examples/drum_grid.rs"
[[example]]
name = "drum_sounds"
path = "examples/drum_sounds.rs"
[[example]]
name = "drum_variations_demo"
path = "examples/drum_variations_demo.rs"
[[example]]
name = "effect_presets_demo"
path = "examples/effect_presets_demo.rs"
[[example]]
name = "effects_showcase"
path = "examples/effects_showcase.rs"
[[example]]
name = "envelopes"
path = "examples/envelopes.rs"
[[example]]
name = "euclidean_rhythms"
path = "examples/euclidean_rhythms.rs"
[[example]]
name = "every_n_demo"
path = "examples/every_n_demo.rs"
[[example]]
name = "expanded_percussion_demo"
path = "examples/expanded_percussion_demo.rs"
[[example]]
name = "expressive_techniques"
path = "examples/expressive_techniques.rs"
[[example]]
name = "filters"
path = "examples/filters.rs"
[[example]]
name = "flac_export"
path = "examples/flac_export.rs"
[[example]]
name = "generate_benchmark_assets"
path = "examples/generate_benchmark_assets.rs"
[[example]]
name = "generate_large_sample_pool"
path = "examples/generate_large_sample_pool.rs"
[[example]]
name = "generative_sequences"
path = "examples/generative_sequences.rs"
[[example]]
name = "generator_namespace"
path = "examples/generator_namespace.rs"
[[example]]
name = "gpu_convolution_demo"
path = "examples/gpu_convolution_demo.rs"
[[example]]
name = "gpu_export_demo"
path = "examples/gpu_export_demo.rs"
required-features = ["gpu"]
[[example]]
name = "harmonic_series"
path = "examples/harmonic_series.rs"
[[example]]
name = "instrument_showcase"
path = "examples/instrument_showcase.rs"
[[example]]
name = "interpolated"
path = "examples/interpolated.rs"
[[example]]
name = "key_signatures"
path = "examples/key_signatures.rs"
[[example]]
name = "lfo_modulation"
path = "examples/lfo_modulation.rs"
[[example]]
name = "live_recording_demo"
path = "examples/live_recording_demo.rs"
[[example]]
name = "markers_demo"
path = "examples/markers_demo.rs"
[[example]]
name = "master_feature_showcase"
path = "examples/master_feature_showcase.rs"
[[example]]
name = "mathematical_sequences"
path = "examples/mathematical_sequences.rs"
[[example]]
name = "microtonal_demo"
path = "examples/microtonal_demo.rs"
[[example]]
name = "multiband_compression_demo"
path = "examples/multiband_compression_demo.rs"
[[example]]
name = "multiformat_import"
path = "examples/multiformat_import.rs"
[[example]]
name = "musical_sequences"
path = "examples/musical_sequences.rs"
[[example]]
name = "musical_time"
path = "examples/musical_time.rs"
[[example]]
name = "namespace_api"
path = "examples/namespace_api.rs"
[[example]]
name = "new_transforms_demo"
path = "examples/new_transforms_demo.rs"
[[example]]
name = "noise_generator_showcase"
path = "examples/noise_generator_showcase.rs"
[[example]]
name = "notes_and_chords"
path = "examples/notes_and_chords.rs"
[[example]]
name = "octaves_and_harmonize"
path = "examples/octaves_and_harmonize.rs"
[[example]]
name = "orbit_demo"
path = "examples/orbit_demo.rs"
[[example]]
name = "ornaments_showcase"
path = "examples/ornaments_showcase.rs"
[[example]]
name = "parametric_eq_demo"
path = "examples/parametric_eq_demo.rs"
[[example]]
name = "pattern_modifiers"
path = "examples/pattern_modifiers.rs"
[[example]]
name = "pattern_physics"
path = "examples/pattern_physics.rs"
[[example]]
name = "pattern_repeat"
path = "examples/pattern_repeat.rs"
[[example]]
name = "pattern_transformations"
path = "examples/pattern_transformations.rs"
[[example]]
name = "pedal_tones"
path = "examples/pedal_tones.rs"
[[example]]
name = "perlin_noise_demo"
path = "examples/perlin_noise_demo.rs"
[[example]]
name = "pitch_bend"
path = "examples/pitch_bend.rs"
[[example]]
name = "portamento"
path = "examples/portamento.rs"
[[example]]
name = "preset_showcase"
path = "examples/preset_showcase.rs"
[[example]]
name = "progressions_demo"
path = "examples/progressions_demo.rs"
[[example]]
name = "recording_with_backing_track"
path = "examples/recording_with_backing_track.rs"
[[example]]
name = "reverse_patterns"
path = "examples/reverse_patterns.rs"
[[example]]
name = "rhythmic_sequences"
path = "examples/rhythmic_sequences.rs"
[[example]]
name = "sample_playback_demo"
path = "examples/sample_playback_demo.rs"
[[example]]
name = "sample_slicing"
path = "examples/sample_slicing.rs"
[[example]]
name = "sample_transforms_test"
path = "examples/sample_transforms_test.rs"
[[example]]
name = "section_workflow"
path = "examples/section_workflow.rs"
[[example]]
name = "sequence_presets_demo"
path = "examples/sequence_presets_demo.rs"
[[example]]
name = "sequences_showcase"
path = "examples/sequences_showcase.rs"
[[example]]
name = "sidechaining"
path = "examples/sidechaining.rs"
[[example]]
name = "sieve_demo"
path = "examples/sieve_demo.rs"
[[example]]
name = "slice_playback"
path = "examples/slice_playback.rs"
[[example]]
name = "spatial_audio_demo"
path = "examples/spatial_audio_demo.rs"
[[example]]
name = "sprinkle_demo"
path = "examples/sprinkle_demo.rs"
[[example]]
name = "stereo_panning"
path = "examples/stereo_panning.rs"
[[example]]
name = "streaming_demo"
path = "examples/streaming_demo.rs"
[[example]]
name = "swing_timing"
path = "examples/swing_timing.rs"
[[example]]
name = "synthesis_demo"
path = "examples/synthesis_demo.rs"
[[example]]
name = "templates_demo"
path = "examples/templates_demo.rs"
[[example]]
name = "tempo_changes"
path = "examples/tempo_changes.rs"
[[example]]
name = "theory_demo"
path = "examples/theory_demo.rs"
[[example]]
name = "time_pitch_manipulation"
path = "examples/time_pitch_manipulation.rs"
[[example]]
name = "time_signatures"
path = "examples/time_signatures.rs"
[[example]]
name = "transform_namespace"
path = "examples/transform_namespace.rs"
[[example]]
name = "tweening_demo"
path = "examples/tweening_demo.rs"
[[example]]
name = "two_line_gpu"
path = "examples/two_line_gpu.rs"
required-features = ["gpu"]
[[example]]
name = "voicing_and_voice_leading"
path = "examples/voicing_and_voice_leading.rs"
[[example]]
name = "wav_export_demo"
path = "examples/wav_export_demo.rs"
[[example]]
name = "waveforms"
path = "examples/waveforms.rs"
[[example]]
name = "wavetable_demo"
path = "examples/wavetable_demo.rs"
[[example]]
name = "wavetable_synthesis"
path = "examples/wavetable_synthesis.rs"
[[example]]
name = "web_demo"
path = "examples/web_demo.rs"
[[example]]
name = "web_piano"
path = "examples/web_piano.rs"
[[example]]
name = "world_scales_demo"
path = "examples/world_scales_demo.rs"
[features]
default = []
gpu = ["wgpu", "pollster", "bytemuck", "futures-intrusive"]
web = ["cpal/wasm-bindgen"]
[lib]
crate-type = ["cdylib", "rlib"]
name = "tunes"
path = "src/lib.rs"
[package]
authors = ["Nicholas Manson <nicholaspmanson@gmail.com>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["multimedia::audio", "multimedia", "algorithms"]
description = "A music composition, synthesis, and audio generation library"
documentation = "https://docs.rs/tunes"
edition = "2021"
exclude = [".github/*", "*.wav", "*.mp3", "*.flac"]
homepage = "https://github.com/sqrew/tunes"
keywords = ["music", "audio", "synthesis", "composition", "game"]
license = "MIT OR Apache-2.0"
name = "tunes"
readme = "README.md"
repository = "https://github.com/sqrew/tunes"
version = "1.1.0"
[package.metadata.wasm-pack.profile.dev]
wasm-opt = false
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
[profile.dev.package."*"]
opt-level = 3
[profile.dev-fast]
debug = 2
inherits = "release"
[profile.live]
codegen-units = 256
incremental = true
inherits = "release"
lto = false
opt-level = 2
[profile.release]
codegen-units = 1
lto = "fat"
opt-level = 3
strip = true
[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
features = ["wasm_js"]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
features = ["console"]
version = "0.3"