投稿

12月, 2012の投稿を表示しています

C言語 LADSPA サイン波生成

イメージ
Windows用Audacityで使えるLADSPAプラグインを実験的に試してみる。サンプルを改造してサイン波を作れるようにしてみた。AudacityにはGenerateにToneというサイン波を生成するものがあるが、既存トラックに直接サイン波を合成できなかったので、自作では出来るようにしてみた。 C言語の基礎は学習していたのだが、サンプルをちゃんと理解するには、もう少しレベルアップしないとダメだわ。おおよそ分かったところで、作ってみたのだが、細かな部分は理解できてないところがある。とりあえず動くレベルは作れるかな。 サイン波生成プラグイン /* namagi_sine.c 2012.12.31 compile windows gcc -shared -o namagi_sine.dll namagi_sine.c -ID compile Ubuntu gcc -fPIC -DPIC -shared -nostartfiles -o namagi_sine.so namagi_sine.c */ /**********************************************************/ #include &ltstdlib.h&gt #include &ltstring.h&gt #include &ltstdio.h&gt #include &ltmath.h&gt /**********************************************************/ #include "ladspa.h" #define MAX_FREQ 20000 #define MAX_GAIN 1 /**********************************************************/ #define SINE_CONTROL1 0 #define SINE_CONTROL2 1 #define SINE_INPUT1 2 #define SINE_OUTPUT1 3 /*********************************************************

小学生のギター練習 その記録 7週目

43-44日目 地味な練習は続く。ひたすらコードを弾くだけ。コードチェンジはさすがによくなってきた。リズムの安定感はまだまだ。気分転換にThe Beatlesの「Yellow Submarine」を弾いてみる。以前に比べてコードチェンジが軽やかになった。ちゃんとした伴奏までもう少しという感じ。押さえるポジションを半音低くして「Black Submarine」とか言って遊びだす。ちょっと面白い。歌はデスボイスが合うなと言ったら、デスボイスって何? ということだったので、ARCH ENEMYをYouTubeで観る。すげー。 45日目 一人でギターを弾いていることはない。もう基礎が出来つつあるので、一人で勝手に弾いてもらっても構わないのだが、一向にその気配はなく、他の遊びに流れてしまう。自ら弾かないようでは、あまり上達は見込めないのだが、ほぼ毎日30分程度は練習していて、習慣になりつつあるので、それはそれで継続していこうとは思う。 46日目 メトロノームを使って練習。聞きながら弾く必要があるので、慣れるまで合わすのは難しくイライラするもの。今日は電子メトロノームの音がギターに負けるので、ソフトメトロノームを使って音を聞きやすくしてみた。PCは筐体を自作してスピーカーを内蔵しているのでデカイ音が出せる。そのためか今日は以前ほど嫌がらずにやっている。 左足でメトロノームと同じビートを刻むのがお勧めだが、クラシックやブラスバンドでは怒られるらしい。理由はみっともないから。確かに大人数でやられたら、ちょっと嫌だわ。先日そんな経験したばかりなので納得。一人でギターを弾く場合は一定のパルスが常に出てくるのでよいと思う。意識せずにできるようになるには、それなりに時間がかかりそうだ。右足なら効き足なので、もう少し楽なのだが、ギターを乗せる足なので、やっぱり左足しかないな。 47日目 今日のテーマは休符の扱い。1小節とか休みがあっても、ダウンアップの空ピッキングをする。慣れてくれば本当に休んでもピタッと合うのだが、それまでは空ピッキングをした方がよいと思う。音が出ないと感覚がつかめないようなら、1拍ごとにガッとブラッシングしてもいいと思う。結構難しく、今日は成功しなかった。明日同じことをやると結構出来たりするので、すぐに出来なくても焦らずやりましょう。

C言語 LADSPAプラグイン アンプ改造

イメージ
LADSPA(ラドスパ)とは C言語の学習をさぼって半年経ってしまった。リハビリということでボチボチ再開してみようかと思う。実用的なプログラムを作った方がモチベーションも下がりにくいのでLADSPAにチャレンジしてみる。 LADSPAとはLinux Audio Developers Simple Plugin APIの略で、2000年に誕生したLinux発祥のデジタル音声信号の加工、生成規格。スタインバーグのVSTと似たようなもの。移植性の高さからWinでもMacでも利用できる。個人的によく使っているAudacityにもLADSPAのプラグインがいくつか入っている。 開発する立場から見るとLADSPAは簡素で扱いやすく思えた。以前VSTでも作ってみようかと思って開発環境だけ整えてみたけど、あまりにも巨大環境過ぎて、すぐにやめてしまった。マイクロソフトのVisual C++は、仕事で使う人にとってはよい開発環境なのかもしれないけど、趣味でちょろっと作るには本格的過ぎて・・・ その点、LADSPAは純粋なC言語で手軽に作ることができる。テキストエディタでちょろっと書いてGCCで手軽にコンパイル。開発に必要なのはladspa.hというヘッダファイルだけあればいい。PCのディスクスペースも食わず、なんともお手軽だ。 まずはサンプルを改造 さっそく作ってみようと思って調べてみる。まずはオフィシャルページにアクセスしてSDK(ladspa_sdk_1.13.tgz)を入手。 LADSPAオフィシャル http://www.ladspa.org/ SDKをダウンロードしてサンプルを眺めるところからスタート。まずはサンプルをコンパイルしてAudacityで実行してみる。LADSPAはLinux用なので、Windowsで実行する場合はdllを作る必要がある。そこでソースファイルにちょっと手を加えてdllを作ってみた。 参考になる解説サイトが皆無に等しく、海外のいくつかのサイトやら、掲示板を見て、その方法を試行錯誤。LADSPAの開発の困難さは情報不足にありそうだな。日本人で開発している人はほとんどいなさそうだわ。日本語情報はあきらめよう。 海外でもそれほど活発に開発されているとは言えない。それでもWindowsのAudacityで使えるよう

小学生のギター練習 その記録 6週目

36日目 スピッツの曲をCDに合わせて弾かせたら、ほとんど出来てしまった。昨日までのたどたどしさはどこへ行ったのか? ギターの音量調整も、CDが聴こえる程度で弾き始めた。いつものマックス音量ではない。リズムも安定している。脳みその回路がいろいろつながったのかな。今日は4回ほどCDに合わせて弾いたので回数的には多い日・・・ 後は細部の練習を少々。スピッツの曲が気に入ったらしく、他のスピッツの曲も聴きたいというので、代表的な曲か聴かせる。今日は成果がはっきりしていたので、それなりに満足感のある練習だったようだ。改めて毎日の練習って重要だわ。 37-38日目 1曲を通して弾く。つまづくところを部分練習。そしてまた通して弾く。その繰り返し。飽きたというので、新しい曲をやってみることに。スピッツの「ハネモノ」が簡単そうなので、やってみる。コードはGとCの繰り返しが多いので、わりとすぐに、それっぽく合わせることはできるようだ。何となく歌いながらも弾けている。コードとリズムの基礎ができれば、次々いろんな曲を弾けるようになるので、面白くなってくるもの。やれば出来るんだと思うことが重要。リズムがまだまだだけど。 39-40日目 やや単調な練習を続ける。本人ちょっと嫌気がさしているような・・ 「ハネモノ」のGとCをずっと繰り返したり・・ 本当はメトロノームを使いたいところだが、もう少し安定してからにしようと思う。 41日目 弾き語りは歌も同時にこなす必要があるので、ギターが安定してきたところで試しにやってみる。やはり同時にこなすのは難しいようだ。頭でコントロールしようと思ってもうまく行かないと思うので、ひたすら慣らすしかない。はじめは小節の頭だけ弾くなどシンプルな伴奏で1曲まるまる弾くのがよさそうだ。ギターに対してあまり意識を使わずに済むので。 42日目 毎日似たような練習ばかり。練習量が足りないから、なかなか進めないのだな。それでも僅かに確実に進歩はしているけど。今まで使っていた薄いセルロイドピックが割れたので、手持ちのいろんなピックを試したりした。音とか弾いた感触が違うので、弾き比べるのは楽しい。たまにはこういうことに時間を使ってもいいかな。 5週目<     >7週目 ギター練習

小学生のギター練習 その記録 5週目

イメージ
29日目 曲を並行して練習してみようということで、ギターで弾きやすいスピッツの曲をいろいろ聴かせる。その中で「チェリー」がよさそうだということになった。この曲って弾き語りでは人気なのだね。YouTubeを見ても、いろんな人が演奏している。個人的にもギターを始めたとき少し練習はしたが、あまりピンとこない曲という印象。でも弾いてみたいということで、コードを拾ってそれっぽく弾いてみる。うーん、やっぱり初心者向けという気がしないなぁ。リズムは細かく、ややハネている。それにシンコペーション的な部分も多い。まぁやりたいというのだからチャレンジしてみるか。特に中間部のジャッジャッジャッジャッというところが気に入って、いきなりそこから練習開始。この部分のコードはFだが問題はなさそうだ。この曲のコード進行は C G Am Em F C F G という定番進行。この進行って一般的受けするらしくヒットソングに多い。この進行で適当に作曲するのも面白いかもしれない。 30日目 16分の練習。スピッツの「チェリー」を弾くには必要。やらせてみると難しいようだ。気長にやりましょう。16分の細かなリズムを日本では16ビートと言うが、海外ではそういう言い方はないようだ。確かに楽器関係の仕事をしていたときも、そういう言い方はしなかったなぁ。「Funk beats」とか、そんな言い方だったと思う。改めて考えてみると音符の細かさだけでリズムの種類を分けてしまうのは危険だと思うわ。 練習のパターンは下のようなもの。単純に16分音符を並べて、アクセントだけつけたものからスタートして、4つ目のパターンを目指す。4つ目のパターンは実際の曲でよく使われていて「チェリー」もこれに近い。 31日目 今日はひたすら1曲を飽きるまで練習。コードチェンジがまだまだ。でも手元を確認しなくても押さえられるようにはなってきた。ギターをはじめて1ヶ月たってしまった。もう少し弾けるようになると思っていたが、練習量の少なさが響いている。 32-35日目 1日30分未満と練習量が少ない。この数日あまり上達しないので、やる気がなくなったのか? 楽器演奏はスポーツと同じで体に覚えこませる必要があるので、それなりに時間がかかるのだ。焦る必要もないので気長に取り組みましょう。 4

小学生のギター練習 その記録 4週目

イメージ
22日目 体でリズムが取れるようになるには時間がかかりそうだ。左足でビートを刻むのが難関。ギターと一緒にやると、足がギターのリズムにつられて、おかしくなる。でも、これができないと話にならないので、自然に出来るようになるまで気長に取り組むしかない。ということで、こんな方法を試してみる。 「m」がメトロノームの音で、4分を刻む。同時に足でも刻む。ギターで弾くのは頭だけなので、足に集中することができる。2つ目は頭を弾かずに、2、3、4拍を弾く。頭のメトロノームの音がちゃんと聞こえるので、見失いにくい。やらせてみると、はじめは合っていたけど徐々にズレてしまった。安定して弾けるようになるには数ヶ月かかるかな。この手の練習は苦痛のようなので、ほどほどでおしまい。 それにしてもメトロノームがしょぼいかも。古いSEIKO DM-20を使っているが、ギターが鳴ると、かき消されて聴こえない・・・ 小音量で弾けば聴こえるのだが、そういうコントロールは、まだできないし。 23日目 Fが鳴るようになってきた。瞬時には押さえられないけど、それも時間の問題だろう。今日もリズムの練習を繰り返す。この数日はあまり上達を実感できないので面白みがないようだ。曲もやってみる。ビートルズの「Yellow Submarine」とか「A Hard Day's Night」を弾いてみるが、全体を通して一定のリズムで弾くことはまだできない。バレーコードのところでどうしても止まってしまう。そこで同じくビートルズの「Let It Be」を5capoでFなしで弾くことにした。コードの数も少ないし、比較的簡単なのだが、それでも数日はかかりそうだ。 24日目 コード進行をいろいろ弾いて行く練習だが、あまり上達せず停滞気味。やっぱり練習量が少ないわ。1日30分では、やらないよりマシ程度の練習時間。準備体操程度で終わってしまう感じ。毎日2時間ぐらい練習と呼べる練習をすれば、1ヶ月で、かなり上達するはずだが、このペースだと、そこそこ弾けるまで半年ぐらいかかりそうかも。 25日目 具体的な曲の練習。ビートルズとかスピッツとか。リズムがちゃんと取れていないが、これは気長にやって行くしかないだろう。体を使ってリズムを出すには、少なくとも数ヶ月は必要だと思う。 今日はメロディとコードの