成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關(guān)注微信公眾號

用機(jī)器生成的音樂監(jiān)控Linux 計(jì)算機(jī)3
2007-02-11   中國IT實(shí)驗(yàn)室

如果經(jīng)過了 10 秒鐘時(shí)間,請將一個(gè)重置事件發(fā)送給 FluidSynth。這將清除仍在處理的所有剩余通知,即使它們已經(jīng)減弱為聽不見的音量級別。變量初始化后,與 us(用戶 CPU 使用量)對應(yīng)的通知將被 sendNote 命令激活。由于 us 字段的值總是在 0 到 100 之間,因此無需進(jìn)行其他處理。只要使用 sendNote 子例程在通道 14 中發(fā)送通知速率,其中最低速率為 12,最高速率為 96。

在最初通知事件后,vmstat 中的 bi(磁盤塊入)和 bo(磁盤塊出)數(shù)據(jù)字段將被聚結(jié)為范圍在 0 到 1,000 的一個(gè)字段。請注意,這些值十分適于測試計(jì)算機(jī)的標(biāo)準(zhǔn) IDE 磁盤設(shè)置。如果在整個(gè)磁盤子系統(tǒng)中有一個(gè)高磁盤配置或低磁盤配置,則可能需要修改最大值,以便更準(zhǔn)確地表示可用帶寬。一旦總磁盤使用量的范圍落在 0 到 1,000 的范圍內(nèi),就會(huì)被除以 10 以獲得 0 到 100 之間的值。然后將在通道 8 中使用通常的最小值和最大值把此值作為通知速率發(fā)送。

getNetworkStats 部分略微更復(fù)雜,但正如您所見,返回的數(shù)據(jù)庫值范圍在 0 到 100 之間,并作為另一個(gè) noteon 事件發(fā)送出去。注意此最后一個(gè)通知事件的最大值是 84。這是由于 SoundFont 僅在通道 5 中創(chuàng)建音頻通知,音頻速率范圍從 0 到 84。這可以證明足以檢測在最大負(fù)荷狀態(tài)下和聲中的變化的那些音頻通知是表示有問題的。

在圈選循環(huán)括號和計(jì)時(shí)代碼后,它就成為了子例程。


清單 5. sendNote 子例程

    
sub sendNote {
 my( $noteVal, $noteChan, $min, $max ) = @_;
 if( $noteVal < $min ){
  $noteVal = $min;
 }else{
  # divide it into twelve parts
  $noteVal = sprintf( "%0.0f", $noteVal/12);
  # reduce the note to 12 at the very least;
  $noteVal = ($noteVal * 12);
  if( $noteVal > $max ) { $noteVal = $max }
 }#if note is > minimum
 print "noteon $noteChan $noteVal 100\n";
}#sendNote
      

sendNote 子例程將獲得值在 0 到 100 之間的通知速率,并將把該通知速率轉(zhuǎn)換為基本通知中最接近 12 的通知步驟。在這種情況下,基本通知是 12,并且所有通知都將使用該值作為其 0 狀態(tài)。這就為系統(tǒng)處于低負(fù)載狀態(tài)時(shí)提供了頻率相當(dāng)?shù)偷?“跳動(dòng)”(如果為令人滿意的固定狀態(tài)賦予人性的話)。為簡單起見,所有通知都是以音量級別 100 輸出的。根據(jù)其他系統(tǒng)元素修改音量級別會(huì)是添加信息的直觀方法,而無需添加通知或和聲變化。


清單 6. getNetworkStats 子例程

    
sub getNetworkStats {
 my $networkCmd = "/sbin/ifconfig eth0 | grep 'RX bytes'";
 $networkCmd = `$networkCmd`;
 my $rxBytes = 0;
 my $txBytes = 0;
 chomp($networkCmd);
 for( $networkCmd ){
  $rxBytes = substr($_, 19);
  $rxBytes = substr($rxBytes,0,index($rxBytes," "));
  $txBytes = substr($_, 52);
  $txBytes = substr($txBytes,0,index($txBytes," "));
  my $bothBytes = $rxBytes + $txBytes;
  if( $totalPackets == 0 ){
   $totalPackets = $bothBytes;
  }else{
   # find the difference between measurements, set maximum difference to
   # 1Mbit, which works well for `saturated' on a 100Mbit/sec network
   # reduce the value by a factor of 10000, which spreads the usage 
   # nicely over 1-100 
   my $diffRX = $bothBytes - $totalPackets;
   if( $diffRX > 1000000 ){ $diffRX = 1000000 }
   $diffRX = ($diffRX / 10000);
   $totalPackets = $bothBytes;
   return( $diffRX );
  }# if not first packet check
 }# packet count check
}#getNetworkStats
      

如果 obtuse 方法接近網(wǎng)卡的負(fù)載,則這段代碼是簡單的。/sbin/ifconfig/eth0 命令的輸出將列出收到和傳輸?shù)乃行畔倲?shù)。在網(wǎng)絡(luò)連接速度為 100Mbit/sec 的測試計(jì)算機(jī)上,超過 1000,000 個(gè)傳輸或接收信息包的所有情況都被視為完全飽和。該值的范圍隨后會(huì)被調(diào)整為 0 到 100 之間的通知速率,并作為電子鋼琴通知播放。

熱詞搜索:

上一篇:用機(jī)器生成的音樂監(jiān)控Linux 計(jì)算機(jī) 2
下一篇:用機(jī)器生成的音樂監(jiān)控Linux 計(jì)算機(jī)4

分享到: 收藏
主站蜘蛛池模板: 想要女朋友电影| 午间电影| 黑帮大佬365天| 电影壮志凌云女版满天星法版在线看| 张柏芝艳照无删减版| 挨打的作文| 黄视频免费在线播放| 三年级上册修改病句专项训练| 花宵道中1| 韩义生| 当代大学德语2答案| 假男假女| 男士专用山水画图片| 1987年美国电影| 极寒之城在线观看高清完整 | 士兵突击演员| 初一英语完形填空20篇免费| 还珠格格第一部主题曲| 青岛啤酒价格| 北1| 新领导上任下属表态发言| 欧美动作大片| 李高| 凤凰资讯台| 电影《uhaw》免费观看| 冷门森系ins冷淡风壁纸| 电影暖| 蹲着吐一地呕吐视频| 深夜少妇| 张小波的个人资料简介| 春风不问路| 电影《复仇女巫》| 抖音官方| 非常外父| baoru| 尹馨演过的三部电影| 无内裤全透明柔术视频| 情侣网站视频| lol小孩子不能看的动画视频| 魔法少女砂沙美| 洗衣机水满了还在进水维修视频|