在 ARM 架构的 Armbian 系统上搭建 Strudel 开发环境
概述Strudel 是一个基于 JavaScript 的实时编码音乐创作环境。本文将记录在 ARM 架构的 Armbian 系统上克隆、安装并启动 Strudel 项目的完整过程涵盖从 Git 克隆到pnpm dev启动开发服务器的关键步骤与注意事项。环境准备系统信息操作系统: Armbian (基于 Debian/Ubuntu 的 ARM 发行版)架构: ARM64 (aarch64)包管理器: pnpm v11.14.0项目路径:/sdb1/strudel/前置依赖确保系统已安装以下基础工具GitNode.js (建议 LTS 版本)pnpm (可通过npm install -g pnpm安装)步骤详解1. 克隆项目仓库使用 Git 克隆 Strudel 项目到本地目录gitclone https://github.com/alfredojarry/strudel.git克隆过程显示项目体积较大约 156 MB包含 38,414 个对象Cloning into strudel... remote: Enumerating objects: 38414, done. remote: Counting objects: 100% (13532/13532), done. remote: Compressing objects: 100% (4106/4106), done. remote: Total 38414 (delta 9844), reused 9426 (delta 9426), pack-reused 24882 (from 1) Receiving objects: 100% (38414/38414), 156.15 MiB | 7.97 MiB/s, done. Resolving deltas: 100% (27741/27741), done.2. 调整目录结构克隆后项目文件位于strudel/子目录中将其移动到当前目录根下# 进入项目目录cd/sdb1/strudel/# 查看目录内容ls# 输出: strudel# 移动所有文件到当前目录mvstrudel/*.# 再次查看确认文件已就位ls移动后目录结构应包含以下关键文件/目录packages/- 核心包源码website/- 网站前端package.json- 项目配置pnpm-workspace.yaml- pnpm 工作区配置README.md- 项目说明3. 安装依赖Strudel 使用 pnpm 工作区管理 35 个子包执行依赖安装pnpminstall安装过程关键信息依赖数量: 共 1,595 个包网络延迟: 部分包下载较慢出现多个超时 10 秒的警告平台特定包: 自动下载了 ARM64 架构的预编译二进制包tauri-apps/cli-linux-arm64-gnu2.2.7(8.13 MB)img/sharp-libvips-linux-arm641.0.4(7.09 MB)img/sharp-libvips-linuxmusl-arm641.0.4(7.13 MB)4. 处理构建脚本授权由于安全策略pnpm 默认阻止部分包的构建脚本执行[ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: esbuild0.24.2, nx20.3.3, sharp0.33.5, tree-sitter-haskell0.23.1, tree-sitter0.21.1 Run pnpm approve-builds to pick which dependencies should be allowed to run scripts.需要手动批准这些关键包的构建pnpmapprove-builds在交互界面中选择所有需要构建的包esbuild (JavaScript 打包工具)nx (构建系统)sharp (图像处理库)tree-sitter (语法解析器)tree-sitter-haskell (Haskell 语法支持)构建耗时统计tree-sitter: 3分25.4秒最耗时esbuild: 662毫秒sharp: 530毫秒nx: 2.8秒tree-sitter-haskell: 38.9秒5. 验证安装构建完成后再次运行安装以确保所有依赖就绪pnpminstall此时显示所有依赖已是最新状态仅执行了website包的 postinstall 脚本复制 WASM 文件到 public 目录。6. 启动开发服务器使用以下命令启动开发环境pnpmdev该命令实际执行的是npm run prestart- 预处理任务cd website npm run dev- 进入网站目录并启动开发服务器prestart任务会生成 API 文档npmrun jsdoc-json# 生成 doc.json 文件常见问题与解决方案1. 网络超时警告现象:[WARN] Request took 10067ms等警告原因: 国内访问 npm registry 可能较慢解决:使用国内镜像源pnpm config set registry https://registry.npmmirror.com或设置超时时间pnpm config set fetch-timeout 600002. ARM 架构兼容性现象: 自动下载了-linux-arm64-后缀的二进制包说明: pnpm 能正确识别 ARM 架构并下载对应预编译包无需额外配置3. 构建脚本被阻止现象:[ERR_PNPM_IGNORED_BUILDS]错误原因: pnpm 默认安全策略解决: 按提示运行pnpm approve-builds并选择需要构建的包4. tree-sitter 构建耗时过长原因: tree-sitter 需要从源码编译本地扩展优化: 可考虑提前安装系统级的 tree-sitter 开发库项目结构说明strudel/ ├── packages/ # 核心功能包 │ ├── core/ # 核心引擎 │ ├── mini/ # 精简版 │ ├── tonal/ # 音乐理论 │ ├── transpiler/ # 代码转换 │ ├── webaudio/ # Web Audio 集成 │ └── xen/ # 调度器 ├── website/ # 官方网站 ├── examples/ # 示例代码 ├── test/ # 测试文件 └── src-tauri/ # Tauri 桌面应用总结在 ARM 架构的 Armbian 系统上搭建 Strudel 开发环境的主要挑战在于网络延迟- 可通过镜像源缓解构建脚本授权- 需要手动批准关键包本地编译耗时- tree-sitter 等包需要从源码编译整个过程约需 10-15 分钟主要耗时在依赖下载和本地编译。成功启动后可通过浏览器访问http://localhost:5173默认端口查看 Strudel 的实时编码界面。Strudel 作为音乐编程环境其技术栈涉及音频处理、实时编码、语法解析等多个领域适合对创意编程和计算机音乐感兴趣的开发者探索。꩜ welcomeYou have found strudel, a new live coding platform to write dynamic music pieces in the browser! It is free and open-source and made for beginners and experts alike. To get started:hit play - 2. change something - 3. hit updateIf you don’t like what you hear, try shuffle!To learn more about what this all means, check out the interactive tutorial. Also feel free to join the tidalcycles discord channel to ask any questions, give feedback or just say hello.꩜ aboutstrudel is a JavaScript version of tidalcycles, which is a popular live coding language for music, written in Haskell. Strudel is free/open source software: you can redistribute and/or modify it under the terms of the GNU Affero General Public License. You can find the source code at github. You can also find licensing info for the default sound banks there. Please consider to support this project to ensure ongoing development

相关新闻

主成分分析(PCA)变量缩减:原理、陷阱与工程实践

主成分分析(PCA)变量缩减:原理、陷阱与工程实践

1. 这不是“降维”,是给数据做一次精准的全身CT扫描你手头有一堆变量:身高、体重、腰围、臀围、血压、空腹血糖、甘油三酯、高密度脂蛋白、低密度脂蛋白、静息心率、最大摄氧量、睡眠时长、深睡比例、日均步数、久坐时长……一共32个。它们彼此缠绕——腰…

2026/7/26 9:23:10 阅读更多 →
Android项目文件结构与模块化架构详解

Android项目文件结构与模块化架构详解

1. Android项目文件结构深度解析作为一名从Eclipse时代就开始接触Android开发的老兵,我见证了Android项目结构的多次演变。很多新手开发者面对Android Studio中复杂的目录树时常常感到困惑,今天我就带大家彻底拆解这个"黑匣子"。在Android Stu…

2026/7/26 19:23:20 阅读更多 →
Linux下FTP服务配置与文件传输实战指南

Linux下FTP服务配置与文件传输实战指南

1. Linux下FTP服务基础认知 FTP(File Transfer Protocol)作为最古老的文件传输协议之一,自1971年诞生以来一直是跨系统文件交换的主力工具。在Linux环境中,FTP服务通过客户端-服务器架构实现,默认使用21号端口建立控制…

2026/7/27 21:58:45 阅读更多 →

最新新闻

5分钟掌握IPTV播放源智能检测:告别频道失效的烦恼

5分钟掌握IPTV播放源智能检测:告别频道失效的烦恼

5分钟掌握IPTV播放源智能检测:告别频道失效的烦恼 【免费下载链接】iptv-checker IPTV checker tool for Docker && CMD, check your playlist is available 项目地址: https://gitcode.com/GitHub_Trending/ip/iptv-checker 还在为收藏的IPTV频道列…

2026/7/28 3:42:00 阅读更多 →
grep -r “MicrophoneTest“ APLog_2026_0727_* 2>/dev/null | grep “07-27 09:4[6-9]“ | head -50 为什么可以查他的生

grep -r “MicrophoneTest“ APLog_2026_0727_* 2>/dev/null | grep “07-27 09:4[6-9]“ | head -50 为什么可以查他的生

搜 09:47 前后 1 分钟所有 MicrophoneTest 生命周期 grep -r “MicrophoneTest” APLog_2026_0727_* 2>/dev/null | grep “07-27 09:4[6-9]” | head -50 为什么可以查他的生命周期? 这条命令之所以能够查出 MicrophoneTest 的生命周期,结合了 Andro…

2026/7/28 3:42:00 阅读更多 →
sys.boot.reason.last = shutdown 是遗言,ro.boot.bootreason 是出生证明

sys.boot.reason.last = shutdown 是遗言,ro.boot.bootreason 是出生证明

sys.boot.reason.last shutdown ← 上次是关机结束。 ro.boot.bootreason PowerKey ← 后来是人工按电源键才开机 说明:至少最后一次,设备关完后没有自己起来,是人工开机的。 为什么能得出这个结论?至少最后一次,设备…

2026/7/28 3:42:00 阅读更多 →
Pikachu靶场实战:从环境搭建到XSS、CSRF漏洞利用与防御

Pikachu靶场实战:从环境搭建到XSS、CSRF漏洞利用与防御

1. 项目概述:从靶场通关到实战思维如果你正在学习网络安全,尤其是Web安全,那么Pikachu靶场绝对是一个绕不开的经典练手平台。它集成了SQL注入、XSS、CSRF、文件上传等几乎所有常见的Web漏洞类型,是新手从理论走向实践、老手巩固知…

2026/7/28 3:42:00 阅读更多 →
AI PPT工具如何通过NLP与知识图谱提升职场效率

AI PPT工具如何通过NLP与知识图谱提升职场效率

1. 项目概述:AI PPT工具如何重塑职场生产力去年帮学弟改毕业论文答辩PPT到凌晨三点的经历,让我意识到职场和学术场景中PPT制作存在三大痛点:设计审美不足导致专业感缺失、内容结构混乱影响信息传达、版本反复修改消耗时间成本。而宏智树AI PP…

2026/7/28 3:42:00 阅读更多 →
【SD局部重绘高阶实战指南】:20年CV工程师亲授7种精准控制技巧,避开92%的重绘失真陷阱

【SD局部重绘高阶实战指南】:20年CV工程师亲授7种精准控制技巧,避开92%的重绘失真陷阱

更多请点击: https://kaifayun.com 第一章:局部重绘的本质与SD重绘失真根源剖析 局部重绘并非简单地“只更新图像某一块”,而是指在扩散模型(如Stable Diffusion)中,基于掩码(mask)…

2026/7/28 3:41:00 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻