ฉันสงสัยว่าเป็นภาษาโน้ตดนตรีทัวริง - เสร็จสมบูรณ์ ?
ความคิดแรกของฉันคือมีลูปในโน้ตดนตรี แต่ไม่มีวิธีเขียนสาขาที่มีเงื่อนไขใช่ไหม
ฉันไม่ใช่นักดนตรีดังนั้นบางทีบางคนสามารถช่วยเติมเต็มช่องว่างได้?
ฉันสงสัยว่าเป็นภาษาโน้ตดนตรีทัวริง - เสร็จสมบูรณ์ ?
ความคิดแรกของฉันคือมีลูปในโน้ตดนตรี แต่ไม่มีวิธีเขียนสาขาที่มีเงื่อนไขใช่ไหม
ฉันไม่ใช่นักดนตรีดังนั้นบางทีบางคนสามารถช่วยเติมเต็มช่องว่างได้?
คำตอบ:
ใช่ถ้าคุณยอมรับคำแนะนำเล็กน้อยสำหรับการขนย้าย - ผิดปกติ แต่ไม่ทราบ
จากนั้นคุณสามารถตีความชิ้นส่วนเป็นChoonซึ่งเป็นทัวริงสมบูรณ์ นักแสดงคือหน่วยความจำ: พวกเขาจะต้องจำจำนวนโน้ตที่ชิ้นส่วนถูกเปลี่ยนในขณะนี้และโน้ตทั้งหมดที่พวกเขาได้เล่นจนถึงตอนนี้ เห็นได้ชัดว่ามันเป็นไปได้เฉพาะสำหรับคอมพิวเตอร์หรืออาจเป็นเมธี
จากคู่มือ Choon:
transpositions
มีคำแนะนำการขนย้ายสามคำคือ up (
+
), down (-
) และยกเลิก (.
) คำแนะนำการขนย้าย transposts บันทึกที่ตามมาทั้งหมดเล่นด้วยจำนวนของบันทึกล่าสุดที่เล่น คำสั่งยกเลิก (.
) ตั้งค่าการขนย้ายกลับเป็นศูนย์transpositions เป็นแบบสะสมดังนั้นรหัสชุนที่จะย้ายในอนาคตข้อสังเกตเพิ่มขึ้น 2
b+
และ 4b++
จะเป็น นอกจากนี้ค่าที่ใช้เป็นค่าของบันทึกย่อก่อนหน้านี้หลังจากที่มีการนำb+b+
transpositions มาใช้ดังนั้นบันทึกย่อในอนาคตเพิ่มขึ้น 6 ไม่ใช่ไม่ใช่ 4จอห์นเคจ
คำสั่ง John Cage (
%
) ทำให้ข้อความเงียบหนึ่งรายการในสตรีมเอาต์พุต ค่าการขนย้ายของ John Cage เป็นศูนย์ -%-
และ%+
ไม่มีตัวเลือก (ยกเว้นว่าจะเพิ่มความเงียบเดียวลงในเอาต์พุต)ทำซ้ำแท่ง
คำแนะนำของ Repeat Bars (
||:
และ:||
) ล้อมรอบลูป การวนซ้ำจะดำเนินการตามจำนวนครั้งที่ระบุโดยบันทึกล่าสุดที่เล่นก่อนที่จะ||:
พบ ศูนย์หรือค่าลบจะหมายถึง Choon:||
ทันทีจะข้ามไปเริ่มเล่นจากการจับคู่ John Cage หมายถึงการทำซ้ำตลอดไป -%||::||
เป็นการวนซ้ำไม่สิ้นสุดส้อมเสียง
คำแนะนำในการปรับแต่งส้อม
~
ให้วิธีการแบ่งออกจากลูป หากพบส้อมเสียงในลูปและโน้ตตัวสุดท้ายที่เล่นคือโน้ตของค่าA
Choon จะกระโดดทันทีเพื่อเริ่มเล่นหลังจาก:||
คำแนะนำถัดไป หากไม่มีการ:||
เรียนการสอนเพิ่มเติม(ความหมาย~
ถูกนำไปใช้นอกแถบการทำซ้ำใด ๆ ) ประสิทธิภาพจะสิ้นสุดลงทันทีเครื่องหมาย
เครื่องหมายให้ความสะดวกในการเขียนโปรแกรมที่ยิ่งใหญ่ เครื่องหมายเป็นตัวอักษรตัวพิมพ์เล็กหรือคำที่จำจุดในกระแสออก การอ้างถึงเครื่องหมาย (ดูด้านล่าง) จะทำให้โน้ตเล่นหลังจากเครื่องหมายถูกเล่นอีกครั้ง โปรดทราบว่าการโยกย้ายจะมีผลกับโน้ตที่เพิ่งเล่น
เมื่อมีเครื่องหมายสองตัวหรือมากกว่าเกิดขึ้นตามลำดับหรือเครื่องหมายตามคำแนะนำการเล่นจากเครื่องหมายพวกเขาจะต้องแยกจากกันโดยช่องว่าง
เล่นจากผลลัพธ์
คำสั่งเล่นจากการส่งออก (
=
) ช่วยให้คุณสามารถเล่นโน้ตที่เล่นในสตรีมเอาท์พุทอีกครั้ง คุณสามารถดูบันทึกด้วยจำนวน - โน้ตที่ 5 เล่นตั้งแต่เริ่มโครงการจะ=5
โดยจำนวนญาติ - 3 บันทึกล่าสุดเล่นจะเป็น=-3
หรือเครื่องหมาย - โน้ตเล่นหลังจากเครื่องหมายจะเป็นx
=x
x=x
มันเป็นสำนวนที่จะกลับมาใช้เครื่องหมายและทันทีที่แล้วเรียกมันเช่นนี้ สิ่งนี้คล้ายกับการพูดx=x+y
ในภาษาการเขียนโปรแกรมทั่วไป (ซึ่งy
หมายถึงมูลค่าการขนย้ายที่มีประสิทธิภาพในปัจจุบัน)
จอห์นเคเป็นเพียงส่วนที่เหลือเป็นส้อมคือ (ประมาณ) Dal Segno และเครื่องหมายเป็น Segno ฉันคิดว่าอาจมีการปรับจูนฟอร์คกิ้งโดยนักแสดงเพิ่มเติมซึ่งเป็นนักแสดงหลักตอบ แต่หลักการก็เหมือนกัน
ความสมบูรณ์ของทัวริงต้องมีอย่างน้อยสามสิ่ง: ลูปไม่สิ้นสุดการกระโดดแบบมีเงื่อนไข (ถ้า - หลังจากนั้น) และวิธีการจัดเก็บผลลัพธ์ของการคำนวณไปยังที่อื่นในหน่วยความจำ แม้ว่าโน้ตดนตรีมีการกระโดดแบบมีเงื่อนไข แต่ก็ไม่ได้มีสถานะดังนั้นจึงไม่ใช่ทัวริงสมบูรณ์
หลักฐานมาตรฐานสำหรับภาษาที่จะทัวริงสมบูรณ์คือการเขียนเครื่องทัวริงในภาษานั้น นี่เป็นการพิสูจน์ว่ามีความเท่าเทียมกันระหว่างภาษา (โดยปกติคือส่วนย่อยของภาษา) และเครื่องทัวริง
ความคิดของ "โน้ตดนตรี" นั้นลื่นเล็กน้อย มีการแกะสลักที่ได้มาตรฐานจำนวนมากที่ใช้ อย่างไรก็ตาม มีนักแต่งเพลงที่ใช้ซองจดหมายที่เขียนสิ่งบ้าทุกชนิดลงบนกระดาษ
สมมติว่าคุณต้องการมุ่งเน้นไปที่ชุดย่อยของโน้ตดนตรีที่ถือว่าเป็นมาตรฐานพอที่จะเป็นส่วนหนึ่งของ Finale หรือ Sibelius หรือชุดเครื่องมือแกะสลักหลัก
ดังนั้น.
สำหรับ Python (หรือ C หรืออะไรก็ตาม) คุณกำหนดสัญลักษณ์, เทป, กฎการเปลี่ยนและการกระทำต่าง ๆ ที่ปรับปรุงเทปเพื่อสะท้อนการเปลี่ยนแปลงสถานะและการเคลื่อนไหวของเทปการอ่านและการเขียนสัญลักษณ์บนเทป
การใช้ "โน้ตดนตรี" เราจะต้องกำหนดสัญลักษณ์และเทป stateful กฎการเปลี่ยนแปลงและการกระทำต่าง ๆ ที่ปรับปรุงเทป
สิ่งที่เราขาดคือเทปและกฎที่แจ้งให้นักดนตรีทราบถึงวิธีการตอบสนองต่อสัญลักษณ์บนเทปและวิธีการอัปเดตเทปนั้น
ในแง่หนึ่งเสียงที่ไหลรอบ ๆ ในอากาศอาจเป็นเทปที่มีสภาวะ แต่. ไม่มีวิธีง่ายๆในการย้อนกลับเทป การขาดการกรอกลับนี้หมายความว่านักแสดงจะต้องเก็บ "เทป" ส่วนตัวไว้บางประเภท
สิ่งนี้ทำให้เกิดโน้ตดนตรีนอกและเป็นคำแนะนำพิเศษเกี่ยวกับดนตรีสำหรับนักแสดง
สัญกรณ์ส่วนใหญ่เปิดให้มีการตีความและคำแนะนำในภาษาธรรมชาติเป็นลักษณะที่ยอมรับของโน้ตดนตรี - และได้รับมาโดยตลอดถ้าไม่ทั้งหมดของประวัติศาสตร์ของดนตรีตะวันตกที่มีการจดบันทึกดนตรี
แฟร์มาตส์ตามคำจำกัดความขึ้นอยู่กับดุลยพินิจของนักแสดงซึ่งหมายความว่ามันจะขึ้นอยู่กับสถานะของตนเองซึ่งมักจะมีการเปลี่ยนแปลงโดยดนตรีควบคู่ไปกับปัจจัยภายนอก
Canon 2 ต่อ Tonus จากการเสนอขายดนตรีของ Bachเป็นชิ้นที่วนลูปไม่สิ้นสุดซึ่งมีระดับความสูงขึ้นทุกขั้นตอนในแต่ละครั้งตราบใดที่มีการแสดง
เมื่อเร็ว ๆ นี้ก็เป็นธรรมดาที่จะเห็นคำแนะนำเช่น "ซ้ำสำหรับแต่ละศิลปินเดี่ยว" ในตัวอย่างเช่นรุ่น notated ของชิ้นดนตรีแจ๊สเช่นเดฟเบคส์ของใช้เวลาห้า
ที่กล่าวว่านอกเหนือจากแง่มุมโดยพลการอย่างเช่น Fermata เป็นคำตอบอื่น ๆ รัฐโน้ตดนตรีที่ไม่มีอะไร แต่สัญลักษณ์ทั่วไปอาจไม่ทัวริงที่สมบูรณ์
มันไม่ได้เกี่ยวข้องกับทัวริงภาษาสมบูรณ์เพราะมันเป็นภาษาบรรยาย ไม่มีคำสั่งในแง่ของการคำนวณหรือแก้ไขข้อมูลไม่มีสถานะไม่มีอินพุตไม่มีเอาต์พุตยกเว้นผลลัพธ์ของคำอธิบายเอง
นอกจากนี้ยังไม่มีการข้ามแบบมีเงื่อนไขขึ้นอยู่กับอินพุต เมื่อคุณแก้ไขการกระโดดทั้งหมดที่คุณได้รับโครงสร้างเชิงเส้นไม่ใช่ต้นไม้ ดังนั้น "โปรแกรม" ทั้งหมดซึ่งสามารถสร้างแบบจำลองโดยภาษานี้เป็นแบบเส้นตรงโดยไม่มีการวนซ้ำหรือกระโดดเลย