
标题: [特效代码] 批处理两只老虎跑的快 [打印本页]
作者: smss 时间: 昨天 02:32 标题: 批处理两只老虎跑的快
- @echo off&setlocal enabledelayedexpansion
- (set S=212 212 190 212 159 169 212 212 190 212 142 159 212 212 106 126 159 169 190 119 119 126 159 142 159)&(set L=9 3 12 12 12 24 9 3 12 12 12 24 9 3 12 12 12 12 12 9 3 12 12 12 24)
- set "L= !L!"&for %%A in (%S%)do @for /f "tokens=1*" %%B in ("!L!")do @(set "L=%%C"&set/at=450000/%%A,d=%%B*20 2>nul&&powershell "[Console]::Beep(!t!,!d!)" 2>nul)
- pause
复制代码
- @echo off&setlocal enabledelayedexpansion
- :: 音符频率(单位:Hz,C大调音阶)
- set S=262 294 330 262 262 294 330 262 330 349 392 330 349 392 392 440 392 349 330 262 392 440 392 349 330 262 262 392 262
- :: 节拍时长(单位:1/4音符=400ms)
- set L=4 4 4 4 4 4 4 4 4 4 8 4 4 8 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8
- set "L=!L! "
- for %%A in (%S%) do (
- for /f "tokens=1*" %%B in ("!L!") do (
- set "L=%%C"
- set /a "t=%%A, d=%%B*150"
- if !t! gtr 0 (
- powershell "[Console]::Beep(!t!, !d!)" >nul
- ) else (
- timeout /t !d!/1000 >nul
- )
- )
- )
- pause
复制代码
作者: Five66 时间: 昨天 10:24
感谢分享 ,win7系统 ,耍了下 ,声音非常小 ,而且有的没声音
作者: qzwqzw 时间: 昨天 23:07
我这里《两只老虎》运行效果也是整体音调偏低
感觉不像是系统的问题
倒像是set /a音阶转换频率t计算的有些问题
《生日歌》频率计算用了不同的方法
音调倒是正常一些
楼主再请核实一下
ps的beep()调用延迟较大
导致乐曲演奏很不连贯
感觉明显慢一拍
估计还得换其它的beep方法
比如nircmdc的beep
其它代码可优化的部分还有一些
比如变量L加前缀或者后缀空格的意义不明确
频率和节拍变量分开处理逻辑不清晰
timeout做延迟只有秒级精度不满足乐曲演奏要求
简单修改了一下看下效果- @echo off&setlocal enabledelayedexpansion
- :: 音符频率(单位:Hz,C大调音阶) -- 频率和节拍合用一个变量,更方便处理,也更符合直觉
- set S=262:4 294:4 330:4 262:4 262:4 294:4 330:4 262:4 330:4 349:4 392:8 330:4 349:4 392:8 392:4 440:4 392:4 349:4 330:4 262:4 392:4 440:4 392:4 349:4 330:4 262:4 262:4 392:4 262:8
- :: 节拍时长(单位:1/4音符=400ms)
- rem set L=4 4 4 4 4 4 4 4 4 4 8 4 4 8 4 4 4 4 4 4 4 4 4 4 4 4 4 4 8
- rem set "L=!L! "
- for %%C in (%S%) do (
- for /f "tokens=1,2 delims=:" %%A in ("%%C") do (
- rem set "L=%%C"
- set /a "t=%%A*2, d=%%B*100"
- if !t! gtr 0 (
- rem powershell "[Console]::Beep(!t!, !d!)" >nul
- nircmdc beep !t! !d!
- ) else (
- ping -n 1 -w !d! 111.111 >nul
- )
- )
- )
- pause
复制代码
另外,两只老虎的曲谱数据好像有问题
感觉最后缺了一个八拍
不通乐理,不懂勿拍
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |