SỐ 118
VỌC MÁY TÍNH CÙNG NHẠC SĨ HOÀI AN

Tạo nút phát âm thanh với VRML
HOÀI AN

Với ý tưởng thực hiện một bàn phím piano 3D có thể tương tác phát ra nốt nhạc, bạn hãy thử tìm hiểu xem VRML cung cấp cho chúng ta những chức năng liên quan nào...

1. Hình ảnh

Trước hết bạn tạo một bàn phím Piano gồm hai loại phím trắng và đen đơn giản bằng hai định nghĩa đối tượng hình học: hai hình hộp 3D. Với chuyển động “Examine” trong “Movements” của trình duyệt hỗ trợ VRML (như Cosmo Player hay Blaxxun Contact) người dùng có thể xoay các hình khối bạn vừa tạo để thấy một octave – quãng tám các phím Piano từ C4 đến C5 ( nốt Do 4 đến Do 5 ) rất đẹp.

2. Âm thanh

a. Đầu tiên bạn tạo một nút kiểu TouchSensor, nút này sẽ dò vị trí và trạng thái của thiết bị trỏ ( con chuột), và phát sinh sự kiện khi người dùng “chạm” vào đối tượng hình học nào trong nhóm thuộc nút “cha” TouchSensor.

DEF D4 TouchSensor { }

b. Tiếp theo bạn tạo một nút Sound đặc tả phần trình diễn âm thanh, tuy nhiên bạn chỉ dùng một thuộc tính đường dẫn “source” để dẫn đến nút AudioClip – nút thật sự phát ra âm thanh từ nguồn cho trước “url”. Ở đây (nút AudioClip) có một thuộc tính thú vị khác: “pitch”, thuộc tính này có thể hiểu như tỷ lệ chênh về cao độ của âm thanh phát ra so với âm thanh gốc. Do đó với một nốt D4 cho trước ( file D_TONE.WAV trong mã nguồn), bạn có thể tạo nốt E4 (cao hơn D4 1 cung) bằng công thức: E4=D4*1.122, hay với “pitch” 1.122. Tương tự, bạn tạo ra nốt D#4 (cao hơn D4 nửa cung): D#4=D4*1.059

Sound {
source DEF PitchD4 AudioClip {
url "D_TONE.wav"
pitch 1.0
}
}

c. Cuối cùng bạn “dẫn đường” cho các sự kiện truyền đi:

ROUTE D4.touchTime TO PitchD4.set_startTime

Ngay tại thời gian người dùng “chạm” vào nút kiểu TouchSensor, một nút AudioClip có liên kết (ví dụ: nút PitchD4) sẽ được kích hoạt.

Bạn thử tìm hiểu đoạn chương trình tạo ra 3 nốt D4, D#4, và E4 và Click vào đây để tải về chương trình nguồn đầy đủ:

# nốt Re gần nốt Do 4

Transform { translation 0.25 0.0 0.0
children [
USE WhiteKey,
DEF D4 TouchSensor { }
Sound {
source DEF PitchD4 AudioClip {
url "D_TONE.wav"
pitch 1.0
}
}
]
}

#  nốt Re# gần nốt Do 4

Transform { translation 0.375 0.1 -0.375
children [
USE BlackKey,
DEF Ds4 TouchSensor { }
Sound {
source DEF PitchDs4 AudioClip {
url "D_TONE.wav"
pitch 1.059
}
}
]
}

# nốt Mi gần nốt Do 4

Transform { translation 0.5 0.0 0.0
children [
USE WhiteKey,
DEF E4 TouchSensor { },
Sound {
source DEF PitchE4 AudioClip {
url "D_TONE.wav"
pitch 1.122
}
}
]
}

[Đầu trang]
Trang chủ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Cõi người ta
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền Công ty Phần mềm & Truyền thông VASC
 99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn
Mọi chi tiết về kinh doanh và quảng cáo xin liên hệ Phòng Quảng cáo. Tel: (04) 9782077 kd@vasc.com.vn