当前位置: 首页 > wzjs >正文

青岛无间设计公司网站动漫设计软件

青岛无间设计公司网站,动漫设计软件,代理平台微信号,简单大方网站开放式基金是没有公布每日交易量的。 /funds/data/660008.csv 文件开头: date,jz,ljjz 2016-01-04,1.1141,1.1141 2016-01-05,1.1161,1.1161 2016-01-06,1.1350,1.1350 这是一个将开放式基金数据转换为 MIDI音乐的 js 程序示例。该程序将基金净值映射为 MIDI音符的…

开放式基金是没有公布每日交易量的。

/funds/data/660008.csv 文件开头:
date,jz,ljjz
2016-01-04,1.1141,1.1141
2016-01-05,1.1161,1.1161
2016-01-06,1.1350,1.1350

这是一个将开放式基金数据转换为 MIDI音乐的 js 程序示例。该程序将基金净值映射为 MIDI音符的音高

mkdir test-midi
cd test-midi
npm init -y 
cnpm install csv-parser -S
cnpm install midi-writer-js -S

编写 fund2midi.js  如下

// fund2midi.js
const fs = require('fs');
const csv = require('csv-parser');
const MidiWriter = require('midi-writer-js');// 参数验证
const args = process.argv.slice(2);
if (args.length !== 1 || args[0].length !== 6) {console.log('用法: node fund2midi.js <6位基金代码>');process.exit(1);
}const fcode = args[0];
const csvFile = `/funds/data/${fcode}.csv`;
const outputFile = `melo_${fcode}.mid`;// 读取并处理CSV数据
async function processData() {const results = [];return new Promise((resolve, reject) => {fs.createReadStream(csvFile).pipe(csv()).on('data', (data) => {if (data.date > '2024-01-01') {results.push({date: data.date,jz: parseFloat(data.jz)});}}).on('end', () => {if (results.length < 20) {console.log(`${results.length} < 20`);process.exit(2);}resolve(results);}).on('error', reject);});
}// 生成MIDI文件
function generateMIDI(prices) {const track = new MidiWriter.Track();track.setTempo(120);// 数据归一化const minPrice = Math.min(...prices);const maxPrice = Math.max(...prices);const priceRange = maxPrice - minPrice;// 计算音符范围let minNote = 48; // C3let maxNote = 84; // C5if ((maxPrice / minPrice) < (84 / 48)) {maxNote = Math.round(50 * (maxPrice / minPrice));}if (maxNote % 2 === 1) maxNote++;prices.forEach(price => {const pitch = (priceRange < 0.001)? Math.round((maxNote + minNote) / 2): minNote + Math.round(((price - minPrice) / priceRange) * (maxNote - minNote));const note = new MidiWriter.NoteEvent({pitch: [pitch],duration: '4',velocity: 63   // 音量: 63% *127 = 80});track.addEvent(note);});// 直接在构造函数中传入轨道数组const writer = new MidiWriter.Writer([track]);return writer;
}// 主流程
(async () => {try {const data = await processData();const prices = data.map(d => d.jz);console.log(`基金代码: ${fcode}`);console.log(`数据量: ${prices.length}`);console.log(`最大值: ${Math.max(...prices)}`);console.log(`最小值: ${Math.min(...prices)}`);const midi = generateMIDI(prices);fs.writeFileSync(outputFile, midi.buildFile(), 'binary');console.log(`生成成功: ${outputFile}`);} catch (err) {console.error('发生错误:', err.message);process.exit(1);}
})();

运行 node fund2midi.js 660008 
生成 melo_660008.mid

运行 python play_mid.py melo_660008.mid 

运行 python mido_msg.py melo_660008.mid 查看 midi文件内容

http://www.dtcms.com/wzjs/811996.html

相关文章:

  • 网站开发前期方案青岛易龙网站建设
  • 外贸网站建设哪家好朋友圈营销推广
  • 大兴手机网站建设有网站源码去哪里做
  • 网站建设 中企高程山东川畅科技网站设计
  • 网上书城网站开发的数据字典标志设计宣传册设计公司
  • 网站的域名怎么看浙江大数据网站建设问答知识
  • 阳江公司网站建设wordpress自定义页面
  • 福建网站开发速成班wordpress 移动端接口
  • 成都网站建设工作室网址大全有用吗
  • 哪里有好的免费成品网站程序如何创建电子商务网站
  • 苏州做网站需要多少钱商城小程序搭建
  • 那些网站分享pr做的视频网站制作公司 信科网络
  • 常熟的彩钢板 中企动力做的网站有没有教做韩餐的网站
  • 深圳做棋牌网站建设哪家好做排行榜的网站
  • 做网站商城需要多少钱wordpress主题制作入门
  • 寮步网站建设定制网站建设公司哪家便宜
  • 南京建网站成都自适应网站建设
  • 怎么建设一个网站吉林省吉林市有几个区
  • 广元建设网站要多少钱无锡小程序开发工作室
  • 做美食视频的网站有哪些简单的网站建立一般多少钱
  • 福州网站设计招聘美发培训网站
  • 怎么做一款网站推广什么
  • 自己怎么做短视频网站注册永久免费域名
  • 怎么获得免费网站产品网络推广的方法有哪些
  • 厚街东莞网站建设温州做美食网站
  • 网站安全建设进展情况汇报软件如何推广
  • wordpress手机号网站网站开发项目swot分析
  • 微信彩票网站网站建设WordPress主题改变登录页面
  • 黄山网站设计公司商丘网 商丘网络第一媒体
  • 免费的网站认证有没有什么 网站能够做试卷