用吉他與 Digilent Nexys Video FPGA 開發板做出專業混音

不少同學都有一個一把吉他仗劍走天涯的音樂夢想吧。那麼各位喜愛彈吉他的理工科同學,有沒有想過利用手邊的吉他加上 Digilent 的板卡,就可以做出不遜色於專業選手的混音作品呢?本項目介紹下如何使用 Digilent Nexys Video 開發板的音訊編解碼器來製作一段混音。


準備與介紹

硬體準備:

  • Nexys Video FPGA 開發板
  • Micro USB線
  • Nexys Video電源
  • 耳機或揚聲器
  • 音頻輸入設備(Aux-In,吉他等)

軟體準備:

本項目用的是Vivado 2015,用新版本將會有些步驟上的不同。

  1. Looper有16個 “banks”,可以包含音訊數據。可將音軌記錄到這些 bank 中並同時播放它們。
  2. 音訊透過 Line In 以 48 KHz 輸入連續採樣,並透過 Line out 輸出。
  3. 按下錄音按鈕後,將啟動 7 段計時器,並將音頻數據記錄到一個 bank 中。
  4. 如果再次按下錄製按鈕,將保存這段數據,並從頭到尾讀取音訊數據並混合輸入訊號。
  5. 如果在錄製過程中按下停止按鈕,則數據將被空白訊號覆蓋,數據將被刪除。
  6. 在播放 bank 時,使用者可透過按 BTNL 或 BTNR 選擇另一個 bank 來記錄其他音軌。如果用戶在已經播放的bank上按播放/錄製,它將覆蓋原bank上的音頻。
  7. 按住任何特定 bank 上的停止按鈕1.5秒鐘可將其刪除。
  8. OLED 顯示每個 bank 的狀態,以及您目前的 loop 的進展。
  9. BTNU用於切換您正在使用的bank。SW0選擇您要編輯的bank。現在將其保留在“關閉”位置。下面按鈕的功能對應表。

將輸入插入​​ Nexys Video 上的 Line in 插孔。將揚聲器/耳機插入Line out插孔。接上Nexys Video的電源。

 


建立/編程/運行

  • 在左側選單菜單的底部,點擊“產生位元流”。Vivado在自動產生位元流之前,將同時運行 Run Synthesis與 Run Implementation。

 

  • 生成位元流文件後,點擊硬體管理器,然後連接到 Nexys Video 開發板。

 

  • 運行

初始狀態:最初,OLED將如下圖所示。音頻數據應從輸入流到輸出。如果不是這種情況,請按CPU_RESET。另外,請確保SW0已關閉(關閉)。

 

切換庫 按 BTNR 可以向右移動一個 bank,或按 BTNL 可以向左移動一個 bank 。這顯示為螢幕上的第三行中方塊的地方。下方選擇了 Bank 2。

 

錄製到 Bank :按播放/錄製按鈕(BTNC)開始錄製到您所在的Bank中。突出顯示的X將被替換為一個圓圈,如下所示。

 

保存 loop: 完成錄製後,再次按播放/錄製按鈕。圓圈將被替換為“播放”圖標,音頻將從頭到尾開始播放。第4行上的進度條將顯示loop進行到多遠,直到重新開始為止。

 

停止 loop: 按當前正在播放的庫上的停止按鈕,以停止該庫上的播放。“播放”圖標將變為正方形,表示已停止。如果沒有其他bank在播放,則looper將停止,並顯示進度條。

 

錄製到另一個儲存:再次按 BTNC 來恢復播放,然後按 BTNL 或 BTNR 切換到另一個未錄製的 bank,然後按播放/錄製按鈕開始錄製到新 bank。 完成後,再次按播放/錄製,將保存 bank。

 

取消錄音:如果在錄音過程中要取消錄音,可以按停止按鈕,這將刪除

刪除已記錄的儲存區:按住停止按鈕 1.5 秒鐘,以刪除相應 bank 上的數據。

使用“交換曲目”功能:錄製到多個 bank 之後,您可以使用 BTNU 在兩個播放狀態之間快速切換。首先,記錄一些曲目。將 SW0 翻轉到向上(打開)位置,以查看在另一條軌道上將播放哪些儲存庫。然後,您可以透過滾動 BTNL 和 BTNR 並使用 BTNC 和 BTND 播放或停止該 bank 來選擇要在其他軌道上播放的 bank。做出選擇後,將 SW0 切換回關閉位置,然後按 BTNU。將顯示一個交換圖標,讓您知道在 loop 結束時音軌將切換。在loop結束時,音軌編號將切換為“ 1”,並且將播放您之前所做的bank選擇。

 

重置 looper: 按下CPU_RESET按鈕可使設備返回其初始狀態。


連結 │ 基於Nexys Video的混音項目項目的DIY動手指南
程式碼下載 │  https://drive.google.com/file/d/1Z_uxIMWI6gNkTrEAG1G2pMT9NoPsdFHO/view?usp=sharing