Related: Müzik: Bu akorda neler var? , Tablatura Notları , Gitar sekmeleri oluşturma? , Sayı çiftlerini gitar notalarına çevirin
Bir gitar parmağı verildiğinde, temsil ettiği akoru verin. Standart girdi ve çıktıları kullanabilir veya bir dize döndüren bir işlev yazabilirsiniz.
Girdi parmak izleri, aşağıdaki şekilde ifade edilecek (kök nota C ise), aşağıdaki akorlardan biri olarak sınıflandırılabilir:
- majör triad:
C
- küçük triad:
Cm
- (baskın) yedinci:
C7
- küçük yedinci:
Cm7
Akor ters olabilir, bu nedenle en düşük nota kök olarak güvenemezsiniz. Bunun gerçek dünyadaki kolay ya da yaygın bir parmak olmasına da güvenemezsiniz. Daha genel olarak, programınızın çıktısı, perdelerin oktavlarını görmezden gelmeli ve aynı nota (yani A
) karşılık gelen tüm perdelere eşit olarak davranmalıdır .
Bu kod golf , yani bayt cinsinden en kısa kod kazanır.
Giriş formatı
Giriş, standart ayardaki (EADGBE) 6 telli bir gitarın her bir teli için, o tizin çalınacağını belirten 6 değerlik bir seridir. Ayrıca, dizginin hiç oynatılmadığını gösterebilir. "Sıfır" perdesi açık konum olarak da bilinir ve perde sayıları buradan sayılır. Gitarın 21 perde pozisyonuna sahip olduğunu varsayalım, öyle ki en yüksek perde pozisyonu 20 numara.
Örneğin giriş X 3 2 0 1 0
, parmaklarını gitarın boynunun üstündeki aşağıdaki konumlara yerleştirmek anlamına gelir:
(6th) |---|---|---|---|---
|-X-|---|---|---|---
|---|---|---|---|---
|---|-X-|---|---|---
|---|---|-X-|---|---
(1st) |---|---|---|---|---
ve 2. ile 6. diziler arasında tıngırdatmaya. Bu ASCII sekmesine karşılık gelir :
e |-0-|
B |-1-|
G |-0-|
D |-2-|
A |-3-|
E |---|
İstediğiniz giriş türünü seçme konusunda biraz esnekliğe sahipsiniz: her perdeli konum bir dize veya bir sayı olarak ifade edilebilir. Çalınamayan gitar telleri genel olarak bir ile gösterilir X
, ancak eğer sizin için kolaylaştırırsa (örneğin, -1
numaraları kullanıyorsanız) farklı bir sentinel değeri seçebilirsiniz . 6 perde pozisyonları serisi herhangi bir liste, dizi veya dizi tipi, boşlukla ayrılmış tek bir dize veya standart giriş olarak girilebilir - bir kez daha, seçiminiz.
Yukarıda belirtilen 4 akor türünden birine karşılık gelen girişe güvenebilirsiniz.
Lütfen gönderiminizde çözümünüzün ne tür girdiler aldığını açıklayın.
Çıkış biçimi
Standart çıktısına, parmak için gereken akoru tanımlayan bir dize döndürmek veya yazdırmanız gerekir. Bu dizge bir araya getirilmiş iki bölümden oluşur. Büyük harf kullanımı önemlidir. İzleyen boşlukta izin var.
İlk bölüm gösterir kök notu , biri A
, A#
/ Bb
, B
, C
, C#
/ Db
, D
, D#
/ Eb
, E
, F
, F#
/ Gb
, G
veya G#
/ Ab
. (Kullanıyorum #
yerine ♯
ve b
yerine ♭
Unicode gerektiren önlemek için,.) Onlar olmadan ifade edilmelidir keskin veya düz olmayan eksprese edilebilir Kök notlar (hiçbir çıkış B#
, Fb
ya da Dbb
); tek bir keskin veya düz sembolle ifade edilemeyecek olanlar (yani veya C#
veya Db
asla B##
). Başka bir deyişle, notun ismindeki kaza sayısını (keskin veya düz) en aza indirmelisiniz.
İkinci bölüm, büyük bir üçlü için boş, m
küçük bir üçlü 7
için, baskın yedinci veya m7
küçük yedinci için akor tipini gösterir . Böylece bir G major basitçe çıktı G
iken, D output minor yedinci biri D#m7
veya olarak çıkarılabilir Ebm7
. Sonunda test vakalarında daha fazla örnek bulunabilir.
Teori ve ipuçları
Müzik notaları
Kromatik ölçekte oktav başına 12 adım vardır. Eşit mizaç ayarlandığı zaman, bu ziftlerin her biri, komşularından 1 eşit derecede uzaktır . 12 yarı tonlu (bir oktav) birbirinden uzak kalan tohumlar aynı nota olarak kabul edilir. Bu, 0'dan 11'e kadar olan 11 numaralı tamsayı gibi notları işleme koyabileceğimiz anlamına gelir. Bunlardan yedisine A'dan G'ye 2'ye harf isimleri verilmiştir. Keskin) bir nota bir yarı ton daha yüksek ve ♭ (düz) eklemek bir yarı ton daha düşük yapar.
Akorlar
Bir akor birlikte çalınan 2 veya daha fazla notadır. Akor türü, aralarındaki mesafelerle belirlenebilecek notlar arasındaki ilişkilere bağlıdır. Bir akorun daha önce de belirtildiği gibi bir kök notası vardır. Kök notayı bu örneklerde 0 olarak kabul edeceğiz, ancak bu isteğe bağlı ve bu zorlukla ilgilenen tek şey modulo aritmetiğindeki notalar arasındaki mesafe. Üçlü veya yedinci bir akor olan cevap için her zaman benzersiz bir akor türü olacaktır . Kök nota her zaman en düşük frekans aralığı olmayacak; akoru aşağıdaki dört akor türünden biri olarak tanımlayabileceğiniz kök notayı seçin:
- Bir büyük üçlüsü notları ile bir akor olduğunu
0 4 7
. - Bir minör üçlü notları ile bir akor olduğunu
0 3 7
. - Bir baskın (ya da majör / minör), yedinci akor notlar sahiptir
0 4 7 10
. - Bir minör (veya küçük / minör), yedinci akor notlar sahiptir
0 3 7 10
. 3
Gitar tuning
6 telli bir gitarda standart ayar, en düşük teldeki E ile başlar ve 5, 5, 5, 4, ardından 5 yarı ton arasındaki aralıklarla notaları vurur. En düşük E'yi 0 olarak alarak, bu, gitarın tüm tellerinin tıngırdatılması, size 0 5 10 15 19 24
modulo 12'nin eşdeğeri 0 5 10 3 7 0
olan notaları veya notaları verir E A D G B E
.
Çalıştı örnekleri
Eğer girişiniz buysa 0 2 2 0 0 0
, bu notlara tekabül eder E B E G B E
, bu yüzden sadece E, B ve G. Bunlar Em
bize kök olarak E ile numaralandırılarak görülebilen akoru oluşturur 0 3 7
. (Sonuç X 2 X 0 X 0
, veya için aynı olacaktır 12 14 14 12 12 12
.)
4 4 6 4 6 4
Girişiniz ise , bunları bir C root kökü ile numaralandırmak 7 0 7 10 4 7
, veya 0 4 7 10
, yani cevabı C#7
(veya Db7
) verir. Bunun yerine 4 4 6 4 5 4
, numaralandırma (veya ) olan 7 0 7 10 3 7
ya da verecekti .0 3 7 10
C#m7
Dbm7
Test durumları
X 3 2 0 1 0 ---> C
0 2 2 0 0 0 ---> Em
X 2 X 0 X 0 ---> Em
4 4 6 4 6 4 ---> C#7 (or Db7)
4 4 6 4 5 4 ---> C#m7 (or Dbm7)
0 2 2 1 0 0 ---> E
0 0 2 2 2 0 ---> A
X X 4 3 2 2 ---> F# (or Gb)
3 2 0 0 0 1 ---> G7
X X 0 2 1 1 ---> Dm7
3 3 5 5 5 3 ---> C
4 6 6 5 4 4 ---> G# (or Ab)
2 2 4 4 4 5 ---> B7
0 7 5 5 5 5 ---> Am7
7 6 4 4 X X ---> B
8 6 1 X 1 3 ---> Cm
8 8 10 10 9 8 --> Fm
0 19 5 16 8 7 --> Em
6 20 0 3 11 6 --> A# (or Bb)
X 14 9 1 16 X --> G#m (or Abm)
12 14 14 12 12 12 --> Em
15 14 12 12 12 15 --> G
20 X 20 20 20 20 --> Cm7
X 13 18 10 11 10 --> A#7 (or Bb7)
1 frekanslarının logaritmaları ile
2 veya solfejde , do, re, mi gibi isimler . Bu mücadelede harf adlarını kullanın.
3 Bu, farklı bir kök nota seçeneğiyle, ana altıncı akor olarak da adlandırılabilir. Bu mücadelede, küçük yedinci adıyla adlandırın.