สารบัญ:

โมดูล Raspberry Pi Stompbox Synth: 6 ขั้นตอน (พร้อมรูปภาพ)
โมดูล Raspberry Pi Stompbox Synth: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โมดูล Raspberry Pi Stompbox Synth: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โมดูล Raspberry Pi Stompbox Synth: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: The SquishBox: a Raspberry Pi Synthesizer 2024, พฤศจิกายน
Anonim
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module
Raspberry Pi Stompbox Synth Module

เป้าหมายของโครงการนี้คือการวางโมดูลเสียงที่ใช้ Fluidsynth ไว้ในก้อนสต็อมป์บ็อกซ์ คำว่า "โมดูลเสียง" ที่ทำให้เกิดเสียงทางเทคนิคในกรณีนี้หมายถึงอุปกรณ์ที่รับข้อความ MIDI (เช่น ค่าของโน้ต ระดับเสียง ระยะพิทช์ ฯลฯ) และสังเคราะห์เสียงดนตรีที่แท้จริง นำสิ่งนี้มารวมกับตัวควบคุม MIDI - ซึ่งเป็น Legion ราคาถูกและมักจะเจ๋งมาก (เช่นคีย์ทาร์!) - และคุณมีซินธิไซเซอร์ที่คุณสามารถดัดแปลงและปรับแต่งได้ไม่รู้จบ และออกแบบในลักษณะที่เหมาะกับสไตล์การเล่นของคุณ

ภาพรวมคร่าวๆ ของโครงการนี้คือเราใช้คอมพิวเตอร์ลินุกซ์แบบบอร์ดเดี่ยวขนาดเล็ก (ในกรณีนี้คือ Raspberry Pi 3) ติด LCD ตัวอักษร ปุ่มกดสองปุ่ม และการ์ดเสียง USB (เนื่องจากเสียงออนบอร์ดของ Pi ไม่ค่อยดีนัก) และยัดทุกอย่างลงในก้อนสต็อมป์บ็อกซ์ Hammond 1590bb (เช่นเดียวกับที่ใช้สำหรับเอฟเฟกต์กีตาร์) ด้วยการเชื่อมต่อภายนอกสำหรับ USB MIDI กำลังไฟ และเอาต์พุตเสียง จากนั้นเรากำหนดค่าซอฟต์แวร์ภายในเพื่อเรียกใช้โปรแกรมเมื่อเริ่มต้นใช้งาน FluidSynth (ซินธิไซเซอร์ซอฟต์แวร์ฟรีที่ยอดเยี่ยม มีหลายแพลตฟอร์ม) ควบคุม LCD และให้เราเปลี่ยนแพตช์และการตั้งค่าโดยใช้ปุ่มกด

ฉันจะไม่ลงรายละเอียดทีละขั้นตอนเกี่ยวกับงานสร้างนี้ (มีแบบฝึกหัด hey-i-made-a-cool-raspberry-pi-case มากมาย) แต่จะพยายามเน้นที่เหตุผลที่ฉันทำ ทางเลือกที่หลากหลายในการก่อสร้างและการออกแบบเมื่อฉันไป ด้วยวิธีนี้คุณหวังว่าจะสามารถปรับเปลี่ยนเพื่อให้เหมาะกับวัตถุประสงค์ของคุณเองโดยไม่ติดขัดในการทำสิ่งต่างๆ ที่กลับกลายเป็นว่าไม่ได้ผลในภายหลัง

อัปเดต (พฤษภาคม 2020): แม้ว่าคำแนะนำนี้ยังคงเป็นจุดเริ่มต้นที่ดีสำหรับโครงการเช่นนี้ แต่ฉันได้ทำการปรับปรุงมากมายทั้งในด้านฮาร์ดแวร์และซอฟต์แวร์ ซอฟต์แวร์ล่าสุดคือ FluidPatcher ซึ่งมีอยู่ใน GitHub - ตรวจสอบวิกิเพื่อดูรายละเอียดมากมายเกี่ยวกับการตั้งค่า Raspberry Pi ตรวจสอบเว็บไซต์ของฉัน Geek Funk Labs สำหรับข่าวสารและการอัปเดตอย่างต่อเนื่องเกี่ยวกับ SquishBox!

เสบียง

นี่คือรายการสั้นๆ ของ (และคำอธิบายสำหรับ) องค์ประกอบที่สำคัญยิ่งกว่า:

  • คอมพิวเตอร์ Raspberry Pi 3 - คอมพิวเตอร์ลินุกซ์แบบบอร์ดเดียวสามารถทำงานได้ แต่ Pi 3 มีพลังการประมวลผลเพียงพอที่จะเรียกใช้ Fluidsynth โดยไม่มีเวลาแฝง และมีหน่วยความจำเพียงพอที่จะโหลดฟอนต์เสียงขนาดใหญ่ ข้อเสียคือเสียงออนบอร์ดไม่ดี คุณจึงต้องมีการ์ดเสียง USB CHIP เป็นอีกทางเลือกหนึ่งที่ฉันกำลังสำรวจอยู่ (รอยเท้าเล็กลง เสียงดีขึ้น แต่มีหน่วยความจำ/ตัวประมวลผลน้อยกว่า)
  • กล่องใส่แฮมมอนด์ 1590BB - ฉันแนะนำให้ซื้อแบบเคลือบผงก่อนถ้าคุณต้องการสี ยกเว้นแต่ว่าการลงสีสต็อมป์บ็อกซ์เป็นสิ่งที่คุณต้องการ ฉันเรียกดูกระดานข้อความจำนวนมาก แต่ฉันคิดว่าฉันไม่มีความอดทนหรือชนิดของสีที่เหมาะสม เพราะหลังจากพยายามสองครั้ง ผลลัพธ์ของฉันก็ค่อนข้างดี
  • การ์ดเสียง USB - คุณสามารถหาหนึ่งในราคาถูกเหล่านี้ได้ ตามบทช่วยสอน Adafruit ที่น่ารักนี้ (หนึ่งในหลาย ๆ อย่าง) คุณควรยึดติดกับชิปเซ็ต CM109 เพื่อความเข้ากันได้สูงสุด
  • LCD ตัวอักษร - มีหลายสถานที่ที่แตกต่างกัน แต่ pinouts ดูเหมือนจะค่อนข้างมาตรฐาน ตรวจสอบให้แน่ใจว่าคุณมีไฟแบ็คไลท์เพื่อให้คุณเห็นค่าที่ตั้งไว้ล่วงหน้าเมื่อเล่นในคลับที่มีควัน
  • Momentary stompswitches (2) - หาได้ยากกว่าเล็กน้อย แต่ฉันมีเวลาชั่วขณะแทนการสลับเพื่อที่ฉันจะได้เก่งกาจมากขึ้น ฉันสามารถจำลองการสลับในซอฟต์แวร์ได้หากต้องการพฤติกรรมนั้น แต่ด้วยวิธีนี้ ฉันยังสามารถมีฟังก์ชันต่างๆ สำหรับการแตะสั้น การกดค้าง ฯลฯ
  • Adafruit Perma-Proto Hat สำหรับ Pi - ช่วยให้ฉันเชื่อมต่อ LCD และส่วนประกอบอื่นๆ กับพอร์ต Expander ของ Pi โดยไม่ต้องใช้พื้นที่เพิ่มเติมมากนัก ถ้าฉันพยายามใช้บอร์ด Perfboard ปกติ จะต้องยื่นออกมาด้านข้างของ Pi เพื่อให้ฉันเชื่อมต่อกับพิน GPIO ที่จำเป็นทั้งหมด การชุบแบบสองด้านและรูยึดที่เข้าชุดกันก็มีประโยชน์มากเช่นกัน ทั้งหมดนี้เป็นตัวเลือกที่ถูกที่สุดจริงๆ
  • ขั้วต่อ USB - ตัวเมียชนิด B 1 ตัวสำหรับจ่ายไฟ และตัวผู้และตัวเมียประเภท A สองตัวสำหรับต่อสายต่อแบบบางและยืดหยุ่นได้สำหรับการเชื่อมต่อภายใน
  • แจ็คเสียง 1/4" - ฉันใช้สเตอริโอหนึ่งอันและโมโนหนึ่งอัน ด้วยวิธีนี้สเตอริโอสามารถเป็นแจ็คหูฟัง / โมโน หรือเพียงแค่ส่งสัญญาณด้านซ้ายหากเชื่อมต่อแจ็คอื่น

ขั้นตอนที่ 1: อุปกรณ์อิเล็กทรอนิกส์ภายใน

อิเล็กทรอนิกส์ภายใน
อิเล็กทรอนิกส์ภายใน
อิเล็กทรอนิกส์ภายใน
อิเล็กทรอนิกส์ภายใน
อิเล็กทรอนิกส์ภายใน
อิเล็กทรอนิกส์ภายใน

เราจะเชื่อมต่อ LCD และส่วนประกอบที่เกี่ยวข้อง และปุ่มกดเข้ากับ Pi Hat นอกจากนี้ เราจะเพิ่มแจ็ค USB-B และ USB-A เพื่อเชื่อมต่อพลังงานและอุปกรณ์ MIDI ตามลำดับ เรานำพอร์ต USB-A มาใช้ เพราะเราต้องใช้พอร์ต USB ของ Pi เพื่อเชื่อมต่อการ์ดเสียง ซึ่งเราต้องการมีอยู่ภายในตัวเครื่อง ดังนั้นเราจึงไม่สามารถให้พอร์ต USB ล้างออกด้วยด้านข้างของกล่องได้ ฉันใช้พอร์ต USB-B เพื่อจ่ายไฟเพราะฉันรู้สึกว่ามันสามารถรับการลงโทษได้มากกว่าขั้วต่อสายไฟ micro-USB ของ Pi และไม่พบการวางแนวที่ดีที่ตัวเชื่อมต่อจะอยู่ติดกับขอบกล่องอยู่ดี

คุณจะต้องใช้มีดตัดรอยแยกระหว่างรูที่คุณจะบัดกรีหมุดสำหรับแจ็ค USB เพียงระวังอย่าตัดรอยภายในใด ๆ ในบอร์ดที่เชื่อมต่อพินอื่น ๆ - หรือถ้าคุณทำ (เช่นฉัน) โดยไม่ได้ตั้งใจเชื่อมต่อใหม่โดยใช้สายจัมเปอร์ พิน Vcc และ GND ของแจ็ค USB-B ไปที่ 5V และ GND บนพอร์ต Expander ของ Pi ตามลำดับ วิธีนี้คุณสามารถจ่ายไฟให้กับก้อนสต็อมป์บ็อกซ์ของคุณด้วยที่ชาร์จโทรศัพท์ (สมมติว่ามีกระแสไฟเพียงพอ - 700mA ดูเหมือนว่าจะใช้งานได้สำหรับฉัน แต่คุณอาจต้องการมากกว่านี้เพื่อให้แน่ใจว่าพอร์ต USB มีพลังงานเพียงพอสำหรับจ่ายไฟให้กับคอนโทรลเลอร์ของคุณ) และสาย USB AB

ฉันพบว่าความยาวของสายแพใช้งานได้ดีมากสำหรับการเชื่อมต่อสิ่งต่าง ๆ กับหมุดจำนวนมากโดยไม่ต้องมีเส้นลวดมากเกินไป ฉันทำสิ่งนี้แทนที่จะบัดกรีส่วนหัวของผู้ชายเข้ากับ LCD แล้วบัดกรีมันเข้าไปในหมวกเพราะฉันรู้สึกว่าฉันต้องการอิสระในการจัดตำแหน่ง LCD เพื่อให้สามารถวางตำแหน่งไว้ตรงกลางได้อย่างสวยงาม LCD ควรมาพร้อมกับโพเทนชิออมิเตอร์ที่คุณใช้เพื่อปรับคอนทราสต์ - ตรวจสอบให้แน่ใจว่าได้วางไว้ในตำแหน่งที่ LCD จะไม่ปิดบัง ดังนั้นคุณจึงสามารถสร้างรูในกล่องเพื่อเอื้อมถึงมันและปรับคอนทราสต์เพียงครั้งเดียว ทุกอย่างประกอบเรียบร้อยแล้ว

ศึกษาแผนผังสำหรับรายละเอียดเกี่ยวกับสิ่งที่เชื่อมต่อได้จากที่ใด สังเกตว่าปุ่มกดเชื่อมต่อกับ 3.3V ไม่ใช่ 5V! หมุด GPIO ได้รับการจัดอันดับสำหรับ 3.3V - 5V เท่านั้นจะทำให้ CPU ของคุณเสียหาย แจ็ค USB-A เชื่อมต่อกับสายแพอีกแถบหนึ่ง ซึ่งคุณสามารถบัดกรีกับปลั๊ก USB ซึ่งคุณจะเชื่อมต่อกับพอร์ต USB ของ Pi สำหรับตัวควบคุม MIDI ของคุณ ตัดโลหะพิเศษใดๆ ออกจากปลั๊กเพื่อให้ยื่นออกมาน้อยลง และใช้กาวร้อนเพื่อบรรเทาความเครียด ไม่จำเป็นต้องสวยงามเพราะจะซ่อนอยู่ภายในกล่อง

ขั้นตอนที่ 2: การเดินสายสัญญาณเสียงออก

การเดินสายสัญญาณเสียงออก
การเดินสายสัญญาณเสียงออก
การเดินสายสัญญาณเสียงออก
การเดินสายสัญญาณเสียงออก
การเดินสายสัญญาณเสียงออก
การเดินสายสัญญาณเสียงออก

ไม่ว่าคุณจะพบการ์ดเสียง USB ขนาดเล็กเพียงใดก็ตาม การ์ดเสียงหรือปลั๊กของมันก็มักจะยื่นออกมาไกลจากพอร์ต USB ของ Pi เกินกว่าจะใส่ทุกอย่างลงในกล่องได้ ดังนั้นให้ต่อขั้วต่อ USB แบบสั้นอีกอันเข้าด้วยกันจากสายแพ ปลั๊ก USB และกาวร้อนตามที่แสดงในภาพด้านบน การ์ดเสียงของฉันยังค่อนข้างหนาเกินไปที่จะใส่ทุกอย่างลงในกล่องหุ้ม ฉันจึงแกะพลาสติกออกแล้วพันด้วยเทปพันสายไฟเพื่อป้องกันไม่ให้อุปกรณ์ลัดวงจร

ในการรับเสียงจากการ์ดเสียงไปยังแจ็ค 1/4" ของคุณ ให้ตัดปลายหูฟัง 3.5 มม. หรือสาย AUX ออก ตรวจสอบให้แน่ใจว่ามีขั้วต่อ 3 ตัว - ปลาย วงแหวน และปลอก (TRS) แทนที่จะเป็น 2 หรือ 4 ปลอกหุ้มควรเป็นแบบกราวด์ ทิปมักจะเป็นช่องด้านขวา และวงแหวน (ขั้วต่อตรงกลาง) มักจะอยู่ด้านซ้าย คุณสามารถเชื่อมต่อทิปและแหวนเข้ากับแจ็คโมโน (TS - ทิป ปลอก) 1/4" สองตัว เท่านี้ก็เรียบร้อย กับมัน แต่คุณสามารถใช้งานได้หลากหลายมากขึ้นด้วยการเดินสายเพิ่มเติมเล็กน้อย ค้นหาแจ็ค TS ที่มีหน้าสัมผัสชั่วขณะที่สาม ดังแสดงในแผนภาพด้านบน การเสียบปลั๊กจะทำให้หน้าสัมผัสเสียหาย ดังนั้นดังที่คุณคาดหวังได้จากแผนภาพ สัญญาณด้านซ้ายจะไปที่แจ็ค TS หากเสียบปลั๊ก และไปที่วงแหวนของแจ็ค TRS หากไม่ได้เสียบปลั๊ก ด้วยวิธีนี้ คุณสามารถเสียบหูฟังเข้ากับแจ็คสเตอริโอ สายเคเบิลโมโนเดี่ยวเข้ากับแจ็คสเตอริโอสำหรับสัญญาณขวา/ซ้าย (โมโน) รวมกัน หรือสายเคเบิลในแต่ละแจ็คสำหรับเอาท์พุตขวาและซ้าย (สเตอริโอ) แยกกัน

ฉันเชื่อมต่อหมุดกราวด์ของแจ็คกับสายเคเบิลที่มาจากการ์ดเสียง เพื่อให้ทุกอย่างในกล่องใช้กราวด์เดียวกัน และฉันหลีกเลี่ยงเสียงกราวด์ของกราวด์กราวด์ อย่างไรก็ตาม ขึ้นอยู่กับสิ่งที่คุณเสียบปลั๊ก สิ่งนี้อาจมีผลตรงกันข้าม ดังนั้นคุณอาจต้องการรวมสวิตช์เพื่อให้คุณสามารถเชื่อมต่อหรือ "ยก" กราวด์บนแจ็ค 1/4"

ขั้นตอนที่ 3: การเตรียมเอกสารแนบ

การเตรียมเอกสารแนบ
การเตรียมเอกสารแนบ
การเตรียมเอกสารแนบ
การเตรียมเอกสารแนบ
การเตรียมเอกสารแนบ
การเตรียมเอกสารแนบ

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

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

อีพ็อกซี่สองขั้นตอน (เช่น กาวกอริลลา ในภาพ) ใช้งานได้ดีในการติดส่วนรองของหมวกเข้ากับโครงโลหะ ขูดพื้นผิวของกล่องหุ้มและด้านล่างของฐานรองเล็กน้อยด้วยขนเหล็กหรือไขควงเพื่อให้อีพ็อกซี่จับได้ดีขึ้น ฉันแนะนำให้แนบข้อขัดแย้งของคุณกับหมวก Pi ก่อนที่จะติดมัน เพื่อให้คุณรู้ว่ามันอยู่ในตำแหน่งที่ถูกต้อง - ที่นี่มีพื้นที่ไม่มากนัก ฉันใช้เพียงสามข้อขัดแย้งเพราะ LCD ของฉันอยู่ในทางที่สี่ ผสมส่วนประกอบทั้งสองของอีพ็อกซี่ วางบางส่วนลงบนแท่นรองและยึดเข้าที่ หลีกเลี่ยงการขยับหรือเปลี่ยนตำแหน่งชิ้นส่วนหลังจากผ่านไป 10-15 วินาที มิฉะนั้นพันธะจะเปราะ ให้เวลา 24 ชั่วโมงในการตั้งค่าเพื่อให้คุณทำงานต่อไปได้ ใช้เวลาสองสามวันในการรักษาอย่างสมบูรณ์ ดังนั้นอย่าเครียดกับพันธะโดยไม่จำเป็น

เว้นแต่ว่าคุณต้องการทำงานอดิเรกอื่นจากการทาสีก้อนสต็อมป์บ็อกซ์ ฉันแนะนำให้ปล่อยอลูมิเนียมเปล่า (ไม่ใช่รูปลักษณ์ที่แย่จริง ๆ) หรือซื้อกล่องหุ้มที่ทาสีไว้ล่วงหน้า สีไม่ต้องการยึดติดกับโลหะ หากคุณต้องการลอง ใช้ทรายทุกที่ที่คุณต้องการให้สีติด ใช้สีสเปรย์รองพื้นตัวถังรถยนต์ที่ดีก่อน จากนั้นทาสีหลายๆ สีที่คุณต้องการ จากนั้นปล่อยให้แห้งให้นานที่สุด อย่างจริงจัง คนบ้าบนกระดานข้อความแนะนำสิ่งต่าง ๆ เช่นทิ้งไว้ในแสงแดดโดยตรงเป็นเวลาสามเดือนหรือในเตาปิ้งขนมปังที่มีอุณหภูมิต่ำเป็นเวลาหนึ่งสัปดาห์ หลังจากขัดรอยย่น ลอกซากของงานทาสีครั้งแรกของฉัน ความพยายามครั้งที่สองของฉันยังคงได้รับเศษและรอยขูดจากสิ่งต่างๆ เช่น ปากกาในกระเป๋ากิ๊กของฉัน และสามารถเว้าแหว่งด้วยเล็บมือได้ ฉันตัดสินใจที่จะยอมแพ้และไปหาสไตล์พังค์โดยใช้เครื่องหมายไวท์เอาต์สำหรับตัวอักษร

ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์

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

ก่อนที่คุณจะยัดทุกอย่างลงในก้อนสต็อมป์บ็อกซ์และขันให้แน่น คุณต้องตั้งค่าซอฟต์แวร์บน Raspberry Pi ฉันขอแนะนำให้เริ่มต้นด้วยการติดตั้ง Raspbian OS ใหม่ ดังนั้นให้รับสำเนาล่าสุดจากเว็บไซต์ Raspberry Pi Foundation และทำตามคำแนะนำที่นั่นเพื่ออิมเมจลงในการ์ด SD หยิบคีย์บอร์ดและหน้าจอหรือใช้สายคอนโซลเพื่อเข้าสู่ระบบ Pi ของคุณเป็นครั้งแรก และไปที่บรรทัดคำสั่ง เพื่อให้แน่ใจว่าคุณมีการอัปเดตซอฟต์แวร์และเฟิร์มแวร์ล่าสุด ให้ป้อน

sudo apt-get update && sudo apt-get upgrade

sudo rpi-update

ต่อไป คุณต้องแน่ใจว่าคุณสามารถใช้ wifi เพื่อ ssh กับ Pi และทำการปรับเปลี่ยนเมื่อติดกระดุมภายในกล่องหุ้ม ขั้นแรก เปิดเซิร์ฟเวอร์ ssh โดยพิมพ์

sudo raspi-config

และไปที่ "ตัวเลือกการเชื่อมต่อ" และเปิดใช้งานเซิร์ฟเวอร์ ssh ตอนนี้ เพิ่มเครือข่ายไร้สายให้กับ pi โดยแก้ไขไฟล์ wpa_supplicant.conf:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

และเพิ่มบรรทัดต่อไปนี้ในตอนท้าย:

เครือข่าย={

ssid="เครือข่ายของคุณ" psk="รหัสผ่านของคุณ" }

แทนที่เครือข่ายและรหัสผ่านของคุณด้านบนด้วยค่าสำหรับเครือข่ายใดก็ตามที่คุณต้องการให้ Pi เชื่อมต่อโดยค่าเริ่มต้น เป็นไปได้มากว่าเราเตอร์ไร้สายของคุณที่บ้าน หรืออาจเป็นฮอตสปอตบนโทรศัพท์หรือแล็ปท็อปของคุณที่ทำงานในโหมดจุดเข้าใช้งาน อีกทางเลือกหนึ่งสำหรับการเชื่อมต่อกับ Pi ของคุณคือการตั้งค่าให้เป็นจุดเชื่อมต่อ wifi เพื่อให้คุณสามารถเชื่อมต่อกับมันได้ไม่ว่าคุณจะอยู่ที่ไหน อินเทอร์เฟซที่ฉันเขียนไว้ด้านล่างยังให้คุณจับคู่อุปกรณ์บลูทูธอื่นกับ Pi ได้ หลังจากนั้นคุณสามารถเชื่อมต่อโดยใช้ซีเรียลโอเวอร์บลูทูธได้

ในการติดตั้ง FluidSynth ให้พิมพ์

sudo apt-get ติดตั้ง fluidsynth

ไฟล์ที่แนบมากับขั้นตอนนี้มีส่วนต่อประสานระหว่างตัวควบคุมก้อนสต็อมป์บ็อกซ์และ FluidSynth และควรคัดลอกลงในไดเร็กทอรี /home/pi นี่คือคำอธิบายสั้น ๆ เกี่ยวกับการทำงานของแต่ละไฟล์:

  • squishbox.py - สคริปต์หลามที่เริ่มต้นและสื่อสารกับอินสแตนซ์ของ FluidSynth อ่านอินพุตจากปุ่มก้อนสต็อมป์บ็อกซ์ และเขียนข้อมูลไปยัง LCD
  • config_squishbox.yaml - ไฟล์การกำหนดค่าในรูปแบบ YAML (ส่วนใหญ่) ที่มนุษย์อ่านได้ที่เก็บการตั้งค่าและข้อมูลโปรแกรมแก้ไขสำหรับโปรแกรม squishbox
  • fluidsynth.py - ตัวห่อหุ้มหลามที่ให้การผูกกับฟังก์ชัน C ในไลบรารี FluidSynth โดยฉันเพิ่มการผูกเพิ่มเติมมากมายเพื่อเข้าถึงฟังก์ชันการทำงานของ FluidSynth มากขึ้น
  • ModWaves.sf2 - ฟอนต์เสียงขนาดเล็กมากที่ฉันให้ไว้เพื่อแสดงการใช้งานและพลังของโมดูเลเตอร์ในรูปแบบ Soundfont

การมีสคริปต์หลามตั้งค่ากระบวนการ FluidSynth และจัดการปุ่ม/สิ่งของ LCD ทั้งหมดนั้นทำงานได้ดี - ข้อความ MIDI จะส่งตรงไปยัง FluidSynth และสคริปต์จะโต้ตอบกับมันเมื่อจำเป็นเท่านั้น

สคริปต์ python ต้องการไลบรารี python สองตัวที่ไม่ได้ติดตั้งตามค่าเริ่มต้น คุณสามารถติดตั้งได้โดยตรงจาก Python Package Index โดยใช้เครื่องมือ pip ที่มีประโยชน์:

sudo pip ติดตั้ง RPLCD pyyaml

สุดท้าย คุณต้องการให้ Pi รันสคริปต์ python เมื่อบูต หากต้องการให้สิ่งนี้เกิดขึ้น ให้แก้ไขไฟล์ rc.local:

sudo vi /etc/rc.local

แทรกบรรทัดต่อไปนี้ก่อนบรรทัด 'exit 0' สุดท้ายในไฟล์:

หลาม /home/pi/squishbox.py &

ขั้นตอนที่ 5: การประกอบขั้นสุดท้าย

การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย
การประกอบขั้นสุดท้าย

ก่อนใส่ชิ้นส่วนทั้งหมดลงในกล่อง จะเป็นความคิดที่ดีที่จะเสียบทุกอย่างเข้าไป และตรวจดูให้แน่ใจว่าซอฟต์แวร์ใช้งานได้ ดังที่แสดงในภาพด้านบน ภาพที่ 3-6 แสดงชิ้นส่วนทั้งหมดและค่อยๆ ประกอบเข้ากับกล่องของฉัน จริง ๆ แล้ว LCD ถูกยึดโดยสายไฟที่กดเข้าหามัน แต่คุณสามารถใช้กาวร้อนหรือเพิ่มสกรูยึดถ้าคุณไม่ชอบมัน เทปพันท่อสีส้มบนฝากล่องเพื่อป้องกันไม่ให้ Pi ลัดวงจรกับโลหะ

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

ระวังการกระแทก/บิด/งอโดยไม่คาดคิดเมื่อสิ่งต่างๆ ถูกขันเข้าด้วยกัน สิ่งหนึ่งที่ต้องตรวจสอบคือ มีพื้นที่เพียงพอสำหรับแจ็ค 1/4 เมื่อเสียบสายเคเบิล - ทิปยื่นออกมาไกลกว่าหน้าสัมผัสแจ็คเล็กน้อย นอกจากนี้ ในงานสร้างของฉัน ฉันติดตั้ง Pi ชิดขอบเกินไปเล็กน้อย ของกล่องและริมฝีปากบนฝาที่กดลงที่ส่วนท้ายของการ์ด SD และหักมัน - ฉันต้องบากที่ริมฝีปากเพื่อไม่ให้สิ่งนี้เกิดขึ้น

ขั้นตอนที่ 6: การใช้งาน

Image
Image
การใช้งาน
การใช้งาน
การใช้งาน
การใช้งาน

โมดูลเสียงที่ฉันได้อธิบายไว้ในขั้นตอนเหล่านี้และการเรียกใช้ซอฟต์แวร์ที่ให้ไว้ข้างต้นนั้นค่อนข้างใช้งานได้และขยายออกนอกกรอบได้ แต่การดัดแปลง/รูปแบบต่างๆ สามารถทำได้ ฉันจะอธิบายอินเทอร์เฟซสั้น ๆ ที่นี่ - ฉันวางแผนที่จะอัปเดตอย่างต่อเนื่องในที่เก็บ github ซึ่งฉันหวังว่าจะเก็บ wiki ที่อัปเดตไว้ด้วย สุดท้ายนี้ ฉันจะพูดถึงวิธีปรับแต่งการตั้งค่า เพิ่มเสียงใหม่ และทำการปรับเปลี่ยนของคุณเอง

ในการเริ่มต้น ให้เสียบคอนโทรลเลอร์ USB MIDI เข้ากับแจ็ค USB-A ของกล่อง เสียบแหล่งจ่ายไฟ 5V เข้ากับแจ็ค USB-B และเชื่อมต่อหูฟังหรือแอมป์ หลังจากนั้นสักครู่ LCD จะแสดงข้อความ "squishbox v xx.x " เมื่อหมายเลขแพตช์และชื่อปรากฏขึ้น คุณจะสามารถเล่นโน้ตได้ แตะสั้นๆ ที่ปุ่มใดปุ่มหนึ่งเพื่อเปลี่ยนโปรแกรมแก้ไข โดยกดปุ่มใดปุ่มหนึ่งค้างไว้สองสามวินาทีเพื่อเข้าสู่เมนูการตั้งค่า และกดปุ่มใดปุ่มหนึ่งค้างไว้ประมาณห้าวินาที คุณจะมีตัวเลือกในการรีสตาร์ทโปรแกรม รีบูต Pi หรือปิด Pi (NB Pi จะไม่ตัดกระแสไฟไปที่พิน GPIO เมื่อหยุดทำงาน ดังนั้น LCD จะไม่ดับ เพียงรอประมาณ 30 วินาทีก่อนถอดปลั๊ก)

ตัวเลือกเมนูการตั้งค่าคือ:

  • อัปเดตแพตช์ - บันทึกการเปลี่ยนแปลงใดๆ ที่คุณทำกับแพตช์ปัจจุบันลงในไฟล์
  • บันทึกแพตช์ใหม่ - บันทึกแพตช์ปัจจุบันและการเปลี่ยนแปลงใด ๆ เป็นแพตช์ใหม่
  • เลือกธนาคาร - ไฟล์ปรับแต่งสามารถมีแพตช์ได้หลายชุด ซึ่งช่วยให้คุณสลับไปมาระหว่างแพตช์เหล่านั้นได้
  • ตั้งค่าเกน - ตั้งค่าปริมาณเอาต์พุตโดยรวม (ตัวเลือก 'เกน' ของฟลูอิดซินธ์) สูงเกินไปให้เอาต์พุตที่บิดเบี้ยว
  • คอรัส/รีเวิร์บ - แก้ไขการตั้งค่ารีเวิร์บและคอรัสของชุดปัจจุบัน
  • MIDI Connect - ลองเชื่อมต่ออุปกรณ์ MIDI ใหม่ หากคุณสลับอุปกรณ์ในขณะที่โปรแกรมกำลังทำงาน
  • Bluetooth Pair - วาง Pi ในโหมดการค้นพบเพื่อให้คุณสามารถจับคู่อุปกรณ์ Bluetooth อื่นกับมันได้
  • สถานะ Wifi - รายงานที่อยู่ IP ปัจจุบันของ Pi เพื่อให้คุณสามารถ ssh เข้าไปได้

ไฟล์ config_squishbox.yaml มีข้อมูลที่อธิบายแต่ละแพตช์ รวมถึงสิ่งต่างๆ เช่น การกำหนดเส้นทาง MIDI พารามิเตอร์เอฟเฟกต์ ฯลฯ ไฟล์นี้เขียนในรูปแบบ YAML ซึ่งเป็นวิธีแสดงข้อมูลที่คอมพิวเตอร์สามารถแยกวิเคราะห์ได้ แต่ยังเป็นของมนุษย์อีกด้วย -อ่านได้ มันอาจจะค่อนข้างซับซ้อน แต่ที่นี่ฉันแค่ใช้มันเป็นวิธีการแสดงโครงสร้างของพจนานุกรม Python ที่ซ้อนกัน (อาร์เรย์ที่เชื่อมโยง/แฮชในภาษาอื่น) และลำดับ (รายการ/อาร์เรย์) ฉันใส่ความคิดเห็นจำนวนมากในไฟล์กำหนดค่าตัวอย่างและพยายามจัดโครงสร้างเพื่อให้สามารถเห็นว่าแต่ละฟีเจอร์ทำอะไรได้บ้าง ดูและทดลองหากคุณสงสัย และอย่าลังเลที่จะถามคำถามในความคิดเห็น คุณสามารถเปลี่ยนแปลงเสียงและฟังก์ชันการทำงานของโมดูลได้มากมายเพียงแค่แก้ไขไฟล์นี้ คุณสามารถเข้าสู่ระบบและแก้ไขจากระยะไกล หรือ FTP ไฟล์ปรับแต่งที่แก้ไขไปยัง Pi จากนั้นรีสตาร์ทโดยใช้อินเทอร์เฟซหรือโดยการพิมพ์

sudo python /home/pi/squishbox.py &

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

เมื่อคุณติดตั้ง FluidSynth คุณยังได้รับฟอนต์เสียง FluidR3_GM.sf2 ที่ค่อนข้างดีฟรีอีกด้วย GM ย่อมาจาก MIDI ทั่วไป ซึ่งหมายความว่ามีเครื่องมือ "ทั้งหมด" ซึ่งกำหนดให้กับหมายเลขที่ตั้งไว้ล่วงหน้าและหมายเลขธนาคารที่ตกลงกันโดยทั่วไป เพื่อให้เครื่องเล่น MIDI ที่เล่นไฟล์โดยใช้ฟอนต์เสียงนี้จะสามารถค้นหาเสียงที่เหมาะสมสำหรับเปียโน ทรัมเป็ตได้คร่าวๆ, ปี่สก็อต ฯลฯ หากคุณต้องการเสียงที่มากกว่า/แตกต่าง คุณสามารถค้นหาฟอนต์เสียงฟรีมากมายบนอินเทอร์เน็ต ที่สำคัญที่สุด ข้อมูลจำเพาะของฟอนต์เสียงนั้นมีอยู่ทั่วไป อันที่จริงค่อนข้างทรงพลัง และยังมีตัวแก้ไขโอเพนซอร์ซที่ยอดเยี่ยมสำหรับฟอนต์เสียงที่เรียกว่า Polyphone ด้วยสิ่งนี้ คุณสามารถสร้างฟอนต์เสียงของคุณเองจากไฟล์ WAV ดิบ และคุณสามารถเพิ่มโมดูเลเตอร์ให้กับ 'ฟอนต์ของคุณ โมดูเลเตอร์ช่วยให้คุณควบคุมองค์ประกอบหลายอย่างของการสังเคราะห์ (เช่น ซองจดหมาย ADSR, ซองมอดูเลต, LFO เป็นต้น) แบบเรียลไทม์ ไฟล์ ModWaves.sf2 ที่ฉันได้รวมไว้ข้างต้นเป็นตัวอย่างของการใช้โมดูเลเตอร์เพื่อให้คุณสามารถแมปเรโซแนนซ์ของฟิลเตอร์และความถี่ตัดกับข้อความ MIDI การเปลี่ยนแปลงการควบคุม (ซึ่งสามารถส่งโดยปุ่ม/ตัวเลื่อนบนคอนโทรลเลอร์ของคุณ) มีศักยภาพมากมายที่นี่ - ไปเล่นเลย!

ฉันหวังว่าบทช่วยสอนนี้จะจุดประกายความคิดมากมายและให้กรอบงานที่ดีแก่ผู้อื่นในการสร้างการสร้างสรรค์ซินธิไซน์ที่เป็นเอกลักษณ์ของตนเอง ตลอดจนสนับสนุนความพร้อมใช้งานอย่างต่อเนื่องและการพัฒนาฟอนต์เสียงที่ดี ข้อมูลจำเพาะของฟอนต์เสียง และซอฟต์แวร์ฟรีที่ยอดเยี่ยม เช่น FluidSynth และ Polyphone. งานสร้างที่ฉันสรุปไว้ที่นี่ไม่ใช่ทั้งวิธีที่ดีที่สุดและไม่ใช่วิธีเดียวที่จะรวมสิ่งนี้เข้าด้วยกัน ในด้านฮาร์ดแวร์ การปรับเปลี่ยนที่เป็นไปได้อาจเป็นกล่องที่ใหญ่กว่าพร้อมปุ่มเพิ่มเติม อินพุต/เอาต์พุต MIDI รุ่นเก่า (5 พิน) และ/หรืออินพุตเสียง สคริปต์หลามสามารถแก้ไขได้ (ขออภัยสำหรับการแสดงความคิดเห็นแบบเบาบางของฉัน) เพื่อให้พฤติกรรมอื่น ๆ ที่อาจเหมาะกับคุณมากกว่า - ฉันกำลังคิดที่จะเพิ่มโหมด "เอฟเฟกต์" ให้กับแต่ละแพตช์ซึ่งจะทำหน้าที่เหมือนก้อนสต็อมป์บ็อกซ์จริง สลับการตั้งค่า และปิด เราสามารถเพิ่มซอฟต์แวร์เพิ่มเติมบางอย่างเพื่อให้เอฟเฟกต์เสียงดิจิตอล ฉันยังคิดว่ามันจะดีกว่าถ้าให้ Pi ทำงานในโหมด wifi AP ตามที่อธิบายไว้ข้างต้น และจากนั้นก็อาจมีเว็บอินเตอร์เฟสที่เป็นมิตรสำหรับการแก้ไขไฟล์ปรับแต่ง โปรดโพสต์ความคิด/คำถาม/การอภิปรายของคุณเองในฟีดความคิดเห็น

ฉันต้องการมอบอุปกรณ์ประกอบฉากขนาดใหญ่ขนาดใหญ่ให้กับผู้ผลิต FluidSynth และ Polyphone เพื่อมอบซอฟต์แวร์โอเพนซอร์ซฟรีที่เราทุกคนสามารถใช้เพื่อสร้างเพลงที่ยอดเยี่ยม ฉันชอบใช้สิ่งนี้ และคุณทำให้มันเป็นไปได้!

แนะนำ: