資料介紹
描述
我喜歡做音樂。但齒輪通常會變大、昂貴、不透明且功能有限。i.MX RT 系列為制造商和制造商提供了將他們自己的靈活合成器應用程序制作成小型、廉價和節能設備的機會。
有了 speakEZ、MIDI 控制器、4 美元的 USB 適配器和 MIMXRT1010-EVK,您就擁有了交互式聲碼器合成器應用程序的構建塊,該應用程序將支持創造性的音樂技術。這只是觸及這些 MCU 的音樂和 DSP 應用的表面。
對于那些沒有 MIDI 鍵盤/控制器的人,不要害怕!重置 EVK 時按住用戶按鈕 (SW4),您可以彈奏幾個預建的和弦來嘗試“機器人你”的聲音。按相同的開關改變和弦。
speakEZ 包含一個使用 USB 主機 CDC 示例框架的基本 MIDI 驅動程序。待定更新將包括 MIDI 2.0 類合規性。該標準剛剛被MIDI 制造商協會采用。未來的工作在“限制”部分列出。
[更新 2020 年 11 月 13 日:由于我缺乏測試 MIDI 2.0 的硬件,我將在可預見的將來推遲對該驅動程序的進一步工作。如果您嘗試過此類設備并認為它對開源社區有價值,請務必發表評論!]
特點總結:
- 波表合成器框架(可選表,全復音)
- 用于音頻輸出的耳機插孔(3.5 毫米 TRS)
- 帶聲碼器調制的內置麥克風
- USB MIDI 控制器的 USB OTG 連接
使用的 i.MX RT1010 外圍設備:
術語
語音編碼器——“語音編碼器”將人聲編碼為頻譜以進行壓縮、轉換或加密。在音樂中,這種轉換后的數據可用于調制帶有語音共振峰的載波波形,使其聽起來好像在“說話”。
共振峰- 口語中區分元音的頻率成分。忽略一個單詞的基本音高,前三個或四個最響亮的頻率峰值是從“?”或“u”等中識別“uh”的聲音。
MIDI—— “樂器數字接口”的縮寫,是一種用于發送和接收電子音頻信號的硬件和通信標準。MIDI 的 USB 解釋是它自己的野獸。在此處查看更多信息。
復音- 用于描述具有多個同時音高和速度的聲音生成。這轉化為鋼琴和弦、歌唱合唱等。
Sibilance - 高頻語音內容,可用于識別單詞中的輔音(s、t、f 等)以及識別獨特的人聲。聲碼器很難捕捉到這種能量。
引擎蓋下
首先,更多的背景。音樂聲碼器收聽音頻輸入,通常是人聲,并分析頻率內容。它測量不同頻段的聲音強度,形成功率包絡。這個包絡本質上映射了使每個語音音素聽起來像它的方式的共振峰。換句話說,這是我們用來說話的元音的骨架。
該幅度包絡用于實時縮放帶通濾波音頻。在這種情況下,帶通載波是自定義波表。縮放這些頻段將聲音傳輸到您想要的任何音頻上,包括由MIDI控制的復音!這個過程不擅長轉移齒音。為此,我們需要從麥克風中提取更高頻率的聲音,并將它們直接與聲碼音頻混合。
借助 MIMXRT1010-EVK 上的 speakEZ,我們使用 WM8960 編解碼器來接收語音音頻并傳輸我們轉換后的合成器音頻。
我們的合成器是一個波表合成器,每個 CODEC 樣本更新一次。它使用一個預先初始化的點數組,代表我們選擇的波形的單個周期。每次更新合成器時,它都會根據采樣率和所需的音符在波形中插入適當的點。這就是一組固定值可以生成任何形狀的任何頻率波的方式!合成器以指定的速度(幅度)對任意數量的不同鍵進行求和。這就是使它成為和弦的原因。
最后,我們使用 MIDI-over-USB。USB OTG 外圍設備被配置為主機以接受來自我們的 MIDI 控制器(設備)的信號。因為傳統的 MIDI 主機有一個全尺寸的 USB-A 母端口,所以我們需要我們的適配器來連接我們的 OTG 插孔。(當然,如果您有一根帶有適當末端的電纜,則不需要適配器。)自定義驅動程序用于接收和解析 MIDI 的批量數據包。這是一個簡化的解釋。我鼓勵您探索提供的 usbmidi.h 和 usbmidi.c 文件。
使用說明
警告:如果放大,此軟件可能會產生有害聲音。插入耳機和打開設備電源時要小心。進入麥克風的響亮聲音和削波失真會導致額外的噪音。為了您的安全,請監控您對響亮聲音的暴露程度。
一個小小的聲音可以走很長的路。聆聽您的房間聲學以放置麥克風并確定合適的說話音量以達到預期的效果。
首先,確保您有 MIMXRT1010-EVK 板(帶有 USB 電纜)和一副耳機。在https://github.com/wandering-sounds/speakEZ/archive/master.zip下載最新的提交存檔。
- 將您的 EVK 插入您的 PC。Micro-B 端應連接到調試 USB 端口(J41)。
- 打開 MCUXpresso IDE。在快速啟動面板中選擇“從文件系統導入項目...”。
- 在“項目存檔 (zip)”下,選擇“瀏覽...”按鈕。找到并選擇您下載的存檔 ZIP。
- 單擊“下一步”,然后單擊“完成”。speakEZ 項目應該出現在 Project Explorer 中。
- 單擊項目文件夾。然后,單擊頂部欄中的 GUI Flash Tool。
- 一個窗口應顯示 EVK 的調試探針。選擇“確定”。
- 在“目標操作”>“程序”>“選項”下,找到“要編程的文件”。單擊“工作場所...”按鈕。
- 找到并雙擊../Release/speakEZ.axf。單擊“運行”以刷新芯片。
確保如下圖所示連接您的設備,然后按下重置開關:
要在沒有 MIDI 控制的情況下嘗試多個演示和弦,請按住用戶按鈕 (SW4),同時按下 POR 引腳復位 (SW9) 以重新啟動 MCU。這將進入無 MIDI 演示。在此模式下,再次按下 SW4 將切換正在播放的活動和弦。任何連接到 OTG 連接器的 USB 設備都將被忽略。如果您想退出此模式,請自行按下重置開關以啟用常規模式。
將 MIDI 控制器的 USB 電纜連接到適配器,然后將適配器連接到 USB OTG 連接器 (J9)。按下鍵盤上的音符將使用 speakEZ 波表合成器播放相應的音符。按下多個鍵將同時演奏多個音符。在此模式下按 SW4 將切換正在使用的波表。這些表是:
- 鋸(默認,標準聲碼器聲音)
- 新穎的波形(刺耳,堅韌,適合單音)
- 正弦(幾乎無聲,用于演示目的)
- 三角形(比正弦波略厚)
嘗試與聲碼器交互的不同方法。試著對著它說話,然后對著它唱歌。試著過分強調你的元音。耳語可以產生整潔的效果。
如果您愿意進行一些編碼,請嘗試在 speakEZ.h 中編輯帶通中心頻率 (bandpassBiquadF0)、帶寬 (analysisBiquadBWs、ShapingBiquadBWs) 和齒音截止 (kResample_Sibilance_HP)。這些都可以根據您的需要進行更改。我對分析/整形帶使用了對數間距。如果你讓頻段密度低于 1kHz 會怎樣?如果你添加更多的樂隊呢?我發現大約 20 個頻段開始導致性能瓶頸。
鋸波從聲碼器產生傳統聲音,這就是為什么它是默認音調。我添加了另一種獨特的波表形狀來測試。為什么不在表庫中添加更多內容?充滿諧波的豐富音調使用聲碼器創造出最有趣的聲音。
限制
- 即使是簡單的鋸齒波也具有非常高的頻率成分。這些可能會在相對較低的音符上產生混疊,并導致不需要的刺耳聲音。任何消費類或專業產品中使用的波表都應該是帶限制的,以防止這種情況發生,無論是在初始化時還是在運行中。
- 盡管此應用程序適用于 MIDI 設備,但它不包含控制更新或調制。MIDI 的功能遠不止這些!今年 MIDI 2.0 發布時,我打算構建一個完整的驅動程序供我自己使用并相應地更新項目存儲庫。[請參閱介紹部分中的相關更新。]
- 聲碼器應該有一種有效的方法來歸一化包絡跟隨器以防止出現峰值。也許用便宜的 ADSR 平滑瞬態最大值。我還沒有找到算法,但那是有可能的。
- 在可靠的專業產品中采用這種邏輯將受益于線路電平音頻輸出。應刪除此 EVK 上未使用的外圍設備,并在需要時以更高的成本改進組件。
- 在未使用的引腳上有更多可用的 GPIO 和模擬輸入。定制 PCB 的可能性很多。為什么不添加電位器控制、正交編碼器或外部控制電壓?speakEZ 的核心結構和信號鏈可以通過額外的控制方法來增強,所以去嘗試吧!
執照
該項目的內容在 3-Clause BSD 許可下獲得許可,如下所示:
版權所有 2020 Brady Etz
版權所有。
如果滿足以下條件,則允許以源代碼和二進制形式重新分發和使用,無論是否經過修改:
1. 源代碼的再分發必須保留上述版權聲明、此條件列表和以下免責聲明。
2. 二進制形式的再分發必須在隨分發提供的文檔和/或其他材料中復制上述版權聲明、此條件列表和以下免責聲明。
3. 未經事先書面許可,不得使用版權所有者的姓名或其貢獻者的姓名來認可或推廣從本軟件衍生的產品。
本軟件由版權所有者和貢獻者“按原樣”提供,并且不提供任何明示或暗示的保證,包括但不限于對適銷性和特定用途適用性的暗示保證。在任何情況下,版權所有者或貢獻者均不對任何直接、間接、偶然、特殊、懲戒性或后果性損害(包括但不限于采購替代商品或服務;使用、數據或利潤損失;或業務中斷),無論是由何種責任理論引起的,無論是在合同、嚴格責任或侵權行為(包括疏忽或其他方式)中以任何方式使用本軟件引起的,即使已被告知存在此類損害的可能性。
- 樂化液晶驅動程序下載 7次下載
- STM32的ADC驅動程序
- USB驅動程序
- 定時器延時控制電機驅動程序下載 21次下載
- UART的驅動程序免費下載 7次下載
- CDM20600驅動程序,USB驅動程序和并口驅動應用程序(免費下載) 57次下載
- 12864驅動程序 18次下載
- HC6800的USB驅動程序 0次下載
- Windows CE下GPIO驅動程序的設計與應用
- Windows 2000/XP下I/O設備驅動程序的設計
- acer aspire 5570驅動程序下載
- usb網卡驅動程序下載(萬能全集)
- kh-886 usb網卡驅動程序下載
- WINCE驅動程序開發指南
- 良田630攝像頭驅動程序下載
- 怎么編寫Framebuffer驅動程序 403次閱讀
- 了解和使用無操作系統和平臺驅動程序 1066次閱讀
- 自動刪除SDK/Vitis下驅動程序的舊版本的Linux腳本 558次閱讀
- DS18B20的C語言驅動程序 5346次閱讀
- 米爾科技LINUX設備驅動程序教程 1965次閱讀
- 淺談電腦驅動程序的工作原理 詳解電腦驅動程序意義 2.9w次閱讀
- 基于Linux2.6.30開發DS18B20的驅動程序的類型和文件操作接口函數詳解 1377次閱讀
- 12864液晶屏驅動程序分享 2.7w次閱讀
- 可動態安裝的Linux設備驅動程序 957次閱讀
- 8255A驅動程序 3193次閱讀
- 8155驅動程序 3057次閱讀
- 深入了解USB驅動之總線驅動程序 8685次閱讀
- 溫濕度傳感器DHT11驅動程序 5.3w次閱讀
- Xilinx設備的驅動程序 7967次閱讀
- PCI驅動程序開發實例 6701次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多