2007年12月06日

VSTのGUI

新しく作っているVSTのオシレータ部とエンベロープ部のみの画像ができました。
Reasonを参考にしてラックデザインにし、フィルタやエフェクターなどを増設したバージョンも作っていく予定です。

Jizai00.jpg

VST用のC++の記憶もだいぶ戻ってきて、そろそろコードを作成しようかと思っているのですが、他の作品も作り始めてしまった為になかなか進んでいません。。。


二兎追う者は一兎も得ず


いやぁ。。。昔の人はウマいこと言ったもんだ。。。
posted by Bumpyうるし at 01:56| Comment(4) | TrackBack(0) | ■ 開発中VST集

2007年12月01日

フォントについて

■ CFont
kSystemFont
kNormalFontVeryBig
kNormalFontBig
kNormalFont
kNormalFontSmall 5×8pix
kNormalFontSmaller
kNormalFontVerySmall
kSymbolFont
kNumStandardFonts

■ CTxtFace
kNormalFace
kBoldFace
kItalicFace
kUnderlineFace

■ CColor
kTransparentCColor
kBlackCColor
kWhiteCColor
kGreyCColor
kRedCColor
kGreenCColor
kBlueCColor
kYellowCColor
kCyanCColor
kMagentaCColor

Steinberg Media Technologies」参照
posted by Bumpyうるし at 02:01| Comment(0) | TrackBack(0) | ■ VST用GUI用語辞典

2007年11月30日

CKickButton()メンバ関数

Define a button with 2 states using 2 subpixmaps. One click on it, then the second subpixmap is displayed. When the mouse button is relaxed, the first subpixmap is framed.

2つの補助pixmapを使っている2つの値でボタンを定める。それをクリックすると、第2の補助pixmapは表示される。マウスボタンが放されると、最初の補助pixmapに戻る。

CKickButtonクラスのメンバ関数。

CKickButton(const CRect &size, CControlListener *listener, long tag, CBitmap *background, CPoint &offset)
CKickButton(const CRect &size, CControlListener *listener, long tag, CCoord heightOfOneImage, CBitmap *background, CPoint &offset)


Steinberg Media Technologies」参照
posted by Bumpyうるし at 00:56| Comment(0) | TrackBack(0) | ■ VST用GUI用語辞典

COnOffButton()メンバ関数

a button control with 2 states.
Define a button with 2 positions. The pixmap includes the 2 subpixmaps (i.e the rectangle used for the display of this button is half-height of the pixmap). When its value changes, the listener is called.

2つの値によるボタン制御。
2つの位置でボタンを定める。pixmapは、2つの補助pixmap(すなわち、長方形がこのボタンの表示のために使うのはpixmapの半分の高さ)を含む。その値が変わるとき、リスナーは呼ばれる。

COnOffButtonクラスのメンバ関数。

COnOffButton(const CRect &size, CControlListener *listener, long tag, CBitmap *background, long style=kPreListenerUpdate)

Steinberg Media Technologies」参照
posted by Bumpyうるし at 00:51| Comment(0) | TrackBack(0) | ■ VST用GUI用語辞典

CMovieBitmap()メンバ関数

a bitmap control that displays different bitmaps according to its current value.
A movie pixmap allows to display different subpixmaps according to its current value.

その現在の値によって異なるビットマップを示すビットマップのコントロール。
pixmapがその現在の値によって異なる補助pixmapを示させる。

CMovieBitmapクラスのメンバ関数。

CMovieBitmap(const CRect &size, CControlListener *listener, long tag, CBitmap *background, CPoint &offset)

Steinberg Media Technologies」参照
posted by Bumpyうるし at 00:45| Comment(0) | TrackBack(0) | ■ VST用GUI用語辞典

2007年11月27日

久々のVSTi作り〜

と言っても、ほとんどVSTi用のC++を忘れてしまいました。。。弱
こんな時に自分用にVSTi辞書を残しておいて良かった、良かった〜

未だにVSTiのSDKはバージョンアップしてなさそうなので、そのまま使用できてこれまた良かった、良かった〜


今回作ろうかと思っているのは、原点に戻り「8つの倍音正弦波を合成して1つのオシレータ波形を形成するシンセ」を作ろうかと考えています。
今まで作ったVSTiは倍音だけでなくピッチをずらした音も合成できたけど、これはノイズになってしまう欠点もある為、今回は「倍音のみ」としました。
オシレータは3基を予定しているので、合成する正弦波数は24になります。
これに、ノイズ専用オシレータ(?)を加えて減算処理(フィルタなど)をしようかと。。。

いろいろと実験をした結果、8つの正弦波で作れる波形は以下のとおりです。

■ 正弦波 Sine
sine.gif

y=sin(2πx/T)
1倍の正弦波のみで作成。
形は全く問題なし。

■ 鋸歯状波 SawTooth
sawtooth.gif

y=sin(2kπx/T)/k (k=1, 2, 3, 4, 5, 6, 7, 8)
1〜8倍の正弦波のみで作成。
本来は無限倍まで合成させるので、形はやや問題あり。。。

■ 矩形波 Square
square.gif

y=sin(2kπx/T)/k (k=1, 3, 5, 7, 9, 11, 13, 15)
奇数倍の正弦波、1〜15倍のみで作成。
こちらも無限倍まで合成させるので、形はやや問題あり。。。
でも、意外とこの波形は気に入っているのだ〜

■ 三角波 Triangle
triangle.gif

y=sin(2kπx/T)/(k*k) (k=1, 5, 9, 13)
y=-sin(2kπx/T)/(k*k) (k=3, 7, 11, 15)

奇数倍の正弦波だが、その値により正負が逆転する。
実は、これに気付くのにものすごく時間がかかった。。。
まさか正負が逆転するなんて思わないよなぁ。。。

フリーの優秀なFFTアナライザーのおかげで、やっと導き出すことが出来ました。。。ありがたや、ありがたや〜

efu's page

これも1〜15倍の奇数倍正弦波のみで作成しましたが、その割に美しい形をしていますね!


以上より、8種類の倍音正弦波を使用して様々な波形を作成できることが解ります。
今までは、Waveテーブル(出来上がった波形)を使用していましたが、今回は全てリアルタイムに波形を形成させる予定です。
これにより、Waveテーブルの問題である低域と高域でのノイズが生じない利点と、上記4種類の基本波形以外の複雑な波形を基波形として作り出すことができるわけです。
で、作成された3つの基波形を更に合成させます。

考えただけでもどんな音がするのかワクワクしますが、これでショボかったらショックですなぁ。。。


でも、更にオリジナル(?)アイデアも考えてあります。
それは、「波形を歪ませる」というアイデアなんですが、たった1つの正弦波を歪ませるだけで、自動的に倍音が増えてしまうというわけなんです。
何十個も倍音を合成しなくても良い利点はありますが、当然歪ませた為のノイズも含まれてしまいます。

Sine2.gifノーマルの正弦波

Sine3.gif少し歪ませた正弦波

以上より、周波数成分のグラフでケバケバが増えたのが解ります。
ケバケバの部分が倍音です。


これらの波形を使ったVSTiを作っていこうと思っているのですが、果たして無事完成するかどうか。。。謎
posted by Bumpyうるし at 23:46| Comment(0) | TrackBack(0) | ■ 開発中VST集

2007年10月10日

ブログ

個人的な日記は下記のブログに書いてますので、興味ある方はどうぞ。。。

http://bumpy-urushi.sblo.jp/


と言っても、今はあちこちに散らばった過去の日記をまとめている所ですが。。。
posted by Bumpyうるし at 03:12| Comment(0) | TrackBack(0) | ■ はじめに

2006年03月23日

坊主 ver1.00

フォルマント・シンセサイザー「坊主」完成!

坊主100

Name:BOUZU ver1.00
Developer:Bumpy Factory
Type:Formant Synthesizer
Cost:Free

こちらから入手できる。



母音(VOWEL)をシミュレートしたフォルマント・シンセサイザー。
モジュレーションホイールにより母音を変化させられる。
また、鼻音(NASAL)もシミュレートしており、これにより口の開閉を表現できる。
オシレータは3基で5種類の波形より選択可能。
フォルマント用に倍音の多く含まれた波形が用意されている。
当然、フォルマントの共鳴(RESO)を下げればシンセ音も出すことができる。
プリセット音色は16種類で「Preset Bank.fxb」バンクファイルを読み込む。

■ 壱 OSCILLATOR1
FORM ノコギリ波、パルス波、ノイズ、Wノコギリ波、Wパルス波の5種類
DETUNE チューニングを微調整
LEVEL 出力レベル

■ 弐 OSCILLATOR2
壱と同じ

■ 参 OSCILLATOR3
壱と同じ

■ 声 FORMANT
VOWEL I→E→A→O→Uと連続的に変化
F1 第1フォルマント
F2 第2フォルマント
NASAL 口の開閉を表現する鼻音
RESO フォルマントの強さ

■ 振 MODULATION
FORM サイン波、ノコギリ波、パルス波、三角波、ノイズの5種類
FREQ リングモジュレーションの周波数
LEVEL リングモジュレーションの出力レベル

■ 唱 CHORUS
STEREO 三部コーラスのステレオ
DETUNE 三部コーラスのデチューン
LEVEL 三部コーラスの出力レベル

■ 能 FUNCTION
BENDER ピッチベンダーのレンジ
PORTA ポルタメントタイム
POLY ポリフォニック数

■ 調 AMPLIFIER
ATTACK 立ち上がり時間
DECAY 減衰時間
SUSTAIN 持続レベル
RELEASE ノートオフ残其時間
MASTER マスター出力レベル

■ コントロールチェンジナンバー
69:壱 DETUNE
70:弐 DETUNE
71:参 DETUNE

72:壱 LEVEL
73:弐 LEVEL
74:参 LEVEL

01:声 VOWEL(モジュレーションホイール)
75:声 F1
76:声 F2
77:声 NASAL
78:声 RESO

79:振 FREQ
80:振 LEVEL

81:唱 STEREO
82:唱 DETUNE
83:唱 LEVEL

05:能 PORTA

84:調 ATTACK
85:調 DECAY
86:調 SUSTAIN
87:調 RELEASE
07:調 MASTER

■ テクニック
オシレータの「Wノコギリ波」や「Wパルス波」は、普通のノコギリ波やパルス波に低倍音を加えたもので、実際はノコギリやパルスの形をしているわけではない。
VOWEL」を動かすと「F1」「F2」が連動するが、「F1」「F2」を単体で動かすことも可能。母音の発声はこの「F1」「F2」により決定される(詳しくは「フォルマント」参照)。
NASAL」は鼻音を表現しているが、逆パラメータとなっている。したがって、右いっぱいに回すと「NASAL」効果が弱まり(開口)、左いっぱいに回すと「NASAL」効果が其まる(閉口)。
RESO」はフィルターのレゾナンス(共鳴)と同じで、フォルマントフィルターの共鳴を意味する。右いっぱいに回すと共鳴が大きくなるが、音が割れることがあるので注意(一応、自動レベル修正をしている)。
posted by Bumpyうるし at 23:21| Comment(0) | TrackBack(0) | ■ 開発中VST集

2006年03月17日

無限 ver1.02

無限102

Name:MUGEN ver1.02
Developer:Bumpy Factory
Type:Add Wave Synthesizer
Cost:Free

こちらから入手できる。

「BENDER」を「FUNCTION」の中に入れ、新たにポルタメントとポリフォニック数を導入。

■ FUNCTION
PORTA ポルタメントのON、OFF
TIME ポルタメントタイム
BENDER ピッチベンダーのレンジ
POLY ポリフォニック数
MASTER マスターボリューム
posted by Bumpyうるし at 19:09| Comment(0) | TrackBack(0) | ■ 開発中VST集

2006年03月12日

無限 ver1.01

無限101

Name:MUGEN ver1.01
Developer:Bumpy Factory
Type:Add Wave Synthesizer
Cost:Free

こちらから入手できる。

フィルターのプログラムを更新。
フィルターの効きがよくなり、「LOW」を強調する必要がなくなったので廃止。
換わりにレゾナンスの「RESO」を新設。
posted by Bumpyうるし at 18:24| Comment(0) | TrackBack(0) | ■ 開発中VST集