diff --git a/docs/guide/sequencing.rst b/docs/guide/sequencing.rst index 5c1521a..f61f697 100644 --- a/docs/guide/sequencing.rst +++ b/docs/guide/sequencing.rst @@ -620,6 +620,36 @@ Three bend types: - ``"late"`` — holds the starting pitch for 60%, bends in the last 40%. The classic blues "curl." +Rolls +----- + +Rapid repeated notes with a velocity ramp — perfect for timpani +rolls, snare rolls, tremolo on any instrument. The velocity ramps +from ``velocity_start`` to ``velocity_end`` for crescendo or +decrescendo effects. + +.. code-block:: python + + # Timpani crescendo roll + timp = score.part("timp", instrument="timpani") + timp.roll("C3", Duration.WHOLE, velocity_start=20, velocity_end=110) + timp.add("C3", Duration.HALF, velocity=127) # big accent + + # Snare roll with 32nd notes + snare = score.part("snare", synth="noise", envelope="pluck") + snare.roll("C4", Duration.HALF, speed=0.125, + velocity_start=40, velocity_end=100) + + # Decrescendo (loud to quiet) + timp.roll("G2", Duration.WHOLE, velocity_start=100, velocity_end=30) + +Parameters: + +- ``velocity_start``: Starting velocity (default 40). +- ``velocity_end``: Ending velocity (default 100). +- ``speed``: Note subdivision (default ``Duration.SIXTEENTH``). + Use ``0.125`` for 32nd notes, ``Duration.EIGHTH`` for 8th notes. + Tuning Systems -------------- diff --git a/docs/guide/synths.rst b/docs/guide/synths.rst index 707dcfa..c742c70 100644 --- a/docs/guide/synths.rst +++ b/docs/guide/synths.rst @@ -1,7 +1,7 @@ Synthesizers ============ -PyTheory includes 27 built-in waveforms and 10 ADSR envelope presets. +PyTheory includes 29 built-in waveforms and 10 ADSR envelope presets. Every sound is generated from scratch -- no samples or external audio files needed. @@ -390,11 +390,11 @@ Dedicated Instrument Synths -------------------------- Beyond the classic and physical modeling waveforms, PyTheory includes -14 dedicated instrument synths. Each one uses tailored synthesis +16 dedicated instrument synths. Each one uses tailored synthesis techniques -- additive harmonics, formant shaping, body resonance modeling, and specialized envelopes -- to capture the character of a specific acoustic instrument. These are the waveforms that bring the -total count to 27. +total count to 29. Piano Synth ~~~~~~~~~~~ @@ -535,6 +535,29 @@ bridge, producing a shimmering, metallic sustain. sitar = score.part("sitar", synth="sitar_synth") +Timpani Synth +~~~~~~~~~~~~~ + +Large kettle drum with definite pitch. Inharmonic membrane modes +(1.0, 1.5, 1.99, 2.44), felt mallet attack, copper kettle resonance. +Use ``Part.roll()`` for crescendo timpani rolls. + +.. code-block:: python + + timp = score.part("timp", synth="timpani_synth") + timp.roll("C3", Duration.WHOLE, velocity_start=20, velocity_end=110) + +Saxophone Synth +~~~~~~~~~~~~~~~ + +Single reed through a conical brass bore. All harmonics with strong +mids, reed buzz, and brass body warmth. Four presets: ``saxophone``, +``alto_sax``, ``tenor_sax``, ``bari_sax``. + +.. code-block:: python + + sax = score.part("sax", instrument="tenor_sax") + Analog Oscillator Drift ~~~~~~~~~~~~~~~~~~~~~~~~