- Jika posisi garis lebih dekat dengan lebar citra, maka
Perkiraan posisi = “belakang” -
Jika posisi garis lebih dekat dengan lebar citra 2 posisi tengah, maka
Perkiraan posisi = “tengah” 2.
Jika tidak maka end
3.3.12. Proses 5.4. Pencarian nada
Proses ini adalah proses untuk menentukan nada dari citra bagian not balok. Karena akan dibunyikan maka nada harus diubah menjadi
angka yang dimana, nada g = 67, a = 69, b = 71, c’ = 72, d’ = 74, e’ = 76, f’ = 77, begitu seterusnya untuk masing-masing nada ditambah
atau dikurangi 12 untuk setiap oktafnya.
3.3.12.1. Ilustrasi
Gambar 3.27. Contoh gambar not
Pada Gambar 3.27. terdapat 4 buah nada, yang masing- masing merupakan nada c, G, A, dan B.
3.3.12.2. Algoritma Cara kerja proses ini dijelaskan sebagai berikut :
1. Jika jenis bagian == “nada” maka
a. Jika jumlah garis lurus 1 maka :
- jika perkiraan posisi == “tengah” atau “belakang”
Untuk setiap posisi garis lurus telusuri sampai dapat posisi pixel paling bawah.
- Jika perkiraan posisi == “depan”
Untuk setiap posisi garis lurus telusuri sampai dapat posisi pixel paling atas.
b. Jika tidak maka :
Untuk posisi pixel kolom ke-0 telusuri sampai dapat posisi pixel paling atas.
c. Beda nada= pembulatan kebawahposisi pixel – posisi
garis[3] ||posisi garis[0] – posisi garis[1]||2 d.
Nilai nada = {0, 2, 4, 5, 7, 9, 10} e.
Nada = nilai nada[beda nada 12] + pembulatan kebawahbeda nada 12 12
f. Nada += 67.
2. Jika bukan nada maka :
end
3.3.13. Proses 5.5. Pencarian nilai
Proses ini adalah proses untuk menentukan nilai dari citra bagian not balok. Citra yang akan dikenai proses pencarian nilai hanya citra
bagian yang dikenali sebagai not saja.
3.3.13.1. Ilustrasi
Gambar 3.28. Nada 14
Gambar 3.29. Nada 12
Gambar 3.30. Nada 18
3.3.13.2. Algoritma Cara kerja proses ini dijelaskan sebagai berikut :
1. Jika jenis bagian == “titik” maka :
- X
Nilai bagian sebelumnya -
X X 3 4
- Nilai bagian sebelumnya
X -
end 2.
Jika jenis bagian = “nada” maka end
3. Jika jumlah garis lurus == 0 maka :
Nilai = 1 end
4. Jika jumlah garis lurus == 1 maka :
a. Jika perkiraan posisi == “belakang” maka
- Cek pada citra bagian koordinat y = posisi kepala, x =
tengah citra, apakah terdapat pixel citrax,y == 1 jika iya maka :
Nilai = ¼ end
- Jika tidak maka :
Nilai = ½ end
b. Jika perkiraan posisi == “tengah ” maka
- Posisi bendera
posisi garis lurus + 1 -
Jumlah bendera jumlah kumpulan pixel pada
posisi bendera -
Nilai = ½
jumlah bendera + 2
end
c. Jika perkiraan posisi == “depan” maka
- Cek pada citra bagian koordinat y = posisi kepala, x =
tengah citra, apakah terdapat pixel citrax,y == 1 jika iya maka :
• Posisi bendera
posisi garis lurus – 1 •
Jumlah bendera jumlah kumpulan pixel pada
posisi bendera •
Jumlah bendera = Jumlah bendera – 1 karena 1 kumpulan pixel merupakan kepala not
• Nilai = ½
jumlah bendera + 2
end -
Jika tidak maka : Nilai = ½
end
5. Jika jumlah garis lurus 1 maka :
a. Untuk i = 0 sampai jumlah garis lurus – 1 lakukan proses
b sampai d b.
Untuk garis lurus pertama : -
Posisi bendera posisi garis lurus + 1
- Jumlah bendera
jumlah kumpulan pixel pada posisi bendera
- Jika perkiraan posisi == “depan” maka :
• Jumlah bendera = Jumlah bendera – 1
- Nilai[i] = ½
jumlah bendera + 2
c. Untuk garis lurus terakhir :
- Posisi bendera
posisi garis lurus + 1 -
Jumlah bendera jumlah kumpulan pixel pada
posisi bendera -
Jika perkiraan posisi == “belakang” maka : •
Jumlah bendera = Jumlah bendera – 1 -
Nilai[i] = ½
jumlah bendera + 2
d. Untuk garis lurus di tengah i = 0 i = jumlah garis
lurus – 1 : -
Posisi bendera1 posisi garis lurus + 1
- Posisi bendera2
posisi garis lurus – 1 -
Jumlah bendera1 jumlah kumpulan pixel pada
posisi bendera1 -
Jumlah bendera2 jumlah kumpulan pixel pada
posisi bendera2 -
Jika perkiraan posisi == “depan” maka : Jumlah bendera1 = Jumlah bendera1 – 1
- Jika perkiraan posisi == “belakang” maka :
Jumlah bendera2 = Jumlah bendera2 – 1 -
Jika Jumlah bendera1 Jumlah bendera2 maka : Jumlah bendera = jumlah bendera1
- Jika tidak maka :
Jumlah bendera = jumlah bendera2 -
Nilai[i] = ½
jumlah bendera + 2
e. end
3.3.14. Proses 6. Membunyikan nada