藤本健のDigital Audio Laboratory
第1057回

”ラグ問題”にVTuberが挑んだ低遅延セッションアプリ「SyncueSong」。モニターと配信音声を別々に処理
2026年10月26日 08:00
10月23日、Windows向けのオンライン歌唱・セッションアプリ「SyncueSong(シンキューソング)」というものがオープンβ版として公開された。開発したのは、VTuberとして活動するドコカノうさぎさん。個人で開発・運営しているソフトで、正式リリースまでは無料で使える。
音声はサーバーを経由せず、P2Pで相手に直接届く仕組みで、ASIOドライバーにも対応。東京近県のIPv6回線どうしでは、ネットワークの往復時間が約10msとなる接続例も確認しているという。
離れた相手とリアルタイムで演奏するソフトといえば、ヤマハのSYNCROOMがすでにデファクトスタンダードになっているが、SyncueSongは何が違うのか。最大の特徴は、演奏者が自分の耳で聴く「モニター」の音と、OBSなどに渡す「配信・録音」の音を、まったく別のバッファーで処理している点だ。
β版を入手し、SyncueSongそのものを使ってドコカノうさぎさんにオンラインでインタビューしつつ、その仕組みを試してみた。
開発者は「VTuber歴9年」のソフトウェア技術者
SyncueSongを開発したドコカノうさぎさんは、今年でVTuber活動9年目。VRアイドルユニット「ジビエーズ」のメンバーとして、VRChatやclusterといったメタバース上での音楽ライブや配信を中心に活動している。
キズナアイさんが話題になり、個人でもVTuberができることを示した先駆者の存在に背中を押されて、自分で絵を描いてキャラクターを作り、活動を始めたのだという。
一方で、その本業はソフトウェア技術者。1993年ごろ、DOS向けの開発者用ライブラリを作る会社でキャリアをスタートし、画面や帳票の部品を開発していたそうだ。
その後、最も長く携わったのは、街なかに設置されているプリント機やゲーム機といったキオスク端末の開発。Windowsからプリンターやコインカウンターなどの特殊な機器を制御するシステムで、のちにはRaspberry Piなどのマイコンベースにも移行していったという。
マイコンからサーバーまでこなすフルスタックのエンジニアで、ネットワークも低レベルなところから扱ってきた。現在は会社員として、UnityやBlenderを使ったゲーム関連の開発などに携わっている。
また、仕事とは別に、音楽系のプログラミングとの関わりも古い。学生時代の趣味として、1989年ごろからMSXやX1を使い、X1に搭載されたFM音源を使い倒したくて、シーケンサーソフトやFM音源の音色エディターを自作していたというから、筋金入りだ。
ping 5msなら、もっと低遅延にできるのでは
開発のきっかけは、VTuberが歌う機会の多さにある。VTuberの世界では音楽ライブが盛んで、VR空間でのライブも数多く開かれている。
そこで問題になるのが、いっしょに歌うときのラグだ。
メタバースのプラットフォームが持つ音声機能は低遅延に特化していないため、音声はSYNCROOMでつなぎ、その音をVR空間に流すというのが定番になっている。ドコカノうさぎさん自身も、コロナ禍の時期からNETDUETTO、SYNCROOMのユーザーとして使ってきた。
「今の光回線でpingを打つと5msくらいで返ってきますよね。だったら、それくらいの低遅延でセッションできるんじゃないか、というのがそもそもの発想でした」とドコカノうさぎさん。
もともと低遅延なメタバースを作りたいという思いがあり、P2P通信の研究を続けていたこともあって、2025年1月ごろからSyncueSongの開発をスタート。
身近なメンバーとのテストを約1年続けたのち、2026年5月から専用のDiscordサーバーでクローズドβテストを開始した。現在のβテスターは約100人で、VTuberや「Vシンガー」と呼ばれるバーチャルシンガーが中心だが、ギターの弾き語りやピアノ演奏で使っている人もいるという。
クローズドβの段階から本番での利用も進んでいる。VRChat内の出演者と新宿のライブハウス会場をつないだライブ、参加者13人全員がSyncueSongを使って順番にデュエットしたイベント、効果音もアプリ内のパッドから鳴らし、PAをアプリ内の機能だけで完結させた即興の声劇などで使われてきた。
無圧縮のPCMをP2Pで直接送り合う
SyncueSongの通信は、サーバーを介さないP2P方式だ。
家庭のPCは通常、ルーターのNATの内側にあるため、外から直接接続することができない。そこで、接続を確立する段階だけサーバーが仲介し、お互いのルーターにUDPの通り道を開けさせる「UDPホールパンチング」という手法を用いている。いったんつながれば、音声はサーバーを経由せずPC同士で直接やりとりされる。
音声はエンコードせず、無圧縮のPCMのまま送っている。標準は48kHz/16bitで、44.1kHzも選べる(量子化ビット数は16bit固定)。48kHz/16bitの場合、モノラルで768kbps、ステレオで約1.5Mbpsになる計算だ。
メンバー同士がメッシュ状に接続するため、1人増えるごとに1〜2Mbpsずつ帯域を使い、10人で接続すると各自が20Mbps程度を使うことになるが、今の光回線であれば問題なく耐えられたという。これまでの実績は10人での合唱で、検証では20人まで接続を確認している。
当初のコンセプトは、極めてシンプルなものだった。
「SYNCROOMにはチームがありノウハウもあるけれど、こちらは音については素人。かなり甘く考えていて、バッファーをまったく持たず、圧縮もせずにPCMをそのまま送り合えば、エンコード・デコードのラグもなく一番速く通信できるんじゃないか、というのが最初のアプリでした。でも実際に作ってみると、ネットワークのジッターで音がガビガビになる。当たり前なんですけどね」
そこからバッファリングや、欠けた音声の修復に取り組み、音質と低遅延の両立を図っていった。「結局、SYNCROOMと同じことをやっていて、先人の通った道をたどっている感じです」と笑う。
「自分が聴く音」と「配信する音」を分ける二重出力
しかし、遅延を小さくすればノイズが増え、ノイズを抑えようとすれば遅延が増える、という二律背反は避けられない。そこで2025年末ごろに思いついたのが、SyncueSong独自の二重出力という仕組みだ。
「セッションするとき、自分の耳に聴こえてくる相手の音は、多少ノイズが乗っても我慢できますよね。でも、配信したりライブ会場に送ったりする音はきれいにしたい。そこで、モニタリング用の音声と、配信・録音に使う音声を、別々のバッファリングで処理するようにしました」
モニター出力はバッファーを小さくして低遅延を優先し、多少の音切れは許容する。一方、OBSなどに渡す配信・録音出力には100ms程度のバッファーを設け、音切れのない安定した音にする。配信はもともとストリーミングなので、100ms遅れても問題にはならない。
設定画面を見ると、配信・録音用出力の方式はWASAPIデバイスが推奨で、配信受信バッファの推奨値は100ms(通常20〜500ms)となっている。
その説明には「通信で遅れて届く音声を配信用に待ちます。大きいほど配信音が遅れます(相手の声と揃えるため、自分の声とBGMも同じだけ遅らせます。相手がいない間は遅らせません)」とある。
つまり、相手の声が届くのを待ち合わせるだけでなく、自分の声やBGMもわざと同じだけ遅らせることで、配信側では全員の音の時間軸を揃えているわけだ。モニターにはまったく影響しない。
この様子は、SyncueSongに搭載されている「SyncMon」というモニター画面で確認できる。
上段がASIOのモニター出力、下段がWASAPIの配信・録音出力で、それぞれのトラックの波形とバッファー量が表示される。取材時、モニター側のドコカノうさぎさんの音声のバッファーは目標4.7msだったのに対し、配信・録音側は目標100ms。モニターで「今」鳴っている音が、配信側ではまだ待ち行列に入っていて、およそ100ms後に出ていく様子が波形からよくわかる。
ちなみに、配信・録音出力の出力先は、モニターとは別のデバイスにする必要がある。OBSに渡す場合は、仮想オーディオドライバーなどを指定すればよく、ドコカノうさぎさんはSYNCROOMをインストールすると入るヤマハの仮想ドライバー(Yamaha SYNCROOM Driver)を使っているそうだ。
メッシュ接続の経路ごとに遅延を計算する「SYNC」
配信側にバッファーの余裕があるなら、そこでタイミングも合わせられる。そうして搭載されたのが、同期補正機能「SYNC」だ。
2人だけのセッションであれば話は単純だが、3人以上になるとP2P接続はメッシュ構造になる。
ここで、BGMを鳴らしている人など、リズムの基準となる人(クロックソース)を1人決めたとしよう。ほかのメンバーは、基準の人の音を聴いて歌い、その歌声が自分に届く。つまり、自分に聴こえてくる各メンバーの声の遅れは「基準→その人」と「その人→自分」という経路の遅延の合計になり、人によって異なる。
SYNCは、この経路ごとの遅延を計算し、配信・録音側で各メンバーの音声のタイミングを自動的に揃える機能だ。さらに、ネットワークの遅延だけでなく、各自のオーディオインターフェースやマイク、スピーカーの遅延も加味して補正するという。
それを可視化したのが、SyncMonのネットワークビューだ。
ノード間の距離は片道遅延に比例して配置されていて、線上の数字がその区間の片道遅延(ms)、黄色い円で囲まれたノードがSYNCの基準となる人。画面下には計算式が表示される。
例えば、下の画面の5人構成の例では、「Guest1:基準→Guest1 22ms+マイク遅延0ms+Guest1→自分 5ms=27ms」、「Guest2:17ms+0ms+4ms=21ms」といった具合に、人ごとに到着時刻を算出している。
ドコカノうさぎさんから提供してもらった動画では、2人から9人までメンバーを増やしていくと、メッシュが複雑になっていく様子がよくわかる。
9人の時点では、区間ごとの片道遅延は1msから45ms程度までばらつき、基準の人の音を聴いて歌った声が自分に届くまでの時間も、9msの人もいれば53msの人もいるという状況になっていた。これを人の耳で揃えるのは不可能だろう。
SYNCの基準は、メイン画面の各メンバーの横にあるSYNCボタンをクリックするだけで切り替えられる。自動で補正しきれない場合に備えて、メンバーごとに「手動SYNC補正」のスライダーも用意されていて、ライブではPA担当者がこれを使って調整することもあるそうだ。
また、ネットワークビューで「マイクノード表示」をオンにすると、マイク遅延も1つのノードとして表示される。取材時は、ドコカノうさぎさん側にマイク遅延として23msが設定されていた。ボイスチェンジャーなどの処理で生じる遅れとみられ、これもSYNCの計算に組み込まれる。
なお、このSYNCの設計については、11月28日に開催されるバーチャル学会2026のポスターセッションで、「誰の耳で揃えるか:ネット越しに歌を合わせるための演奏者モニターと配信音声の時間整列」というタイトルで発表される予定だ。
埼玉〜横浜間で、実際にバッファーを詰めてみた
では、実際の遅延はどのくらいなのか。今回の取材は、埼玉県にいるドコカノうさぎさんと、横浜にいる筆者との間で行なった。筆者の回線は地元ケーブルTVの光回線でIPv4での接続だ。
SyncueSongの設定画面の「通信バッファ・音質」には、A「高音質トーク」(50ms)、B「低遅延で合奏」(20ms)、C「もっと低遅延」(10ms以下)、D「極限低遅延」(3ms以下)という4つのプリセットと、カスタム設定が用意されている。CとDでは、指定したバッファーサイズを上限として、余裕があれば自動的に削る「自動最適化」がオンになる。
| プリセット | バッファー | 自動最適化 | 備考 |
|---|---|---|---|
| A 高音質トーク | 50ms | — | — |
| B 低遅延で合奏 | 20ms | — | — |
| C もっと低遅延 | 10ms以下 | ON | 指定サイズを上限に、余裕があれば削る |
| D 極限低遅延 | 3ms以下 | ON | 同上 |
| カスタム | 1〜100ms | 任意 | 取材時は21.33ms(1,024サンプル)→4.67ms(224サンプル)で試用 |
出典:SyncueSong v0.2.1609の設定画面(48kHz時)
取材を始めた時点では、筆者側はカスタムの21.33ms(48kHzで1,024サンプル)になっていたので、スライダーを下げていき、4.67ms(224サンプル)まで小さくしてみた。
ドコカノうさぎさん側は1msまで下げている。この状態で、メイン画面に表示される往復の遅延は9〜13ms程度。
表示は「良好」と「たまに音切れ」の間を行ったり来たりしていて、実際、ドコカノうさぎさんの声は時々プツッと途切れるものの、会話や歌の妨げになるほどではない。プツッと切れるかどうかは、聴く側ではなく、送る側である相手のバッファー設定で決まるそうだ。
この設定画面で興味深いのが「遅延パケット破棄方法」という項目。
「スムース(テンポ遅れあり)」「高速(音声途切れあり)」「破壊的(多すぎる分を即座に捨てる)」の3つから選べるようになっていて、遅れて届いたパケットをどう扱うかをユーザーが選択できる。まさに、低遅延と音切れのどちらを取るかという割り切りを、設定として見せているわけだ。
なお、これまでの最速記録は、東京近県のIPv6回線どうしで往復8ms(片道4ms)だったという。ただし、これはあくまでもベストケース。「耳できれいに聴こえる状態で使うなら、だいたい15msくらいでやっています」とのことだ。
遠距離の例も聞いてみたところ、埼玉と関西の間でも往復15ms程度。福岡との間では純粋なpingで20ms程度になり、バッファーを含めて実用的に聴こえる状態にすると30〜40msくらいになるそうだ。
また、歌ではなく声劇での実績だが、中東とつないだこともあり、そのときは往復で100ms程度あったものの、間が大事な声劇でも、一般的なボイスチャットに比べて大きく改善したと好評だったという。
| 接続 | 往復遅延 | 条件・備考 |
|---|---|---|
| 東京近県どうし(IPv6) | 8ms | ベストケース(片道4ms) |
| 東京近県どうし(IPv6) | 約10ms | ネットワークの往復時間(プレスリリース記載の接続例) |
| 通常の実用設定 | 15ms程度 | 耳できれいに聴こえる状態 |
| 埼玉〜横浜(筆者宅、IPv4) | 9〜13ms | 取材時の画面表示。たまに音切れあり |
| 埼玉〜関西 | 15ms程度 | |
| 埼玉〜福岡 | 30〜40ms | 純粋なpingは20ms程度。バッファー込みで実用的に聴こえる状態 |
| 日本〜中東 | 100ms程度 | 声劇での実績 |
出典:ドコカノうさぎさんへのインタビュー、プレスリリース、取材時の画面表示。回線や距離、バッファー設定により変わる
使い勝手の面で大きいのは、セッション中に設定を変更しても音が途切れないことだ。実際、筆者がバッファーのスライダーを動かしている間も、会話はずっと続けられた。βテスターからも「途切れないで設定を変えられるのはいい」という声が上がっているという。
ASIOドライバーの「届き方」を測る診断機能
取材後、ドコカノうさぎさんから「言い忘れていた機能がある」と連絡があった。
オーディオインターフェースのASIOドライバーが、指定したバッファーサイズどおりの間隔で正確にオーディオデータを届けているかを計測する「ASIO診断(通信間隔計測)」という機能だ。
実はこの機能、筆者が以前、この連載で書いた「ウィンドウズが「ASIO」標準対応になる件。裏事情をヤマハに聞いてみた」という記事から着想を得たのだという。
ドコカノうさぎさんはSyncueSongの開発中、USB経由でオーディオデータが届くタイミングの問題に直面し、いろいろと計測して調べていた。ちょうどその話が、記事の中でヤマハのエンジニアから語られていたのだそうだ。
使い方は、ツールメニューから「ASIO診断(通信間隔計測)」を選び、計測時間を指定して「計測開始」を押すだけ。音声は流したままで構わない。計測しているのは、ドライバーからSyncueSongのネイティブコアに呼ばれるコールバックの間隔で、その分布がヒストグラムで表示される。
ドコカノうさぎさんが提供してくれた計測例では、Yamaha Steinberg USB ASIOドライバーで、バッファーサイズを32サンプル(48kHzで0.667ms周期)に設定している。
| 項目 | 値 |
|---|---|
| ドライバー | Yamaha Steinberg USB ASIO |
| 設定 | 32サンプル/48kHz(公称周期0.667ms) |
| 計測時間・回数 | 10.2秒/15,263回 |
| 平均 | 0.666ms |
| 中央値 | 0.657ms |
| 最頻値 | 0.750ms(9%) |
| 最小/最大 | 0.089ms/1.131ms |
| ばらつき | ±0.112ms(16.8%) |
| ブロック/回 | 1.00 |
| 判定 | 設定どおり |
| 間隔の安定度 | 52/100(ばらつきが大きい) |
出典:ドコカノうさぎさん提供の計測画面
10.2秒間で15,263回のコールバックを計測し、平均0.666ms、中央値0.657ms、ばらつき±0.112msという結果になった。
判定は「設定どおり」。間隔の分布に「ほぼ0ms」の群がなく、山が周期のまわりに1つだけなので、ドライバーが1ブロックずつ配っていて、指定したバッファーサイズがそのまま実効周期になっている、ということだ。
一方で、間隔の安定度は100点中52点で、周期は設定どおりでも1回ごとのタイミングには±0.1ms程度のゆれがあることもわかる。
ドコカノうさぎさんによると、ドライバーによってはパケットが2つまとめて送られてきて、不正確なことが多いという。その場合、コールバックの間隔は「ほぼ0ms」と「周期の2倍」の2つの山に分かれるので、ヒストグラムの形ですぐに見分けられる。
設定上のバッファーサイズを小さくしても、実際には2ブロック単位でしか届いていない、ということが起こり得るわけだ。手持ちのオーディオインターフェースの実力を測れるツールとしても面白い。
歌うための機能、配信のための機能
ここまで音声の技術面を中心に見てきたが、SyncueSongには歌や配信のための機能も数多く搭載されている。
まずマイクの音に掛けるエフェクト「マイクFx」。EQ、ノイズゲート、エンハンサー、ディエッサー、コンプレッサー、ディレイ、リミッター、リバーブ、パンが用意されていて、上から順に直列で処理される。
DAWとの連携用には、専用のVSTプラグインがある。DAWのトラックやマスターにインサートすると、その音がSyncueSongに送られ、SyncueSongの音がDAWに返ってくるブリッジの仕組みだ。
マルチトラックにも対応しているので、特定のメンバーの声やBGMだけをDAWに取り込み、個別にエフェクトを掛けることもできる。ギターとマイクをDAW上でミックスしたい人のほか、VTuberにはボイスチェンジャーをVSTプラグインとして使っている人が多いため、DAW連携は必須になるという。
内蔵のボイスチェンジャーも現在開発中。SyncueSong自体をVSTホストにするというアイデアも、ライセンスの問題などがクリアできれば将来的に検討したいとのことだった。
BGMプレイヤーは、複数のプレイリストを持てて、曲ごとに音量やループの設定を記憶できる。「速度・キー」タブでは再生速度とキーを変更でき、スロー再生で練習しながら、録音データは原曲のテンポに戻して保存するといったことも可能。
「カラオケ」タブには、簡易ボーカルキャンセルのほか、ガイドメロディを自分の耳にだけ聴かせる機能がある。ガイド用の音源やボーカル入りの原曲を読み込んでおけば、ほかのメンバーや配信には流れず、自分だけが聴きながら歌えるので、初めて歌う曲でも歌いやすくなるわけだ。
さらに、ルームのメンバー全員が同じ歌詞の同じ位置を見ながら歌える歌詞の同期表示、自分の声・相手の声・BGMを別々のファイルに残すマルチトラック録音、効果音パッドやメトロノームなども搭載されている。
音から少し離れるが、VTuberの配信画面を作るための「ワールド」という機能もある。
アバターや立ち絵、画像、文字、時計などを並べた画面を、ルームのメンバー全員で共有しながら編集でき、それをSpoutやウィンドウキャプチャでOBSに取り込める。歌詞をミュージックビデオのテロップのように表示する機能もあり、背景を単色にしておけばクロマキーで抜いて使うことも可能だ。サイコロやブロック崩しなどのミニゲームも用意されていて、P2Pの低遅延を活かして遊べるようになっている。ライブの打ち上げをここでやることもあるそうだ。
SYNCROOMとの違いは「割り切り」と「アイデア」
改めて、SYNCROOMとの違いはどこにあるのか、ドコカノうさぎさんに聞いてみた。
「低遅延のための仕組みという意味では、物理的な限界は同じだと思っています。バッファー処理はネイティブコードで作っていて最適化もかなりかけていますが、SYNCROOMもP2Pなので、そこに大きな差はないはず。あるとしたら、音切れをどこまで許容できるか。どこまで割り切れて、どこまで攻められるか、というところかなと思います」
突き詰めれば、遅延の根本的な考え方が大きく違うわけではない。そのうえで、モニターと配信・録音の二重出力というアイデアと、それを前提にしたSYNC、そして配信や歌のための多彩な機能を盛り込んだことが、SyncueSongの個性になっているといえそうだ。
正式版は2027年春ごろ。Mac版、スマホ版も検討
今後は、オープンβ期間中に寄せられる意見や不具合報告をもとに、音声の安定性や初期設定のわかりやすさ、配信での使い勝手を改善していく。正式版のリリースは2027年春ごろの予定で、あわせて1ルーム16人・20人で使える有料プランも準備しているという。オープンβ版の参加人数は1ルーム最大10人だ。
正式リリース後は、macOS版、スマートフォン(Android・iOS)版への対応も検討している。スマホ版では、さすがに全機能というわけにはいかないものの、セッションに必要な機能を載せたいとのこと。
PCをスマホのテザリングで接続して試したところ、意外と実用的だったそうで、「余計なルーティングが挟まらない分、公衆回線のほうが下手したら速いかもしれない」という感触を持っているという。スマホ側にASIOに相当する仕組みがないため、アプリとしてどこまで低遅延にできるかは今後の課題だ。
個人開発でここまで作り込んでいることに驚かされるが、その背景には、VTuberとして歌い、ライブを開催する当事者としての実感がある。SYNCROOMユーザーにとっても、触ってみる価値のあるソフトではないだろうか。オープンβ版はWindows 10/11(64bit)に対応し、公式サイトからダウンロードできる。
- 名称:SyncueSong(シンキューソング)
- 提供形態:オープンβ版(2026年10月23日公開)
- 価格:無料(正式リリースまで)
- 対応OS:Windows 10/11(64bit)
- 参加人数:1ルーム最大10人
- 推奨環境:ASIO対応オーディオインターフェース、ヘッドホン、有線LAN(USBマイクや内蔵マイクでも利用可)
- 公式サイト:https://syncuesong.com















