91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

全局變量

switch流程

sound函數(shù)

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

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

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

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

Fs=44100; %mp3標(biāo)準(zhǔn)采樣品頻率

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

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

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

sound(a,Fs)

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

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

對(duì)于其他音階,設(shè)定不同的頻率,于是就可以獲得一系列的音符,他們隨時(shí)可以放進(jìn) sound 中進(jìn)行發(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 中怎么用鍵盤(pán)實(shí)時(shí)控制,這樣才是一個(gè)真正的鋼琴 App。較為簡(jiǎn)單的方法是利用 figure 的 KeyPressFcn 屬性。建立一個(gè)圖形,在選中圖形的情況下,只要鍵盤(pán)被按下,就會(huì)執(zhí)行一個(gè)函數(shù)(通常稱為回調(diào)函數(shù)),在這個(gè)函數(shù)中通過(guò) sound 發(fā)聲。

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

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

args=get(fig,'CurrentChar');

switch args

case'a'

sound(a,Fs)

case's'

sound(s,Fs)

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

function mysound

global Fs z x c ……

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

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

當(dāng)然,也可以繼續(xù)在 Command Window 中運(yùn)行。

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

來(lái)聽(tīng)一小段音樂(lè),enjoy~

App 如何脫離 MATLAB 運(yùn)行?這里需要用到 MATLAB Compiler,僅需點(diǎn)擊幾次鼠標(biāo)即可:

點(diǎn)擊:APPS -> Application Compiler

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

點(diǎn)擊:Add main file,選擇 mymusic

點(diǎn)擊:Files required for your application to run,選擇 mysound

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

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

點(diǎn)擊:package,一路確定即可。

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

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

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

    關(guān)注

    12

    文章

    1290

    瀏覽量

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

    關(guān)注

    0

    文章

    616

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    誰(shuí)懂怎么LORA智能空調(diào)溫控器?從安裝到運(yùn)維的實(shí)操指南,這篇說(shuō)透了

    自動(dòng)控溫。 第一步:接線方式,建立物理連接 穩(wěn)定可靠,拆裝簡(jiǎn)易方便,純銅線圈變壓器,電壓穩(wěn)定,有效屏蔽電網(wǎng)干擾源 安裝說(shuō)明 第二步:聯(lián)網(wǎng)配置,綁定 APP,實(shí)現(xiàn)無(wú)線管控 安裝完成后,需將溫控器與 LORA 網(wǎng)關(guān) + 手機(jī)
    的頭像 發(fā)表于 11-19 17:18 ?1097次閱讀

    Flutter 移動(dòng)端開(kāi)發(fā):集成淘寶 API 實(shí)現(xiàn)商品數(shù)據(jù)實(shí)時(shí)展示 APP

    。Flutter 憑借其跨平臺(tái)特性、高效的開(kāi)發(fā)效率和豐富的 UI 組件,成為開(kāi)發(fā)此類 APP 的理想選擇。本文將詳細(xì)介紹如何使用 Flutter 集成淘寶 API,實(shí)現(xiàn)商品數(shù)據(jù)實(shí)時(shí)展示 APP 的開(kāi)發(fā)過(guò)程,并附上關(guān)鍵代碼示例。?
    的頭像 發(fā)表于 11-13 09:36 ?392次閱讀

    FPGA實(shí)現(xiàn)DDR控制模塊介紹

    DDR3讀寫(xiě)控制器主要用于生成片外存儲(chǔ)器DDR3 SDRAM進(jìn)行讀寫(xiě)操作所需要的時(shí)序,繼而實(shí)現(xiàn)對(duì)片外存儲(chǔ)器的讀寫(xiě)訪問(wèn)。由攝像頭采集得到的圖像數(shù)據(jù)通常數(shù)據(jù)量較大,使用片內(nèi)存儲(chǔ)資源難以實(shí)現(xiàn)大量圖像數(shù)據(jù)
    發(fā)表于 10-21 08:43

    求助,關(guān)于TC275 bootloader+app開(kāi)發(fā)的問(wèn)題求解

    您好 目前想做一個(gè)簡(jiǎn)單的boot跳app的升級(jí)功能,采用的是autosar架構(gòu),現(xiàn)在的程序默認(rèn)是從0xa0000000也就是PF0的位置開(kāi)始,我把這個(gè)當(dāng)做boot程序。我現(xiàn)在想制作一個(gè)從PF1
    發(fā)表于 07-15 06:48

    matlab appdesigner 表格組件賦值問(wèn)題,求助

    如上圖所示,我在用matlab2021Ra APP模塊進(jìn)行編程的時(shí)候,想在表格中調(diào)入自己編寫(xiě)的結(jié)構(gòu)數(shù)組,我從網(wǎng)上AI了一個(gè)程序語(yǔ)句,看著沒(méi)問(wèn)題,但是就是給表格賦值不了,還請(qǐng)各位大神幫忙看一下這個(gè)是怎么回事,我是初學(xué)者,請(qǐng)各位幫忙看看
    發(fā)表于 07-12 11:45

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

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

    Matlab處理近紅外數(shù)據(jù),NIRS - SPM插件配準(zhǔn)報(bào)錯(cuò)求助

    Matlab處理近紅外數(shù)據(jù),NIRS - SPM插件配準(zhǔn)報(bào)錯(cuò)求助。 內(nèi)容:各位大神好,我在使用Matlab處理近紅外數(shù)據(jù)時(shí),NIRS - SPM插件把文件導(dǎo)出來(lái)后,進(jìn)行配準(zhǔn)操作就會(huì)
    發(fā)表于 06-29 12:56

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

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

    實(shí)現(xiàn)IAP功能,使用cubeide生成APP程序的bin文件寫(xiě)入Flash之后,無(wú)法跳轉(zhuǎn)到APP程序中,為什么?

    實(shí)現(xiàn)IAP功能,使用cubeide生成APP程序的bin文件寫(xiě)入Flash之后,無(wú)法跳轉(zhuǎn)到APP程序中。 但是使用KEIL編譯生成的bin文件寫(xiě)入FLASH之后,可以正常執(zhí)行。 在檢查棧頂?shù)刂肥欠?/div>
    發(fā)表于 06-09 07:32

    CUEBIDE生成的APP程序,在寫(xiě)入FLASH之后無(wú)法正常跳轉(zhuǎn)怎么解決?

    實(shí)現(xiàn)IAP的功能,使用CUEBIDE生成的APP程序的bin文件,寫(xiě)入到FLASH之后,無(wú)法正常跳轉(zhuǎn)。 程序卡在/[i] 檢查棧頂?shù)刂肥欠窈戏?/ 但是KEIL生成的bin文件寫(xiě)入后可以正常
    發(fā)表于 06-05 07:15

    通過(guò)御控APP實(shí)現(xiàn)PLC遠(yuǎn)程調(diào)試與遠(yuǎn)程監(jiān)控

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

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

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

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

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

    APP自動(dòng)化測(cè)試框架

    Server等基礎(chǔ)服務(wù) 實(shí)現(xiàn)多設(shè)備并行測(cè)試與動(dòng)態(tài)環(huán)境切換能力 元素定位體系? 采用ID/XPath/CSS選擇器/UI控件屬性等多維度定位策略 封裝頁(yè)面對(duì)象模型(POM)實(shí)現(xiàn)元素與業(yè)務(wù)邏輯分離 例管理機(jī)制? 數(shù)據(jù)驅(qū)動(dòng):通過(guò)E
    的頭像 發(fā)表于 05-07 07:35 ?703次閱讀
    <b class='flag-5'>APP</b>自動(dòng)化測(cè)試框架

    MATLAB在工程中的應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《MATLAB在工程中的應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 04-19 16:54 ?9次下載