人気ブログランキング | 話題のタグを見る


 ―学校や家庭、近所やゲーム内、PC前での出来事―
 ―そんな事をだらだらと書き綴る、ここはそんな場所― by.XYLAN @ TEPRA

プログラマー修行中。@TEPRA@XYLAN
by advanced_tepra
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
カテゴリ
気まぐれ更新モノ
アクセスカウンターアクセスカウンター情報「逃げ出したい!」自分を救う本―もう投げ出さない6つのトレーニングおしゃれ生活ルール―シンプル、すっきり、快適な暮らし






---近況---

・メモの内容がかなり
多くなってきたのでリンクの
説明を省くようにしました
ゴメンナサイ´ω`

・ゲーム作成、主にC++。

・イラスト、主にPhotoshop

・DTM、主にMSP

・chiptune、NSFとか

・ドット、主にGraphicsGale

・HTML・CGI勉強中。

・Pixiv登録しました
XYLAN@マイページ

・動画投稿してます
ニコニコ動画

--外部リンク--

Radical Revision
↑鯖死亡中
すいたこーぼー
fatdesign

-非exciteブログ-

我が人生、之朋也

あろ戦記
フォロー中のブログ
Linux・・・
  
衝動的にPCのビープ音で曲を演奏してみようと思ったXYLANです。



PCのビープ音って1音しか鳴らないですよね。

高速アルペジオで和音演奏させようと思ったけど、
そうなるとBPM計算とかどうやっていいか分からなかったので断念。

で、どんなプログラム・・・もといマクロを組んだのかというと

#define [音階ドイツ表記](i)Beep2(音周波数*oct,2000/(i)/8*quantize*120/bpm);\
Sleep2(2000/(i)/8*(8-quantize))

これだけ。
本当に衝動的だったので向こう見ずで真っ直ぐなプログラム。
ごちゃごちゃしてますがコンパイラで最適化されるので大丈夫でしょう。
あ、[i]は「何分音符?」ていうアレです。
octはオクターブ、quantizeはクオンタイズ、bpmはBeat Per Minuteです。
Beep2、Sleep2は、(変数宣言とかとかの都合上)送られてくる引数がdoubleなので

Beep2、Sleep2という関数を新しく作り、
unsigned longにキャストしてBeep,Sleepに値を送るだけの関数です。

あとは・・・休符マクロとオクターブ上下のマクロがあったかな


あとはあれです。main関数に

void main(){
  bpm=165; quantize=7 oct=1;
    //oct=1でオクターブ3 /2でオクターブ下げ *2でオクターブ上げ
  
  e(8); e(8); r(8); e(8); r(8); c(8); e(8); r(8); g(8); r(4); r(8); octdn; g(8);
    //ドイツ表記で打ち込むんだー!
}

てな感じ。 rは休符。

うーむ。よくもまぁこんなめちゃくちゃなプログラムで1曲作れたな・・・
ニコニコに投稿してたNSFの元データ…
MMLをコピーして数字やオクターブ上下の部分を置換しただけなんですけどね。
RED ZONEをビープ1音で演奏…録音できたら投稿するかも…

プログラム自体はホームページに置く予定なんですけどね。
ヘッダファイルはとても人に見せられたもんじゃないので公開しません。
半分以上公開してますが・・・




最近いろいろなものに興味を持ちすぎて困る。
どうしよう。
もう入試もそう遠くないというのに・・・

足もとに置いてあるLinuxPCが気になる・・・気になる・・・
去年の誕生日にプレゼントされたものなのですが・・・
ホームページ作ってると・・・サーバ構築したくなってきた・・・
シスアドの勉強してる時に発覚したのですが、私はネットワークに関することがかなり苦手です。
基本情報合格った今でもIPアドレスのサブネットマスクとかとかが全然わからない。

しかし苦手を克服するという意味では・・・やってみるのもありかな


せっかくのMyLinuxなんだ。このまま腐らせちゃ勿体ない

いつかやってみよう。
by advanced_tepra | 2009-06-21 16:43 | 日常生活を描きし日記
<< お片付け 蚊…蚊… >>


タグ
最新のトラックバック
以前の記事
検索
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧