subsequence 0.6.4__tar.gz → 0.6.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {subsequence-0.6.4 → subsequence-0.6.5}/PKG-INFO +5 -5
- {subsequence-0.6.4 → subsequence-0.6.5}/README.md +4 -4
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/PKG-INFO +5 -5
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/scm_version.json +2 -2
- {subsequence-0.6.4 → subsequence-0.6.5}/.github/workflows/docs.yml +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/.github/workflows/publish.yml +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/.github/workflows/tests.yml +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/.github/workflows/type-check.yml +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/.gitignore +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/LICENSE +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/api-cheatsheet.md +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/benchmarks/clock_jitter.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/docs/README.md +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/docs/build.sh +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/arpeggiator.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/assets/Swing 16ths 57.agr +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/bresenham_poly.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/demo.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/demo_advanced.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/emergence.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/frozen.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/iss.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/labyrinth.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/link_sync.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/live_init.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/live_patterns.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/live_single_file.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/load_patterns.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/examples/subharmonicon.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/pyproject.toml +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/pytest.ini +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/sandbox/.gitignore +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/sandbox/README.md +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/scripts/check_docstring_markup.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/scripts/generate_cheatsheet.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/scripts/midi_in_observer.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/scripts/simulation_gravity.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/scripts/tuner_tone.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/setup.cfg +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/__init__.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/__main__.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/assets/web/index.html +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/cadences.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/__init__.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/aeolian_minor.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/chromatic_mediant.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/diminished.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/dorian_minor.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/functional_major.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/hooktheory_major.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/lydian_major.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/mixolydian.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/phrygian_minor.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/suspended.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/turnaround_global.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chord_graphs/whole_tone.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/chords.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/composition.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/conductor.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/__init__.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/durations.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/__init__.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/gm_cc.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/gm_drums.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/gm_instruments.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/roland_tr8s.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/vermona_drm1_drums.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/midi_notes.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/pulses.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/velocity.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/definitions.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/display.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/easing.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/event_emitter.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/form_state.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/forms.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/groove.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/harmonic_rhythm.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/harmonic_state.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/harmony.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/held_notes.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/helpers/__init__.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/helpers/network.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/helpers/wing.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/intervals.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/keystroke.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/link_clock.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/live_client.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/live_reloader.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/live_server.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/melodic_state.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/midi.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/midi_utils.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/mini_notation.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/motifs.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/osc.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/pattern.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/pattern_algorithmic.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/pattern_builder.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/pattern_midi.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/progressions.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/py.typed +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/roles.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/sequence_utils.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/sequencer.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/tuning.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/voicings.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/web_ui.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence/weighted_graph.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/SOURCES.txt +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/dependency_links.txt +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/entry_points.txt +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/requires.txt +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/scm_file_list.json +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/subsequence.egg-info/top_level.txt +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/conftest.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_api_consistency.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_cadences.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_callback_sequence.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_cc_forward.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_cc_name_map.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_chord_graphs.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_chord_quality_registry.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_clock_output.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_composition.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_conductor.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_custom_scales.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_definitions.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_detached.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_determinism.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_display.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_duration.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_eased_value.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_easing.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_event_emitter.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_form.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_forms.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_groove.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_harmonic_gravity.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_harmony.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_harmony_window.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_held_notes.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_hotkeys.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_instrument_drum_maps.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_intervals.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_key_resolution.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_keystroke.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_latency_compensation.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_legato.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_link.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_live_reloader.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_live_server.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_load_patterns.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_low_fixes_2026_07.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_melodic_state.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_melody_v2.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_midi_helpers.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_midi_input.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_midi_recording.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_mini_notation.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_mini_notation_integration.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_mirror.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_motif_placement.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_motifs.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_multi_device.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_new_chord_graphs.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_osc.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_pattern_algorithmic.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_pattern_builder.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_phrases.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_presets.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_progressions.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_render.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_rescheduling.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_review_fixes.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_review_fixes_2026_07.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_schedule_context.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_scheduled_tasks.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_density_combine.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_density_spread.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_density_to_steps.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_density_warp.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_morse_code.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_scale.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_transforms_list.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequence_utils_transforms_value.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequencer_dispatch_safety.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_sequencer_events.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_tier1_fixes_2026_07.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_trigger.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_tuning.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_turnaround_graph.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_unregister.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_velocity_tuple.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_voicings.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_web_ui.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_weighted_graph.py +0 -0
- {subsequence-0.6.4 → subsequence-0.6.5}/tests/test_wing_helper.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: subsequence
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.5
|
|
4
4
|
Summary: A generative MIDI sequencer
|
|
5
5
|
Author-email: Simon Holliday <simon.holliday@protonmail.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -75,16 +75,16 @@ composition.play()
|
|
|
75
75
|
|
|
76
76
|
Subsequence needs **Python 3.10+** and a MIDI destination — a hardware synth or drum machine, or a virtual MIDI port into your DAW or software instrument. It generates MIDI only; it makes no sound itself.
|
|
77
77
|
|
|
78
|
-
Install it into your project's virtual environment
|
|
78
|
+
Install it into your project's virtual environment:
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
pip install
|
|
81
|
+
pip install subsequence
|
|
82
82
|
|
|
83
83
|
# optional: Ableton Link tempo sync
|
|
84
|
-
pip install "subsequence[link]
|
|
84
|
+
pip install "subsequence[link]"
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
Pin a piece to an exact release
|
|
87
|
+
Pin a piece to an exact release — `pip install subsequence==0.6.5` — so it renders identically forever, whatever the library does next.
|
|
88
88
|
|
|
89
89
|
**Linux:** the ALSA backend needs your user in the `audio` group. If you hit `open /dev/snd/seq failed: Permission denied`:
|
|
90
90
|
|
|
@@ -46,16 +46,16 @@ composition.play()
|
|
|
46
46
|
|
|
47
47
|
Subsequence needs **Python 3.10+** and a MIDI destination — a hardware synth or drum machine, or a virtual MIDI port into your DAW or software instrument. It generates MIDI only; it makes no sound itself.
|
|
48
48
|
|
|
49
|
-
Install it into your project's virtual environment
|
|
49
|
+
Install it into your project's virtual environment:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
|
-
pip install
|
|
52
|
+
pip install subsequence
|
|
53
53
|
|
|
54
54
|
# optional: Ableton Link tempo sync
|
|
55
|
-
pip install "subsequence[link]
|
|
55
|
+
pip install "subsequence[link]"
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
Pin a piece to an exact release
|
|
58
|
+
Pin a piece to an exact release — `pip install subsequence==0.6.5` — so it renders identically forever, whatever the library does next.
|
|
59
59
|
|
|
60
60
|
**Linux:** the ALSA backend needs your user in the `audio` group. If you hit `open /dev/snd/seq failed: Permission denied`:
|
|
61
61
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: subsequence
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.5
|
|
4
4
|
Summary: A generative MIDI sequencer
|
|
5
5
|
Author-email: Simon Holliday <simon.holliday@protonmail.com>
|
|
6
6
|
License-Expression: AGPL-3.0-or-later
|
|
@@ -75,16 +75,16 @@ composition.play()
|
|
|
75
75
|
|
|
76
76
|
Subsequence needs **Python 3.10+** and a MIDI destination — a hardware synth or drum machine, or a virtual MIDI port into your DAW or software instrument. It generates MIDI only; it makes no sound itself.
|
|
77
77
|
|
|
78
|
-
Install it into your project's virtual environment
|
|
78
|
+
Install it into your project's virtual environment:
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
pip install
|
|
81
|
+
pip install subsequence
|
|
82
82
|
|
|
83
83
|
# optional: Ableton Link tempo sync
|
|
84
|
-
pip install "subsequence[link]
|
|
84
|
+
pip install "subsequence[link]"
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
Pin a piece to an exact release
|
|
87
|
+
Pin a piece to an exact release — `pip install subsequence==0.6.5` — so it renders identically forever, whatever the library does next.
|
|
88
88
|
|
|
89
89
|
**Linux:** the ALSA backend needs your user in the `audio` group. If you hit `open /dev/snd/seq failed: Permission denied`:
|
|
90
90
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{subsequence-0.6.4 → subsequence-0.6.5}/subsequence/constants/instruments/vermona_drm1_drums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|