【信號處理】基于matlab模擬電音合成器附GUI
【信號處理】基于matlab模擬電音合成器附GUI
TT_Matlab
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,完整matlab代碼或者程序定制加qq1575304183。
1 簡介
基于matlab模擬電音合成器
2 部分代碼
function [PR,t,nn] = piano_roll(Notes,vel,ts)
%
%
Inputs:
%
Notes: 從 midiInfo.m 返回的音符矩陣(N*8)
%
vel: (可選) 若vel==1,
set
value to note velocity instead of 1. (默認(rèn) 0)
%
ts: (可選) time step of one
’pixel’
以秒為單位 (默認(rèn) 0.01)
%
%
Outputs:
%
PR: PR(ni,ti): 在音符編號為ni,時刻編號為ti處()的取值,只能取0/1
%
行數(shù)——音符數(shù);列數(shù)——時刻標(biāo)記數(shù)
%
t: t(ti): 時刻編號為ti的時刻(以秒為單位)
%
nn: nn(ni): note number at note index ti
%
%
(i.e. t and nn provide
’real-world units’
for
PR)
%
%
Copyright (c) 2009 Ken Schutte
%
more info at: http://www.kenschutte.com/midi
if nargin < 2
vel = 0;
end
if nargin < 3
ts = 0.01;
end
Nnotes = size(Notes,1);
n1 = round(Notes(:,5)/ts)+1; % start tics
n2 = round(Notes(:,6)/ts)+1; % end tics
if vel == 0
vals = ones(Nnotes,1);
else
vals = Notes(:,4); % velocity
end
Notes(:,3) = Notes(:,3) + (Notes(:,3)==0); % correct zeros in the tone
PR = zeros(max(Notes(:,3)), max(n2));
for i=1:Nnotes
PR(Notes(i,3), n1(i):n2(i)) = vals(i);
end
%
create quantized time axis:
t = linspace(0,max(Notes(:,6)),size(PR,2));
%
note axis:
nn = min(Notes(:,3)):max(Notes(:,3));
%
truncate to notes used:
PR = PR(nn,:);
3 仿真結(jié)果
4 參考文獻
[1]孫慧霞, 周上楠, 周玲,等. 基于MATLAB GUI的數(shù)字信號處理仿真平臺開發(fā)[J]. 電子科技, 2021.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除。
-
2023年各省最新電價一覽!8省中午執(zhí)行谷段電價! 2023-01-03
-
PPT導(dǎo)出高分辨率圖片的四種方法 2022-09-22
-
2023年最新!國家電網(wǎng)27家省級電力公司負(fù)責(zé)人大盤點 2023-03-14
-
全國消防救援總隊主官及簡歷(2023.2) 2023-02-10
-
盤點 l 中國石油大慶油田現(xiàn)任領(lǐng)導(dǎo)班子 2023-02-28
-
我們的前輩!歷屆全國工程勘察設(shè)計大師完整名單! 2022-11-18
-
關(guān)于某送變電公司“4·22”人身死亡事故的快報 2022-04-26
