我正在使用一個包含涉及TempoClock.default.sched
函數的類[我正在準備MWE]。如果我創建該類的新實例並應用該函數,我會得到以下錯誤消息:supercollider中錯誤消息「scheduler queue is full」的含義是什麼?
調度程序隊列已滿。
此消息一直重複。這是什麼意思?
我正在使用一個包含涉及TempoClock.default.sched
函數的類[我正在準備MWE]。如果我創建該類的新實例並應用該函數,我會得到以下錯誤消息:supercollider中錯誤消息「scheduler queue is full」的含義是什麼?
調度程序隊列已滿。
此消息一直重複。這是什麼意思?
每個時鐘都有一個隊列來存儲預定事件。隊列的大小非常大 - 但仍然有限(我認爲〜4096項?)。當隊列滿時發生「調度器提示已滿」錯誤 - 這可以發生在合法地在給定時鐘上安排超過4096個事件時發生。但是,一個常見的錯誤案例是在將來無意中將事件排隊等候,這樣他們就會永遠排隊等候,最終將其填滿。如果你這樣做很容易,例如調用.sched(...),它需要一個相對時間值,但是嘗試將它傳遞給一個絕對時間(這會將事件安排在將來很遠的地方)。
如果您需要在給定時間實際安排超過4096個事件 - 我相信Scheduler類有一個可以任意大的隊列。 AppClock使用這個調度器,所以它不應該有大量事件的問題。然而 - AppClock的時間精度不如SystemClock,並且對於細粒度的音樂事件並不好。如果您需要高度準確的時間,您可以使用多個TempoClock和使用不同的儀器,或每種不同類型的事件等。
代碼如何在.scd文件中工作,但如果我將它調整爲類(.sc文件),它會給出錯誤? – Karlo
用'AppClock'或'Systemclock'代替'TempoClock'並不能解決問題。 – Karlo