chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

關(guān)于用MATLAB 實現(xiàn)簡易鋼琴 App的教程分享

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

掃碼添加小助手

加入工程師交流群

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

實現(xiàn)以上功能的核心代碼和語法知識包括:

腳本和函數(shù)的概念

全局變量

switch流程

sound函數(shù)

figure的屬性和回調(diào)函數(shù)

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

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

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

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

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

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

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

sound(a,Fs)

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

關(guān)于用MATLAB 實現(xiàn)簡易鋼琴 App的教程分享

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

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 屬性。建立一個圖形,在選中圖形的情況下,只要鍵盤被按下,就會執(zhí)行一個函數(shù)(通常稱為回調(diào)函數(shù)),在這個函數(shù)中通過 sound 發(fā)聲。

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

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

args=get(fig,'CurrentChar');

switch args

case'a'

sound(a,Fs)

case's'

sound(s,Fs)

此時,顯然回調(diào)函數(shù)不會那么簡單,需要單獨封裝并命名,例如叫mysound。而為了使剛才定義的Fs等變量可以在mysound中使用,需要聲明他們?yōu)槿肿兞浚矗?/p>

function mysound

global Fs z x c ……

最后,進行適當(dāng)?shù)拿阑?,通過 rectangle 函數(shù)畫出矩形琴鍵,通過 text 函數(shù)標注音階和鍵盤的對應(yīng)。同時,在回調(diào)函數(shù)中,根據(jù)不同的鍵盤輸入,對矩形進行一定的顯示變化,通過 pause 函數(shù)控制這種變化的持續(xù)時間,就很像一個鋼琴 App 了。

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

當(dāng)然,也可以繼續(xù)在 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

關(guān)于用MATLAB 實現(xiàn)簡易鋼琴 App的教程分享

點擊:Add main file,選擇 mymusic

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

這兩步的目的是告訴 MATLAB 需要打包的腳本和這個腳本調(diào)用的函數(shù)。

關(guān)于用MATLAB 實現(xiàn)簡易鋼琴 App的教程分享

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人機交互
    +關(guān)注

    關(guān)注

    12

    文章

    1246

    瀏覽量

    56430
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    614

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于Matlab與FPGA的雙邊濾波算法實現(xiàn)

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

    OptiSystem應(yīng)用:MATLAB組件實現(xiàn)振幅調(diào)制

    。我們MATLAB代碼控制電脈沖對光信號的調(diào)制過程,通過在MATLAB組件中導(dǎo)入MATLAB代碼來實現(xiàn)。整體光路圖如圖1,全局參數(shù)如圖2:
    發(fā)表于 06-13 08:46

    通過御控APP實現(xiàn)PLC遠程調(diào)試與遠程監(jiān)控

    御控APP,通過移動化、智能化的手段,實現(xiàn)了PLC遠程調(diào)試與監(jiān)控,為工業(yè)生產(chǎn)帶來了便捷與高效。
    的頭像 發(fā)表于 06-04 09:49 ?194次閱讀

    普源示波器如何連接MATLAB實現(xiàn)數(shù)據(jù)采集與分析

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

    MATLAB如何助力全球巨頭實現(xiàn)智能化突破

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

    如何使用MATLAB實現(xiàn)一維時間卷積網(wǎng)絡(luò)

    本文對一維卷積操作進行介紹,包括一維擴展卷積和一維因果卷積,以及 MATLAB 對一維卷積的支持情況。在最后通過一個實例演示如何在 MATLAB 中將一維卷積和 LSTM 結(jié)合構(gòu)建分類網(wǎng)絡(luò),實現(xiàn)基于傳感器數(shù)據(jù)的故障診斷。
    的頭像 發(fā)表于 03-07 09:15 ?1079次閱讀
    如何使用<b class='flag-5'>MATLAB</b><b class='flag-5'>實現(xiàn)</b>一維時間卷積網(wǎng)絡(luò)

    如何運用MATLAB來控制DLP4500?

    希望通過MATLAB實現(xiàn)對DLP4500 的控制?因為現(xiàn)在MATLAB可以控制相機,希望也直接控制DLP。 是否有相關(guān)的例子來參考。謝謝
    發(fā)表于 03-03 06:19

    有沒有什么方案能實現(xiàn)直接matlab或python調(diào)用D4100_usb.dll?

    D4100_usb.dll是否有64位版本的,如果沒有,那有沒有什么方案能實現(xiàn)直接matlab或python調(diào)用D4100_usb.dll。 萬分感謝。 以下是eclipse java
    發(fā)表于 02-27 06:59

    如果pattern是32*32的,matlab怎么選擇dmd的活躍區(qū)域?

    如果pattern是32*32的,matlab怎么選擇dmd的活躍區(qū)域
    發(fā)表于 02-27 06:17

    OptiSystem應(yīng)用:MATLAB組件實現(xiàn)振幅調(diào)制

    。我們MATLAB代碼控制電脈沖對光信號的調(diào)制過程,通過在MATLAB組件中導(dǎo)入MATLAB代碼來實現(xiàn)。整體光路圖如圖1,全局參數(shù)如圖2:
    發(fā)表于 02-14 09:39

    MATLAB或者C語言開發(fā)FPGA有什么問題嗎

    最近有個項目領(lǐng)導(dǎo)要求MATLAB開發(fā)FPGA,有大佬MATLAB或者C語言開發(fā)FPGA的嗎,有沒有什么問題,需要注意什么問題嗎
    發(fā)表于 01-26 09:57

    分享兩則MATLAB和Simulink助力教學(xué)案例

    和 Simulink 助力教學(xué)案例:南方科技大學(xué)無線通信創(chuàng)新教學(xué)實驗室負責(zé)人吳光博士使用 AI 推動前沿通信教學(xué)創(chuàng)新,以及東南大學(xué)電氣工程學(xué)院胡秦然教授通過 MATLAB 實時腳本和 App 設(shè)計工具實現(xiàn)教學(xué)模式創(chuàng)新。
    的頭像 發(fā)表于 12-05 16:46 ?1151次閱讀
    分享兩則<b class='flag-5'>MATLAB</b>和Simulink助力教學(xué)案例

    verilog設(shè)計之基于basys3實現(xiàn)簡易分秒數(shù)字鐘

    基于basys3實現(xiàn)簡易分秒數(shù)字鐘
    發(fā)表于 09-03 14:15 ?0次下載

    matlab纜索動力學(xué)?

    關(guān)于這個我想獲得細纜在水中的張力和構(gòu)型的matlab求解,編程時候這個向量我怎么辦
    發(fā)表于 08-29 15:57

    基于MATLAB的通信系統(tǒng)設(shè)計

    在通信系統(tǒng)設(shè)計領(lǐng)域,MATLAB作為一款強大的數(shù)學(xué)計算與仿真軟件,廣泛應(yīng)用于信號處理、通信系統(tǒng)建模與仿真等方面。本文將詳細介紹一個基于MATLAB的通信系統(tǒng)設(shè)計方案,包括系統(tǒng)架構(gòu)、各模塊功能實現(xiàn)及相應(yīng)的
    的頭像 發(fā)表于 07-18 15:52 ?2647次閱讀