【各种乐器波形图】笛子、二胡、钢琴、号角等乐器波形图研究

2024-03-02 05:30

本文主要是介绍【各种乐器波形图】笛子、二胡、钢琴、号角等乐器波形图研究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

标题:不同乐器波形图

笛子的频率取决于其音高,不同音高的笛子频率也不同。以C调笛子为例,其最基本的频率为261.63 Hz(即中央C的频率)。而其他调号的笛子的基本频率则会有所不同。

笛子的波形图:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False
# 采样率
fs = 8000# 表示时间的数组
t = np.arange(fs) / fs# 笛子的频率
f0 = 261.63# 笛子的波形
y = np.sin(2 * np.pi * f0 * t)# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(t, y)
plt.xlabel('Time(时间)/ (s)')
plt.ylabel('Amplitude(振幅)')
plt.title('Flute Waveform(长笛波形)')
plt.grid()
plt.show()
二胡的波形图:

二胡的标准音高为G,频率为392 Hz。但是在演奏中,由于需要进行调弦和进行音高变化,频率会有所不同。
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=Falseimport numpy as np
import matplotlib.pyplot as plt# 采样率
fs = 8000# 表示时间的数组
t = np.arange(fs) / fs# 二胡的频率
f0 = 196# 二胡的波形
y = np.sin(2 * np.pi * f0 * t) + np.sin(2 * np.pi * 2 * f0 * t) + \np.sin(2 * np.pi * 3 * f0 * t) + np.sin(2 * np.pi * 4 * f0 * t)# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(t, y)
plt.xlabel('Time(时间) /(s)')
plt.ylabel('Amplitude(振幅)')
plt.title('Erhu Waveform(二胡波形图)')
plt.grid()
plt.show()
钢琴的波形图:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False# 采样率
fs = 44100# 触键时间和松键时间
attack_time = 0.01 # 攻击时间
release_time = 0.2 # 松键时间# 模拟钢琴音色的 ADSR 包络
adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),np.linspace(1, 0.8, int(fs * release_time)),np.linspace(0.8, 0, int(fs * release_time))])adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),np.linspace(1, 0.8, int(fs * release_time)),np.linspace(0.8, 0, int(fs * release_time))])# 钢琴的基音频率
f0 = 261.63 # C4# 生成钢琴音色
note = np.sin(2 * np.pi * f0 * np.arange(fs) / fs)# 使用 np.tile() 函数将 adsr 扩充到和 note 一样的长度
adsr = np.tile(adsr, int(np.ceil(len(note) / len(adsr))))# 将音符乘以 ADSR 包络
note *= adsr[:len(note)]# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(note)
plt.xlabel('Time (samples) 时间采样')
plt.ylabel('Amplitude 振幅')
plt.title('Piano Waveform 钢琴波形')
plt.grid()
plt.show()
号角的波形图:

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False# 采样率
fs = 44100# 触键时间和松键时间
attack_time = 0.01 # 攻击时间
release_time = 0.2 # 松键时间# 模拟钢琴音色的 ADSR 包络
adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),np.linspace(1, 0.8, int(fs * release_time)),np.linspace(0.8, 0, int(fs * release_time))])adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),np.linspace(1, 0.8, int(fs * release_time)),np.linspace(0.8, 0, int(fs * release_time))])# 钢琴的基音频率
f0 = 261.63 # C4# 生成钢琴音色
note = np.sin(2 * np.pi * f0 * np.arange(fs) / fs)# 使用 np.tile() 函数将 adsr 扩充到和 note 一样的长度
adsr = np.tile(adsr, int(np.ceil(len(note) / len(adsr))))# 将音符乘以 ADSR 包络
note *= adsr[:len(note)]# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(note)
plt.xlabel('Time (samples) 时间采样')
plt.ylabel('Amplitude 振幅')
plt.title('Piano Waveform 钢琴波形')
plt.grid()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.rc("font",family='YouYuan')
plt.rcParams['axes.unicode_minus']=False# 采样率
fs = 44100# 数字信号维度
n = np.arange(fs)# 号角的基音频率
f0 = 220.0# ADSR 包络
attack_time = 0.01
release_time = 0.3adsr = np.concatenate([np.linspace(0, 1, int(fs * attack_time)),np.linspace(1, 0.8, int(fs * release_time)),np.linspace(0.8, 0, int(fs * release_time))])# 号角音色
note = np.sin(2 * np.pi * f0 * n / fs)# 添加上升和下降的音调特性
note *= np.cos(np.pi * np.power(n / fs, 0.5))# 使用 np.tile() 函数将 adsr 扩充到和 note 一样的长度
adsr = np.tile(adsr, int(np.ceil(len(note) / len(adsr))))# 将音符乘以 ADSR 包络
note *= adsr[:len(note)]# 绘制波形图
plt.figure(figsize=(10, 5))
plt.plot(n, note)
plt.xlabel('Time (samples)')
plt.ylabel('Amplitude')
plt.title('Horn Waveform')
plt.grid()
plt.show()

这篇关于【各种乐器波形图】笛子、二胡、钢琴、号角等乐器波形图研究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/765051

相关文章

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

生信圆桌x生信分析平台:助力生物信息学研究的综合工具

介绍 少走弯路,高效分析;了解生信云,访问 【生信圆桌x生信专用云服务器】 : www.tebteb.cc 生物信息学的迅速发展催生了众多生信分析平台,这些平台通过集成各种生物信息学工具和算法,极大地简化了数据处理和分析流程,使研究人员能够更高效地从海量生物数据中提取有价值的信息。这些平台通常具备友好的用户界面和强大的计算能力,支持不同类型的生物数据分析,如基因组、转录组、蛋白质组等。

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

Science Robotics 首尔国立大学研究团队推出BBEX外骨骼,实现多维力量支持!

重复性举起物体可能会对脊柱和背部肌肉造成损伤,由此引发的腰椎损伤是工业环境等工作场所中一个普遍且令人关注的问题。为了减轻这类伤害,有研究人员已经研发出在举起任务中为工人提供辅助的背部支撑装置。然而,现有的这类装置通常无法在非对称性的举重过程中提供多维度的力量支持。此外,针对整个人体脊柱的设备安全性验证也一直是一个缺失的环节。 据探索前沿科技边界,传递前沿科技成果的X-robot投稿,来自首尔国立

代码随想录训练营day37|52. 携带研究材料,518.零钱兑换II,377. 组合总和 Ⅳ,70. 爬楼梯

52. 携带研究材料 这是一个完全背包问题,就是每个物品可以无限放。 在一维滚动数组的时候规定了遍历顺序是要从后往前的,就是因为不能多次放物体。 所以这里能多次放物体只需要把遍历顺序改改就好了 # include<iostream># include<vector>using namespace std;int main(){int n,m;cin>>n>>m;std::vector<i

vue原理分析(六)--研究new Vue()

今天我们来分析使用new Vue() 之前研究时,只是说是在创建一个实例。并没有深入进行研究 在vue的源码中找下Vue的构造函数 function Vue(options) {if (!(this instanceof Vue)) {warn$2('Vue is a constructor and should be called with the `new` keyword');}thi

《中国全屋智能行业发展现状与投资前景研究分析报告》

报告导读:本报告从国际全屋智能发展、国内全屋智能政策环境及发展、研发动态、供需情况、重点生产企业、存在的问题及对策等多方面多角度阐述了全屋智能市场的发展,并在此基础上对全屋智能的发展前景做出了科学的预测,最后对全屋智能投资潜力进行了分析。  订购链接:https://www.yxresearch.com/ 第一章全屋智能行业概念界定及发展环境剖析 第一节全屋智能行业相关概念界定 一、智能家

中国生态环境胁迫数据(栅格/县域尺度)-为研究生态环境压力提供数据支撑

中国生态环境胁迫矢量数据(2000-2010年) 数据介绍 2000-2010年中国生态环境胁迫数据为2000-2010年中国范围内人口、农业生产等生态环境胁迫因子的空间分布图,包括人口密度、农药使用强度、化肥施用强度。数据可用于分析全国生态环境胁迫因子及其对生态环境造成的压力的空间特征,主要通过社会经济统计资料获得,为县域尺度空间数据。 存储容量31.01 GB文件数量6数据类型栅

研究纹理采样器在像素级别的采样位置

问题 【纹理采样器】是一个基础的概念。假设有一个正方形面片,顶点的UV范围是0.0~1.0,那么在这个正方形面片上采样一张纹理时,会呈现出完整的纹理。 但我现在关注的问题是,在像素级别上,采样的位置是怎样的。具体来讲:对于UV值是(0.0,0.0)的点,它对应的采样位置是纹理最左上角像素的中心?还是纹理最左上角像素的左上角?即,下面左右哪个是正确的情况? 在宏观上,尤其是像素较多的时候,二者