1 คะแนน โดย GN⁺ 2024-01-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็น โน้ตเพลงสำหรับศิลปะจัดวาง ที่โค้ดกำกับการเลือกคอร์ด การสังเคราะห์เสียง และการตอบสนองของ LED ไปพร้อมกัน โดยประติมากรรมที่ดูคล้ายลำต้นของพืชจะสร้างเสียงและแสงซ้ำ ๆ
  • พาร์ต A สร้างคอร์ด Major, Minor, Major 7th, Minor 7th ตั้งแต่ A2 ถึง D5 พร้อม inversion และทุก ๆ 8 วินาทีจะย้ายไปยังคอร์ดอื่นที่ต่างกันเพียงโน้ตเดียว
  • พาร์ต B เลือกโน้ตหนึ่งตัวจากคอร์ดปัจจุบัน แล้วเล่นด้วย รูปคลื่นและความยาวแบบสุ่ม เพื่อวางโน้ตเดี่ยวที่คาดเดาได้ยากทับบนการเดินคอร์ดที่เป็นระเบียบ
  • ทุกครั้งที่เกิดคอร์ดหรือโน้ตใหม่ LED รูปทรงลำต้นจะตอบสนอง โดยสีของแต่ละโน้ตถูกแมปให้โน้ตที่อยู่ใกล้กันใน circle of fifths ดูมีสีคล้ายกัน
  • การติดตั้งแบ่งเป็นโปรแกรมเสียง C++ บน Raspberry Pi 3 B+ และการควบคุม LED ด้วย FastLED บน Arduino Uno โดยอุปกรณ์ทั้งสองส่งข้อมูลโน้ตกันผ่าน พอร์ตอนุกรม

โน้ตเพลงที่ประกอบขึ้นจากกฎการสร้าง

  • พาร์ต A แจกแจงคอร์ด Major, Minor, Major 7th, Minor 7th ที่เป็นไปได้ตั้งแต่ A2 ถึง D5 พร้อม inversion ทั้งหมด
  • คอร์ดที่เลือกจะถูก เล่นเป็นเวลา 8 วินาที จากนั้นย้ายไปยังหนึ่งในคอร์ดที่ต่างจากคอร์ดปัจจุบันเพียงโน้ตเดียว
  • กระบวนการนี้ดำเนินต่อไปโดยทำซ้ำการเล่น 8 วินาทีและการเลือกคอร์ดข้างเคียง

กฎการสร้างเสียง

  • พาร์ต B เลือกโน้ตหนึ่งตัวจากคอร์ดที่กำลังเล่นอยู่ในขณะนั้น
  • โน้ตที่เลือกจะถูกเล่นด้วย รูปคลื่นแบบสุ่ม เป็นระยะเวลาสุ่ม
  • หากความยาวสั้น จะเล่นซ้ำเป็นจำนวนครั้งแบบสุ่ม จากนั้นรอเป็นเวลาสุ่มก่อนทำกระบวนการเดิมซ้ำ

กฎการตอบสนองของแสง

  • พาร์ต C ทำให้ลำต้นแต่ละอันสว่างจากรากไปถึงปลายทุกครั้งที่มีการทริกเกอร์คอร์ดใหม่ในพาร์ต A
  • สีของแสงสอดคล้องกับโน้ตแต่ละตัวในคอร์ด และโน้ตที่อยู่ติดกันใน circle of fifths จะมีเฉดสีคล้ายกัน
  • พาร์ต D ส่องปลายของลำต้นหนึ่งอันด้วยสีสว่างที่สอดคล้องกับโน้ตนั้น ทุกครั้งที่มีการเล่นโน้ตในพาร์ต B

การติดตั้งฮาร์ดแวร์และซอฟต์แวร์

  • พาร์ต A และ B รับผิดชอบโดย โปรแกรม C++ แบบกำหนดเอง ที่รันบน Raspberry Pi 3 B+
    • จัดการทั้งการเลือกโน้ตและการสังเคราะห์บัฟเฟอร์เสียง
  • พาร์ต C และ D ถูกติดตั้งด้วย โปรแกรมแบบกำหนดเอง บนบอร์ด Arduino Uno
    • ใช้ FastLED เพื่อเชื่อมต่อกับแถบ LED โปรโตคอล WS2812B
  • ข้อมูลโน้ตที่ส่งจาก Raspberry Pi ไปยัง Arduino ไปมาผ่านสัญญาณ พอร์ตอนุกรม

โครงสร้างทางกายภาพและวิธีการทำงาน

  • แถบ LED ลอดผ่านภายในท่อใสที่ใช้กับตู้ปลาในครัวเรือน
  • ท่อถูกเสริมด้วย ลวดนิกเกิล หนา ทำให้ขึ้นรูปเป็นรูปทรงได้
  • กล่องไม้ใต้กระถางมีไมโครคอมพิวเตอร์ สายไฟ และ ช่องเสียบเสียง 3.5 มม. สำหรับเชื่อมต่อระบบเสียง
  • ไฟเลี้ยงเข้ามาผ่านการเชื่อมต่อไฟหลักสองจุด
  • คอมพิวเตอร์ทำงานแบบ headless และ เริ่มทำงานอัตโนมัติ เมื่อมีไฟเข้า

1 ความคิดเห็น

 
GN⁺ 2024-01-29
ความคิดเห็นจาก Hacker News
  • คนนี้ยังเป็นผู้สร้าง endless acid banger เจ๋ง ๆ ที่เอาไว้เล่นสนุกในเบราว์เซอร์ได้เป็นชั่วโมง ๆ ด้วย
    https://www.vitling.xyz/toys/acid-banger/
    หลังจากลองเล่นอันนี้ ผมถึงขั้นซื้อ 303 clone จริง ๆ มา แล้วเริ่มลองปรับโน่นปรับนี่ดู นอกจากนี้ยังชอบที่เดโมทั้งหมดเปิดมาด้วยหน้าจอ “click to start” แบบไม่มีเสียง และวิดีโอที่เล่นอัตโนมัติก็ถูกปิดเสียงไว้เป็นค่าเริ่มต้นเหมือนในบทความนี้

    • ทั้งสองหน้าไม่เห็นข้อความ “click to start” ในสภาพแวดล้อมของผม แต่คิดว่าควรจะแสดงนะ
      ในบทความนี้ต้องเอาเมาส์ไปวางบน “silent gif” ถึงจะเห็นตัวควบคุมเสียง และใน acid banger ผมเขียนคอมเมนต์ไปแล้วครึ่งหนึ่ง ก่อนจะรู้ว่าคลิกตรงไหนก็ได้จะปลดการปิดเสียง
    • เป็นของเล่นเล็ก ๆ ที่เจ๋งจริง ๆ อีกอย่าง อยากรู้ว่าถ้าไม่มี ประสบการณ์กับซินธิไซเซอร์ เลย การเรียนรู้และใช้ 303 จะยากไหม
    • ชอบ ปุ่มเปลี่ยนคีย์ มาก ถ้าจะเป็นเครื่องมือ DJ ที่ยอดเยี่ยมจริง ๆ น่าจะต้องย้อนกลับไปยังแพตเทิร์นก่อนหน้าแบบสุ่มได้ ไม่ใช่เดินหน้าอย่างเดียว มีปุ่มหรือตัวเลือกที่ผมหาไม่เจอหรือเปล่า?
  • น่าสนใจที่ได้เห็น สกอร์ของดนตรีเชิงกำเนิด ถูกเขียนไว้ในรูปแบบข้อกำหนดแบบนั้น
    มันละเอียดพอที่ถ้านำคำสั่งนั้นไปทำเวอร์ชันของตัวเองขึ้นมาใหม่ ก็จะได้ “ผลงานดนตรี” ที่โดยแก่นแล้วเหมือนเดิม แต่การตีความย่อมต่างกันแน่นอน เพราะสกอร์กำหนดบางส่วนไว้อย่างชัดเจน แต่เปิดทางให้เลือกในส่วนอื่น ๆ อยู่ เช่น เวลาระบุคอร์ดว่า “ทุก inversion” หมายถึงอะไรกันแน่ รวมถึง voicing แบบเปิดด้วยไหม ความยาวของ waveform แบบสุ่มควรเลือกจากค่าใดบ้าง คำว่า “สั้น” ตอนตัดสินใจเรื่องการซ้ำคือประมาณไหน จะใช้ waveform synthesizer แบบใดและมอดูเลตอย่างไร เป็นต้น
    การตัดสินใจแบบนี้คล้ายกับสิ่งที่นักดนตรีเครื่องดนตรีดั้งเดิมทำเมื่ออ่านและตีความสกอร์เพื่อบรรเลง ในที่นี้ coder ดนตรีเชิงกำเนิดสามารถทำตาม “สกอร์” นี้ แล้วสร้างโปรแกรมที่มีการตีความของตัวเองได้
    การลองทำด้วย Sonic Pi(https://sonic-pi.net/) เป็นแบบฝึกหัดที่สนุก และรู้สึกว่าสามารถสร้างสิ่งที่ใกล้กับทิศทางที่ผู้ประพันธ์ตั้งใจไว้ได้ มันมีบรรยากาศเดียวกับเสียงบันทึกในวิดีโอ แต่ถ้าพูดแบบนี้พอจะสมเหตุสมผล ก็คือเป็น “การบรรเลง” ผลงานนั้นในแบบของผม แม้ตอนรันจริง ๆ คนที่บรรเลงจะเป็น Sonic Pi ก็ตาม
    กระบวนการนี้ยังทำให้คิดใหม่เรื่อง ความสัมพันธ์ระหว่างข้อกำหนดกับการนำไปใช้งานจริง ด้วย การ implement อัลกอริทึมโดยโปรแกรมเมอร์แต่ละคนอาจมองได้ว่าเป็น “การบรรเลง” ต่าง ๆ ของสกอร์ที่เรียกว่าการออกแบบโดยรวม และนักพัฒนาที่สร้างองค์ประกอบของสถาปัตยกรรมระบบขนาดใหญ่ก็อาจดูเหมือนนักดนตรีที่รับผิดชอบพาร์ตของตัวเองในวงดนตรีหรือออร์เคสตรา บางทีมอาจมีวาทยกรควบตำแหน่งสถาปนิกนำทีม บางทีมอาจโต้ riff กันไปมา อิมโพรไวส์ร่วมกัน แล้วบางครั้งก็มีโซโล อีกบางทีมก็เหมือนนักดนตรี session ที่เล่นตามข้อกำหนดของโปรดิวเซอร์อย่างไม่หวือหวาแต่หนักแน่น
    เป็นแบบฝึกหัดเขียนโค้ดเชิงสมาธิที่เหมาะกับบ่ายวันอาทิตย์ และช่วยเปลี่ยนมุมมองได้

    • คิดว่าคุณจับสิ่งที่ผมพยายามทำด้วยสกอร์ได้ดีจริง ๆ และดีใจที่เจตนาสื่อไปถึง
      ตอนเคยพยายามนำงานเก่าไปจัดแสดง ผมได้รับฟีดแบ็กจากภัณฑารักษ์ศิลปะคนหนึ่ง ซึ่งงานชิ้นนั้นก็คือ https://www.vitling.xyz/welcome-to-tech-talk/ ตอนแรกเขาไม่ค่อยเข้าใจว่าเกิดอะไรขึ้น แต่พอผมอธิบายวิธีทำงานและสิ่งที่เกิดขึ้นข้างในแล้ว เขาบอกว่า “ตอนนี้ชอบมากจริง ๆ แต่คุณกำลังซ่อนส่วนที่น่าสนใจทั้งหมดจากผู้ชมอยู่”
      “งาน” ที่ผมทำใน ศิลปะเชิงกำเนิด ไม่ใช่เสียงหรือภาพที่ออกมาเป็นผลลัพธ์ แต่ใกล้เคียงกับชุดกฎหรืออัลกอริทึมมากกว่า ดังนั้นผมจึงอยากหาวิธีแสดงให้เห็นเสมอว่าเกิดอะไรขึ้น “ในกล่อง” ซอร์สโค้ดอาจดีได้ แต่ก็เฉพาะกับคนที่อ่านได้เท่านั้น และไอเดียหลักก็มักถูกฝังอยู่ท่ามกลาง boilerplate กับความประหลาดเชิงเทคนิคได้ง่าย เลยไปสู่ความคิดที่จะเขียนในรูปแบบสกอร์ โดยพยายามแสดงสมมติฐานพื้นฐานของสิ่งที่กำลังเกิดขึ้น แต่ใส่รายละเอียดแค่พอไม่ให้หลงทางไปกับมัน
    • หนึ่งในศิลปินทัศนศิลป์เชิงกระบวนวิธีที่ผมชอบก็ใส่ ความกำกวม คล้าย ๆ กันไว้ในข้อกำหนด เพื่อให้เกิด variation ที่ดีทุกครั้งที่สร้างผลงานขึ้นใหม่: https://www.sfmoma.org/artist/sol_lewitt/
      https://massmoca.org/event/walldrawing305/
    • โดยทั่วไปผมเข้าใจว่า “ทุก inversion” หมายถึงการวางคอร์ดไว้ใน ตำแหน่ง root แล้วนำ inversion แบบการเรียงสับเปลี่ยนหมุนเวียนโดยไม่นับ octave
      ดังนั้น voicing ที่เปิดและโปร่งกว่าคงหลุดไปเยอะ
    • คอร์ดพื้นฐาน C major คือ c4 f4 g4 และ inversion คือการยกโน้ตล่างขึ้นไปด้านบน เช่น f4 g4 c5 หรือ g4 c5 f5
      inversion เปลี่ยนรสชาติของคอร์ดได้ค่อนข้างมาก
    • ฟังดูแล้วเหมือนไม่มี คอร์ดแบบเปิด และน่าจะใช้เฉพาะคอร์ดที่โน้ตเรียงติดกันโดยไม่มีช่องว่าง
  • อยากได้คำแนะนำหนังสือหรือคอร์ส ทฤษฎีดนตรี ที่ช่วยให้เข้าใจอัลกอริทึมนี้ หรือ https://www.vitling.xyz/toys/acid-banger/
    มันมีทั้งกฎที่ค่อนข้างเรียบง่ายซึ่งคาดเดาได้ว่าจะทำให้อะไรฟังดูโอเค และกฎที่ซับซ้อนกว่า อีกทั้งเป็นที่รู้กันดีว่าดนตรีบาโรกมีลักษณะเป็นอัลกอริทึม แต่ตอนนี้ยังจับทางไม่ได้เลย
    เคยลองค้นหาในแนวนี้มาก่อน แต่จำไม่ค่อยได้ว่าหนังสือที่ดูตอนนั้นมีปัญหาตรงไหนแน่ ๆ อาจเป็นเพราะส่วนใหญ่พื้นฐานเกินไปจนไม่ค่อยช่วยเท่าไร เมื่อนานมาแล้วเคยฝึก solfège ขั้นพื้นฐานมาก และอ่านโน้ตได้ แต่ตอนนั้นยังเด็กเกินกว่าจะตั้งคำถามที่ตอนนี้สงสัย หรือเข้าใจว่าการฝึกนั้นมีไว้เพื่ออะไร

    • ถ้าจะเข้าใจให้จริง ๆ ต้องศึกษาจากหลายมุม อาจใช้เวลา 1~10 ปีผ่าน Hooktheory.com, หนังสือ และวิดีโอ YouTube จำนวนมาก
      สุดท้ายแล้วถ้าไม่ได้ลองเขียนเพลงเองเยอะ ๆ ก็เข้าใจทฤษฎีดนตรีได้ยาก คล้ายกับการอ่านหนังสือ JavaScript ถ้าไม่เคยเขียนซอฟต์แวร์เลย และไม่มีแผนจะเขียนในอนาคต ก็ไม่มีทางเข้าใจหนังสือนั้นได้จริง ๆ
      ถ้าจะอธิบายว่าแอปพลิเคชันนี้ทำงานอย่างไร อาจเป็นการสุ่มเลือกส่วนย่อยของโน้ตในคีย์ไมเนอร์ หรือก็คือระดับขั้นของสเกล สเกลเพนทาโทนิก ซึ่งเป็นส่วนย่อยของโน้ตไม่เกิน 5 ตัวจากสเกล จะจำกัดพื้นที่ของเมโลดีที่เป็นไปได้ ทำให้องค์ประกอบส่วนใหญ่ฟังดูดี ถ้าใช้โน้ตน้อยลงก็จะฟังไพเราะแบบคาดเดาได้มากขึ้น แต่อาจน่าสนใจน้อยลง เช่น โน้ตที่ประกอบเป็นคอร์ดราก ไม่ว่าจะเล่นลำดับใดก็มักฟังดูดีเสมอ โดยทั่วไป acid line จะบอกใบ้คอร์ดไมเนอร์บางคอร์ดผ่าน arpeggio ซึ่งเป็นเมโลดีวนซ้ำที่ประกอบด้วยโน้ตของคอร์ดนั้นเท่านั้น
      อีกทั้งส่วนย่อยของสเกลหนึ่งก็มักอยู่ในสเกลอื่นได้เสมอ ถ้าสร้างช่วงที่ใช้ส่วนย่อยของโน้ตร่วมกัน แล้วเปลี่ยนไปยังสเกลใหม่ ก็สามารถ modulate จากสเกลหนึ่งไปยังอีกสเกลหนึ่งได้ ด้วยวิธีนี้ เพลงหนึ่งเพลงสามารถผ่านสเกลที่เป็นไปได้ทั้งหมด และใน acid techno แทบทั้งหมดจะเป็นสเกลไมเนอร์
    • คอร์สออนไลน์ของ Yale ชื่อ Listening to Music ครอบคลุมทฤษฎีดนตรีค่อนข้างมาก ฟังแล้วสนุกดี: https://online.yale.edu/courses/listening-music
    • การเริ่มต้นยากมาก มองว่าคล้ายคณิตศาสตร์ที่สุด
      คุณหยิบสิ่งที่เขียนขึ้นสำหรับคนที่มีความเข้าใจสูงกว่าระดับตัวเองมาก ๆ แล้วหวังว่าจะได้อะไรมากมายไม่ได้ ต้องอ่านทีละหน้าอย่างช้า ๆ ตั้งใจ และถ่อมตัว ใช้เวลาให้เข้าใจคำศัพท์แต่ละคำที่เจออย่างเต็มที่ ระหว่างทางจะต้องอ้อมไปศึกษาประเด็นอื่นเป็นชั่วโมง ๆ และในนั้นก็จะมีคำศัพท์อื่นแตกแขนงออกไปไม่รู้จบ คุณข้ามคำอย่าง interval, locrian/lydian แล้วคาดหวังว่าจะเข้าใจเองแบบซึมผ่านเข้ามาไม่ได้
    • ไม่ใช่ตำราเกริ่นนำทฤษฎีแบบทั่วไป แต่หนังสือจิตวิทยาสำหรับคนทั่วไปของ Daniel J. Levitin ชื่อ This Is Your Brain On Music มีเนื้อหาใกล้เคียงกับที่ถาม
      หนังสือพูดถึงว่า pitch คืออะไร ทำไมสมองถึง “ชอบ” การผสม pitch บางแบบและไม่ชอบบางแบบ เป็นต้น ตัวทฤษฎีต่าง ๆ เกี่ยวกับประสาทวิทยาดนตรีก็น่าสนใจในตัวเอง และตอนต้นเล่มก็มีการแนะนำทฤษฎีพื้นฐานมาก ๆ ด้วย
    • ถ้าไม่ได้เล่นเครื่องดนตรี ก็น่าจะคล้ายกับการพยายาม อธิบาย Tetris ให้คนตาบอดฟัง
  • ถ้าจะให้ทิปกับผู้เขียน: ตัด Arduino ออก แล้วใช้ไลบรารีนี้เพื่อ ควบคุมสตริป WS281x โดยตรง จาก Raspberry Pi ได้ จะลดความซับซ้อนทั้งฮาร์ดแวร์และซอฟต์แวร์ลงได้มาก: https://github.com/jgarff/rpi_ws281x
    ผมใช้สิ่งนี้บน Pi 4 เพื่อควบคุมสตริป WS2815 จำนวน 466 พิกเซลที่ติดไว้ตามชายคาบ้านสำหรับตกแต่งช่วงเทศกาล

  • ในโปรเจกต์นี้มี ทฤษฎีดนตรี ที่น่าสนใจซ่อนอยู่ การเปลี่ยนผ่านทั้งหมดจากคอร์ดหนึ่งไปยังอีกคอร์ดหนึ่งตามอัลกอริทึมที่อธิบายไว้ จะเป็นการเปลี่ยนไปยังคอร์ดเดิม เช่น จาก C เมเจอร์ไปยัง inversion ของมัน หรือการเพิ่ม/ลบโน้ตตัวที่ 7 หรือไม่ก็เป็นหนึ่งในสามการแปลงพื้นฐานของทฤษฎี Neo-Riemannian คือ P, L, R
    รายละเอียดดูได้จากหน้า Wikipedia ของ Neo-Riemannian theory ส่วนใจความสำคัญของ P, L, R คือแบบนี้ ถ้าคอร์ดใด ๆ x เป็นเมเจอร์ P(x), L(x), R(x) ทั้งหมดจะกลายเป็นไมเนอร์ ถ้า x เป็นไมเนอร์ P(x), L(x), R(x) ทั้งหมดจะกลายเป็นเมเจอร์ P, L, R ล้วนเป็นการแปลงผกผันของตัวเอง ดังนั้น P(P(x)) = x และ L กับ R ก็เช่นกัน ด้วยลำดับการแปลง P, L, R แบบใดแบบหนึ่ง คุณสามารถเดินทางจากคอร์ดเมเจอร์หรือไมเนอร์ใด ๆ ไปยังคอร์ดเมเจอร์หรือไมเนอร์ใด ๆ ก็ได้ เช่น จาก C เมเจอร์ ถ้าใช้ L แล้วตามด้วย R จะได้ G เมเจอร์ ถ้าใช้ R แล้วตามด้วย P จะได้ A เมเจอร์ และถ้าใช้ L แล้วตามด้วย P จะได้ E เมเจอร์
    การเคลื่อนที่ด้วย การแปลง Neo-Riemannian เป็นวิธีไปยังศูนย์กลางคีย์ที่ “ไกล” หรือก็คือที่มีโน้ตร่วมกับคีย์เริ่มต้นไม่มาก ได้อย่างรวดเร็วผ่าน voice leading ที่ราบรื่น แต่ตอนฟังเพลงนี้ ผมประหลาดใจที่ฮาร์โมนีรู้สึกค่อนข้างมั่นคง จุดที่น่าสนใจคือด้วยโครงสร้างของอัลกอริทึม การแปลง P ปรากฏน้อยกว่าการแปลง L หรือ R หรือการคงอยู่ที่คอร์ดเดิมมาก การแปลง P เป็นวัตถุดิบสำคัญในการเคลื่อนไปยังคีย์ที่ห่างไกลอย่างรวดเร็ว แต่จากการคำนวณคร่าว ๆ ของผม หากสมมติว่ากระบวนการ Markov ถึงสถานะคงตัวแล้ว และไม่สนใจข้อจำกัดของ pitch ต่ำสุด/สูงสุด การเปลี่ยนคอร์ดทั้งหมดจะมีเพียง 1/27 เท่านั้นที่เป็นการแปลง P นอกจากนี้ในสถานะคงตัว คอร์ด 7th ยังพบได้บ่อยกว่าคอร์ดสามเสียงธรรมดาในอัตรา 16:11 ด้วย

  • อยากรู้รายละเอียดทางเทคนิค เพราะอยากเข้าใจขีดจำกัดของ Raspberry Pi มากขึ้น
    ทั้งหมดนี้ไม่สามารถจัดการด้วย Raspberry Pi ตัวเดียวและ ขา GPIO จำนวนมากที่ต่ออยู่กับมันได้หรือ? ตอนนี้รู้สึกว่า Raspberry Pi ยังถูกใช้งานไม่เต็มที่ และการทำให้เหลือบอร์ดเดียวก็ดูจะเรียบง่ายกว่า แถมมีข้อดีคือจำเป็นต้องต่อไฟแค่จุดเดียวด้วย

    • ผมก็คิดแบบเดียวกัน แต่ผมนึกถึงฝั่ง Arduino แทน Raspberry Pi
      ถ้าสิ่งที่ Pi ทำมีแค่ “การเลือกโน้ตและการสังเคราะห์บัฟเฟอร์เสียงเอง” Arduino Uno ก็น่าจะทำได้ไม่ใช่หรือ?
    • น่าจะเป็นไปได้ แต่เพราะ โค้ด LED ออกแบบมาสำหรับ Arduino จากมุมมองของการใช้โค้ดซ้ำหรือการทำต้นแบบ ตอนทำครั้งแรก การใช้อุปกรณ์สองตัวน่าจะง่ายกว่า
  • ชอบตรงที่เขียนเป็น pseudocode ให้ทุกคนเข้าใจได้
    ผมก็เคยทำโปรเจกต์แบบนี้ โดยเฉพาะส่วนการสร้างเพลง เลยชอบวิธีนำเสนอแบบนี้มาก ถ้ามีเดโมวิดีโอด้วยคงยิ่งดี เพราะโปรเจกต์โค้ดจำนวนมาก ผู้เขียนอธิบายด้วยกำแพงข้อความยาว ๆ อย่างเดียว จนคนอ่านตายตั้งแต่ยังไม่ทันเริ่ม

  • เจ๋งมาก ถ้ามี คำแนะนำการสร้างแบบละเอียด สำหรับทำสิ่งนี้ก็คงดี

    • ตอนนี้น่าจะต้องทำเวอร์ชันออนไลน์แล้วล่ะ คิดว่าใช้ Web Audio กับ CSS transform ก็น่าจะทำได้พอแล้ว
  • น่าจะเอาไปใช้เป็นอินโทรของเซ็ต Four Tet ได้เลย :)

  • สวยงาม ทำให้นึกภาพ ดาวเคราะห์ต่างดาว ที่พืชเป็นแบบนี้
    สิ่งเหล่านี้อาจรวมกันเป็นป่า และอาจปรับจังหวะเข้าหากันได้เหมือนเมโทรนอม หรือหิ่งห้อยที่ซิงก์กัน

    • ถ้าทำขึ้นมาให้ลองสัมผัสได้ คงเป็น งานศิลปะจัดวาง ที่น่าสนุก :)