เครื่องมือใหม่ที่พัฒนาด้วย Python ชื่อ gtrsnipe ได้เกิดขึ้นเพื่อเชื่อมช่องว่างระหว่างไฟล์เพลงดิจิทัลกับแท็บลาเจอร์กีตาร์ ซอฟต์แวร์นี้สามารถแปลงไฟล์ MIDI เป็นแท็บกีตาร์ที่อ่านได้และแปลงกลับได้ด้วย ซึ่งตอบสนองความต้องการทั่วไปของนักกีตาร์ที่ต้องการเรียนเพลงจากแหล่งดิจิทัลหรือสร้างไฟล์ MIDI ที่เล่นได้จากแท็บที่มีอยู่
เครื่องมือนี้โดดเด่นด้วยแนวทางอัจฉริยะในการจัดการการจับคอกีตาร์ แทนที่จะเพียงวางโน้ตไว้ที่ใดก็ได้บนเฟรตบอร์ด gtrsnipe ใช้อัลกอริทึมการให้คะแนนที่พิจารณาการยืดมือ ตำแหน่งเฟรต และความสามารถในการเล่น ซึ่งหมายความว่าจะพยายามหลีกเลี่ยงตำแหน่งนิ้วที่เป็นไปไม่ได้และเลือกรูปแบบคอร์ดที่สะดวกกว่า
รูปแบบไฟล์ที่รองรับ:
- อินพุต: .mid (MIDI), .abc (ABC notation), .vex (VexTab), .tab (ASCII tab)
- เอาต์พุต: รองรับการแปลงไฟล์อินพุตทุกรูปแบบ
- สามารถแปลงไฟล์แบบสองทิศทางระหว่างรูปแบบที่รองรับทั้งหมด
ชุมชนเน้นข้อจำกัดทางเทคนิค
นักดนตรีในชุมชนได้ระบุหลายพื้นที่ที่เครื่องมือนี้สามารถขยายได้ ปัจจุบัน gtrsnipe รองรับเฉพาะกีตาร์ 6 สายที่มีตัวเลือกการปรับเสียง 3 แบบ ได้แก่ มาตรฐาน drop D และ open G ข้อจำกัดนี้ไม่รวมเครื่องดนตรีหลายชนิด เช่น กีตาร์ 7 สาย เบสกีตาร์ที่มีจำนวนสายต่างกัน และการปรับเสียงทางเลือกที่ใช้กันทั่วไปในแนวเพลงต่างๆ
อัลกอริทึมการจับคอกีตาร์ยังต้องเผชิญกับการตรวจสอบจากผู้เล่นที่มีประสบการณ์ แม้ว่าจะคำนึงถึงช่วงเฟรตและการเคลื่อนไหวของมือ แต่ไม่ได้จัดการเฉพาะเจาะจงกับการหลีกเลี่ยงคอร์ด barre ซึ่งเป็นฟีเจอร์ที่อาจทำให้การถอดเพลงเข้าถึงได้ง่ายขึ้นสำหรับผู้เล่นมือใหม่ นอกจากนี้ยังไม่มีการรองรับ capo ซึ่งจะมีค่าสำหรับเพลงที่ใช้อุปกรณ์เสริมกีตาร์ทั่วไปนี้
ข้อจำกัดปัจจุบัน:
- รองรับเฉพาะกีตาร์ 6 สาย
- มีตัวเลือกการปรับจูน 3 แบบ: STANDARD, DROP_D, OPEN_G
- เฟร็ตสูงสุด 24 เฟร็ต (สามารถกำหนดค่าได้)
- ไม่มีการหลีกเลี่ยงคอร์ด barre
- ไม่รองรับ capo
- การอนุมานจังหวะของ ASCII tab แตกต่างกันไปตามคุณภาพของแหล่งข้อมูล
ฟีเจอร์ขั้นสูงสำหรับสไตล์การเล่นที่แตกต่างกัน
ซอฟต์แวร์นี้รวมตัวเลือกเฉพาะทางหลายอย่างที่ตอบสนองเทคนิคกีตาร์ที่แตกต่างกัน โหมดสายเดียวจะบังคับให้โน้ตทั้งหมดอยู่บนสายเดียว เหมาะสำหรับการถอด tapping run หรือ legato passage เครื่องมือนี้ยังสามารถตรวจจับและบันทึก hammer-on และ pull-off ตามจังหวะเวลาของโน้ต แม้ว่าฟีเจอร์นี้สามารถปิดได้สำหรับการถอดแบบ straight-picking
สำหรับความแม่นยำของจังหวะ gtrsnipe เผชิญกับความท้าทายที่แท็บ ASCII มาตรฐานไม่ได้เข้ารหัสข้อมูลเวลา ซอฟต์แวร์พยายามอนุมานจังหวะจากระยะห่างของตัวอักษร แต่ผลลัพธ์จะแตกต่างกันไปตามคุณภาพของแหล่งที่มา แท็บที่สร้างโดย gtrsnipe ในตอนแรกมักจะแปลงกลับเป็น MIDI ได้แม่นยำกว่าแท็บเก่าที่พบออนไลน์
พารามิเตอร์หลักของอัลกอริทึม (สามารถปรับแต่งได้):
- ค่าปรับของช่วงเฟร็ต: 100.0 (ค่าเริ่มต้น)
- ค่าปรับการเคลื่อนไหว: 3.0 (ค่าเริ่มต้น)
- ค่าปรับเฟร็ตสูง: 0.4 (ค่าเริ่มต้น)
- ช่วงจุดหวาน: เฟร็ต 0-12 (ค่าเริ่มต้น)
- ช่วงเฟร็ตที่เล่นไม่ได้: 4 เฟร็ต (ค่าเริ่มต้น)
- เกณฑ์เวลา legato: 0.5 บีต (ค่าเริ่มต้น)
การเปรียบเทียบกับเครื่องมือที่มีอยู่
พื้นที่การถอดเพลงกีตาร์มีโซลูชันอื่นๆ ที่พัฒนาด้วย Python อยู่แล้ว Tayuya ซึ่งเป็นโปรเจกต์โอเพนซอร์สอีกตัวหนึ่ง เสนอการแปลง MIDI เป็นแท็บที่คล้ายกันโดยใช้ไลบรารี music21 และรวมฟีเจอร์เช่นการตรวจจับคีย์ อย่างไรก็ตาม การมุ่งเน้นของ gtrsnipe ในการปรับแต่งการจับคอกีตาร์เฉพาะและความสามารถในการแปลงสองทิศทางทำให้แตกต่างจากเครื่องมือบันทึกเพลงทั่วไป
การใช้งานจริงของเครื่องมือนี้ขยายไปเกินกว่าการแปลงธรรมดา นักดนตรีสามารถใช้เพื่อสร้างแทร็กฝึกซ้อมจากแท็บ วิเคราะห์ข้อความที่ซับซ้อนโดยการชะลอความเร็วในรูปแบบ MIDI หรือสร้างสัญลักษณ์ที่อ่านได้จากการบันทึก MIDI แบบ improvised
แม้ว่า gtrsnipe จะเป็นก้าวสำคัญไปข้างหน้าในการถอดเพลงกีตาร์แบบอัตโนมัติ แต่ข้อเสนอแนะจากชุมชนชี้ให้เห็นว่าการพัฒนาในอนาคตอาจได้ประโยชน์จากการขยายการรองรับเครื่องดนตรีและการปรับแต่งรูปแบบคอร์ดที่ซับซ้อนมากขึ้น ในตอนนี้ มันทำหน้าที่เป็นเครื่องมือที่มีประโยชน์สำหรับผู้เล่นกีตาร์ 6 สายมาตรฐานที่ต้องการเชื่อมช่องว่างระหว่างสัญลักษณ์เพลงดิจิทัลและแบบดั้งเดิม
อ้างอิง: gtrsnipe