Compare commits

..
Author SHA1 Message Date
Dylan M. Taylor 94cbb5b68a MIDI: take Standard MIDI Files and the sequence model from craft-midi
craft-midi in craft-libs was moved from this crate (storytold/craft-libs#884):
smf.rs, sequence.rs, the error type and their tests. soundcraft-midi now
re-exports them, so every caller keeps its imports, and keeps what is
SoundCraft's own: the editing operations, the display names and XorShift.

The SMF and Sequence tests are deleted here; they run in craft-midi, which
also adds one for the track limit. The serde names do not change (the same
derives behind craft-midi's serde feature), so sessions read as before.
2026-11-12 00:26:51 +00:00
Dylan M. Taylor e584f2cd6c Review fixes after the craft-audio switch; pin craft-audio at craft-libs main
Follow-up to #1506, for its review comments:

- convert: a decode that concealed damaged packets is reported as a warning,
  and --in-place refuses to replace the source with it.
- convert: the decoded speaker layout goes to the encoder, so 5.1 with side
  surrounds stays side surrounds in WAV and FLAC.
- FileFormat::of names an MP4 or QuickTime file by its codec: AAC or HE-AAC
  is Aac, ALAC is Alac, anything else (Opus, AC-3, PCM) is Other.
- Bounce keeps a picked extension that already names the format (Mix.aifc,
  Mix.AIFF), so the file written is the one the save dialog confirmed.
- rust-version is 1.95: craft-audio, craft-media and craft-ui declare it, so
  1.90 was not a version the workspace builds with.

craft-audio and craft-media move to craft-libs main 7db4645d.
2026-11-12 00:26:51 +00:00
7 changed files with 22 additions and 97 deletions
-32
View File
@@ -1,32 +0,0 @@
# This file is machine-generated by `gh actions-lock`.
# Do not edit by hand; run `gh actions-lock` to update.
# Docs: https://gh.io/actions-lockfile
version: 'v0.0.3'
workflows:
'.github/workflows/ast-grep.yml': []
'.github/workflows/ci.yml': []
'.github/workflows/freebsd.yml': []
'.github/workflows/house-rules.yml': []
'.github/workflows/lockfile.yml':
- 'actions/checkout@v7.0.1'
- 'step-security/harden-runner@v2.22.4'
'.github/workflows/nix.yml':
- 'actions/checkout@v7.0.1'
- 'step-security/harden-runner@v2.22.4'
'.github/workflows/packaging-lint.yml':
- 'actions/checkout@v7.0.1'
- 'step-security/harden-runner@v2.22.4'
'.github/workflows/release.yml': []
'.github/workflows/sonarcloud.yml': []
'.github/workflows/windows-arm64.yml': []
dependencies:
'actions/checkout@v7.0.1':
ref: 'v7.0.1'
commit: 'sha1-3d3c42e5aac5ba805825da76410c181273ba90b1'
owner_id: 44036562
repo_id: 197814629
'step-security/harden-runner@v2.22.4':
ref: 'v2.22.4'
commit: 'sha1-1d88384fd173af6ecb012dfd0264a306b711241a'
owner_id: 88700172
repo_id: 422287306
-34
View File
@@ -1,34 +0,0 @@
name: Lockfile
# Fails when .github/workflows/actions.lock is out of sync with the workflows, or when a locked pin
# no longer verifies upstream, so a moved tag cannot slip a different commit into a run.
# Docs: https://gh.io/actions-lockfile
on:
pull_request:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: read
env:
GH_TOKEN: ${{ github.token }}
jobs:
lockfile:
name: Lockfile is in sync
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- name: Harden runner
uses: step-security/harden-runner@v2.22.4
with:
egress-policy: audit
- uses: actions/checkout@v7.0.1
with:
persist-credentials: false
- name: Install gh-actions-lock
run: gh extension install github/gh-actions-lock --pin v0.4.1
- name: Verify the lockfile
run: gh actions-lock --verify
+2 -2
View File
@@ -28,10 +28,10 @@ jobs:
timeout-minutes: 5
steps:
- name: Harden runner
uses: step-security/harden-runner@v2.22.4
uses: step-security/harden-runner@1d88384fd173af6ecb012dfd0264a306b711241a # v2.22.4
with:
egress-policy: audit
- uses: actions/checkout@v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Git dependencies come from storytold
run: |
set -euo pipefail
+2 -2
View File
@@ -28,10 +28,10 @@ jobs:
runs-on: windows-latest
steps:
- name: Harden runner
uses: step-security/harden-runner@v2.22.4
uses: step-security/harden-runner@1d88384fd173af6ecb012dfd0264a306b711241a # v2.22.4
with:
egress-policy: audit
- uses: actions/checkout@v7.0.1
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install the pinned packaging toolchain
Generated
+17 -17
View File
@@ -4353,7 +4353,7 @@ dependencies = [
[[package]]
name = "soundcraft"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"chrono",
"clap",
@@ -4377,7 +4377,7 @@ dependencies = [
[[package]]
name = "soundcraft-au-host"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"log",
"serde",
@@ -4387,7 +4387,7 @@ dependencies = [
[[package]]
name = "soundcraft-automation"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"clap",
"craft-audio",
@@ -4400,7 +4400,7 @@ dependencies = [
[[package]]
name = "soundcraft-clap-host"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"clap-sys",
"libloading 0.9.0",
@@ -4413,7 +4413,7 @@ dependencies = [
[[package]]
name = "soundcraft-cli"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"clap",
"clap_complete",
@@ -4431,7 +4431,7 @@ dependencies = [
[[package]]
name = "soundcraft-dsp"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"log",
"proptest",
@@ -4442,7 +4442,7 @@ dependencies = [
[[package]]
name = "soundcraft-engine"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-audio",
"craft-docpath",
@@ -4466,7 +4466,7 @@ dependencies = [
[[package]]
name = "soundcraft-midi"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-midi",
"proptest",
@@ -4474,7 +4474,7 @@ dependencies = [
[[package]]
name = "soundcraft-mix"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-audio",
"log",
@@ -4490,7 +4490,7 @@ dependencies = [
[[package]]
name = "soundcraft-model"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-audio",
"proptest",
@@ -4503,7 +4503,7 @@ dependencies = [
[[package]]
name = "soundcraft-playback"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"cpal",
"craft-audio",
@@ -4518,7 +4518,7 @@ dependencies = [
[[package]]
name = "soundcraft-time"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"proptest",
"serde",
@@ -4528,7 +4528,7 @@ dependencies = [
[[package]]
name = "soundcraft-ui-egui"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-audio",
"craft-ui",
@@ -4558,7 +4558,7 @@ dependencies = [
[[package]]
name = "soundcraft-video"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-media",
"image",
@@ -4570,7 +4570,7 @@ dependencies = [
[[package]]
name = "soundcraft-vst3-host"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"libloading 0.9.0",
"log",
@@ -4586,7 +4586,7 @@ dependencies = [
[[package]]
name = "soundcraft-web"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"craft-audio",
"eframe",
@@ -6234,7 +6234,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7"
[[package]]
name = "xtask"
version = "0.20.1"
version = "0.20.0"
dependencies = [
"serde_json",
]
+1 -1
View File
@@ -4,7 +4,7 @@ members = ["crates/*", "apps/*", "xtask"]
default-members = ["crates/*", "apps/*", "xtask"]
[workspace.package]
version = "0.20.1"
version = "0.20.0"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.95"
-9
View File
@@ -1,11 +1,2 @@
sonar.projectKey=storytold_soundcraft
sonar.organization=storytold
# githubactions:S7637 asks for every action to be pinned to a commit SHA. A workflow covered by
# .github/workflows/actions.lock runs the commit the lockfile records, so its tag refs are pinned
# and the lockfile covers the actions those actions use too. Sonar does not read lockfiles yet, so
# the rule flags the tag refs anyway:
# https://community.sonarsource.com/t/githubactions-s7637-false-positives-for-actions-pinned-through-native-actions-lock/190814
sonar.issue.ignore.multicriteria=gha-lockfile
sonar.issue.ignore.multicriteria.gha-lockfile.ruleKey=githubactions:S7637
sonar.issue.ignore.multicriteria.gha-lockfile.resourceKey=.github/workflows/**