2024年8月20日火曜日

YouTubeにMP3ファイルをアップロードする方法

YouTubeにMP3ファイルをアップロードしたい。




できません。(らしいです)😭



ということで、自分でサイトを作りました。👍

MP3をアップロードできるサイトです。


Major7th Musicといいます。











登録簡単、必要なのはアカウントとパスワードだけ。気に入らなかったら「プロフィール編集」ページからきれいさっぱり即削除できます

MP3は「楽曲登録」からファイル選択、タイトル、作曲者入力、以上で完了です。

「管理画面」で 共有リンク と 埋め込みタグ がゲットできます。

こちらが埋め込みの例

どうでしょう?簡単ですよ。
もちろん無料で使えます。今のところアップロード曲数制限もなし。

曲に動画が必要ない人にはもってこいの場だと思いますよー。

2024年8月15日木曜日

Major7th Music - M7M

この度、音楽ファイルをアップロードできるサイトを立ち上げました。

 https://major7th.jp/m/












個人的に作曲をしていますが、インターネットで広めるとき、ほとんどの場合、動画サイトにアップロードすると思います。
 
ふと不思議に思いませんか? 
音楽をDAWで書き出します。 
それをアップロードします。 

???

DAWは動画では書き出せません。
ほとんどの場合wavかmp3です。

私は、wavで書き出しますが、インターネットにアップロードするのに、わざわざ動画を作るのが面倒くさいのです。
人によっては、MVとして、動画を作るまでが音楽活動の方もいらっしゃると思いますが、私は、まず音楽を聴いていただきたい。

ですので、出来上がったらすぐwavかmp3でアップロードしたいのです。
動画は作るのにいろいろ時間がかかります。
mp3はエンコードにかかる時間はほんの少しです。

さあ、アップロードしよう。

。。。

あれ?サイトがありません。
最近無料でmp3をアップロードできるサイトがないのです。
有名なところも制限がかかり有料化されました。

じゃあ自分で立ち上げよう。
そう思ってMajor7th Musicを立ち上げました。
サーバーが許す限り無料でアップロードできます。

アルバム機能を備えておりますので、ジャンル別など、グループ分けができます



それらを、SNSで広告するのに必要な「共有リンク」も用意され、動画の埋め込みのような「埋め込みタグ」も用意されています。
すぐにSNSで広告できます






Major7th Musicは一見ポータルサイトに見えますが、実はクリエイター目線のサイトです。現在は、ポータルサイトにものを公告するより、SNSで個々に広告した方が有利なのです。

ならば、「聞かせるための場」だけあればいいのです

そこで、Major7th Musicです。

気に入らなかったら、すぐ削除できます。削除すれば跡形なく消えますので心配いりません。

自分の音楽を世に広めたい人は、とりあえずMajor7th Musicに登録してみましょう。
そしてSNSでたくさん公開しましょう!

2023年9月22日金曜日

SSG7Vの操作方法 - キースイッチが必要なくなるAuto Release

 サンプルを用いない珍しいギター音源、「SSG7 V」ですが、気になる操作方法をここで紹介しようと思います。

ダウンロードはこちらから。

VST3ですのでKONTAKTがなくても使えます。ただしそのデメリットとして、現在はWindows版のみしかありません。

基本的な仕様はKMG7と同じです。KMG7に+αとコードモードがついたような感じです。

その+α部分ですが、KMG7にない機能として、「Auto Release」があります。これはONにすると、スタッカートで演奏するとブリッジミュート(パームミュート)になる機能です。わずらわしいキースイッチの切り替えが必要ないのでとても便利です。数値を上げるとリリース音が長くなります。「Auto Release Plus」はスイッチをオンにすると、指定した値より小さいベロシティは単音になります。

詳しくはこちらの動画を見てみてください。


コードモードはまた次回説明いたします。

ブログの整理

 お久しぶりです。

Yuuです。

久しぶりにブログを更新するとともに、今後、このブログを音楽関連にしぼっていきたいと思いますので、関連性の低い記事を非公開にすることにしました。音楽関係の記事でなくても閲覧数の多いものはとりあえずおいておくことにしました。

いわゆるブログの整理です。

今後とも温かい目で見守ってくださればと思います。よろしくお願いいたします。

2023年1月5日木曜日

物理モデリング ギター音源

 こんちわ

SSG7Vがバージョン2.5.0になりました。

バグがなければおそらくこのバージョンが安定バージョンになると思います。

さて、海外の掲示板でのSSG7Vの評価を見ましたが、誉めてくれる方もいますが、音がシンセだという方も多いです。

サンプリングじゃないのですから当たり前です。

世界の大手メーカーの物理モデリング音源でも、サンプリングと違いがわからないように作るのは難しいようです。

SSG7Vは物理モデリングではないですが、非サンプリング音源として、実際にプログラムしてみて、なぜギターのモデリング音源がほとんどないのかがわかった気がします。

巷でもいわれていることですが、難しいのです。ベースやドラムと違って作るのがとても難しいのだと思います。

どこのメーカーからでもいいです。世間様が満足のいくモデリング系ギター音源が公開されたら、それは天晴れです。私も拍手して迎えます。

私の限界は現在のところSSG7V2.5.0です。これ以上のものは作れません。

今後どういう公開の仕方をするべきか悩むところですが、非サンプリングギター音源が世間様に望まれてないのは何となく感じ取れますので、今後のことはゆっくり考えさせてください。

2022年3月18日金曜日

KMG7 V リリース

やっとVST版KMG7をリリースできました。

もともともう音源制作は引退しようと思っていたのですが、Kontaktに頼らない音源制作にちょっと興味を持ってしまって…。

まずはSteinbergのVST SDKを使って作ろうとしたのですが、あまりにもわからなすぎて中断。そこでJUCEに移動。そしたらJUCEもよくわからなくて中断。またSDKに戻って、とあっちこっち行ったり来たりしてるうちに外国のJUCEのYoutubeを見てずいぶん覚えていきました。

ある一定のラインまで理解すると国内のJUCE先輩方の記事の意味がわかるようになり、さくさく進んでいきました。

最初の難関は、ピッチベンドでした。JUCE純正のサンプラーでは、引数を与えるだけでサンプルピッチが上がる仕組みはなかったのです。ピッチが関係するビブラートも同様です。そこでオワッタと思っていろいろ調べていたら偶然モジュールのなかにPitchRatioとかいう変数を発見。これです。これは、ファイルのサンプルレートと本体のサンプルレートが異なる場合に正しいピッチに修正するパラメーターでした。これの導き方をみると、2の(1/12)乗で半音上がるパラメーターです。つまり、1オクターブ(12半音)で2となるのです。
ソースサンプルレートが96000でゲットサンプルレートが48000だと、2をかけるので、つまり、ピッチを倍にしないと正しく鳴らない、そのままだと1オクターブ低いということですね。ソース48000、ゲット44100だとpitchRatioは1.08843...となり、少しだけピッチを上げてやるということ(で合ってると思います。逆だったらごめんなさい)です。


そこへ変数を運ぶためにstatic変数を使いました。これが後に問題に。というのも、VSTではstaticを使うと同一DLLで共有され読み書きするとバグると。で、面倒くさかったのですが、そこのモジュールまで一個ずつたどって全部の関数に引数をつけていきました。これで変数を運ぶことはできました。


ビブラートはもう一個Ratioを掛け算で置いてやり、そいつを超低周波のサイン波で動かすだけでした。ちなみにここに出てくるaudioPというポインタはstaticではないものの、staticのように使えるもので、voice毎に全て同じ固定アドレスを渡してます。noteOnの度に毎回あっちのaudioPアドレスをこっちのaudioPにもらい、あっちのクラスでもこっちのクラスでも、audioPを使えば、こっちのクラスの共有みたいな変数にアクセスできるようにしています。
考え方としてはたぶん、staticの代わりになる一つのオブジェクトを作っているということでしょうか。そのオブジェクトにみんなでワイワイアクセスしてるわけです。ややこしいですがとにかく正しく動作してくれてます。


次の難関が、最後まで引きずった 、ストリーミング再生です。2.5GBもあるファイルを全部メモリに読み込むと、プラグインはたぶん3Gを超えてしまうのでこれが解決できなければ本当に詰みでした。終わりですよまじで。これはいろんな要素が混じっていて簡単に説明できないのですが、できるだけ短く言うと、最初は音を繋げる手法を取りました。同じサンプルを1秒のAとフルのBにわけ、Aはあらかじめ読み込んでおき、Aをならしている間にBを読み込んで、Aの終了と同時にBに切り替えるものでした。48000分の1秒でもずれるとノイズが入るのでとてもシビアでした。うまく繋げることはできたのですが、その後のいろんな事情でまたノイズが混入することに。

で、違う方法を思い付きました。繋げるのではなくすり替えるのです。Aがなっている間にBの読み込みが完了したらその時にAが参照しているアドレスをBのアドレスに変えてしまうのです。こうすれば、2つは長さが違うだけの同じファイルなので、繋ぎ目の心配はありません。案の定うまくいきました。ただし、AとBの取り扱いを間違えると正しい音がならないので、注意が必要です。画像ではBから直接Aを変更すればいいのでは?と思うかもしれませんが、試しましたが、バグが発生しました。理由はいろいろあるのでしょうが、AからBを取りに行く必要があったのでこういうややこしい方法になりました。ここら辺は企業秘密ということで。あとポインタが三次元配列になってますが、実際はただの1個のポインタです。制作中多次元でテストしていた名残です。


あとは大きな問題はなかったですが、自作VSTとして一番あってはならないことが残ってました。クラッシュです。突然落ちるんです。これは利用者が一気に離れてしまうので最後の最後までチェックしました。完璧ではないかもしれませんが、少なくとも、負荷のかかった状態で操作しても落ちないレベルには作ったつもりです

さて、今後のKMG7Vですが、様子を見ていきながら、余裕があらばエフェクト類を強化したり、サンプルを録音し直したり、コードをならせるようになどと思ってますが、予定にも入っていませんのでまだ期待しないでください。開発費がなくなれば倒産です

ギター音源の世界は10年前と違って飽和してきてるので、もう戦えないかもしれません。でも自分はKMG7Vのソロサウンドは宇宙一くらいに思っています。

みなさんフリー版を使ってみてくださいね。

2021年10月21日木曜日

Cubase エクスプレッションマップの注意

CubaseのエクスプレッションマップはノートをONにしたとき様々な情報を送ることができる機能(?)です。これを利用して、ノートON時にチャンネルを変え、KONTAKTやPLAY側のパッチを切り替えるという疑似キースイッチのようなことができます。

これにより今まで一つのトラックで様々なアーティキュレーションを切り替えてきましたが、この度パッチの変更により不具合が発生しました。

それは、StringsのLegatoパッチなのですが、Legatoに限らずモジュレーションホイール(CC1)でボリュームを切り替えるパッチ全てに当てはまることですが、

まずレガートでCC1を127で演奏し終えます。そのあとトリルで演奏します。そのあとレガートに戻しCC10あたりの小さな音で演奏し始めたい場合があります。

この場合、あとのレガートの始まりでCC1をいくら下げても、一瞬127の値の音が鳴ってしまい、汚いスフォルツァンドのような音になってしまいます。これはおそらく、うちの設定ではエクスプレッションマップはノートON時にチャンネルを変えるだけですので変えた直後にCC1が操作されるので一瞬127のCC1が入るのでしょう。

では、CC1を下げておいてノートをONにすればいいのでは?と思いましたが、これはダメです。ノートONになるまではこの場合まだトリルのチャンネルのままでレガートのチャンネルに切り替わってないのです。レガートチャンネルのCC1を下げたいので、トリルチャンネル時のCC1を下げてもレガートのCC1は下がりません。

よって、解決法としては、後のレガートでCC1を10に下げたい場合は、前のレガートの最後に一瞬10の値を入れてやることです。

または、チャンネル別にトラックをすべて分けてやることです。(しかしこの場合エクスプレッションマップは必要なくなる)

トラックを増やしたくなければ、手間ですが、前のCC1をその都度操作することです。

不具合をなるべく避けたければ、エクスプレッションマップを使わずトラックを分けることです。

どちらを選ぶかは、みなさん次第ですね。


2021年9月26日日曜日

iZotope RX 7, 8, 9

今回現状の事実を記載するので、皆さんの想いも発信してほしいところです。

もうすぐiZotope RX 9がリリースされます。おおまかにいうとiZotopeはリリース前に8を購入すれば無料で9にできることを約束しています。

しかし私はこれまで何度も主張してきていますが、

RX 8は特定の状況下で保存しようとするとソフトが突然強制終了します。データは復旧できますが最終的にある対策をしないと保存できません。

具体的には、ファイル名に日本語が入ると保存できない可能性が高いのです。半角にすれば保存できます。RX 7は問題なく日本語保存できるようです。

これは、iZotope本社は認めており、日本のサポートのMI社も認めてくれていますが、iZotope Japanは私の知るところだんまりです。

ところが、iZotopeはRX 9のために8の購入を進めています。

9で日本語保存できない状況が修正されているかは私の知る限り報告も約束もされていません。8を持っていないユーザーがRX 8を購入するということは、

日本でのセールを推しているソフトウェアなのに日本語保存ができないソフトを購入するということです。しかも、無料で9にできてもその9で不具合が解消されているかはわからない状況です。

RX 8及び9の購入を検討している方には、私個人の意見としては様子を見ることを推奨します。簡単にまとめますと、

今購入するとRX 8では日本語保存が高い確率でできません。RX 9で直っているかはわかりません。

ということです。

ファイル名に日本語を使う人にとっては使い物にならないレベルです。


ここからは私情をはさみます。

私はiZotopeの商品はとても大好きです。こんな優れたソフトは他にないと思っています。けしてアンチiZotopeではありません。日本人がiZotopeの製品を安心して購入し 、使用できるようになることを祈るばかりです。

私のように、RX 8 Advancedを購入した⇒保存できなすぎる⇒代わりにずっとRX 7を使ってきた⇒RX 8を買った意味はなかった、こういう人が増えぬよう、この不具合はぜひRX 9リリース前に修正されるべきと思います。それができないのならRX 8ユーザーに何らかの救済措置が欲しいところです。ソフトウェアの不具合というのはユーザーからお金をとって直すものではないと思います。

私の想いがiZotopeと日本のRXユーザー様に届きますように。


追記

2021年10月15日、RX9リリースと同時に、RX8が8.5にアップデートされました。8.5では、軽く確認したところ、日本語保存に関するバグは修正されたようです。私は確認できませんがおそらく9もバグは修正されているでしょう。心配な方はサポートに問い合わせるといいと思います。

本当に助かりました。ありがとう、iZotopeさん、MIさん!

2021年9月9日木曜日

SATAの接触不良?

この度、ノートパソコンのSSDが突然死いたしました。

何の前触れもなく、せっかくWindows10がインストールできたところだったのに、SSDが認識しなくなりました。もちろんBIOSにです。個人でできることはなく完全なる故障と認定し、500GのSSDを買おうと思っていたのですが、


「そういえば、音楽用パソコンのHollywood Orchestra音源用のSSD、500Gから2Tにしたかったんだ」


と、思い出しました。

これは、500Gを買うより2Tを買って余った500Gをノートパソコンに持ってきたほうがよさそうだ。となりまして、アマゾンでポチリ。


本日SSDが届き、データ移行を進めようとしたところ、なぜか、Fドライブが読み込まれない。新しいドライブがない。どちらもパソコンは認識はしている。

ドライブがないのは管理ツール、コンピューターの管理、ディスクの管理から認識させるのだろうと思ってましたので、それを開こうとしましたが、

開かない・・・。

これはなにかおかしい・・・。

競合か何か?とりあえず、電源を切り、Cドライブと新しいSSDだけを接続し、ほかのドライブのケーブルを抜いて再起動。

はい、ディスクの管理から、新しいSSDは正しく認識しました。

そしてほかのディスクも接続して再起動。すべて正しく認識しました。


ところが、その夜・・・。


ん?Windowsの起動が遅い・・・。

Cubaseの起動が遅い・・・。

Nドライブにライブラリを置いている VPS Avengerの起動が遅い・・・。

Avengerの音色読み込みが異常に遅い・・・。


これは仕事にならん。

試しに同じNドライブにライブラリを置いていたOmnisphereを立ち上げてみる。

音色読み込みが・・・遅い・・・。

これはNドライブが何かおかしい。

タスクマネージャーでチェックすると、読み込み時に使用率100%になり、速度が100kb/秒くらいになる。


思い当たる節は、、、

SSDを追加してから挙動がおかしい。

何をしたっけ?

そう、すべてのケーブルを抜いた。

Nドライブ(HDD)のSATAケーブルは少しぼろっちいケーブルだ。

接触面を綿棒で拭き拭きして、ケーブルの中をファミコンのようにフーフーして接続しなおす。しっかり挿す。


直りました。


速度も音源読み込み時は10Mb/秒くらい出ておりました。ファイルのコピー時は60Mb/秒ほど出てました。

原因はSATAの接触不良だったのか(?)・・・。


ということです。体感挙動も正常に戻りました。


(おまけ)

うちの音楽用PCのディスクは

・OS用 SSD 2T

・容量の大きな音源用 SSD 2T

・音楽データ用 HDD 500G

・動画保存用 HDD 500G

・音源用 HDD 1T

・バックアップ用 HDD 2T 

となっています。熱もかなり持ちます。

前方から12cmファン2つ(HDDに直で当たるように)後方に外に逃がすファン、中央に後方に向けてCPUヒートシンクにファン(風の流れを作っています)。

その後ろのファンが止まっており、CPUファンも少し壊れかけていたので、12cmファンを2つほど買わないといけませんな。

2021年9月4日土曜日

Prime Note Galleria MR6 にWindows10をインストールした話

 Galleria MR6、ここではガレリアと呼ぶことにします。

このノートパソコンは確か保証が2012年に終了しています。

うちで所有しているスペックは、、、


CPU

Intel Core i7-2820QM

メモリ

DDR3-10600 4GB×2(計8GB)

ビデオチップ

NVIDIA GeForce GTX540M

SSD

500GB

OS

Windows7 Ultimate 64bit


こんな感じです。

見ての通り、Windowsは7であり、まだ10が出ていない頃の商品なので、10のドライバは販売元のドスパラが公式に「ない」と言っております。10は未対応だと。


しかし、世の中のパソコン、CPUが古かろうと、結構Windows10がインストールされています。実際、私の別のパソコンもIntel Core 2 Duo、メモリ4Gでストレスなくサクサク動いてます。なので、このガレリアにもWindows10を入れようと思いました。


しかし、


どのようにしてもインストールできないのです。ネット上でも同じ情報を見かけました。

Galleria MR6にWindows10がインストールできないと。

試みたのは、Windows10 Pro 64bitです。具体的にどのような症状になるかというと、うちの場合はですが、まず、

USBブートで21H1バージョンをインストールしようとすると、最初は普通に進みます。しかし、本体にWindowsフォルダなどが構成された後の、最初の再起動の後、ほとんどの場合、フリーズします(丸いクルクルが止まります)

たまにそれを越して進む場合もありますがほとんどの場合、途中でブルースクリーンで落ちます。原因はKMODE何とかというやつで、デバイスの問題だとか。さらに偶然最後までインストールが完了しても、安定して動作しません。そのうちブルースクリーンになって死にます。

で結論から言うと、私は、このガレリアで、Windows10 64bitを安定して稼働させることに(たぶん)成功しました。

たぶん、同じように困っている方がいらっしゃると思うので、ここに方法を書き残します。

ただし、うちの症状での方法ですので、ほかの方が必ず解決するかはわかりません。保証はできませんし、安全性も保証しません。試すなら自己責任でお願いします。


では、まず、用意するものですが、

ねじ回し

Windows10がインストール可能なPCをもう1台

これだけです。

実験中、偶然一度だけ、インストールを完了したことがあって、そのときセーフモードだと安定して動いたことを記憶していました。

なので、まずは最初のフリーズを何とかして、インストールを完了させないといけないのです。

そこであることを思い出しました。NETに情報がありますが、Windows10はインストール後にマザーボードを変えても問題ないそうです。なので、まず、別のパソコンでアカウントの作成も含めインストールを完了させます。(これを思いつくまで数か月かかりました)

そして、コマンドプロンプトで次のコマンドを管理者権限で入力します。

bcdedit /set {default} bootmenupolicy legacy

これが正しく設定されると、パソコンを立ち上げる際にF8を連打することでセーフモードで立ち上げられるようになります(これはWindows10での話です)。

そしてそのディスク(SSD)をガレリアへ持ってきます。

(ここから先はなるべくネットを遮断して作業しましょう。そうしないと、自動更新が働いて落ちてしまう可能性があります。)

すると、どうなるかというと、F8を押さない場合はやはりクルクルのところでほとんどの場合フリーズです。パソコンを起動後F8を連打してセーフモードに入りましょう。

セーフモードで立ち上げると、安定しており、とりあえず落ちることはなさそうです。これはデバイスの何かが邪魔をしていると考えられます。

まずはWindows10用のNVIDIAのグラフィックスドライバー(ビデオドライバー?)をインストールしましょう。GeForce GTX540MなのでNVIDIAのサイトに行けばダウンロードできます。

再起動します。

これで、起動時のフリーズがなくなります。

次にもう一度セーフモードで立ち上げ、デバイスマネージャーを立ち上げます。

「プロセッサ」の中に「Intel(R) Core(TM) i7-2820QM CPU @ 2.30GHz」というのが8つあります(環境によって若干文字が違うかもしれません)。のなかの一つをどれでもよいので「デバイスを無効にする」をしてください。これをしない場合、タスクマネージャーのパフォーマンスタブで、CPU使用率が常に100%になりかつ、速度がとんでもない数字を表示しました。みんなそうなのかうちだけなのか不明です。

無効にする前↓(使用率100%、速度が14673989.31GHz)

 ↓(CPU使用率5033697%)

無効にした後↓(使用率も速度も安定)

この無効にする作業はセーフモードでしかできません。終わったら今度は通常モードで再起動しましょう。安定して動作するはずです(作業の途中どこかでフリーズとかするかもしれません)。

私はパソコンデバイスの専門知識はないので、これが何を意味するのか、なぜ直ったのかはわかりません。おそらく、Windows10とマザーボードやビデオチップ、CPUなどの相性の問題だったのではないでしょうか。

今のところ、これで安定して動いています。


このガレリアは捨てるにはもったいなく、売るにはゴミという状態で、どうしてもWindows10を入れたかったので、何度も諦めかけましたが長い間実験してきて良かったです。これでおそらくWindows11もインストールできると思います(安定化はまだ実験してませんがTPMとSecureBootのBypassは実験済み)。ちなみに11も普通にインストールすると同じ症状で落ちます。


ドスパラをはじめ、パソコンのプロフェッショナルから、全国のパソコン修理店まで、いろんな人に電話しましたがすべて断られました。というか「無理でしょう」とか「一度送ってください」とかいう感じでした。おそらく送っても、マザーボードが対応してないので無理ですねみたいな感じになりそうだったので、というかドスパラがそういう対応でしたので、自分でなんとかやり遂げたのはすごい達成感があります。それに、インストールしてもらうだけではだめなのです。手順を教えてもらわないといけないのです。でないと、再クリーンインストールができなくなるので。

「不可能を可能に」が私のモットーです。


簡単なまとめ。

他のパソコンでインストール完了させてセーフモード起動を有効にする。

ガレリアに移動させてセーフモードでNVIDIAのドライバをインストールする。

デバイスマネージャーのプロセッサの中の8つのデバイスから1つを無効にする。

以上。(もう一度言いますが自己責任でお願いします)


この記事がGalleria MR6にWindows10が入れられなくて困っている人の力になれれば幸いです。

2021年5月20日木曜日

KMG7への想い

とうとうKMG7 Advancedを販売終了することになりました。

以前も一度終了宣言したことがありましたが、あのときは、実はまだ販売を続けたかったのです。これには裏話がありました。

KMG販売で一番大変だったのがショップの維持です。

KMG7は2GBを超え、一般に販売するにはサイトがなかなかありませんでした。結果的にShopifyとBOOTHを利用しました。BOOTHはショップオーナーとしては月額無料なのですが、海外の方に利用してもらいにくいし、購入にアカウント作成が必須だったりと、使いにくかったかもしれません。Shopifyだと全世界に対応でき信頼度は高かったと思います。しかし、月額利用費約1000円がかかります。

たった1000円と思われがちですが、その1000円が維持できないので販売終了となったわけです。

なんせKMG7 Advancedの当初の値段は3000円ですから。

10年前、「自分でメタルを作りたいがギターを弾けない」そんな理由が、30歳の青年を動かしました。弾けないなら弾かせてしまえ。Kontaktにサンプルをマッピングしてパワーコードを鳴らしました。そしてミュートサウンドを鳴らしました。さらにはソロサウンド、ピッキングハーモニクスも完備しました。これで一通りのメタルサウンドが鳴らせました。

当初のKMG7が注目を浴びたのは7弦でフリーだったことでしょう。

後に有料化してしまいましたが、最初はずっとフリーで行くつもりでした。有料化し、少しですが利益をいただきました。しかし、単価3000円です。売れた数からいっても、総額20万円いったかいってないかです。制作にかかった時間を考えると完全に赤字です。3000円という値段もすごく悩んで決めました。周囲の人はもっと高いほうがいいと、自分は安く提供したいと。しかし安すぎるとチープなイメージもあると。値段のつけ方はとても難しいです。自分で言うのもなんですが、KMG7は音質は他社より劣っていたかもしれませんが、機能面では3000円とは思えない機能を持っています。弦は7弦全て別収録してありましたし、演奏されている弦も表示されましたし、一通りの奏法を備えていました。リアルタイム入力にとても優れていました(レガートの制作にどれだけ悩まされたか・・・。)。自分好みに制作しましたので言い出すときりがないくらい便利に作られていました。

そして時は流れ、世はKMG7を忘れていきました。(ヒュ~(風

10年前と違い、今では8弦ギターの音源まである時代です。さらには、VST、VSTiの価格崩壊の時代です。大手メーカーまで10万円を超える品が1万円を切ったり。もうめちゃくちゃな時代です。こんな価格戦争を小さな私がついていけるわけありません。

時代は10年前と違い、KMG7は珍しくもなければ、無料でも気にとめられないようになっていったのです。

売れなければ月額1000円は維持できません。ということで無料のBOOTHに移動。それでも売れません。そして私は病気も見つかりました。いつかサポートができなくなったらどうしよう・・・」そんな気持ちで、「では販売を終了しようか。いや、世の中から消えて何か意味はあるのか?終了したらしたで、少数だがまた「KMG7はどこでダウンロードできますか」というメールが来る。(しかも英語)」ならば無償配布しかない。

今まで買ってもらった人には申し訳ないけど、KMG7 Advancedは無料になりました。

大手メーカーも、「〇× Elements」とかを無償で配布したりしてます。

許してください。私を許してください。返金はできません。もうパチンコに消えました



これからも私はKMG7を使い続けます。これは自分で使うために始まったKontaktライブラリ制作の物語だったんです。私が作ったKMG7が皆様の役にも立つようであれば、とても幸せです。これが最初で最後の想いです。



今KMG7は無料です。これからDTMを始める方、ギター音源を持っていない方、ぜひ一度使ってみてください。


https://major7th.jp/kontakt/


ついでに言いますが、Yu’s Vocaliseも他社にない機能を備えております。合成を利用せず人間の発声と同じ仕組みで母音移動を発します。優秀です。そちらも無料になりましたのでサントラ系を制作の方、使ってみてはいかがでしょう。


ではまたどこかでお会いしましょう。

2021年5月20日

作者:森川豊

2020年12月6日日曜日

Yu's Vocalise 2.5

 近日、Yu's Vocaliseが2.5にバージョンアップされます。

それを記念にイベント開催中です!

Yu's Vocalise 2.5のDEMO曲を作ってくれた方々に、そのままライブラリをプレゼント!

Yu's Vocalise 2.5を無料で手に入れるチャンスです!


詳しい参加条件はこちらに載っています。ぜひご覧ください。

http://major7th.jp/kontakt/information/?q=20201205_vocalise25_event


ところでYu’s Vocaliseってどんなソフト?

Yu's VocaliseはNI社のKontaktで動く女性Solo Vocal音源です。

発音はAEIOUNの6種類しかありませんが、それぞれを自由につなぐことができるので、母音だけで言えばかなりの音色になるでしょう。

音程移動したときは物理上127段階にスピード変化するレガートが備わっています。これらがそれぞれ独立して動作するので、例えば「ア」から「イ」に移動させながら音程を5度移動し、さらにCC11でボリュームを調節しながらモジュレーションホイールで徐々にビブラートをかけることができます。

音程移動は次の音のベロシティを下げることでゆっくりになります。母音移動も、移動のためのキースイッチのベロシティを下げることでゆっくり移動します。

歌いだしのしゃくり上げもキースイッチで操作できますのでよりリアルな表現が可能です。



おまけ的機能ではありますが、スタッカートとスフォルツァンドも用意されています。

すべての母音のSampleを収録しているわけではなく、「ア」のみのSampleを人間の発音と同じようにEQで操作して新しい母音を発生させていますので、非常になめらかです。Sampleが少ないということは容量の節約にもなります。このライブラリは、容量が小さい=チープではありません!リアルタイムでEQ操作されるので若干PCの性能が必要になりますが、Core i7で実行したところ問題はありません。


Yu's Vocaliseのサイトはこちら!

http://major7th.jp/kontakt/vocalise/


2020年7月19日日曜日

Windows 10 でEastWestのPlay 6 の読み込みが極端に遅くなる現象の直し方

この度Windows10をクリーンインストールしました。
いろいろ障害がありましたが最終的にすべての音源を元に戻すことができましたが、なぜかEastWest製品のPlayエンジンへの読み込みがめちゃくちゃ遅い!

これはどうしたことかと色々調べました。
SSDのベンチマークによると読み込み速度はWindows7とも他のSSDとも変化はない、つまり物理的読み込み速度の問題ではない。

一時的にWindows7の入ったSSDに戻してみると、読み込みは速い。10にすると遅い。
ということでEastWestのサポートに問い合わせました。
いろんな環境情報を説明したのち、返ってきた答えがこれです。

It's possible that your Windows Defender is scanning, depending on your security settings. A realtime scan would inhibit streaming speeds.
↓Google翻訳
セキュリティ設定によっては、Windows Defenderがスキャンしている可能性があります。 リアルタイムスキャンはストリーミング速度を阻害します。

つまりWindows Defenderが読み込みを邪魔している可能性があると。
そこで、

C:\Program Files\Common Files\VST3
C:\Program Files\EastWest

C:\Program Files\VSTPlugins
C:\Program Files (x86)\EastWest
C:\Program Files (x86)\VSTPlugins

とライブラリのフォルダを除外してくださいということでした。
(プログラムフォルダやVSTフォルダは各自の環境に合わせて考えましょう。)

スタートボタン>設定>更新とセキュリティ>Windows セキュリティ>ウイルスと脅威の防止>ウイルスと脅威の防止の設定>設定の管理>除外>除外の追加または削除

↑ここから除外設定できます。

↓うちの設定

D:\EWQLはEastWestのライブラリフォルダ、N:\はNaitive Instrumentsのライブラリディスク(フォルダ)←EastWestだけでなくついでにNIも設定しました。

これで読み込み速度が超回復しました。

同じように悩んでいた方、または気づいてなかった方は、セキュリティ関連ですので自己責任で試してみてはいかがでしょう。

では、また。

2019年10月31日木曜日

Hz(ヘルツ)間は何セント?

以前音源制作するにあたり、数学まで勉強するハメになりまして、こんなメもページ作ってました。

http://major7th.jp/memo/ftc/

こちらのページは2つの周波数(Hz)を入力して計算ボタンを押すと、その間が何セントなのか教えてくれるプログラムです。

RXなんかで画像で音を見てると、この部分の音、何セント上げたら上の倍音に届くだろうってなるときがあります(ありません。)そんなときに活用するメモサイトです。

計算方法は忘れましたが、高校数学くらいの知識は必要なはずです。てか私は理屈をもう忘れました。

必要な方は使ってください。3行くらいで終わる簡単な計算式だったと思います。軽いCGIです。

でわ。

2019年10月11日金曜日

KMG7 Adanced LE

この度、KMG7 Adanced LEをリリースしました。

http://major7th.jp/kontakt/kmg7ad/

LEではファイルのマッピングを減らし、

つまりどういうことかというと、

今まで1オクターブで12個ファイルを使っていたのを、間引きして6個で補うというものです。さらにKONTAKTのコンプレス(圧縮)機能を使用しております。
これにより総容量も2GB強から850MBまで減っており、KONTAKTに表示される使用メモリも0.6Gから300Mちょっとまで減っております。

極端な音の変化はないと思われますので、通常版が5000円でLE版が2000円ですので、半額以下でお買い得となっております!

ファイルの間引きが気になる、容量問題ないという方は通常版をおすすめします。
逆に安いほうが助かる、っていうかたにはLEをおすすめします。初心者にもおすすめってやつです!

公にWEBには書いてないんですが、LEから通常版へのアップグレードも考えております。こちらは差額の3000円をお支払いいただくことになります。(PaypalまたはPaypal経由クレジットカード払いのみ)
LEを購入したときの注文番号と日付のわかるメールの写真およびスクリーンショットを添付していただき、支払いをしていただく流れを考えております。
BOOTHにクーポン機能があれば楽なんですが、ないっぽいので、手動です。。。

これからもKMG7 Adancedをご愛用いただけます様よろしくお願い致します。

Studio Major7th
Yutaka Morikawa

2017年8月9日水曜日

売れる曲

オーディオストックに自分の曲を売り出して、2ヶ月以上経ちました。

予想はしていたものの、売れる曲と売れない曲がきっぱり分かれます。

問題は、何故それが売れたのかよくわからないことです。

何に使ったのかどういう目的に使ったのか、ほとんどの場合伝えられませんので、なぜその曲が選ばれたのか謎のままです。

もう少し様子を見て、売れる曲の傾向を探らねばなりません。

ちなみに、売れない曲の傾向はなんとなく見当は付いています。
私の場合、凝って作ったものほど売れません。これは昔からわかっていたことです。
力を入れすぎる曲ほど売れません。

今のところ、さくっと作った曲の方が売れる傾向にあるようです。

2017年8月6日日曜日

明るい曲 暗い曲

僕は作曲をしますが、アドリブ演奏もします。

どちらに関しても、暗い曲調が多いです。

「おまえ、もっと明るいの作らんかい、明るいの弾かんかい」

と、よく言われます。

ごもっともかもしれませんが、自分が自由に作品を残す上で、他人の指示は聞きたくないですね。

お仕事のときは、クライアントの意向をしっかり取り入れますのでご安心ください。

自由に作曲したいときは、僕が暗い曲を作っても、あまり文句言わないで欲しい。

というのがホンネです。

2017年6月30日金曜日

Ample Guitarでオンコード

Ample GuitarのAGM、AGT、AGLの3本セットかいました。
そんな頻繁に使うわけでもないですが、アコースティックギターが使いたいと気がたまにあり、セールのタイミングで買っとくのもありかなと思いまして。

そんな中で僕が気づいた裏技を一つ紹介します。

ストラムでオンコードできます。

やり方は、コード認識モード(ドミソを押すとCになるモード)にして、

ドミソを押して、離してGを押すとConGになります。
いったんコードを押して離して鍵盤を押すのがコツです。

実際にギターとして押さえられるかは別として、ほとんどのオンコードが可能になります。
これを利用して、(読みにくいので分数で書きます)

Am, Am/G#, Am/G,  Am/F#(F#m-5)

という動きもできます。

ぶつかっておかしいと感じたら各弦を鳴らす手法で手動でぶつかる音を省けばいいです。

今回はここまで。
おつかれさまでした。


2016年10月13日木曜日

KONTAKT音源制作風景 RX5編

もっぴーさんが、音源制作に使用しているソフトウェアの公開をされたページはこちら)ので、そのうちのRX5の詳細を私が記事にしてみようという話題が出て、私の音源制作の風景の一部を記事にしてみることにしました。

こんな記事やくにたつんかいなと思いつつですが、音声編集の一環として読んでいただければ光栄でございます。


まず、

iTunesを立ち上げます。(ぇ

そしてカラムブラウザーでサントラにセットしてランダム再生させます。
ミニプレイヤーにして画面の隅においておきます。

おいおい、これは・・・・

いえ、作業中、音を鳴らさない時間がけっこうあるので、BGMが必要なのです。
そして音声編集が終わり音源制作に移ると音楽が聞けなくなることが多いので・・・。
ということで、何でもいいのでBGMを立ち上げますw

そして今回のメインとなる、RX5です。
こちらです。

何も表示されてないので味気ないですが、この右に表示されているのが、いわゆるツールみたいなもので、これのうち、私がよく使うのは、

Spectral Repair
Gain
Plug-in

です。

バッチ処理させたときは、

De-noise

を使用しましたが、今は手作業がメインなので、あまり使いません。

こちらがそれぞれの画面です。


Plug-inは使うものによって画面が違うので画像は表示させませんでした。
RX5では、いわゆるプラグインが使えるので、よそ様のEQが使えたり、トーンジェネレーターだったりコンプだったりが、選択範囲に適用されます。使えないプラグインも結構ありますのでDEMO版を入れてチェックしてから買うなどしないと、痛い目見ます。
ちなみに私がよく使うプラグインはピッチシフター系です。
RX5の上位版だとピッチ変更も可能なのですが、DEMOでさわった感じ、周波数の一部だけの適用ができなかった感じがします。プラグインだと、選択範囲内だけピッチチェンジされたものが反映されて、便利でした。
選択範囲が窓で、全体がピッチ移動して、丁度窓の中に、移動されたものが見えてくるという感じです。
モノにより、ノイズが発生しやすいピッチシフターもあります。つまりは、プラグインの質ということです。慎重に選ぶことが大事ですね。

ついでにこちらは、Spectrum Analyzerの画面。ま、分析画面の一つです。うちはデュアルディスプレイなのでもう一つのディスプレイの方に表示させてあります。

では、作業に移ります。
と、せっかくなので、De-noiseで、前回どういう作業をしたかを、見てみましょう。


こちらが、Legato部分を作ったときの生ファイルです。
生といっても、Cubaseで一部加工済みです。
左に段差があるのがそうで、これは、ちょっと理由があって、聞こえない部分ですが、音程を変える必要があってこうなりました。実際には使われない部分です。気にしないでください。

このファイルをDe-noiseを使用して、音声部分だけを抜き出す作業を、バッチ処理させました。
処理させた結果が、こちらです。


この時点でノイズはだいたい取れてます。
しかし、音源のバージョンアップに伴い、もっと音質向上を目指し、他の工程をとることにしました。
 それは、今回はボーカル音源ですが、人の声をアナライズして、手動でデジタルボイスをリアルに作ることです。

過程は企業秘密なので、結果とその後の工程だけ示させていただきます。
 まず、レガートを作るため、秘密に制作した2種類の「A(ア)」のサンプルを用意します。


上が高い音、下が低い音です。
これをなめらかにに繋がなければなりません。どうしましょう。

こんなファイルを用意しました。

これは、CubaseとMassiveを使って、Saw toothをベンドさせたものを書き出したものです。

ではこれらを使って、きれいなレガートを作りましょう。

まずは、ベースとなる元のファイルに、高い音を約0.65秒上書き貼り付けします(RX5はMIXもできますが今回はしません)。

波形をうっすら表示させ、なるべく綺麗そうなところを、約0.65秒選択してコピーです。
これで、このファイルの役目は一旦終わりました。さようなら。。。
ちなみにこの時、アナライザーはこうなってます。

選択した部分の平均値かな?そんな感じが表示されます。特にここでは見る意味はありませんが、スペクトラムアナライザとはこんなものだという参考までに。。。(ちなみに右端にちょこんと出っ張っているのは、どこかで混入したノイズです。あまりにもひどい場合は、作業中に消してしまいます。)

さて、コピーした部分を先ほど言ったように貼り付けます。

はい!できました。あ、このときGainを使用して、-1ずつ調整していき、波形を見ながらだいたい同じボリュームに調節します。この作業は、メイン画面の色ではわかりにくいので、波形で判断します。それこそ先ほどのスペクトラムアナライザーで確認するのもありです。

次は、低い音をの方を、今回は約1.3秒を0.9秒から貼り付けます。

はいぺったんこ!
これだけでもずいぶん綺麗になった気はしますが、実際は、つなぎ目にノイズがのり、おかしな音になりますし、今回の目的である綺麗なレガートを作るという役目を果たせていません。

ここからひとまず、最後のお尻の部分の処理をします。
ここでSpectral RepairのPartials+Noiseという機能を使います。
私も細かくは説明できないのですが、簡単に言うと、左右の音を綺麗につないでくれます。

設定値をガンガンに上げて、左を参照するように設定し、2.1秒以降に適用します。

Core i7 3820でも10秒程かかる処理ですが、このように、お尻が綺麗になりました。
コピーして貼り付けりゃいいじゃんと思われるかもしれませんが、コピペは、つなぎ目にノイズが発生し、それを処理するためにさらに処理が発生しますので、二度手間なのです。今知っている方法として、端っこの処理はこれが一番綺麗でした。

そしてこれを、GainツールのFadeを使用し、フェードアウトさせます。画像は、あえて載せませんので、後の画像でご確認ください。

次の工程は、用意したSaw toothファイルを繋げます。
まずは、あらかじめタイミングを計っておいたので、0.8秒から1.3秒をコピーし、それを0.48秒(このタイミングが大事)から上書き貼り付けします。(つまり、元のファイルの修正なので、秒数とフォーマットが同じであれば、元のファイルの内容なんて何でもよかったんです。全部上書きされてしまいますw)

作業画像を省きますが、ここで大きなミスを発見しました。B3からC#3までの7thのレガートだったのですが、低い方のファイルを間違ってCを使用していました。ここで、画像抜きで、修正します。これ以降、これ以前の画像とほんのちょっと変わっています。


はい、ぺったんこ!
しかしこれではいけませんね。わかりますね、レガート部はのこぎり波です。ビーっていいます。それと、下から3番目と4番目(第3倍音と第4倍音)を見てください。後続する音の方が色が明るいです。つまり、後続音の方がボリュームが大きいのです。
RX5は、綺麗に音を下げることはできますが、上げるのは難しいのです。
そこで、あらかじめここの範囲のボリュームをGainで上げておき、そのあとSpectral Repairツールで不要な部分を下げる方法をとります。
まず、グイッと上げます。

あとから上げて綺麗につなげるのは大変難しいので、前後(図でいう左右)の音のどこよりもボリュームを大きくしておきます。色が他より明るければいいわけです。

このあと、魔法を使います。
私がRX5で一番よく使う機能といってもいいでしょう。
Spectral RepairのAttenuateです。
この、貼り付けた部分の選択を維持したまま、Attenuateを行います。
設定値は、いろんな要素から判断しているのでここでは細かい説明を省かせていただきます。
簡単に言うと、Bandsは細かすぎると消えてはけない部分が消えるので256と浅めに、左右の参照比重はまずは対称に、Strengthは少し強めで1.5、方向はHorizontalつまり左右で(結局全部説明してしもた)。
これで適用させると、

はい!このとおり!!
あとGainを数回、Attenuateを2、3回使い、微調整します。ここは企業秘密で。要は前後とボリュームが、全周波数(図でいう上下)で綺麗に繋がる(色の明るさが同じくらいに)ように調整するわけです。

現時点でこのような感じになります。(波形は邪魔なので上に移動しました。)
この時点ではつなぎ目にノイズがのっています、これを今から削除するのですが、その前に、音程が変わったのに強く出ている周波数がほとんど変わってない、問題ないのかと思われるかもしれません。実は、フォルマントの関係で、この方が自然に繋がるのです。逆にこうなってないと、「はじめてのチュウ」のコロ助みたいに、ボイスチェンジャーで変化させた声みたいになるわけです
人の声は、同じ母音の場合、音程が変わっても、強く出る周波数がだいたい同じなのです。これにより、人それぞれの声の特徴が出るのです(専門家ではないので間違ったこと言ってるかもしれません)

ではこれから、つなぎ目を綺麗にします。
これは、口頭で言うと、まず、ReplaceとPartials+Noiseを使用し、繋ぎ目をなくしていきます、その過程で生じるノイズをAttenuateで消していきます。
細かい作業は、今回の作業とは異なりますが、こちらの動画である程度わかります。30分バージョンと3分バージョンとありますが、内容は早送りしただけなのでどちらでもww

で、ノイズ処理をほどこしたものがこちらになります。

ここで聞いていたBGM(iTunes)を止めます。

音声チェックです。綺麗に繋がっているか、おかしな音はないか。


。。

。。。

どうやら大丈夫です。

あと、お化粧します。

人がレガートで声を下げると、一瞬音が強く出る周波数があるのです。

元の画像でいうこれです。(途中のファイルミスにより、元画像変わりました)

だいたい「A(ア)」の場合で600Hzから1200Hzあたりにあります。
それを私は、なめらかになるよう範囲をずらしながら3回に分けて、Gainで約10dB程度上げます。

はいっ!できました!

比べてみましょう。

とっても綺麗になりました。
しかしこれは大問題なのです。
音が綺麗過ぎて、人間らしさを失っているのです。
声の微妙な揺れも、吐息の音も消えてしまっているのです。
ですから、ここからまだKONTAKT上で人間らしさを追加し、Breath(息)サウンドを追加します。
それでやっと、この上の図でいう下の音のゴージャス版が出来上がる(予定)というわけです。

いくつか企業秘密がありましたが、RX5での作業というのはこんな感じで、こういうことができますよ、の、一部を紹介できたかと思います。
他にも、ClipやClickノイズを消したり、EQもついてたりします。しかし、1、2箇所のClickノイズであらば、今回の方法のように、手動で消すことも不可能ではないです。3分のファイルに大量に載っているClickなどを消すならば、そちらのツールを使う方が早いでしょう。

ということでRX5の作業風景の一部でした。

大事なのは、作業中、BGMを聞くことです!

2016年10月11日火曜日

ゲーミングマウス G700s スクリプト



ま、これがG700sなわけですが。

通常のマウス機能に加えて、割り当て可能なボタンが8個あるわけですな。

そして、左右クリック、中央クリック、中央左右で、5、全部で13クリックあるわけですな。
それとホイール操作。

スクリプトでホイール操作はできるようですがホイール操作の検知はできないようです
その他のボタンの検知はできるので、私の場合は、スクリプト起動時からの時間というのを用いて、各ボタンにダブルクリックや、ドラッグを、配置しております。

私はゲームに使っているのではなく、音源制作における、RX5というソフトでの音声編集作業にこれを使っております。

今回ご紹介するスクリプトは、Luaという言語らしく(初耳です)、G-series独自の関数が用意されたものらしいです。インストール時に説明書PDFが着いてたと思います。

さて、何がしたいかというと、

中央ボタンに「I」を設定し、かつ、ドラッグ時はIを起動させずShift+Gからドラッグしてドラッグ終了で都合上Rに戻すという設定

ボタン5(横の下、前側)にAltダブルクリックでCtrlにするという設定

ということです。

ドラッグやダブルクリックは、専用ソフトで設定できなさそうだったので、スクリプトを使用することにしました。

まず、設定可能な主な機能は、専用のソフトウェアで設定し、スクリプトを使用するボタンは、機能をはずしておきます。以下スクリプトです。↓

key, new_time, old_time = 0,0,0;

function OnEvent(event, arg, family)
    --OutputLogMessage("event = %s, arg = %s, family = %s\n", event, arg, family);
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 3) then
        new_time = GetRunningTime();
        EnablePrimaryMouseButtonEvents(1);
        PressKey("lshift");
        PressAndReleaseKey("g");
        ReleaseKey("lshift");
        PressMouseButton(1);
    end
    if (event == "MOUSE_BUTTON_RELEASED" and arg == 3) then
        old_time = GetRunningTime();
        --OutputLogMessage("%s %s\n", new_time, old_time);
            if ((old_time - new_time) < 200) then
                PressAndReleaseKey("i");
            end

            PressAndReleaseKey("r");
            ReleaseMouseButton(1);
            EnablePrimaryMouseButtonEvents(0);
        end

    if (event == "MOUSE_BUTTON_PRESSED" and arg == 5) then
        new_time = GetRunningTime();
        --OutputLogMessage("%s %s\n", new_time, old_time);
        if ((new_time - old_time) > 2000) then
            key = 0;
        end
        if (key == 0) then
            PressKey("lalt");
            old_time = GetRunningTime();
        else
            PressKey("lctrl");
            old_time = GetRunningTime();
        end
        key = math.abs(key - 1);
    end
    if (event == "MOUSE_BUTTON_RELEASED" and arg == 5) then
        ReleaseKey("lalt");
        ReleaseKey("lctrl");
    end
end

こっから解説
中央ボタンのスクリプトで、new_timeとold_timeの意味合いが逆になっていることを先に言っておきます。ボタン5で同じ変数を使ってしまったのでこうなってしまったのかも。別変数にわけたほうがよかったですね)

とりあえず変数設定、すべて0
key, new_time, old_time = 0,0,0;

イベント発生
function OnEvent(event, arg, family)
    テスト用メッセージ
    --OutputLogMessage("event = %s, arg = %s, family = %s\n", event, arg, family);
    もし中央ボタン(3)が押されたならば
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 3) then
        スクリプト起動からの時間をnew_timeとして記録(ミリ秒だったかと)
        new_time = GetRunningTime();
        左クリックの制御を有効にする
        EnablePrimaryMouseButtonEvents(1);
        左シフトキーを押さえっぱなしにする
        PressKey("lshift");
        キーボードのgを押して離す(要はタイプする。今回はShift+Gがドラッグする前のショートカットキーである)
        PressAndReleaseKey("g");
        左シフトキーを離す
        ReleaseKey("lshift");
        左クリックボタンを押しっぱなしにする(ドラッグ操作のため)
        PressMouseButton(1);
    end
    もし中央ボタン(3)が離されたならば
    if (event == "MOUSE_BUTTON_RELEASED" and arg == 3) then
        離したときの時間をold_timeとして記録する
        old_time = GetRunningTime();
        メッセージ
        --OutputLogMessage("%s %s\n", new_time, old_time);
            もし、中央ボタンを離したときの時間が押したときから200ミリ秒未満なら
            if ((old_time - new_time) < 200) then
                通常のクリックとみなしてキーボードのiを押して離す
                PressAndReleaseKey("i");
            end

            いずれにしても中央ボタンを離すまではドラッグ状態で、離したときキーボードのrを押して離す(これは操作するソフトの都合上、Gを解除するためにRを押しているだけである)
            PressAndReleaseKey("r");
            ドラッグ終了のため左ボタンを離す
            ReleaseMouseButton(1);
            念のため、左クリックボタンの制御を無効にする
            EnablePrimaryMouseButtonEvents(0);
        end
    もし中央ボタン(5)が押されたならば
    if (event == "MOUSE_BUTTON_PRESSED" and arg == 5) then
        スクリプト起動からの時間をnew_timeとして記録
        new_time = GetRunningTime();
        メッセージ
        --OutputLogMessage("%s %s\n", new_time, old_time);
        もしボタン5を押したのが、前に押したときより2秒を超えていたら
        if ((new_time - old_time) > 2000) then
            通常クリックとみなしフラグkeyに0をセット
            key = 0;
        end
        通常クリックならば
        if (key == 0) then
            Altキーを押しっぱなしにする
            PressKey("lalt");
            スクリプト起動からの時間をold_timeとして記録
            old_time = GetRunningTime();
        もしボタン5を押したのが、前に押したときより2秒以下ならダブルクリックとみなす
        else
            Ctrlキーを押しっぱなしにする
            PressKey("lctrl");
            スクリプト起動からの時間をold_timeとして記録(どうせ同じなんだからnew_timeと比較の後にまとめて書いてもよかったですね)
            old_time = GetRunningTime();
        end
        フラグを0なら1、1なら0にする
        key = math.abs(key - 1);
    end
    もし中央ボタン(5)が離されたならば
    if (event == "MOUSE_BUTTON_RELEASED" and arg == 5) then
        Altボタンを離す
        ReleaseKey("lalt");
        Ctrlボタンを離す
        ReleaseKey("lctrl");
    end
end

もっとよい書き方があるかもしれません。
たとえば、時間を取得せず、Sleepを使う方法もあるようです。
しかしSleepはその間操作が止まるらしいので、この場合まずいと思い今回は時間をはかる方にしました。

ちなみに今回の用途はブラウザ閲覧などではないので、中央クリック左にUndo、右にRedoを設定しております。こちらもとても便利で作業がはかどります。

お約束ながら、このスクリプトで誤動作を起こして、皆さんにダイソンガイを起こしても責任は取れませんのでご了承ください。自己責任でお願いします。


ではまたお会いしましょう。。。

人気の投稿