@mcptoolshop/claude-sfx 1.2.0 → 1.2.1
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.
- package/CHANGELOG.md +6 -0
- package/dist/player.js +19 -9
- package/dist/profiles.js +13 -13
- package/package.json +1 -1
- package/profiles/minimal.json +13 -13
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.2.1] - 2026-03-30
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Windows audio playback** — use ffplay (ffmpeg) instead of PowerShell SoundPlayer, which silently failed on short audio clips. Falls back to PowerShell if ffplay is not installed.
|
|
14
|
+
- **Gain levels too low** — boosted all verb master gains from 0.16–0.20 to 0.50–0.60 so sounds are actually audible through system speakers
|
|
15
|
+
|
|
10
16
|
## [1.2.0] - 2026-03-30
|
|
11
17
|
|
|
12
18
|
### Changed
|
package/dist/player.js
CHANGED
|
@@ -22,15 +22,25 @@ function getTempPath() {
|
|
|
22
22
|
function getPlayCommand(filePath) {
|
|
23
23
|
const platform = process.platform;
|
|
24
24
|
if (platform === "win32") {
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// Prefer ffplay (from ffmpeg) — fast, reliable, no UI
|
|
26
|
+
try {
|
|
27
|
+
execSync("where ffplay", { stdio: "ignore" });
|
|
28
|
+
return {
|
|
29
|
+
command: "ffplay",
|
|
30
|
+
args: ["-nodisp", "-autoexit", "-loglevel", "quiet", filePath],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Fallback: PowerShell SoundPlayer
|
|
35
|
+
return {
|
|
36
|
+
command: "powershell",
|
|
37
|
+
args: [
|
|
38
|
+
"-NoProfile",
|
|
39
|
+
"-Command",
|
|
40
|
+
`(New-Object Media.SoundPlayer '${filePath}').PlaySync()`,
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
34
44
|
}
|
|
35
45
|
if (platform === "darwin") {
|
|
36
46
|
return { command: "afplay", args: [filePath] };
|
package/dist/profiles.js
CHANGED
|
@@ -66,7 +66,7 @@ const MINIMAL_PROFILE = {
|
|
|
66
66
|
// ── intake: light, inviting, curious ───────────────────────────
|
|
67
67
|
intake: {
|
|
68
68
|
type: "motif",
|
|
69
|
-
gain: 0.
|
|
69
|
+
gain: 0.55,
|
|
70
70
|
variants: [
|
|
71
71
|
// Variant A: A4 → C#5
|
|
72
72
|
{ notes: [
|
|
@@ -88,7 +88,7 @@ const MINIMAL_PROFILE = {
|
|
|
88
88
|
// ── transform: active, clever, articulate ─────────────────────
|
|
89
89
|
transform: {
|
|
90
90
|
type: "motif",
|
|
91
|
-
gain: 0.
|
|
91
|
+
gain: 0.52,
|
|
92
92
|
variants: [
|
|
93
93
|
// Variant A: C#5 → B4 → E5 (3-note)
|
|
94
94
|
{ notes: [
|
|
@@ -112,7 +112,7 @@ const MINIMAL_PROFILE = {
|
|
|
112
112
|
// ── commit: satisfying, settled, rewarding ────────────────────
|
|
113
113
|
commit: {
|
|
114
114
|
type: "motif",
|
|
115
|
-
gain: 0.
|
|
115
|
+
gain: 0.60,
|
|
116
116
|
variants: [
|
|
117
117
|
// Variant A: E4+A4 dyad → C#5 sparkle
|
|
118
118
|
{ notes: [
|
|
@@ -137,7 +137,7 @@ const MINIMAL_PROFILE = {
|
|
|
137
137
|
// ── navigate: precise, clean, directional ─────────────────────
|
|
138
138
|
navigate: {
|
|
139
139
|
type: "motif",
|
|
140
|
-
gain: 0.
|
|
140
|
+
gain: 0.50,
|
|
141
141
|
variants: [
|
|
142
142
|
// Variant A: B4 → E5
|
|
143
143
|
{ notes: [
|
|
@@ -159,7 +159,7 @@ const MINIMAL_PROFILE = {
|
|
|
159
159
|
// ── execute: grounded, tactile, percussive ────────────────────
|
|
160
160
|
execute: {
|
|
161
161
|
type: "motif",
|
|
162
|
-
gain: 0.
|
|
162
|
+
gain: 0.58,
|
|
163
163
|
variants: [
|
|
164
164
|
// Variant A: A3 body + noise click
|
|
165
165
|
{
|
|
@@ -193,7 +193,7 @@ const MINIMAL_PROFILE = {
|
|
|
193
193
|
freqDown: [2400, 700],
|
|
194
194
|
bandwidth: 0.7,
|
|
195
195
|
envelope: { attack: 0.01, decay: 0.11, sustain: 0.10, release: 0.06 },
|
|
196
|
-
gain: 0.
|
|
196
|
+
gain: 0.52,
|
|
197
197
|
anchorVariants: [
|
|
198
198
|
// Variant A: E4 → A4
|
|
199
199
|
{ notes: [
|
|
@@ -219,7 +219,7 @@ const MINIMAL_PROFILE = {
|
|
|
219
219
|
freqDown: [2600, 500],
|
|
220
220
|
bandwidth: 0.65,
|
|
221
221
|
envelope: { attack: 0.008, decay: 0.12, sustain: 0.16, release: 0.09 },
|
|
222
|
-
gain: 0.
|
|
222
|
+
gain: 0.58,
|
|
223
223
|
anchorVariants: [
|
|
224
224
|
// Variant A: A3+E4 anchor → C#5 confirmation
|
|
225
225
|
{ notes: [
|
|
@@ -250,7 +250,7 @@ const MINIMAL_PROFILE = {
|
|
|
250
250
|
frequency: S.A4,
|
|
251
251
|
duration: 0.18,
|
|
252
252
|
envelope: { attack: 0.01, decay: 0.08, sustain: 0.25, release: 0.06 },
|
|
253
|
-
gain: 0.
|
|
253
|
+
gain: 0.60,
|
|
254
254
|
harmonicGain: 0.08,
|
|
255
255
|
},
|
|
256
256
|
tone2: {
|
|
@@ -260,7 +260,7 @@ const MINIMAL_PROFILE = {
|
|
|
260
260
|
frequency: S.Cs5,
|
|
261
261
|
duration: 0.22,
|
|
262
262
|
envelope: { attack: 0.01, decay: 0.10, sustain: 0.25, release: 0.08 },
|
|
263
|
-
gain: 0.
|
|
263
|
+
gain: 0.55,
|
|
264
264
|
harmonicGain: 0.08,
|
|
265
265
|
},
|
|
266
266
|
staggerSeconds: 0.065,
|
|
@@ -273,7 +273,7 @@ const MINIMAL_PROFILE = {
|
|
|
273
273
|
frequency: S.Cs5,
|
|
274
274
|
duration: 0.15,
|
|
275
275
|
envelope: { attack: 0.01, decay: 0.08, sustain: 0.18, release: 0.04 },
|
|
276
|
-
gain: 0.
|
|
276
|
+
gain: 0.55,
|
|
277
277
|
},
|
|
278
278
|
tone2: {
|
|
279
279
|
waveform: "sine",
|
|
@@ -282,20 +282,20 @@ const MINIMAL_PROFILE = {
|
|
|
282
282
|
frequency: S.A4,
|
|
283
283
|
duration: 0.25,
|
|
284
284
|
envelope: { attack: 0.01, decay: 0.12, sustain: 0.18, release: 0.10 },
|
|
285
|
-
gain: 0.
|
|
285
|
+
gain: 0.50,
|
|
286
286
|
},
|
|
287
287
|
staggerSeconds: 0.075,
|
|
288
288
|
},
|
|
289
289
|
ambient: {
|
|
290
290
|
droneFreq: S.A3,
|
|
291
291
|
droneWaveform: "sine",
|
|
292
|
-
droneGain: 0.
|
|
292
|
+
droneGain: 0.25,
|
|
293
293
|
chunkDuration: 2.0,
|
|
294
294
|
resolveNote1: S.A4,
|
|
295
295
|
resolveNote2: S.E5,
|
|
296
296
|
resolveWaveform: "sine",
|
|
297
297
|
resolveDuration: 0.16,
|
|
298
|
-
resolveGain: 0.
|
|
298
|
+
resolveGain: 0.55,
|
|
299
299
|
},
|
|
300
300
|
};
|
|
301
301
|
// --- Retro profile: same motifs, square waveform, snappier envelopes ---
|
package/package.json
CHANGED
package/profiles/minimal.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"verbs": {
|
|
5
5
|
"intake": {
|
|
6
6
|
"type": "motif",
|
|
7
|
-
"gain": 0.
|
|
7
|
+
"gain": 0.55,
|
|
8
8
|
"variants": [
|
|
9
9
|
{
|
|
10
10
|
"notes": [
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
},
|
|
113
113
|
"transform": {
|
|
114
114
|
"type": "motif",
|
|
115
|
-
"gain": 0.
|
|
115
|
+
"gain": 0.52,
|
|
116
116
|
"variants": [
|
|
117
117
|
{
|
|
118
118
|
"notes": [
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
},
|
|
267
267
|
"commit": {
|
|
268
268
|
"type": "motif",
|
|
269
|
-
"gain": 0.
|
|
269
|
+
"gain": 0.6,
|
|
270
270
|
"variants": [
|
|
271
271
|
{
|
|
272
272
|
"notes": [
|
|
@@ -428,7 +428,7 @@
|
|
|
428
428
|
},
|
|
429
429
|
"navigate": {
|
|
430
430
|
"type": "motif",
|
|
431
|
-
"gain": 0.
|
|
431
|
+
"gain": 0.5,
|
|
432
432
|
"variants": [
|
|
433
433
|
{
|
|
434
434
|
"notes": [
|
|
@@ -542,7 +542,7 @@
|
|
|
542
542
|
},
|
|
543
543
|
"execute": {
|
|
544
544
|
"type": "motif",
|
|
545
|
-
"gain": 0.
|
|
545
|
+
"gain": 0.58,
|
|
546
546
|
"variants": [
|
|
547
547
|
{
|
|
548
548
|
"notes": [
|
|
@@ -657,7 +657,7 @@
|
|
|
657
657
|
"sustain": 0.1,
|
|
658
658
|
"release": 0.06
|
|
659
659
|
},
|
|
660
|
-
"gain": 0.
|
|
660
|
+
"gain": 0.52,
|
|
661
661
|
"anchorVariants": [
|
|
662
662
|
{
|
|
663
663
|
"notes": [
|
|
@@ -766,7 +766,7 @@
|
|
|
766
766
|
"sustain": 0.16,
|
|
767
767
|
"release": 0.09
|
|
768
768
|
},
|
|
769
|
-
"gain": 0.
|
|
769
|
+
"gain": 0.58,
|
|
770
770
|
"anchorVariants": [
|
|
771
771
|
{
|
|
772
772
|
"notes": [
|
|
@@ -916,7 +916,7 @@
|
|
|
916
916
|
"sustain": 0.25,
|
|
917
917
|
"release": 0.06
|
|
918
918
|
},
|
|
919
|
-
"gain": 0.
|
|
919
|
+
"gain": 0.6,
|
|
920
920
|
"harmonicGain": 0.08
|
|
921
921
|
},
|
|
922
922
|
"tone2": {
|
|
@@ -931,7 +931,7 @@
|
|
|
931
931
|
"sustain": 0.25,
|
|
932
932
|
"release": 0.08
|
|
933
933
|
},
|
|
934
|
-
"gain": 0.
|
|
934
|
+
"gain": 0.55,
|
|
935
935
|
"harmonicGain": 0.08
|
|
936
936
|
},
|
|
937
937
|
"staggerSeconds": 0.065
|
|
@@ -949,7 +949,7 @@
|
|
|
949
949
|
"sustain": 0.18,
|
|
950
950
|
"release": 0.04
|
|
951
951
|
},
|
|
952
|
-
"gain": 0.
|
|
952
|
+
"gain": 0.55
|
|
953
953
|
},
|
|
954
954
|
"tone2": {
|
|
955
955
|
"waveform": "sine",
|
|
@@ -963,19 +963,19 @@
|
|
|
963
963
|
"sustain": 0.18,
|
|
964
964
|
"release": 0.1
|
|
965
965
|
},
|
|
966
|
-
"gain": 0.
|
|
966
|
+
"gain": 0.5
|
|
967
967
|
},
|
|
968
968
|
"staggerSeconds": 0.075
|
|
969
969
|
},
|
|
970
970
|
"ambient": {
|
|
971
971
|
"droneFreq": 220,
|
|
972
972
|
"droneWaveform": "sine",
|
|
973
|
-
"droneGain": 0.
|
|
973
|
+
"droneGain": 0.25,
|
|
974
974
|
"chunkDuration": 2,
|
|
975
975
|
"resolveNote1": 440,
|
|
976
976
|
"resolveNote2": 659.25,
|
|
977
977
|
"resolveWaveform": "sine",
|
|
978
978
|
"resolveDuration": 0.16,
|
|
979
|
-
"resolveGain": 0.
|
|
979
|
+
"resolveGain": 0.55
|
|
980
980
|
}
|
|
981
981
|
}
|