gpt4 book ai didi

supercollider - 如何提供 Buffer.read 的相对路径?

转载 作者:行者123 更新时间:2023-12-04 22:32:08 26 4
gpt4 key购买 nike

所以我想使用相对路径将声音文件加载到缓冲区中。 (我将我的东西放在版本控制之下,不想对有人可能在他们的文件系统上克隆 repo 的位置做出任何假设。)

所以,我最初假设如果我提供了一个看起来相对的路径,那么 SC 会将它解释为相对于正在执行的文件的位置:

Buffer.read(s, "Samples/HiHats1.hihat2.wav");

但是 SC 找不到该文件。于是我抬头 asAbsolutePath并尝试过:
Buffer.read(s, "Samples/HiHats1.hihat2.wav".asAbsolutePath);

这也不起作用,因为 SC 无法从我的相对路径中找出绝对路径。
"Samples/HiHats1.hihat2.wav".asAbsolutePath

...实际上在我的文件系统上返回一个不存在的位置。欢呼!

任何人都可以就我如何完成这项麻烦的任务提出任何建议吗?

最佳答案

SuperCollider 可以很好地处理相对路径 - 就像很多软件一样,它相对于 解析它们。当前工作目录 .通常这是相对于可执行文件,而不是脚本文件,因此会造成混淆。

你的情况下当前的工作目录是什么?你可以通过运行找到

     File.getcwd

(这是 .asAbsolutePath 使用的。)cwd 取决于您的操作系统——在某些平台上,它不是一个特别方便的默认值。你不能指望它是任何特别的东西。

在您的情况下,如果您希望相对于 的位置解析路径您的脚本或类 ,那么你需要自己做。例如:
     // Use the path of whatever file is currently executing:
var samplePath = thisProcess.nowExecutingPath.dirname +/+ "Samples/HiHats1.hihat2.wav";

// Use the path of the class file for the class you're coding
var samplePath = this.class.filenameSymbol.asString.dirname +/+ "Samples/HiHats1.hihat2.wav";

关于supercollider - 如何提供 Buffer.read 的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com