国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于用MATLAB 實現簡易鋼琴 App的教程分享

MATLAB ? 來源:djl ? 2019-09-11 15:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MATLAB 是科學計算軟件,同時也提供了圖形、聲音等多媒體展示特性和人機交互特性。利用這些特性,很容易完成復雜的任務,例如寫一個鋼琴 APP,將電腦的鍵盤當成鋼琴的琴鍵,發出悅耳的聲音。

實現以上功能的核心代碼和語法知識包括:

腳本和函數的概念

全局變量

switch流程

sound函數

figure的屬性和回調函數

這些都可以在 MATLAB 基本語法的幫助文檔(中文)中找到詳細說明:

將代碼打包成 App 需要用到 MATLAB Compiler:

首先,要知道 MATLAB 中“發聲”的方法,最簡單的是 sound 函數。這里將聲音的采樣頻率設為和一般 mp3 文件一樣的 44100 Hz,將一個音符的時間設定為 0.4 s,以音階 do 的頻率 261.63 Hz 為例,發出一段聲音。聲音的包絡線,其目的在于模擬一個音符漸響和漸輕的過程。

Fs=44100; %mp3標準采樣品頻率

T=0:Fs^-1:4e-1; %假定每個聲音持續0.4s

A=sin(2*pi/8e-1*T); %聲音振幅包絡

a=A.*sin(2*pi*261.63*T); %do的時域波形

sound(a,Fs)

也可以用 plot(T,a) 觀察波形。

關于用MATLAB 實現簡易鋼琴 App的教程分享

對于其他音階,設定不同的頻率,于是就可以獲得一系列的音符,他們隨時可以放進 sound 中進行發聲。

a=A.*sin(2*pi*261.63*T);

s=A.*sin(2*pi*293.66*T);

d=A.*sin(2*pi*329.63*T);

其次,要知道 MATLAB 中怎么用鍵盤實時控制,這樣才是一個真正的鋼琴 App。較為簡單的方法是利用 figure 的 KeyPressFcn 屬性。建立一個圖形,在選中圖形的情況下,只要鍵盤被按下,就會執行一個函數(通常稱為回調函數),在這個函數中通過 sound 發聲。

fig=figure('KeyPressFcn','sound(a,Fs)');

再次,要在回調函數中判斷剛才按下的是哪個鍵,并決定讓 sound 發出哪個聲音。這是一個典型的 switch 流程。而 switch 的判斷依據則是 figure 的 'CurrentChar' 屬性,可以通過 get 函數來獲得。

args=get(fig,'CurrentChar');

switch args

case'a'

sound(a,Fs)

case's'

sound(s,Fs)

此時,顯然回調函數不會那么簡單,需要單獨封裝并命名,例如叫mysound。而為了使剛才定義的Fs等變量可以在mysound中使用,需要聲明他們為全局變量,即:

function mysound

global Fs z x c ……

最后,進行適當的美化,通過 rectangle 函數畫出矩形琴鍵,通過 text 函數標注音階和鍵盤的對應。同時,在回調函數中,根據不同的鍵盤輸入,對矩形進行一定的顯示變化,通過 pause 函數控制這種變化的持續時間,就很像一個鋼琴 App 了。

附件使用方法:在 MATLAB 工作路徑中,放置 mymusic 腳本和 mysound 函數兩個文件,在 Command Window 中運行 mymusic,按鍵盤發聲。

當然,也可以繼續在 Command Window 中運行。

sound([a a g g h h g zeros(size(a)) f f d d s sa],Fs)

來聽一小段音樂,enjoy~

App 如何脫離 MATLAB 運行?這里需要用到 MATLAB Compiler,僅需點擊幾次鼠標即可:

點擊:APPS -> Application Compiler

關于用MATLAB 實現簡易鋼琴 App的教程分享

點擊:Add main file,選擇 mymusic

點擊:Files required for your application to run,選擇 mysound

這兩步的目的是告訴 MATLAB 需要打包的腳本和這個腳本調用的函數。

關于用MATLAB 實現簡易鋼琴 App的教程分享

點擊:package,一路確定即可。

軟件打包完成后,可以關閉 MATLAB。在彈出的 for_testing 目錄下找到 mymusic 的 exe 文件,雙擊即可執行。

這樣就完成了一個鋼琴 App,可以分享給其他小伙伴。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人機交互
    +關注

    關注

    12

    文章

    1288

    瀏覽量

    57932
  • 變量
    +關注

    關注

    0

    文章

    616

    瀏覽量

    29510
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    誰懂怎么LORA智能空調溫控器?從安裝到運維的實操指南,這篇說透了

    自動控溫。 第一步:接線方式,建立物理連接 穩定可靠,拆裝簡易方便,純銅線圈變壓器,電壓穩定,有效屏蔽電網干擾源 安裝說明 第二步:聯網配置,綁定 APP實現無線管控 安裝完成后,需將溫控器與 LORA 網關 + 手機
    的頭像 發表于 11-19 17:18 ?1076次閱讀

    Flutter 移動端開發:集成淘寶 API 實現商品數據實時展示 APP

    。Flutter 憑借其跨平臺特性、高效的開發效率和豐富的 UI 組件,成為開發此類 APP 的理想選擇。本文將詳細介紹如何使用 Flutter 集成淘寶 API,實現商品數據實時展示 APP 的開發過程,并附上關鍵代碼示例。?
    的頭像 發表于 11-13 09:36 ?371次閱讀

    FPGA實現DDR控制模塊介紹

    DDR3讀寫控制器主要用于生成片外存儲器DDR3 SDRAM進行讀寫操作所需要的時序,繼而實現對片外存儲器的讀寫訪問。由攝像頭采集得到的圖像數據通常數據量較大,使用片內存儲資源難以實現大量圖像數據
    發表于 10-21 08:43

    求助,關于TC275 bootloader+app開發的問題求解

    您好 目前想做一個簡單的boot跳app的升級功能,采用的是autosar架構,現在的程序默認是從0xa0000000也就是PF0的位置開始,我把這個當做boot程序。我現在想制作一個從PF1
    發表于 07-15 06:48

    matlab appdesigner 表格組件賦值問題,求助

    如上圖所示,我在用matlab2021Ra APP模塊進行編程的時候,想在表格中調入自己編寫的結構數組,我從網上AI了一個程序語句,看著沒問題,但是就是給表格賦值不了,還請各位大神幫忙看一下這個是怎么回事,我是初學者,請各位幫忙看看
    發表于 07-12 11:45

    基于Matlab與FPGA的雙邊濾波算法實現

    前面發過中值、均值、高斯濾波的文章,這些只考慮了位置,并沒有考慮相似度。那么雙邊濾波來了,既考慮了位置,有考慮了相似度,對邊緣的保持比前幾個好很多,當然實現上也是復雜很多。本文將從原理入手,采用Matlab與FPGA設計實現雙邊
    的頭像 發表于 07-10 11:28 ?4561次閱讀
    基于<b class='flag-5'>Matlab</b>與FPGA的雙邊濾波算法<b class='flag-5'>實現</b>

    Matlab處理近紅外數據,NIRS - SPM插件配準報錯求助

    Matlab處理近紅外數據,NIRS - SPM插件配準報錯求助。 內容:各位大神好,我在使用Matlab處理近紅外數據時,NIRS - SPM插件把文件導出來后,進行配準操作就會
    發表于 06-29 12:56

    OptiSystem應用:MATLAB組件實現振幅調制

    。我們MATLAB代碼控制電脈沖對光信號的調制過程,通過在MATLAB組件中導入MATLAB代碼來實現。整體光路圖如圖1,全局參數如圖2:
    發表于 06-13 08:46

    實現IAP功能,使用cubeide生成APP程序的bin文件寫入Flash之后,無法跳轉到APP程序中,為什么?

    實現IAP功能,使用cubeide生成APP程序的bin文件寫入Flash之后,無法跳轉到APP程序中。 但是使用KEIL編譯生成的bin文件寫入FLASH之后,可以正常執行。 在檢查棧頂地址是否
    發表于 06-09 07:32

    CUEBIDE生成的APP程序,在寫入FLASH之后無法正常跳轉怎么解決?

    實現IAP的功能,使用CUEBIDE生成的APP程序的bin文件,寫入到FLASH之后,無法正常跳轉。 程序卡在/[i] 檢查棧頂地址是否合法 / 但是KEIL生成的bin文件寫入后可以正常
    發表于 06-05 07:15

    通過御控APP實現PLC遠程調試與遠程監控

    御控APP,通過移動化、智能化的手段,實現了PLC遠程調試與監控,為工業生產帶來了便捷與高效。
    的頭像 發表于 06-04 09:49 ?649次閱讀

    普源示波器如何連接MATLAB實現數據采集與分析

    普源示波器(Rigol)作為國內知名的測試測量儀器品牌,廣泛應用于電子工程、科研實驗、教學等領域。為了進一步擴展其功能,用戶常需將示波器與MATLAB等數據分析平臺連接,實現自動化測試、實時信號處理
    的頭像 發表于 05-29 09:34 ?1152次閱讀

    MATLAB如何助力全球巨頭實現智能化突破

    當深度學習遇見汽車,一場靜默的技術革命正在發生。從Poclain Hydraulics 利用神經網絡實時監測電機溫度,到梅賽德斯-奔馳虛擬傳感器替代硬件,再到康明斯通過 AI 模型加速發動機仿真——這些行業領軍者正借助 MATLAB 與 Simulink,將復雜算法轉化
    的頭像 發表于 05-16 14:51 ?1153次閱讀
    <b class='flag-5'>MATLAB</b>如何助力全球巨頭<b class='flag-5'>實現</b>智能化突破

    APP自動化測試框架

    Server等基礎服務 實現多設備并行測試與動態環境切換能力 元素定位體系? 采用ID/XPath/CSS選擇器/UI控件屬性等多維度定位策略 封裝頁面對象模型(POM)實現元素與業務邏輯分離 例管理機制? 數據驅動:通過E
    的頭像 發表于 05-07 07:35 ?675次閱讀
    <b class='flag-5'>APP</b>自動化測試框架

    MATLAB在工程中的應用

    電子發燒友網站提供《MATLAB在工程中的應用.pdf》資料免費下載
    發表于 04-19 16:54 ?9次下載