Chia tỷ lệ từ khóa và chế độ


10

Hầu hết các bạn có thể biết thang điểm C chính:

C D E F G A B C

Thang đo chính được đặc trưng bởi các khoảng giữa các nốt liền kề, được đo bằng nửa cung là:

2 2 1 2 2 2 1

Từ các giao thức này, chúng tôi có thể xây dựng bất kỳ thang đo chính nào bắt đầu trong bất kỳ ghi chú nào ( chìa khóa của thang đo). 12 lưu ý trong hệ thống điều chỉnh tính khí bằng nhau 12 tông màu của chúng tôi là:

C C♯ D D♯ E F F♯ G G♯ A A♯ B

tương đương (thay thế một số tương đương nâng cao ):

C D♭ D E♭ E F G♭ G Ab A B♭ B

với một nửa cung giữa mỗi cặp ghi chú liền kề.

Mỗi thang đo phải có bảy nốt theo thứ tự, bắt đầu từ phím. Nếu không, bạn có thể có hai ghi chú trong cùng một dòng của năm sao, điều này sẽ gây nhầm lẫn. Vì vậy, trong G # Major / ionia, bạn có F ## thay vì G; Các nhạc sĩ sẽ chỉ nhìn vào nơi trong năm sao là nốt nhạc, họ đã học được các tai nạn cho từng thang âm. Thật vậy, trong G # Major , F ## được thể hiện trong dòng F ## mà không có tai nạn, các tai nạn nằm trong chữ ký khóa - nhưng vì chữ ký khóa đó sẽ yêu cầu 2 sắc nét cho F, thường thì đây không phải là chữ Ab chính.

Thay đổi các 2 2 1 2 2 2 1khoảng thời gian, chúng tôi đến bảy chế độ khác nhau của thang đo diatonic:

  • Ionia : 2 2 1 2 2 2 1- tương ứng với quy mô lớn
  • Dorian :2 1 2 2 2 1 2
  • Phrygian :1 2 2 2 1 2 2
  • Lydian :2 2 2 1 2 2 1
  • Mixolydian :2 2 1 2 2 1 2
  • Aeilian : 2 1 2 2 1 2 2- tương ứng với quy mô nhỏ tự nhiên, và quy mô nhỏ giai điệu khi giảm dần (khi tăng dần, quy mô nhỏ giai điệu đã tăng lên 6 và 7. diễn viên phụ).
  • Người địa phương :1 2 2 1 2 2 2

Vì vậy, thách thức là viết một chương trình lấy đầu vào (thông qua stdin ) một khóa và chế độ và đầu ra (thông qua thiết bị xuất chuẩn ) theo tỷ lệ tương ứng. Một số trường hợp thử nghiệm ( stdin ( key mode) => stdout ( scale)):

Input:              Output:
C mixolydian   =>   C D E F G A Bb
F mixolydian   =>   F G A Bb C D Eb
G mixolydian   =>   G A B C D E F
G# ionian      =>   G# A# B# C# D# E# F##
Bb aeolian     =>   Bb C Db Eb F Gb Ab

Tham khảo thêm:
Có bao nhiêu khóa (chính và phụ)? Tại sao?


4
Các ví dụ tính năng ký hiệu không được mô tả ở trên - căn hộ và chia đôi. Có thể chấp nhận tương đương đầu ra chỉ sử dụng các ghi chú cơ bản và chuyên ngành đơn giản? (Đối với những gì đáng giá, sở thích của tôi sẽ là bạn nói "Không" và mở rộng thông số kỹ thuật một chút - có vẻ như câu hỏi này có thể có một chút chiều sâu ẩn).
Peter Taylor

@PeterTaylor: Phải. Tôi hy vọng chỉnh sửa là đủ. Tôi hy vọng đầu ra sẽ được hiển thị, với bảy tên ghi chú và tai nạn tương ứng của chúng. Đây là một chương trình tương đối lớn.
ninjalj

Câu trả lời:


7

GolfScript, 96 ký tự

" "/~5<{+}*7%"v]nwm[{"=2*2base(;\(" #"@?]{.1>))["b""""#"..+]=+\[~@(@+@(7%65+\1$7%4%0>-]}7*;]" "*

Giải pháp golfscript có thể được thử nghiệm trực tuyến .

Lưu ý: Như trong các ví dụ, khóa phải viết hoa trong khi chế độ phải được đưa ra bằng chữ thường.

Ví dụ:

>C lydian
C D E F# G A B

>C mixolydian
C D E F G A Bb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.