<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div><div>Hello everyone,</div><div><br></div><div>Snd runs headless well, and that turns out to be enough to drive it from an editor. snd-vscode is a VS Code extension that does: a real Snd process, its s7 reachable from the editor, and Snd's graphs redrawn as editor panels.</div><div><br></div><div>The reason is Motif. Snd itself is not the fragile part of a Snd installation -- the GUI is, drawn through X11, which on macOS means XQuartz, a dependency Apple never carried and nobody else has promised to keep working. Snd's own configure defaults to no GUI at all, so the binary this drives has no X dependency, and what used to be a Motif window is a panel beside the file being edited.</div><div><br></div><div>What there is: the inferior-Snd side follows inf-snd.el's command set and key chords -- C-c C-e on the definition under the cursor, Tab completion, snd-help on hover. The panels are the waveform, a single transform, the sonogram, the 3D spectrogram, the wavogram and the user graph. All of them are drawn from numbers Snd computed: channel-amp-envs for the reductions, snd-spectrum and Snd's own sonogram and spectrogram matrices for the transforms. None of Snd's DSP is reimplemented, which is why the displays agree with Snd's own. Every edit happens in Snd, in Scheme, so there is one edit history and it is the one that gets saved.</div><div><br></div><div>It is experimental, and I would rather say so than have you find out. It is tested on macOS on Apple silicon, and the package is built for that, so on an Intel Mac the marketplace will not offer it at all -- that is the platform tag doing its job, not a fault. Linux users have Snd from a package and this uses whatever snd is on PATH, which is a path I have not exercised much. Windows is not a target. Plenty of Snd's API is not exposed yet -- GAPS.md lists what is missing and why, including the parts that are missing for a reason.</div><div><br></div><div>One thing I cannot test myself, if anyone has a Motif build to hand. In a no-GUI build play does not return until the sound is over, so the transport is synchronous and pause is refused; with a running toolkit loop play returns immediately, the playhead should follow, and pause should work. That branch exists in the code and has never once been executed. I would be glad to hear either way. </div><div><br></div><div>Bugs and awkwardness are welcome, and they should come to me rather than to Bill: this is an independent project, not part of Snd and not supported by him. Snd is his work, and so is s7. I only wanted to rescue it for Mac users who don't want to switch to Linux.</div><div><br></div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://marketplace.visualstudio.com/items?itemName=elvis-budingensis.snd-vscode"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:228px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://marketplace.visualstudio.com/items?itemName=elvis-budingensis.snd-vscode" dir="ltr" role="button" draggable="false" width="228"><table style="table-layout:fixed;border-collapse:collapse;width:228px;background-color:#976213;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="228"><tbody><tr><td vertical-align="center" align="center"><img src="B5D0C05A-B626-4F33-9191-AAF1D8A5A5D4" srcset="B5D0C05A-B626-4F33-9191-AAF1D8A5A5D4 1x" style="width:228px;filter:brightness(0.97);height:228px;" class="lp-rich-link-mediaImage" width="228" height="228" draggable="false"></td></tr><tr><td vertical-align="center"><table bgcolor="#976213" cellpadding="0" cellspacing="0" width="228" style="table-layout:fixed;font-family:-apple-system, Helvetica, Arial, sans-serif;background-color:rgba(151, 98, 19, 1);-apple-color-filter:initial;" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://marketplace.visualstudio.com/items?itemName=elvis-budingensis.snd-vscode" style="text-decoration: none" draggable="false"><font color="#FFFFFF" style="color: rgba(255, 255, 255, 0.847059);">Snd – programmable sound editor in VS Code - Visual Studio Marketplace</font></a></div><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://marketplace.visualstudio.com/items?itemName=elvis-budingensis.snd-vscode" style="text-decoration: none" draggable="false"><font color="#FFFFFF" style="color: rgba(255, 255, 255, 0.54902);">marketplace.visualstudio.com</font></a></div></div></td></tr></tbody></table></td></tr></tbody></table></a></div></div></div></div></body></html>