Før jeg startet kodingen måtte noen punkter klareres:
- Hvordan skal HMI'et være (MMI for mannsjåvinister)?
- Hvordan kan jeg finne ut hvilke frekvenser en lyd består av?
- Hvordan er koplingen mellom frekvenser og tonehøyde?
Det første spørsmålet er greit å besvare. Brukergrensesnittet bør være slik at man kan bruke programmet dersom man har brukt en elektronisk "stemmeboks" før (tuner). Jeg synes det er best med "analog" visning, og automatisk deteksjon av nærmeste tone.
Det andre spørsmålet er litt verre å besvare. Det er sikker mulig å bruke flere metoder, men jeg fant ut at det er greiest å bruke FFT (Fast Fourier Transform).
Når jeg lette etter svar på det siste spørsmålet på nettet, fant jeg ut at det ikke er noe fasit svar på det. Men siden programmet er ment å brukes til å stemme en gitar, som har faste intervall mellom tonene, fant jeg ut at jeg måtte bruke en "equally tempered 12 tune scale" (har ikke noe godt norsk uttrykk). Denne skalaen er ikke den som låter best for menneskeøret, men er et kompromiss for å minske kompleksiteten. Skalaer som er bygd opp av toner som er heltallsmultiplum av roten låter bedre. Hvis du vil lære mer om slike skalaer som er "riktig intonert", kan du sjekke ut denne siden: Just Intonation Network.
Formelen for å beregne frekvensene i en 12 tone skala med like intervall er:
![]()
Der x er frekvensen til rota (f.eks A4=440 Hz), og k er antall toner fra rota.
Du får kanskje en ide om hva det dreier seg om ved å se og høre på dette eksempelet med en A dur akkord. Akkordene i wav-fila under er bygd opp av sinusbølger med frekvenser som angitt i tabellen. Det første sekundet riktig intonert, og det andre med like intervall.
| Tone | Like intervall | Riktig intonert |
| A | 440 | 440 |
| C# | f(440,4)= 554,365 | 440*5/4= 550 |
| E | f(440,7)= 659,255 | 440*3/2= 660 |
Eksempelet.
Her er et pdf dokument som beskriver programmet jeg lagde, som har det originale navnet TuneIt. Du må ha Acrobat Reader eller noe tilsvarende for å lese det. Dersom du har lyst til å prøve programmet, kan du laste det ned her: TuneIt.zip. Det er ikke nødvendig å installere programmet, bare pakk det ut i en ny mappe og kjør i vei. MEN, ikke klag til meg dersom noe går i ball!
Manuell stemming
En av metodene han beskriver som jeg synes fungerer bra er som følger:
- Stem den tynneste E strengen (E1) etter en referanse
- Alle de andre strengene stemmes mot E1
| E1 | Mot referanse. | Juster E1 | |
| H2 | 5. | band mot E1. | Juster H2 |
| G3 | 9. | band mot E1. | Juster G3 |
| D4 | 14. | band mot E1. | Juster D4 |
| A5 | 7. | band mot E1 (en oktav under). | Juster A5 |
| E6 | 5. | band flageolett* mot E1. | Juster E6 |
*Berør strengen lett over 5. band mens du slår an strengen. Du får da en tone som er 2 oktaver over løs streng.
5 7 9 14
E |---|---|---|---|---|---|---|---|---|---|---|---|---|---|
H |---|---|---|---|-X-|---|---|---|---|---|---|---|---|---|
G |---|---|---|---|---|---|---|---|-X-|---|---|---|---|---|
D |---|---|---|---|---|---|---|---|---|---|---|---|---|-X-|
A |---|---|---|---|---|---|-X-|---|---|---|---|---|---|---|
E |---|---|---|---|-O-|---|---|---|---|---|---|---|---|---|