Make xenharmonic music and create synthesizer tuning files for microtonal scales.
MIT License
Published by Woyten 11 months ago
Published by Woyten 11 months ago
BufferWriter::{process, read}
Magnetron::{process, process_nested}
is now a combination Magnetron::{prepare, prepare_nested}
and BufferWriter::process
BufferWriter::read_x_write_y
out_level
/ out_levels
argument in every functionout_level
/ out_levels
receives an Option<f64>
defaulting to an amplitude of 1.0 if absentStageActivity::Observer
Published by Woyten 11 months ago
Upgrade tune
to 0.34.0
Published by Woyten 11 months ago
tune est
uses a better strategy to identify compatible temperament layoutstune est
supports Mavila[9] and Porcupine[8] temperamentsPublished by Woyten 11 months ago
temperament::EqualTemperament
, moved to layout::EqualTemperament
EqualTemperament::get_colors
for auto-generated color schemasEqualTemperament::get_keyboard
to obtain an isomorphic keyboard layouttemperament::{TemperamentType, TemperamentPreference}
into a single type layout::PrototypeTemperament
PrototypeTemperament::Mavila9
and PrototypeTemperament::Porcupine8
TemperamentFinder::{by_edo, by_step_size}
now returns a list of matching temperamentskey::Keyboard
to layout::IsomorphicKeyboard
IsomorphicKeyboard
now returns a scale degree instead of a PianoKey
comma
package to temperament
Val::pick_alternative
to select the second-best prime representation ("wart")Published by Woyten over 1 year ago
LfSource::Fader
. This enables you to gradually fade a control parameter between two values.Published by Woyten over 1 year ago
InBuffer
and OutBuffer
no longer exist. Use the BufferIndex
enum instead.BufferWriter::read_<n>_and_write
is now BufferWriter::read_<n>_write_1
BufferWriter::read_<n>_write_2
for stereo signal processingspec::Spec
is now automation::AutomatableValue
spec::Creator
is now creator::Creator
Creator::create
is now Creator::create_value
Stage
is now stage::Stage
StageState
is now stage::StageActivity
waveform
module has been removed in order to de-specialize waveforms, further changes include:
Creator::new
no longer accepts the envelopes
argumentCreator::create_envelope
has been removedMagnetron
has been overhauled:
Magnetron::clear
and Magnetron::write
have been merged to Magnetron::process
Magnetron::process
evaluates and returns the StageActivity
Magnetron::process_nested
to call a Magnetron
instance within a Stage
Magnetron::mix
is now Magnetron::read_buffer
Magnetron::set_audio_in
has been removed
Stage
that writes to BufferIndex::External
.Published by Woyten over 1 year ago
Xenth::read
to retrieve a continuous stream of rendered audio samplesPublished by Woyten over 1 year ago
Published by Woyten over 1 year ago
SclBuildError::ScaleIsTrivial
and SclBuildError::ItemOutOfRange
are no longer part of the API
tune-0.32.1
but remained a part of the API to ensure compatibilityPublished by Woyten over 1 year ago
microwave
uses Bevy as graphics engine including 3D graphicsPublished by Woyten over 1 year ago
Published by Woyten over 1 year ago
Published by Woyten almost 2 years ago
waveform_templates
and effect_templates
section for reusable abstractions.LfSource::Semitones
to convert values in semitones to frequency ratios.OffVelocitySet
, OffVelocity
and KeyPressureSet
live parameters.amplitude
and fadeout
are mandatory parameters.amplitude
parameter controls how the waveform's amplitude depends on the velocity or any other control value.fadeout
parameter controls how the waveform is faded out depending on the damper pedal state or any other control value.PitchBend
live parameter.LfSource::Semitones
to calculate the correct frequency depending on the pitch-bend value.magnetron
volume via Velocity
events (CCN 7, configurable).from
/to
in Linear
and Controller
to map0
/map1
to better explain the mathematical behavior.Published by Woyten almost 2 years ago
Creator
.
A: AutomationSpec
to Creator
.WaveformProperties
.
WaveformProperties
replaces WaveformState
.off_velocity
property.key_pressure
property is Option<f64>
.secs_since_pressed
and secs_since_released
. Those values are supposed to be aggregated within the render stages.note_suspension
argument from Magnetron::write
.EnvelopeSpec
replaces Envelope
.velocity
property. Waveform stages can decide to ignore this property if no velocity sensitivity is desired.fadeout
property. Waveform stages can use any LF source to control the fade-out phase.Waveform
design.
Waveform::envelope
is of type Stage<T>
Stage<T>::render
returns StageState::Exhausted
when waveform can no longer deliver any non-zero valuesWavform::is_active
Published by Woyten almost 2 years ago
effects
section to microwave.yml
(formerly waveforms.yml
)
Echo
, SchroederReverb
, RotarySpeaker
LfSource
sSound1
..Sound10
events
Foot
events (CCN 4, configurable)Legato
events (CCN 68, configurable)KeyPressure
eventsBreath
eventsBreath
events (CCN 2, configurable)LfSourceExpr::Linear
to remap values in the range 0..1Velocity
and KeyPressure
are now waveform properties
WaveformPitch
and WaveformPeriod
LfSourceExpr::Linear
to remap them to the desired rangeLfSourceExpr::Envelope
has been removed
oxisynth
to 0.0.2
harm
subcommand is now able to generate NEJI scales
tune scl harm 27 --neji 12
[harm] --sub
parameter has been renamed to [harm] -u
(for utonal)import
subcommand has been renamed to scl-file
in order to be consistent with other subcommandsPublished by Woyten almost 2 years ago
key_pressure
field to WaveformState
AutomationContext<T>
no longer includes WaveformState
. If access to WaveformState
is required include it in the generic parameter T
.AutomatedValue
now uses generic type argument T
instead of associated type Context
.AutomationSpec
has been removed. All types are generic over the live parameter T
, not the spec parameter A
.PhantomType<T>
no longer implements Spec
. Use ()
instead.Published by Woyten almost 2 years ago
oxisynth
to 0.0.2
tune
to 0.32.0
Published by Woyten almost 2 years ago
harm
subcommand is now able to generate NEJI scales
tune scl harm 27 --neji 12
[harm] --sub
parameter has been renamed to [harm] -u
(for utonal)mts
subcommand now supports the options octave-1
, octave-1-rt
, octave-2
, octave-2-rt
, full
and full-rt
[mts] octave
subcommand has been renamed to [mts] octave-1
[mts] full
subcommand has been renamed to [mts] full-rt
import
subcommand has been renamed to scl-file
in order to be consistent with other subcommandsPublished by Woyten almost 2 years ago
scala::create_harmonics_scale
is now able to generate NEJI scales
segment_type
, replaces the old subharmonics
flagsegment_start
, replaces the old lowest_harmonic
argumentsegment_size
, replaces the old number_of_notes
argumentneji_divisions
, has been addedscala::KbmRoot
now is defined via ref_key
, ref_pitch
and root_offset
instead of origin
, ref_pitch
and ref_degree
root_offset
facilitates the creation of mappings where the note numbers of a MIDI input source (e.g. the Lumatone) are shiftedref_key
) is mapped to ref_key + root_offset