Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[project-s] 最初の実装タスクリスト #15

Closed
49 tasks done
sigprogramming opened this issue Sep 18, 2022 · 14 comments
Closed
49 tasks done

[project-s] 最初の実装タスクリスト #15

sigprogramming opened this issue Sep 18, 2022 · 14 comments

Comments

@sigprogramming
Copy link

sigprogramming commented Sep 18, 2022

内容

メンテナーからのお願い:このタスクはまだ実験段階です。ユーザーの方から過度な期待を受けてがっかりされないよう、SNSなど開発コミュニティ以外での言及は伏せてください。

VOICEVOXに歌声合成の機能を追加します。
ひとまず実装する機能を元にタスクを書き出しています。適宜追加修正を行っていければと思います。

実現方法

作業はproject-sブランチで行われます。

タスクリスト

  • エディター
    • 歌声合成の画面を作成
      • 声 / 歌の切り替え
    • ファイル読み込み/出力
      • インポート(プロジェクトにインポート)
        • MIDIインポート
        • MusicXMLインポート
      • エクスポート
        • Waveエクスポート
    • シンガー
      • シンガーの情報を表示
        • 名前と画像を表示
      • シンガーの変更
    • テンポ、拍子の設定
    • 音量の設定
    • ピアノロール
      • スクロール
        • 縦スクロール
        • 横スクロール
      • ズーム
      • 基本的な描画機能
        • 鍵盤を描画
        • グリッドを描画
          • 小節のラインを描画
          • 拍のラインを描画
          • スナップ(クオンタイズ)のラインを描画
        • ノートを描画
      • スナップ
      • 再生位置の制御・描画
        • 再生バーを描画
        • オートスクロール
      • ノートの編集
        • ノートの選択
        • 歌詞を入力
        • ノートの追加
        • ノートの移動
        • ノートの削除
        • ノートの長さ変更
        • Tabキーによるノートの移動
        • トランスポーズ
    • プレイヤー
      • 音声を再生
      • 再生位置を表示
      • 最初に戻る(シーク)
    • 歌声合成(歌ボ形式)
      • シンガー・スコア変更時に合成
      • スコアを休符で区切って複数のフレーズに変換
      • 各フレーズを音声合成
      • 各フレーズの音声をミックス

その他

  • プロジェクトの保存はデータ構造が決まってきたときに実装
  • 曲中のテンポ・拍子、調号、強弱記号などに後で対応しやすいように実装
  • mainブランチにマージしやすいように進める(極力既存コードとファイルを分けて開発)
@Hiroshiba
Copy link
Member

issue作成ありがとうございます!

このプロジェクトはまだどうなるか全くわからない実験段階なのですが、一般の方の目にふれると間違いなく過度な期待を集めてしまうと思います。
issue内にも書いて頂いた通り、開発コミュニティ外での言及は避けていただくようよろしくおねがいします 🙏

@Patchethium
Copy link

Patchethium commented Oct 19, 2022

Following the comments here, let's say there might be some advantages in implementing it in JavaScript, like being able to run in browser and mobile platforms. However, I don't think they're important enough to be worth the effort, here is some reason:

  • No available npm packages means the piano roll needs to be built from scratch, making the development painfully long. The only piano roll package (last updated 7 years ago so it's not usable now) is implemented in WebGL and canvas, it's likely you'll have to do it the same way to insure it runs fluently, which is another torture.
  • It's not a good idea to use piano rolls on a smart phone, due to the limited screen size and input devices. Refer to the ACE virtual singers, which doesn't include a piano roll in its mobile app and moves it to pc, while already having a very high quality SVS engine.
  • The web platform is neither promising, Synthesizer V used to have a web editor but the team gave it up two years ago. BTW following it we maybe able to port openutau to browser, Synthesizer V somehow doesn't use webgl on its web editor, instead uses WebHID, WebNFC, and Web Serial to connect directly to a native GUI program. (Nah I got it wrong, I don't know how they achieved that)

We all have heard of that "don't repeat yourself", it's totally okay to fork someone else's code, it might not even be his code anyway XD

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 19, 2022

@Patchethium Thanks for all the reports!
As you said, it may indeed be difficult to develop in a browser or smartphone app.
Well, but Javascript is a familiar language with a lot of engineers, so I think it is a good and challenging thing to try to develop it.

As we mentioned at the beginning of this issue, we are not sure if it will be successful or not.
To avoid disappointing our users, we are developing it quietly and not revealing it too much publicly. So please don't go around telling everyone about it just yet...!


@Patchethium いろんな報告ありがとう!
仰るとおり、たしかにブラウザやスマホアプリで展開するのは難しいかもしれませんね。
まあでもJavascriptはエンジニアの数が多く、馴染み深い言語であるのは間違いないので、開発に挑戦するのは挑戦的で良いことだと思っています。

このissueの冒頭にも書いていますが、うまくいくかどうかわかりません。
ユーザーの期待を裏切らないように、今はあまり表に出さずひっそりと開発しています。なので今はまだ言いふらさないでくださいね・・・!

@Patchethium
Copy link

Patchethium commented Oct 19, 2022

なので今はまだ言いふらさないでくださいね・・・!

Don't worry, I don't have accounts on twitter :)

@Hiroshiba
Copy link
Member

Hiroshiba commented Jan 22, 2024

@romot-co @sigprogramming @y-chan
project-sをmainブランチにマージしても良さそうな気がしたので相談です!

先日エディタ0.15がリリースされました!
次のバージョン0.16でproject-sの機能がリリースされる予定です。
となると別にもう分けておく必要はあまりなく、どっちかと言うとproject-sにmainブランチをマージしていく作業があるので、もう合流させてしまって良いのかなと!
そうだった場合はこれからはmainブランチにプルリクエスト送っていく方針になるかなと思います。

特に問題などがなさそうであればそのうちマージしようかなと思います 🙏
(普通のエンジンだけを使っている時に致命的にはバグらないことが確認でき次第になるかもです)

@Hiroshiba
Copy link
Member

@y-chan コアのproject-sブランチですが、release-0.14から始まってないことに気づきました。
なのでrelease-0.14から改めてブランチを作ろうと思います。方針こんな感じかなと。

  1. release-0.14からrelease-0.15を作成
  2. release-0.15ブランチにproject-sブランチのコミットをcherry-pickしていく
  3. project-sブランチを削除

最後のproject-sブランチはどうするか置いといて、とりあえず1と2を進めようと思います。

あと、0.15系のpreviewビルドが大量にあって、release-0.15と混じってかなりややこしくなるのですが、一旦仕方ないかなと思ってます。
0.15系previewビルドは消しても良いのですが、VVMが使える新しいビルドができるまで1つは残しておいたほうが良さそうなのと、とりあえず放置でも良さそうなので、一旦置いとこうと思います。

@Hiroshiba
Copy link
Member

Hiroshiba commented Jan 27, 2024

完了しました!

  • コアのrelease-0.14からrelease-0.15を作成
  • upstream/project-sブランチ上でgit rebase --onto release-0.15 00c43153d42032ad3044ebf9e780d6af5c3f2bf0
    • 後半のコミットhash値は過去のmainブランチ上のコミット
  • release-0.15でgit merge project-s
  • project-sブランチを削除

@Hiroshiba
Copy link
Member

Hiroshiba commented Jan 27, 2024

エンジンのprojcet-sブランチをmasterブランチへマージしようと思います。
とりあえず作業進めます。

完了してproject-sブランチを削除しました!

@Hiroshiba
Copy link
Member

Hiroshiba commented Jan 28, 2024

エンジンのビルドが完了し、エディタのproject-s ブランチもマージできる準備がそこそこ整ったので、main ブランチにマージしていきたいと思います!

2024/01/29 2:37 完了しました!!

Hiroshiba added a commit to VOICEVOX/voicevox that referenced this issue Jan 28, 2024
## 内容

メインブランチにマージします。
エンジンを更新しないと多分エラーが色々発生するはずなので、色々書いた案内issueを作ろうと思います。

## 関連 Issue

- VOICEVOX/voicevox_project#15

## その他

これでとりあえずエディタ・エンジン・コアのすべてのproject-sブランチの役割が終わった形になります。
一区切りだと思います、一旦お疲れ様でした!!
@Hiroshiba
Copy link
Member

コアの0.15.0ビルド、1回消して再度アップロードしようと思います 🙇

@Hiroshiba
Copy link
Member

エンジンAPIの変更を行う予定です。詳しくはこちら

あとスタイルタイプの名称変更も行う予定です。
今はtalk/humming/sing_teacher/singですが、talk/frame_decode/singing_teacher/singになる予定です。

@tarepan
Copy link
Contributor

tarepan commented Feb 20, 2024

issueタイトルにある 「最初の実装」は完了した、という認識で合っているでしょうか?(close可能?)

@Hiroshiba
Copy link
Member

@tarepan コメントありがとうございます! close 可能という認識です!!

改めてお疲れ様でした!!! @sigprogramming @romot-co @y-chan

OSS放送のアーカイブをyoutubeにアップロードしておきました!
https://youtu.be/EwmwsMSFAhk
(他の方にご共有いただいても問題ありません 🙏 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants