Home arrow ---> ChucK arrow ChucK ออกเวอร์ชั่นใหม่แล้ว 1.2.1.2 (dracular)

ChucK ออกเวอร์ชั่นใหม่แล้ว 1.2.1.2 (dracular) PDF Print
Written by kijjaz   
Thursday, 17 July 2008

 

Hits: 123
Comments (3)add comment

PHz said:

อ้าว ท่านกิจขึ้นหัวข้อมา แล้วก็ทิ้งไปซะงั้น smilies/grin.gif
 
report abuse
vote down
vote up
July 17, 2008
Votes: +0

guck said:

สั้นๆ แต่ได้ใจความ smilies/grin.gif
 
report abuse
vote down
vote up
July 18, 2008
Votes: +0

kijjaz said:

สวัสดีเน้อ.. พอดีตอนที่ขึ้นหัวข้อเนี่ย ดันไม่มีกล่องให้พิมพ์ข้อความขึ้นมา
(ช่วงนั้นเน็ตมีปัญหาติดๆดับๆ เพราะบ้านข้างๆเฉาะต้นกล้วย แต่ดันไปโดนสายโทรศัพท์
เห้ย อันนี้ไม่ได้มุขนะอันนี้เรื่องจริง เฉาะต้นกล้วยจริงๆ)
เราดันงงๆ นึกว่าอยู่หน้าถัดไป พอกด save อ่าว... save ไปแล้ว -_-"

สำหรับเวอร์ชั่นนี้ แม้จะยังอยู่ในระดับ beta อยู่ก็ตาม
แต่ว่ามีความสามารถเพิ่มขึ้น ไม่ว่าจะเป็นด้าน analysis และออพชั่นของ oscillator หลักๆ
จะว่าไปก็อ่านกันได้ที่ http://chuck.cs.princeton.edu
อ่านเกี่ยวกับความสามารถใหม่ๆได้ที่ http://chuck.cs.princeton.edu/release/VERSIONS

ที่น่าตื่นเต้นกฌ็มี Unit Analyser เพิ่มขึ้น แต่เราดันไม่ใช่คน DSP อ่านแล้วยังไม่เข้าใจ คงต้องไปดู examples ของมัน
แล้วจะเอามาเล่าอีกทีนะฮะ
นอกนั้นเรื่อง Oscillator พื้นฐาน ก็แก้อะไรบางอย่างให้ลงตัวมากขึ้นคือ
การทำงานของพวก TriOsc.width(), PulseOsc.width(), SawOsc.width() เป็นปกติแบบที่ควรจะเป็น

เช่น .width ของ TriOsc คือถ้ามองหน้าตา Triangle Wave ที่เป็นคลื่นรูป สามเหลี่ยมๆ ต่อกัน
.width ก็สามารถปรับตำแหน่งของจุดที่ค่าขึ้นไปสูงสุด ได้ระหว่าง 0 - 1 (ซ้ายสุด - ขวาสุด)
.width ของ PulseOsc ก็เป็นการกำหนดรูปร่างของ Square Wave

ส่วนเรื่องที่ราตื่นเต้นมากๆ แล้วก็รอมานาน ก็คือ dynamic, resizable array
ก็คือ อะเรย์มาตรฐานต่างๆนั้น สามารถทำการ เพิ่มสมาชิกเข้าไปได้ทันที

สมัยก่อน สามารถทำได้โดยการสร้าง string ขึ้นมา แล้วนำ string ไปชี้หาสมาชิกอะเรย์ใหม่
ซึ่งแม้จะยืดหยุ่น แต่ก็กิน RAM เพิ่มขึ้น (มีโอกาสใช้แรม หมด ได้ เพราะ ChucK ยังไม่สำเร็จในการทำ Garbage Collection.. อะไรที่สร้างมาแล้ว ทิ้งแล้ว จะยังล้นอยู่ใน RAM)

เช่น
int A[5]; // เตรียม อะเรย์ของ integer มีสมาชิก 5 ตัว
1 => A[0]; // ใส่ค่า 1 ลงไปในสมาชิกตัวแรกของ A
2 => A["love1"]; // สร้างสมาชิกใหม่ ชื่อ "love" แล้วให้ค่าเป็น 2 .. อันนี้ที่บอกว่าใช้ string ไปชี้อีกที
>; // พิมพ์ค่าออกมา จะได้ 2 ทันที เพราะ "lo" "ve" 1 ได้ "love1"
// จะเห็นว่า เรื่องใช้ string นี่ก็มีข้อดีเหมือนกัน เพราะสามารถคิดวิธีการเข้าถึงข้อมูลได้หลากหลายขึ้น (แม้จะเสี่ยงกับการเปลือง ram ถ้าต้องทำเยอะๆ)

ถ้าพิมพ์ค่า A.size() ออกมา จะได้เป็น 5 (คือเดิมมีสมาชิก 5 ตัว)
7 => A.size; // จะทำให้เพิ่มสมาชิกเป็น 7 ตัวทันที นั่นคือมีสมาชิกใหม่คือ A[5] และ A[6] มีค่าเป็น 0

// ต่อไป เป็นการเพิ่มสมาชิก โดยวิธีการใช้ dynamic array
A
 
report abuse
vote down
vote up
July 24, 2008
Votes: +0

Write comment
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
smaller | bigger

security image
Write the displayed characters


busy
Last Updated ( Thursday, 17 July 2008 )
 
< Prev   Next >