<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95</id>
	<title>VSTe VSTGUI inline UI Editor を使わないで、Viewに出力音声波形を描画する方法 - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://twiki.yo-net.jp/index.php?action=history&amp;feed=atom&amp;title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95"/>
	<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;action=history"/>
	<updated>2026-04-05T21:59:43Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4925&amp;oldid=prev</id>
		<title>2023年6月17日 (土) 03:12にYo-netによる</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4925&amp;oldid=prev"/>
		<updated>2023-06-17T03:12:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年6月17日 (土) 12:12時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l729&quot;&gt;729行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;729行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　同じような仕組みを使えば、周波数成分を描画するような処理も作れると思います。自分で描画できるようになれば、もうなんでもできるようになったと考えて問題ないでしょう。あとは、これをVSTGUI inline UI Editorを使って描画できるようになればトレンド(流行)にもついていけるようになったといえるので、そこだけ考えないと駄目だな。もうちょっと工夫が必要。基本的な音声信号処理も本を買えば、ギターの基本的なペダル(EQ,マルチバンドEQ,コンプ,FAZZ,OverDrive,Distortion,コーラス,リバーブ,ノイズゲート,フランジャー,ワウ)を網羅してくれていますので、自分で音声信号処理もできるようになると思います。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　同じような仕組みを使えば、周波数成分を描画するような処理も作れると思います。自分で描画できるようになれば、もうなんでもできるようになったと考えて問題ないでしょう。あとは、これをVSTGUI inline UI Editorを使って描画できるようになればトレンド(流行)にもついていけるようになったといえるので、そこだけ考えないと駄目だな。もうちょっと工夫が必要。基本的な音声信号処理も本を買えば、ギターの基本的なペダル(EQ,マルチバンドEQ,コンプ,FAZZ,OverDrive,Distortion,コーラス,リバーブ,ノイズゲート,フランジャー,ワウ)を網羅してくれていますので、自分で音声信号処理もできるようになると思います。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　オススメの本は以下のとおりです。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[https://amzn.to/3pbY9xN VSTプラグイン(著:うつぼかずら、版:工学社)]Webの方が詳しい。[https://www.utsbox.com/ https://www.utsbox.com/]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[https://amzn.to/43KKmgK サウンドプログラミング入門――音響合成の基本とC言語による実装(Software Design plus)(著:青木直史、版:技術評論社)]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[https://amzn.to/442LOdT C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理(著:青木直史、版:OHM社)]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[https://amzn.to/463C2KF プログラム101付き 音声信号処理(ディジタル信号処理シリーズ)(著:川村新、版:CQ出版)]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*[https://amzn.to/466vVoO WAVプログラミング―C言語で学ぶ音響処理(著:北山洋幸、版:カットシステム)]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4924&amp;oldid=prev</id>
		<title>2023年6月17日 (土) 02:39にYo-netによる</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4924&amp;oldid=prev"/>
		<updated>2023-06-17T02:39:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年6月17日 (土) 11:39時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l7&quot;&gt;7行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;7行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　ViewContainerというコントロールには、CViewクラスを継承したコンテキストを追加するクラスがあるので、簡単そうに思えたのでやってみたらできちゃったので、公開しておこうと思います。各コントロールの画像は自分で用意して下さい。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　ViewContainerというコントロールには、CViewクラスを継承したコンテキストを追加するクラスがあるので、簡単そうに思えたのでやってみたらできちゃったので、公開しておこうと思います。各コントロールの画像は自分で用意して下さい。冷たいね。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l723&quot;&gt;723行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;723行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} }  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} }  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　ASIO設定で256サンプル毎に処理する場合、サンプリング周波数44100では、5.78ミリ秒分のデータごとに処理され、遅延で音が鳴ります。5.78ミリ秒分のデータで波形を描くとC4の音は440Hzで1周期が2.27ミリ秒ですので、2周期分くらいが1回の処理でとらえられます。もう少し、とらえたいので、履歴3個分くらいのデータを描画すればそれなりに波形をとらえることができると思って3履歴にしました。可変にした方が使いやすいと思うので、コントロールを追加して、履歴の個数を選べるようにするという改良をすると良いと思っています。あとは、間引きして描画するため、データを描画用のデータ配列に写しとる処理と履歴配列の調整をする処理を0～9までをカウントしつづける中で0, 2, 3, 6, 7だけ更新するという仕組みにしています。気分です気分。処理を軽減する部分はもうちょっと考えないと駄目ですね。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　同じような仕組みを使えば、周波数成分を描画するような処理も作れると思います。自分で描画できるようになれば、もうなんでもできるようになったと考えて問題ないでしょう。あとは、これをVSTGUI inline UI Editorを使って描画できるようになればトレンド(流行)にもついていけるようになったといえるので、そこだけ考えないと駄目だな。もうちょっと工夫が必要。基本的な音声信号処理も本を買えば、ギターの基本的なペダル(EQ,マルチバンドEQ,コンプ,FAZZ,OverDrive,Distortion,コーラス,リバーブ,ノイズゲート,フランジャー,ワウ)を網羅してくれていますので、自分で音声信号処理もできるようになると思います。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　あとはVSTiの作り方とかサンプラーみたいなVSTiをつくるというユーザインタフェイスの処理部分の勉強が必要かもしれません。自分も足りない部分を記事として書き起こすようにはしてみたいです。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[プラグイン VST#VSTeプログラミング初歩|VSTeプログラミング初歩]]に戻る。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[プラグイン VST#VSTeプログラミング初歩|VSTeプログラミング初歩]]に戻る。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4923&amp;oldid=prev</id>
		<title>2023年6月16日 (金) 15:49にYo-netによる</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4923&amp;oldid=prev"/>
		<updated>2023-06-16T15:49:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年6月17日 (土) 00:49時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[プラグイン VST#VSTeプログラミング初歩|VSTeプログラミング初歩]]に戻る。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== '''概要''' ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== '''概要''' ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからなかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからなかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l722&quot;&gt;722行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;723行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} }  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} }  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;　&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[プラグイン VST#VSTeプログラミング初歩|VSTeプログラミング初歩]]に戻る。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4922&amp;oldid=prev</id>
		<title>Yo-net: /* 概要 */</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4922&amp;oldid=prev"/>
		<updated>2023-06-16T15:47:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;概要&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年6月17日 (土) 00:47時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== '''概要''' ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== '''概要''' ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　VSTGUI inline UI &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Editorの使い方って、あまり情報がないので、よくわからないかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　VSTGUI inline UI &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Editorの使い方って、あまり情報がないので、よくわからなかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4921&amp;oldid=prev</id>
		<title>2023年6月16日 (金) 15:18にYo-netによる</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4921&amp;oldid=prev"/>
		<updated>2023-06-16T15:18:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年6月17日 (土) 00:18時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== '''概要''' ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== '''概要''' ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからないかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからないかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[ファイル:VSTGUI Waveform UI.png|400px|thumb|none|波形ViewのViewContainerControl]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4919&amp;oldid=prev</id>
		<title>2023年6月16日 (金) 13:46にYo-netによる</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4919&amp;oldid=prev"/>
		<updated>2023-06-16T13:46:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;amp;diff=4919&amp;amp;oldid=4918&quot;&gt;差分を表示&lt;/a&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
	<entry>
		<id>https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4918&amp;oldid=prev</id>
		<title>Yo-net: ページの作成:「　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからないかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。   　ViewContainerというコントロールには、CViewクラスを継承したコンテキストを追加するクラスがあるので、簡単そうに思えたのでやってみたらできちゃったので…」</title>
		<link rel="alternate" type="text/html" href="https://twiki.yo-net.jp/index.php?title=VSTe_VSTGUI_inline_UI_Editor_%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84%E3%81%A7%E3%80%81View%E3%81%AB%E5%87%BA%E5%8A%9B%E9%9F%B3%E5%A3%B0%E6%B3%A2%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95&amp;diff=4918&amp;oldid=prev"/>
		<updated>2023-06-16T11:34:02Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからないかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。   　ViewContainerというコントロールには、CViewクラスを継承したコンテキストを追加するクラスがあるので、簡単そうに思えたのでやってみたらできちゃったので…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;　VSTGUI inline UI Editorの使い方って、あまり情報がないので、よくわからないかったのですが、とりあえず、使わない方法はかなり情報があったので、音声波形を描画することができました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　ViewContainerというコントロールには、CViewクラスを継承したコンテキストを追加するクラスがあるので、簡単そうに思えたのでやってみたらできちゃったので、公開しておこうと思います。各コントロールの画像は自分で用意して下さい。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　ファイル構成は以下のとおりです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*fuid.h&lt;br /&gt;
*def.h&lt;br /&gt;
*GlobalConstants.h&lt;br /&gt;
*factory.cpp&lt;br /&gt;
*resource.rc&lt;br /&gt;
*proc.h&lt;br /&gt;
*proc.cpp&lt;br /&gt;
*view.h&lt;br /&gt;
*view.cpp&lt;br /&gt;
*guieditor.h&lt;br /&gt;
*guieditor.cpp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*fuid.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;quot;pluginterfaces\base\funknown.h&amp;quot;&lt;br /&gt;
#include &amp;quot;def.h&amp;quot;&lt;br /&gt;
namespace Steinberg{&lt;br /&gt;
namespace Vst {&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// FUID&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
static const FUID ProcessorUID (0x6169B858, 0x954548D0, 0xBE846909, 0x7F12CEE0);&lt;br /&gt;
static const FUID ControllerUID(0x994440DB, 0x57DA4F70, 0xAF20CD49, 0xBE7C4EB5);&lt;br /&gt;
} }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*def.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#ifndef __DEF_H__&lt;br /&gt;
#define __DEF_H__&lt;br /&gt;
#include &amp;lt;math.h&amp;gt;&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// PARAM TAG&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
#define PARAM_DEPTH_TAG 100&lt;br /&gt;
#define PARAM_SPEED_TAG 101&lt;br /&gt;
#define PARAM_TYPE_TAG  102&lt;br /&gt;
#define PARAM_VIEW_TAG  103&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*GlobalConstants.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#include &amp;quot;guieditor.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#ifndef __CxxGUIEdit_Instance__&lt;br /&gt;
#define __CxxGUIEdit_Instance__&lt;br /&gt;
extern Steinberg::Vst::CxxGUIEdit* CxxGUIEdit_Instance;&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*factory.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;public.sdk/source/main/pluginfactory.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fuid.h&amp;quot;&lt;br /&gt;
#include &amp;quot;proc.h&amp;quot;&lt;br /&gt;
#include &amp;quot;view.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// 固有情報１&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
#define MYVST_VENDOR   &amp;quot;CxxVST&amp;quot;&lt;br /&gt;
#define MYVST_URL      &amp;quot;https://wiki.yo-net.jp/&amp;quot;&lt;br /&gt;
#define MYVST_EMAIL    &amp;quot;mailto:info_@yo-net.jp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// 固有情報２&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
#define MYVST_VSTNAME  &amp;quot;CxxVST ViewGUI&amp;quot;&lt;br /&gt;
#define MYVST_VERSION  &amp;quot;0&amp;quot; &lt;br /&gt;
#define MYVST_SUBCATEGORIES Vst::PlugType::kFx&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//bool DeinitModule() { return true; }&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// 固有情報マクロ定義&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
BEGIN_FACTORY_DEF(MYVST_VENDOR, MYVST_URL, MYVST_EMAIL)&lt;br /&gt;
&lt;br /&gt;
	DEF_CLASS2(INLINE_UID_FROM_FUID(Steinberg::Vst::ProcessorUID),&lt;br /&gt;
	           PClassInfo::kManyInstances,&lt;br /&gt;
	           kVstAudioEffectClass,&lt;br /&gt;
	           MYVST_VSTNAME,&lt;br /&gt;
	           Vst::kDistributable,&lt;br /&gt;
	           MYVST_SUBCATEGORIES,&lt;br /&gt;
	           MYVST_VERSION,&lt;br /&gt;
	           kVstVersionString,&lt;br /&gt;
	           Steinberg::Vst::CxxProc::createInstance )&lt;br /&gt;
&lt;br /&gt;
	DEF_CLASS2(INLINE_UID_FROM_FUID(Steinberg::Vst::ControllerUID),&lt;br /&gt;
	           PClassInfo::kManyInstances,&lt;br /&gt;
			   kVstComponentControllerClass,&lt;br /&gt;
			   MYVST_VSTNAME &amp;quot; Controller&amp;quot;,	&lt;br /&gt;
			   0,						    &lt;br /&gt;
			   &amp;quot;&amp;quot;,						    &lt;br /&gt;
			   MYVST_VERSION,&lt;br /&gt;
			   kVstVersionString,&lt;br /&gt;
			   Steinberg::Vst::CxxEdit::createInstance )&lt;br /&gt;
&lt;br /&gt;
END_FACTORY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*resource.rc&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;commctrl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;richedit.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL&lt;br /&gt;
&lt;br /&gt;
background.png   PNG   &amp;quot;.\\images\\background.png&amp;quot;&lt;br /&gt;
background2.png   PNG   &amp;quot;.\\images\\background2.png&amp;quot;&lt;br /&gt;
knob.png         PNG   &amp;quot;.\\images\\knob.png&amp;quot;&lt;br /&gt;
knob_handle.png  PNG   &amp;quot;.\\images\\knob_handle.png&amp;quot;&lt;br /&gt;
slider.png         PNG   &amp;quot;.\\images\\slider.png&amp;quot;&lt;br /&gt;
slider_handle.png  PNG   &amp;quot;.\\images\\slider_handle.png&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*proc.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#ifndef __PROC_H__&lt;br /&gt;
#define __PROC_H__&lt;br /&gt;
#include &amp;quot;public.sdk/source/vst/vstaudioeffect.h&amp;quot;&lt;br /&gt;
#include &amp;quot;pluginterfaces/vst/ivstparameterchanges.h&amp;quot;&lt;br /&gt;
#include &amp;quot;vstgui/lib/cview.h&amp;quot;&lt;br /&gt;
#include &amp;quot;def.h&amp;quot;&lt;br /&gt;
#include &amp;quot;guieditor.h&amp;quot;&lt;br /&gt;
#include &amp;lt;functional&amp;gt;&lt;br /&gt;
&lt;br /&gt;
namespace Steinberg{&lt;br /&gt;
namespace Vst {&lt;br /&gt;
&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// Procクラス&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
class CxxProc : public AudioEffect&lt;br /&gt;
{&lt;br /&gt;
protected:&lt;br /&gt;
	ParamValue depth;&lt;br /&gt;
	ParamValue freq;&lt;br /&gt;
	int32      type;&lt;br /&gt;
	ParamValue theta;&lt;br /&gt;
public:&lt;br /&gt;
	CxxProc();&lt;br /&gt;
	~CxxProc();&lt;br /&gt;
	tresult PLUGIN_API initialize(FUnknown* context);&lt;br /&gt;
	tresult PLUGIN_API setBusArrangements(SpeakerArrangement* inputs, int32 numIns, SpeakerArrangement* outputs, int32 numOuts);&lt;br /&gt;
	tresult PLUGIN_API process(ProcessData&amp;amp; data);&lt;br /&gt;
	static FUnknown* createInstance(void*) { return (IAudioProcessor*)new CxxProc(); }&lt;br /&gt;
private:&lt;br /&gt;
	Sample32** outL3Times;  &lt;br /&gt;
	Sample32** outR3Times;  &lt;br /&gt;
	int bufferSize;  &lt;br /&gt;
	bool initialized;  &lt;br /&gt;
	int TimesCount;&lt;br /&gt;
};&lt;br /&gt;
} } &lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*proc.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;def.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fuid.h&amp;quot;&lt;br /&gt;
#include &amp;quot;proc.h&amp;quot;&lt;br /&gt;
namespace Steinberg{&lt;br /&gt;
namespace Vst {&lt;br /&gt;
CxxProc::CxxProc()&lt;br /&gt;
{&lt;br /&gt;
	setControllerClass(ControllerUID);&lt;br /&gt;
	outL3Times = nullptr;&lt;br /&gt;
	outR3Times = nullptr;&lt;br /&gt;
	bufferSize = 0;&lt;br /&gt;
	initialized = false;&lt;br /&gt;
	TimesCount = 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tresult PLUGIN_API CxxProc::initialize(FUnknown* context)&lt;br /&gt;
{&lt;br /&gt;
	tresult result = AudioEffect::initialize(context);&lt;br /&gt;
	if (result == kResultTrue)&lt;br /&gt;
	{&lt;br /&gt;
		addAudioInput(STR16(&amp;quot;AudioInput&amp;quot;), SpeakerArr::kStereo);&lt;br /&gt;
		addAudioOutput(STR16(&amp;quot;AudioOutput&amp;quot;), SpeakerArr::kStereo);&lt;br /&gt;
		addEventInput(STR16(&amp;quot;Event Input&amp;quot;), 1);&lt;br /&gt;
		depth = 1.0f;&lt;br /&gt;
		freq = 5.0f;&lt;br /&gt;
		type = 0;&lt;br /&gt;
		theta = 0.0f;&lt;br /&gt;
	}&lt;br /&gt;
	return result;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tresult PLUGIN_API CxxProc::setBusArrangements(SpeakerArrangement* inputs, int32 numIns, SpeakerArrangement* outputs, int32 numOuts)&lt;br /&gt;
{&lt;br /&gt;
	if (numIns == 1 &amp;amp;&amp;amp; numOuts == 1 &amp;amp;&amp;amp; inputs[0] == SpeakerArr::kStereo &amp;amp;&amp;amp; outputs[0] == SpeakerArr::kStereo)&lt;br /&gt;
	{&lt;br /&gt;
		return AudioEffect::setBusArrangements(inputs, numIns, outputs, numOuts);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return kResultFalse;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CxxProc::~CxxProc() {&lt;br /&gt;
	if (outL3Times != nullptr)&lt;br /&gt;
	{&lt;br /&gt;
		for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
		{&lt;br /&gt;
			delete[] outL3Times[i];  &lt;br /&gt;
		}&lt;br /&gt;
		delete[] outL3Times;&lt;br /&gt;
	}&lt;br /&gt;
	if (outR3Times != nullptr)&lt;br /&gt;
	{&lt;br /&gt;
		for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
		{&lt;br /&gt;
			delete[] outR3Times[i];  &lt;br /&gt;
		}&lt;br /&gt;
		delete[] outR3Times;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
tresult PLUGIN_API CxxProc::process(ProcessData&amp;amp; data)&lt;br /&gt;
{&lt;br /&gt;
	if (data.inputParameterChanges != NULL)&lt;br /&gt;
	{&lt;br /&gt;
		int32 paramChangeCount = data.inputParameterChanges-&amp;gt;getParameterCount();&lt;br /&gt;
		for (int32 i = 0; i &amp;lt; paramChangeCount; i++)&lt;br /&gt;
		{&lt;br /&gt;
			IParamValueQueue* queue = data.inputParameterChanges-&amp;gt;getParameterData(i);&lt;br /&gt;
			if (queue != NULL)&lt;br /&gt;
			{&lt;br /&gt;
				int32 tag = queue-&amp;gt;getParameterId();&lt;br /&gt;
				int32 valueChangeCount = queue-&amp;gt;getPointCount();&lt;br /&gt;
				ParamValue value;&lt;br /&gt;
				int32 sampleOffset;&lt;br /&gt;
				if (queue-&amp;gt;getPoint(valueChangeCount - 1, sampleOffset, value) == kResultTrue)&lt;br /&gt;
				{&lt;br /&gt;
					switch (tag)&lt;br /&gt;
					{&lt;br /&gt;
					case PARAM_DEPTH_TAG:&lt;br /&gt;
						depth = value;&lt;br /&gt;
						break;&lt;br /&gt;
					case PARAM_SPEED_TAG:&lt;br /&gt;
						freq = (29.5f * value) + 0.5f; &lt;br /&gt;
						break;&lt;br /&gt;
					case PARAM_TYPE_TAG:&lt;br /&gt;
						type = (int32)(value * 2.0f);&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	Sample32* inL = data.inputs[0].channelBuffers32[0];&lt;br /&gt;
	Sample32* inR = data.inputs[0].channelBuffers32[1];&lt;br /&gt;
	Sample32* outL = data.outputs[0].channelBuffers32[0];&lt;br /&gt;
	Sample32* outR = data.outputs[0].channelBuffers32[1];&lt;br /&gt;
#if DEVELOPMENT // 必ず DEVELOPMENT で囲むこと。&lt;br /&gt;
//	FDebugPrint(&amp;quot;data.numSamples:%5d\n&amp;quot;, data.numSamples);&lt;br /&gt;
#endif	&lt;br /&gt;
	for (int32 i = 0; i &amp;lt; data.numSamples; i++)&lt;br /&gt;
	{&lt;br /&gt;
		Sample32 a = (sin(theta) * 0.5f) + 0.5f;&lt;br /&gt;
		Sample32 b = (1.0f - depth) + (a * depth);&lt;br /&gt;
		Sample32 c = (1.0f - depth) + ((1.0f - a) * depth);&lt;br /&gt;
&lt;br /&gt;
		switch (type)&lt;br /&gt;
		{&lt;br /&gt;
		case 0: &lt;br /&gt;
			outL[i] = depth * inL[i];&lt;br /&gt;
			outR[i] = depth * inR[i];&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 1: &lt;br /&gt;
			outL[i] = (a * depth) * inL[i];&lt;br /&gt;
			outR[i] = (a * depth) * inR[i];&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case 2: &lt;br /&gt;
			outL[i] = b * inL[i];&lt;br /&gt;
			outR[i] = c * inR[i];&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		theta += (2.0f * 3.14159265f * freq) / 44100.0f;&lt;br /&gt;
	}&lt;br /&gt;
	if (!initialized)&lt;br /&gt;
	{&lt;br /&gt;
		if (data.numSamples &amp;lt;= 0)&lt;br /&gt;
		{&lt;br /&gt;
			return kResultFalse;&lt;br /&gt;
		}&lt;br /&gt;
		bufferSize = data.numSamples;&lt;br /&gt;
		outL3Times = new Sample32 * [3];&lt;br /&gt;
		outR3Times = new Sample32 * [3];&lt;br /&gt;
		for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
		{&lt;br /&gt;
			outL3Times[i] = new Sample32[bufferSize];&lt;br /&gt;
			outR3Times[i] = new Sample32[bufferSize];&lt;br /&gt;
		}&lt;br /&gt;
		initialized = true;&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		if (data.numSamples != bufferSize)&lt;br /&gt;
		{&lt;br /&gt;
			bufferSize = data.numSamples;&lt;br /&gt;
			Sample32** newOutL3Times = new Sample32 * [3];&lt;br /&gt;
			Sample32** newOutR3Times = new Sample32 * [3];&lt;br /&gt;
			for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
			{&lt;br /&gt;
				newOutL3Times[i] = new Sample32[bufferSize];&lt;br /&gt;
				newOutR3Times[i] = new Sample32[bufferSize];&lt;br /&gt;
			}&lt;br /&gt;
			for (int i = 0; i &amp;lt; 3; ++i)&lt;br /&gt;
			{&lt;br /&gt;
				delete[] outL3Times[i];&lt;br /&gt;
				delete[] outR3Times[i];&lt;br /&gt;
			}&lt;br /&gt;
			delete[] outL3Times;&lt;br /&gt;
			delete[] outR3Times;&lt;br /&gt;
			outL3Times = newOutL3Times;&lt;br /&gt;
			outR3Times = newOutR3Times;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	Sample32* temp;&lt;br /&gt;
	switch(TimesCount){&lt;br /&gt;
	case 0:&lt;br /&gt;
	case 2:&lt;br /&gt;
	case 3:&lt;br /&gt;
	case 6:&lt;br /&gt;
	case 7:&lt;br /&gt;
		temp = outL3Times[2];&lt;br /&gt;
		outL3Times[2] = outL3Times[1];&lt;br /&gt;
		outL3Times[1] = outL3Times[0];&lt;br /&gt;
		outL3Times[0] = temp;&lt;br /&gt;
&lt;br /&gt;
		temp = outR3Times[2];&lt;br /&gt;
		outR3Times[2] = outR3Times[1];&lt;br /&gt;
		outR3Times[1] = outR3Times[0];&lt;br /&gt;
		outR3Times[0] = temp;&lt;br /&gt;
		for (int i = 0; i &amp;lt; bufferSize; ++i)&lt;br /&gt;
		{&lt;br /&gt;
			outL3Times[0][i] = outL[i];&lt;br /&gt;
			outR3Times[0][i] = outR[i];&lt;br /&gt;
		}&lt;br /&gt;
#if DEVELOPMENT // 必ず DEVELOPMENT で囲むこと。&lt;br /&gt;
		//FDebugPrint(&amp;quot;outL3Times1:%5f, %5f, %5f, %5f\n&amp;quot;, outL3Times[0][1], outL3Times[0][2], outL3Times[0][3], outL3Times[0][4]);&lt;br /&gt;
		//FDebugPrint(&amp;quot;outL3Times2:%5f, %5f, %5f, %5f\n&amp;quot;, outL3Times[1][1], outL3Times[1][2], outL3Times[1][3], outL3Times[1][4]);&lt;br /&gt;
		//FDebugPrint(&amp;quot;outL3Times3:%5f, %5f, %5f, %5f\n\n&amp;quot;, outL3Times[2][1], outL3Times[2][2], outL3Times[2][3], outL3Times[2][4]);&lt;br /&gt;
#endif&lt;br /&gt;
		break;&lt;br /&gt;
	default:&lt;br /&gt;
		break;&lt;br /&gt;
	}&lt;br /&gt;
	TimesCount++;&lt;br /&gt;
	if (TimesCount &amp;gt;= 10) {&lt;br /&gt;
		TimesCount = 0;&lt;br /&gt;
	}&lt;br /&gt;
	if(CxxGUIEdit_Instance != nullptr){&lt;br /&gt;
		CxxGUIEdit_Instance-&amp;gt;setSingnal(outL3Times, outR3Times, data.numSamples);&lt;br /&gt;
	}&lt;br /&gt;
	return kResultTrue;&lt;br /&gt;
}&lt;br /&gt;
} } &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*view.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#ifndef __CONTROLLER_H__&lt;br /&gt;
#define __CONTROLLER_H__&lt;br /&gt;
#include &amp;quot;public.sdk/source/vst/vsteditcontroller.h&amp;quot;&lt;br /&gt;
#include &amp;quot;def.h&amp;quot;&lt;br /&gt;
#include &amp;quot;guieditor.h&amp;quot;&lt;br /&gt;
namespace Steinberg{&lt;br /&gt;
namespace Vst {&lt;br /&gt;
class CxxEdit : public EditController&lt;br /&gt;
{&lt;br /&gt;
public:&lt;br /&gt;
	tresult PLUGIN_API initialize(FUnknown* context);&lt;br /&gt;
	IPlugView* PLUGIN_API createView(const char* name);&lt;br /&gt;
	static FUnknown* createInstance(void*) { return (IEditController*)new CxxEdit(); }&lt;br /&gt;
};&lt;br /&gt;
} } &lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*view.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;def.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fuid.h&amp;quot;&lt;br /&gt;
#include &amp;quot;view.h&amp;quot;&lt;br /&gt;
namespace Steinberg{&lt;br /&gt;
namespace Vst {&lt;br /&gt;
tresult PLUGIN_API CxxEdit::initialize(FUnknown* context)&lt;br /&gt;
{&lt;br /&gt;
	tresult result = EditController::initialize(context);&lt;br /&gt;
	if (result == kResultTrue)&lt;br /&gt;
	{&lt;br /&gt;
		parameters.addParameter(STR16(&amp;quot;Depth&amp;quot;), STR16(&amp;quot;...&amp;quot;), 0, 1, ParameterInfo::kCanAutomate, PARAM_DEPTH_TAG);&lt;br /&gt;
		RangeParameter* param1 = new RangeParameter(STR16(&amp;quot;Speed&amp;quot;), PARAM_SPEED_TAG, STR16(&amp;quot;Hz&amp;quot;), 0.5f, 30.0f, 5.0f);&lt;br /&gt;
		param1-&amp;gt;setPrecision(2); &lt;br /&gt;
		parameters.addParameter(param1);&lt;br /&gt;
		StringListParameter* param2 = new StringListParameter(STR16(&amp;quot;Type&amp;quot;), PARAM_TYPE_TAG);&lt;br /&gt;
		param2-&amp;gt;appendString(STR16(&amp;quot;Volume&amp;quot;));  &lt;br /&gt;
		param2-&amp;gt;appendString(STR16(&amp;quot;Tremolo&amp;quot;));&lt;br /&gt;
		param2-&amp;gt;appendString(STR16(&amp;quot;Panning&amp;quot;));&lt;br /&gt;
		parameters.addParameter(param2);&lt;br /&gt;
	}&lt;br /&gt;
	result = kResultTrue;&lt;br /&gt;
	return result;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
IPlugView* PLUGIN_API CxxEdit::createView(const char* name)&lt;br /&gt;
{&lt;br /&gt;
	if (strcmp(name, &amp;quot;editor&amp;quot;) == 0)&lt;br /&gt;
	{&lt;br /&gt;
		CxxGUIEdit* view = new CxxGUIEdit(this);&lt;br /&gt;
		return view;&lt;br /&gt;
	}&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
} } &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*guieditor.h&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#pragma once&lt;br /&gt;
#ifndef __GUIEDITOR_H__&lt;br /&gt;
#define __GUIEDITOR_H__&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;public.sdk/source/vst/vstguieditor.h&amp;quot;&lt;br /&gt;
#include &amp;quot;pluginterfaces/vst/ivstplugview.h&amp;quot;&lt;br /&gt;
#include &amp;quot;def.h&amp;quot;&lt;br /&gt;
#include &amp;quot;proc.h&amp;quot;&lt;br /&gt;
namespace Steinberg {&lt;br /&gt;
namespace Vst {&lt;br /&gt;
&lt;br /&gt;
using namespace VSTGUI;&lt;br /&gt;
&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
// VSTのGUIクラス&lt;br /&gt;
// ============================================================================================&lt;br /&gt;
class CWaveDrawView : public CView&lt;br /&gt;
{&lt;br /&gt;
protected:&lt;br /&gt;
	CDrawContext::LineList lines;&lt;br /&gt;
public:&lt;br /&gt;
	CWaveDrawView(const CRect&amp;amp; size);&lt;br /&gt;
	virtual void draw(CDrawContext* pContext) override;&lt;br /&gt;
	void setWave(float* buf[], int size);&lt;br /&gt;
}; &lt;br /&gt;
&lt;br /&gt;
class CxxGUIEdit : public VSTGUIEditor, public IControlListener&lt;br /&gt;
{&lt;br /&gt;
	CWaveDrawView* waveView;&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
	void setSingnal(Sample32** pSample32inL, Sample32** pSample32inR, int32 int32NumSamples);&lt;br /&gt;
	CxxGUIEdit(void* controller);&lt;br /&gt;
	virtual bool PLUGIN_API open(void* parent, const PlatformType&amp;amp; platformType = PlatformType::kDefaultNative);&lt;br /&gt;
	virtual void PLUGIN_API close();&lt;br /&gt;
	void valueChanged(CControl* pControl);&lt;br /&gt;
	void createKnob(ParamID tag, int x, int y);&lt;br /&gt;
	void createSlider(ParamID tag, int x, int y);&lt;br /&gt;
	void createCombobox(ParamID tag, int x, int y);&lt;br /&gt;
	CViewContainer* createView(ParamID tag, int x, int y);&lt;br /&gt;
	DELEGATE_REFCOUNT(VSTGUIEditor)&lt;br /&gt;
    CMessageResult notify(CBaseObject* sender, const char* message) override;&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
	Sample32** pSample32inL_Trans;&lt;br /&gt;
	Sample32** pSample32inR_Trans;&lt;br /&gt;
	int32     int32NumSamples_Trans;&lt;br /&gt;
};&lt;br /&gt;
} } &lt;br /&gt;
#include &amp;quot;GlobalConstants.h&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*guieditor.cpp&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;guieditor.h&amp;quot;&lt;br /&gt;
Steinberg::Vst::CxxGUIEdit* CxxGUIEdit_Instance = nullptr;&lt;br /&gt;
namespace Steinberg {&lt;br /&gt;
namespace Vst {&lt;br /&gt;
&lt;br /&gt;
CxxGUIEdit::CxxGUIEdit(void* controller)&lt;br /&gt;
	: VSTGUIEditor(controller)&lt;br /&gt;
{&lt;br /&gt;
	ViewRect viewRect(0, 0, 800, 200);&lt;br /&gt;
	setRect(viewRect);&lt;br /&gt;
	CxxGUIEdit_Instance = this;&lt;br /&gt;
}&lt;br /&gt;
bool PLUGIN_API CxxGUIEdit::open(void* parent, const PlatformType&amp;amp; platformType)&lt;br /&gt;
{&lt;br /&gt;
	if (frame) { return false; }&lt;br /&gt;
	CRect size(0, 0, 800, 200);&lt;br /&gt;
	frame = new CFrame(size, this);&lt;br /&gt;
	if (frame == NULL) { return false; }&lt;br /&gt;
	CBitmap* cbmp = new CBitmap(&amp;quot;background.png&amp;quot;); &lt;br /&gt;
	frame-&amp;gt;setBackground(cbmp); &lt;br /&gt;
	cbmp-&amp;gt;forget();	&lt;br /&gt;
	frame-&amp;gt;open(parent);&lt;br /&gt;
	waveView = new CWaveDrawView(size);&lt;br /&gt;
	float* wav[3];&lt;br /&gt;
	wav[0] = new float[256];&lt;br /&gt;
	wav[1] = new float[256];&lt;br /&gt;
	wav[2] = new float[256];&lt;br /&gt;
	for (int i = 0; i &amp;lt; 256; i++)&lt;br /&gt;
	{&lt;br /&gt;
		wav[0][i] = sin(2.0 * 3.14159265 * (double)(i * 880) / 44100.0);&lt;br /&gt;
		wav[1][i] = sin(2.0 * 3.14159265 * (double)(i * 880) / 44100.0);&lt;br /&gt;
		wav[2][i] = sin(2.0 * 3.14159265 * (double)(i * 880) / 44100.0);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	waveView-&amp;gt;setWave(wav, 256);&lt;br /&gt;
&lt;br /&gt;
	createCombobox(PARAM_TYPE_TAG, 10, 10);&lt;br /&gt;
	createKnob(PARAM_SPEED_TAG, 20, 35);&lt;br /&gt;
	createSlider(PARAM_DEPTH_TAG, 20, 90);&lt;br /&gt;
	CViewContainer* control = createView(PARAM_VIEW_TAG, 80, 10);&lt;br /&gt;
	&lt;br /&gt;
	control-&amp;gt;addView(waveView);&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
void PLUGIN_API CxxGUIEdit::close()&lt;br /&gt;
{&lt;br /&gt;
	if (frame)&lt;br /&gt;
	{&lt;br /&gt;
		frame-&amp;gt;forget();&lt;br /&gt;
		frame = 0;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CxxGUIEdit::valueChanged(CControl* pControl)&lt;br /&gt;
{&lt;br /&gt;
	int32 index = pControl-&amp;gt;getTag();&lt;br /&gt;
	float value = pControl-&amp;gt;getValueNormalized();&lt;br /&gt;
	controller-&amp;gt;setParamNormalized(index, value);&lt;br /&gt;
	controller-&amp;gt;performEdit(index, value);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CViewContainer* CxxGUIEdit::createView(ParamID tag, int x, int y)&lt;br /&gt;
{&lt;br /&gt;
	CBitmap* backbmp = new CBitmap(&amp;quot;background2.png&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	CRect size(0, 0, backbmp-&amp;gt;getWidth(), backbmp-&amp;gt;getHeight());&lt;br /&gt;
	size.offset(x, y);&lt;br /&gt;
	CRect&amp;amp; size2 = size;&lt;br /&gt;
	CFrame* control = new CFrame(size2, this);&lt;br /&gt;
	control-&amp;gt;setBackground(backbmp);&lt;br /&gt;
	CViewContainer* CViewContainerControl = new CViewContainer(size2);&lt;br /&gt;
	CViewContainerControl-&amp;gt;setBackground(backbmp);&lt;br /&gt;
	frame-&amp;gt;addView(CViewContainerControl);&lt;br /&gt;
	backbmp-&amp;gt;forget();&lt;br /&gt;
	return CViewContainerControl; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CxxGUIEdit::createKnob(ParamID tag, int x, int y)&lt;br /&gt;
{&lt;br /&gt;
	CBitmap *backbmp = new CBitmap(&amp;quot;knob.png&amp;quot;);&lt;br /&gt;
	CBitmap *handlebmp = new CBitmap(&amp;quot;knob_handle.png&amp;quot;);&lt;br /&gt;
	CRect size(0, 0, backbmp-&amp;gt;getWidth(), backbmp-&amp;gt;getHeight());&lt;br /&gt;
	size.offset(x, y);&lt;br /&gt;
	CKnob* control = new CKnob(size, this, tag, backbmp, handlebmp);&lt;br /&gt;
	ParamValue value = controller-&amp;gt;getParamNormalized(tag);&lt;br /&gt;
	control-&amp;gt;setValueNormalized(value);&lt;br /&gt;
	frame-&amp;gt;addView(control);&lt;br /&gt;
	backbmp-&amp;gt;forget();&lt;br /&gt;
	handlebmp-&amp;gt;forget();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
void CxxGUIEdit::createSlider(ParamID tag, int x, int y)&lt;br /&gt;
{&lt;br /&gt;
	CBitmap *backbmp = new CBitmap(&amp;quot;slider.png&amp;quot;);&lt;br /&gt;
	CBitmap *handlebmp = new CBitmap(&amp;quot;slider_handle.png&amp;quot;);&lt;br /&gt;
	CRect  size;&lt;br /&gt;
	size(0, 0, backbmp-&amp;gt;getWidth(), backbmp-&amp;gt;getHeight());&lt;br /&gt;
	size.offset(x, y);   &lt;br /&gt;
	int bmpmargin = 1;&lt;br /&gt;
	CVerticalSlider* control = new CVerticalSlider(size, this, tag,&lt;br /&gt;
		y + bmpmargin,&lt;br /&gt;
		y + backbmp-&amp;gt;getHeight() - (handlebmp-&amp;gt;getHeight() + bmpmargin),&lt;br /&gt;
		handlebmp, backbmp);&lt;br /&gt;
	ParamValue value = controller-&amp;gt;getParamNormalized(tag);&lt;br /&gt;
	control-&amp;gt;setValueNormalized(value);&lt;br /&gt;
	frame-&amp;gt;addView(control);&lt;br /&gt;
	backbmp-&amp;gt;forget();&lt;br /&gt;
	handlebmp-&amp;gt;forget();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
void CxxGUIEdit::createCombobox(ParamID tag, int x, int y)&lt;br /&gt;
{&lt;br /&gt;
	CRect  size;&lt;br /&gt;
	size(0, 0, 60, 16);&lt;br /&gt;
	size.offset(x, y);&lt;br /&gt;
	COptionMenu* control = new COptionMenu(size, this, tag);&lt;br /&gt;
	control-&amp;gt;addEntry(&amp;quot;Volume&amp;quot;);&lt;br /&gt;
	control-&amp;gt;addEntry(&amp;quot;Tremolo&amp;quot;);&lt;br /&gt;
	control-&amp;gt;addEntry(&amp;quot;Panning&amp;quot;);&lt;br /&gt;
	ParamValue value = controller-&amp;gt;getParamNormalized(tag);&lt;br /&gt;
	control-&amp;gt;setValueNormalized(value);&lt;br /&gt;
	control-&amp;gt;setFont(kNormalFontSmaller);&lt;br /&gt;
	control-&amp;gt;setFontColor(kWhiteCColor);&lt;br /&gt;
	control-&amp;gt;setBackColor(kBlackCColor);&lt;br /&gt;
	control-&amp;gt;setFrameColor(kRedCColor);&lt;br /&gt;
	frame-&amp;gt;addView(control);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CWaveDrawView::CWaveDrawView(const CRect&amp;amp; size)&lt;br /&gt;
	: CView(size) &lt;br /&gt;
{&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void CWaveDrawView::draw(CDrawContext* pContext)&lt;br /&gt;
{&lt;br /&gt;
	if (getDrawBackground())&lt;br /&gt;
	{&lt;br /&gt;
		getDrawBackground()-&amp;gt;draw(pContext, getViewSize());&lt;br /&gt;
	}&lt;br /&gt;
	pContext-&amp;gt;setFrameColor(kBlueCColor); &lt;br /&gt;
	pContext-&amp;gt;setLineStyle(kLineSolid);   &lt;br /&gt;
	pContext-&amp;gt;setLineWidth(4.0);  &lt;br /&gt;
&lt;br /&gt;
	pContext-&amp;gt;drawLines(lines);&lt;br /&gt;
&lt;br /&gt;
	setDirty(false);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CWaveDrawView::setWave(float* buf[], int size)&lt;br /&gt;
{&lt;br /&gt;
	lines.clear(); &lt;br /&gt;
	CRect viewSize = getViewSize();&lt;br /&gt;
	CCoord leftX = viewSize.left;            &lt;br /&gt;
	CCoord centerY = viewSize.getCenter().y; &lt;br /&gt;
	CPoint from(leftX, centerY); &lt;br /&gt;
	for (int j = 0; j &amp;lt; 3; j++){&lt;br /&gt;
	for (int i = 0; i &amp;lt; size; i++)&lt;br /&gt;
	{&lt;br /&gt;
		CCoord width = viewSize.getWidth();&lt;br /&gt;
		CCoord height = viewSize.getHeight();&lt;br /&gt;
		CPoint to(leftX + width * ((double)(j * size + i + 1) / (double)size * 3), centerY - height / 2.0 * buf[j][i]);&lt;br /&gt;
#if DEVELOPMENT // 必ず DEVELOPMENT で囲むこと。&lt;br /&gt;
//			FDebugPrint(&amp;quot;data.numSamples:%5f, %5f\n&amp;quot;, leftX + width * ((double)(j * size + i + 1) / (double)size * 3), centerY - height / 2.0 * buf[j][i]);&lt;br /&gt;
#endif&lt;br /&gt;
		CDrawContext::LinePair line(from, to);&lt;br /&gt;
		lines.push_back(line);&lt;br /&gt;
		from = to;&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
CMessageResult CxxGUIEdit::notify(CBaseObject* sender, const char* message)&lt;br /&gt;
{&lt;br /&gt;
	if (message == CVSTGUITimer::kMsgTimer)&lt;br /&gt;
	{&lt;br /&gt;
		if (waveView != nullptr)&lt;br /&gt;
		{&lt;br /&gt;
			waveView-&amp;gt;setWave(pSample32inL_Trans, int32NumSamples_Trans);&lt;br /&gt;
			waveView-&amp;gt;setDirty();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return VSTGUIEditor::notify(sender, message);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void CxxGUIEdit::setSingnal(Sample32** pSample32inL, Sample32** pSample32inR, int32 int32NumSamples) {&lt;br /&gt;
	pSample32inL_Trans = pSample32inL;&lt;br /&gt;
	pSample32inR_Trans = pSample32inR;&lt;br /&gt;
	int32NumSamples_Trans = int32NumSamples;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
} } &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yo-net</name></author>
	</entry>
</feed>