簡體   English   中英

如何在android / java中合成鋼琴音色

[英]How to synthesize piano sounds in android/java

我在android上制作了一些簡單的應用程序,並認為現在是時候讓事情變得更復雜了。 所以,我想我會嘗試一些已經存在的東西,但是從頭開始構建它。

我們的想法是創建一個應用程序,允許用戶通過按下顯示屏上的虛擬鍵來彈鋼琴。 但是我不確定如何合成每個音符的聲音,最好是將每個音符的副本存儲在文件中,還是有動態合成音符和和弦的動態方式。

我使用過C ++,所以NDK的東西也沒關系。 謝謝你的幫助。

聲音播放(切換緩沖區)幾乎必須從Android java apis完成

合成可以在本機或java中進行,無論哪種優選。

短(未壓縮)樣本可以重復播放,但您可能還需要一次攻擊瞬態。 也許你可以進行攻擊,延續和釋放,只要鑰匙熄火就重復持續。 理想情況下,每個樣本應該是其基本分量的整數周期,這樣當您在攻擊之間進行維持或維持衰減時,您就不會出現瞬態變化。

我相信你可以在FM或其他合成器的某個地方找到代碼......你可能希望在本地庫中實現,將緩沖區交給java代碼傳遞給音頻api。

太糟糕了,android已經有一個內部midi合成器,但顯然缺少動態接口,所以它只能播放midi文件。

到目前為止,最簡單的解決方案是在鋼琴上錄制每個音符的聲音,並在按下琴鍵時播放。 許多專業的虛擬鋼琴樂器以這種方式工作,以多種速度錄制鋼琴上的每個音符。 顯然這可能需要幾千兆字節的磁盤空間,但對於手機應用程序,您可能會在一個八度音程中單獨錄制每個音符的MP3錄音。

實際上算法合成鋼琴的聲音是非常困難的,直到最近,很少有人令人信服地完成它( pianoteq是當前最好的實現之一)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM