Tôi quan tâm đến việc học cách sử dụng OpenGL và tôi có ý tưởng viết trình hiển thị nhạc. Bất cứ ai có thể cho tôi một số gợi ý về những yếu tố tôi sẽ cần và làm thế nào tôi nên đi về học tập để làm điều này?Làm cách nào để bắt đầu viết trình hiển thị nhạc trong C++?
Trả lời
Nếu bạn sử dụng C++/CLI, đây là an example sử dụng màn hình bốn (hiển thị sai);
Anh ấy tham khảo this site có thông tin đáng kể về những gì bạn yêu cầu, đây là một câu trả lời từ trang cụ thể;
Làm cách nào để chia âm thanh thành tần số? Tai của chúng tôi làm điều đó bằng cách phương tiện cơ học, các nhà toán học làm điều đó sử dụng biến đổi Fourier và máy tính thực hiện việc này bằng FFT.
- Vật lý âm thanh 1.2. Oscillator Harmonic
- Lấy mẫu Sounds
- Fourier Analysis
- số Complex
- Digital Fourier Transform
- FFT
Ahhh, tôi thấy this một vài phút sau đó, đó là một bản C++ phân tích . Mã số bao gồm, mà sẽ giúp bạn có được và chạy.
Từ quan điểm của tôi ... kiểm tra trang web này: http://nehe.gamedev.net/
Thông tin thực sự tốt và Hướng dẫn sử dụng OpenGL
chỉnh sửa: http://www.opengl.org/code/
Bạn đang cố gắng để viết âm thanh của riêng bạn /máy nghe nhạc? Có lẽ bạn nên thử viết một plugin cho trình phát hiện có để bạn có thể tập trung vào đồ họa thay vì minutia của các codec, dsp và các thiết bị đầu ra âm thanh.
Tôi biết WinAMP và Foobar có API cho plugin trực quan hóa. Tôi chắc chắn Windows Media Player và iTunes cũng có chúng. Chỉ cần chọn một trình phát đa phương tiện và bắt đầu đọc. Một số người trong số họ thậm chí có thể có các plugin OpenGL hiện có mà bạn có thể bắt đầu để có thể tập trung vào OpenGL thuần túy.
Tôi không cố gắng viết một trình phát hoặc bất cứ thứ gì, chỉ cần một cái gì đó sẽ có trong một MP3 và hình dung nó, nhưng tôi không biết gì về cách kết nối tất cả các phần đó. Tôi đang trên Linux, vì vậy tôi muốn dính vào một cái gì đó đơn giản. Đã không thực sự nghĩ về việc tích hợp nó vào bất cứ thứ gì khác. – victor
xem xét sử dụng thư viện như mpg123, libmad hoặc ffmpeg để giải mã rồi mp3 thành các mẫu âm thanh. Từ đó bạn sẽ muốn sử dụng DFT (FFT) để chuyển đổi thông tin âm thanh sang tần số (xem FFTW). Tại thời điểm này, bạn sẽ có dữ liệu tần số thô tương tự như những gì bạn thấy trên hầu hết các visuliazers (đường di chuyển winamp/xmms w/peak). Sau đó bạn cần phải tìm ra những gì để hình ảnh dựa trên tần số và thay đổi tần số. – basszero
Nếu bạn chỉ sau một số 3D cơ bản hoặc tăng tốc 2D thì tôi khuyên bạn nên mua bản sao của Dave Astle "Beginning OpenGL Game Programming" bao gồm các khái niệm cơ bản về OpenGL trong C++.
Đối với phần phân tích âm nhạc, bạn nên nghiên cứu cơ sở của chuỗi Fourier, sau đó chọn thực hiện miễn phí một thuật toán DFFT (kỹ thuật số biến đổi nhanh).
Bạn có thể tìm thấy việc triển khai các thuật toán FFT và các thông tin hữu ích khác trong Numerical Recipes in C sách. Cuốn sách là AFAIK miễn phí. Ngoài ra còn có Numerical Recipes in C++ cuốn sách.
Tiếp cận của tôi để tạo BeatHarness (http://www.beatharness.com):
- ghi âm trong thời gian thực
- có một sợi chạy một FFT trên âm thanh để có được cường độ tần số
- tính toán nghe âm lượng cho kênh trái và phải
- lọc tần số trong các dải (bass, midton, treble)
bây giờ bạn có một số biến tốt đẹp để sử dụng trong màn hình đồ họa của bạn. Ví dụ: hiển thị hình ảnh có kích thước được nhân với âm trầm - điều này sẽ cung cấp cho bạn hình ảnh sẽ phóng to nhịp. Từ đó trên đó là trí tưởng tượng của riêng bạn! :)
Bạn có thể muốn xem xét sử dụng các hàm FFT/DCT của libvisual trên FFTW; chúng đơn giản hơn rất nhiều để làm việc và cung cấp dữ liệu tương tự dễ dàng để làm việc với mục đích tạo hình ảnh. Một số trình phát phương tiện truyền thông và plugin trực quan sử dụng libvisual ở một mức độ nào đó cho hình ảnh của họ. Ví dụ: Totem (trình phát), GOOM (plugin cho Totem và những người chơi khác), PsyMP3 2.x (trình phát)
- 1. Bắt đầu ra MSTest để hiển thị trong CruiseControl.Net
- 2. Làm cách nào để viết chương trình lọc trong C?
- 3. Cách viết chú thích C++ hiển thị trong Intellisense?
- 4. Làm cách nào để bắt đầu Quy trình bị ẩn?
- 5. Làm cách nào để hiển thị đầu ra của lệnh "IN" của SQL trong C#?
- 6. Làm cách nào để ngăn chặn đầu ra HTML từ PHP hiển thị trong trình duyệt?
- 7. Làm thế nào để hiển thị dạng trước trong C#
- 8. Làm cách nào để bắt đầu lập trình VOIP?
- 9. Khi nào các trình duyệt bắt đầu hiển thị HTML được truyền một phần?
- 10. Làm thế nào để hiển thị UITableView theo chương trình?
- 11. Hiển thị hộp thoại để chọn không gian làm việc trong khi nó bắt đầu
- 12. Làm cách nào để bắt đầu tạo một Trình đọc RSS C#?
- 13. Bắt đầu hoạt động mà không hiển thị nó
- 14. Làm thế nào để bắt đầu viết các ràng buộc Perl cho một thư viện C++?
- 15. Làm thế nào để viết một visualizer âm nhạc dựa trên web?
- 16. Làm cách nào để ngăn chặn toàn bộ lịch biểu hiển thị giờ bắt đầu trong tiêu đề sự kiện?
- 17. Làm thế nào để bắt đầu lập trình hướng đối tượng trong C++?
- 18. Bắt đầu bằng C
- 19. Làm cách nào để bắt đầu và viết mã bằng joomla?
- 20. Làm cách nào để bắt đầu viết một bản tổng hợp WM?
- 21. Xcode: Làm thế nào để PickerView bắt đầu tại một hàng nhất định khi được hiển thị lần đầu tiên
- 22. Làm cách nào để tạo menu trong menu bắt đầu cho chương trình của tôi?
- 23. Chạy lệnh từ Ruby hiển thị và bắt đầu ra
- 24. Làm cách nào để hiển thị thêm số thập phân trong bảng điều khiển đầu ra?
- 25. Hiển thị nhiều biểu mẫu khi ứng dụng C# bắt đầu
- 26. Làm cách nào để bắt đầu gỡ lỗi?
- 27. Thuật toán để bắt chước âm nhạc?
- 28. Làm cách nào để hiển thị PDF trong Adobe Flex?
- 29. Làm cách nào để bắt đầu viết tường lửa của riêng tôi?
- 30. Làm cách nào để sử dụng FragmentManager để hiển thị Fragment A, B, C, ... trong FrameLayout?