2008/11/3

2.8. 數字陣列

數位的線性陣列重現整個電腦音樂家的一袋的伎倆,開始與wavetable振盪器。該wavetable振盪器後來被改造為循環採樣。此外,查表是用於非線性失真的音頻信號。在控制的領域,數字陣列可以指定控制的映射、或然率密度、表達數據,以及更多。

Pd陣列應可被分配(並且可能從檔案讀取開始之前製造聲音之前,因為記憶體分配和硬碟操作可能需要足夠長的時間去導致音頻緩衝區溢出或底下通過。Pd提供了兩個方法來定義新的陣列,如"graphs"「圖」和"tables"「統計表」。 In either case the array has a pre-defined name and size (ie, number of points).在這兩種矩陣情況有一個預先定義的名稱和大小(即浮點數)。陣列元素被儲存為浮點數,每個4位元。

如果您使用一個矩陣來存儲一個44.1 kHz的一秒鐘聲音您將需要176 kilobytes,或一分鐘聲音需要10.6 megabytes。存儲聲音與兩個或兩個以上道,每個聲道使用一個單獨的陣列。

陣列也是一種有益的轉移功能,例如為音頻信號的非線性失真,或以描繪一個控制上的合成參數。在這種情況下,這一通常使用更簡短的陣列,不超過幾百個元素。他們也是一種有益的存儲測量光譜來自fft~物件,並可能對許多其他用途。

陣列通常出現在subpatches創造去住在他們內,無論是在「親子圖示」形式(讓你看到他們在一個矩形上得出包含patch),或作為一個經常性subpatch (你看作為一個文字盒子。)在「親子圖示」的形式,一個陣列,似乎顯示:

陣列的索引從0n - 1其中n是陣列的點數量總數。你可以使用tabread物件讀取一個陣列數值:

在這裡,我們看到陣列的第三個點(索引2有數值0.4。您可以使用tabwrite物件寫到陣列裡:

在這個例子中,傳送訊息設定第三個元素為0.5(您也可以發送兩個數字到二個分開的輸入) 。

前兩個例子表明,讀取和寫入給和從矩陣的控制操作。這些也可用音頻信號來做。舉例來說,下面patch創建一個440 Hz"array1"的音調作為一個波形:

在這裡phasor~的產出一鋸齒波,重複每秒440次,其輸出範圍是從01 。乘數和加法調整範圍從111,然後數值被用作tabread4~的索引,這是一個四點插值查表模組。(更多可能的細節在"pure documentation"系列的音頻範例patches) 。

創建一個新的矩陣,在"put"選單選擇"array"。之後會出現對話視窗去設置陣列的初始化屬性。預設情況下,一個新的圖形是被創建去包住陣列,但也可能被安置在最近創建的圖形取代。在使用"properties"「屬性」對話框後,其他屬性可以被指定這些和/或改變。

如果您選擇「屬性」對一個矩陣在一個圖表,你的兩個對話框,一為陣列和一個用於圖形。陣列對話框看起來像這樣:

您就可以使用這個改變名稱和大小,此外另一項屬性,"save contents".「儲存內容」。如果"save contents"「儲存內容」被選中,陣列數值都存儲在含有patch;否則,當每次patch下載時,它們會被初始化為零。如果您打算使用陣列來存儲聲音,但是作為單獨的聲音檔案,您可能會不希望將它們儲存在patch。您也可以然後用一個聲音編輯器來修改他們的外部Pd,這將更有效率。

如果您勾選"delete me",然後"OK",陣列將被刪除。這是一個刪除物件的介面,並且只是被提供,因為Pd缺乏一個選擇矩陣機制(因此使"cut"可以服務) 。

圖表對話框(也是突然跳出)在這裡顯示:

X界限最初的範圍從0到在表中減去1的浮點數(對陣列來說,這是一種很好的選擇,雖然圖型包住其他物件的種類,可能需要其他X界限)Y界限應被選擇以反映各種表的自然範圍,使儲存的聲音自然會範圍從-11 ,而是一個頻率數值的序列可能的範圍從020000。最後,您可以用螢幕像素選擇圖形螢幕尺寸的寬度和高度。

針對陣列許多其他操作被定義;見相關的patches,在tutorial (開始在 2.control/15.array.pd),為更多的可能性。

沒有留言: