@audiofool/moondog 0.3.0-beta.1 → 0.3.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/scripts/moondog.mjs +98 -5
- package/src/core/listening-now.mjs +75 -6
- package/src/core/moondog-application.mjs +63 -18
- package/src/i18n/messages/de.mjs +1 -0
- package/src/i18n/messages/en.mjs +2 -0
- package/src/i18n/messages/es.mjs +1 -0
- package/src/i18n/messages/fr.mjs +1 -0
- package/src/i18n/messages/it.mjs +1 -0
- package/src/i18n/messages/ja.mjs +1 -0
- package/src/i18n/messages/ko.mjs +1 -0
- package/src/i18n/messages/pt.mjs +1 -0
- package/src/i18n/messages/zh-Hant.mjs +1 -0
- package/src/i18n/messages/zh.mjs +1 -0
- package/src/i18n/screen/es.mjs +65 -0
- package/src/i18n/screen/ja.mjs +65 -0
- package/src/i18n/screen/pt.mjs +65 -0
- package/src/i18n/screen/zh.mjs +65 -0
- package/src/integrations/apple-music/terminal-preview-player.mjs +10 -0
- package/src/integrations/netease/ncm-cli-player.mjs +12 -6
- package/src/integrations/stable-audio/local-generator.mjs +216 -80
- package/src/integrations/stable-audio/setup.mjs +653 -0
- package/src/integrations/stable-audio/sources.mjs +106 -0
- package/src/runtime/pi/agent-runtime.mjs +28 -10
- package/src/surfaces/cli/command-completions.mjs +15 -1
- package/src/surfaces/cli/tui.mjs +300 -18
package/src/i18n/screen/es.mjs
CHANGED
|
@@ -1053,4 +1053,69 @@ export default {
|
|
|
1053
1053
|
"Play a track Moondog made": "Volver a poner una pista que hizo Moondog",
|
|
1054
1054
|
"Start a stream": "Empezar un flujo",
|
|
1055
1055
|
"Stop the stream": "Parar el flujo",
|
|
1056
|
+
"Go on air: Moondog keeps making music from your taste": "Sal al aire: Moondog sigue haciendo música a tu gusto",
|
|
1057
|
+
"on air until {time}": "al aire hasta las {time}",
|
|
1058
|
+
"Cutting the next record": "Grabando el siguiente disco",
|
|
1059
|
+
"Off air: the next record couldn't be made.": "Fuera del aire: no se pudo hacer el siguiente disco.",
|
|
1060
|
+
"The next record is still being cut.": "El siguiente disco aún se está grabando.",
|
|
1061
|
+
"Off air.": "Fuera del aire.",
|
|
1062
|
+
"Turn on music making first: /generation on.": "Primero activa la creación de música: /generation on.",
|
|
1063
|
+
"Download a Stable Audio 3 model from Stability AI": "Descargar un modelo de Stable Audio 3 de Stability AI",
|
|
1064
|
+
"Make music with a downloaded model": "Hacer música con un modelo descargado",
|
|
1065
|
+
"Delete a downloaded model from this Mac": "Borrar de este Mac un modelo descargado",
|
|
1066
|
+
"Stop the download": "Detener la descarga",
|
|
1067
|
+
"Medium: best sound, about 5.2 GB": "Medium: el mejor sonido, unos 5,2 GB",
|
|
1068
|
+
"Small Music: faster, lighter, about 1.7 GB": "Small Music: más rápido y ligero, unos 1,7 GB",
|
|
1069
|
+
"getting ready": "preparando",
|
|
1070
|
+
"There isn't enough free space on this Mac for the download. Free some up, then use /generation download again.": "No hay espacio libre suficiente en este Mac para la descarga. Libera algo y vuelve a usar /generation download.",
|
|
1071
|
+
"A downloaded file didn't match the one Stability AI publishes, so Moondog deleted it. Use /generation download to try again.": "Un archivo descargado no coincidía con el que publica Stability AI, así que Moondog lo borró. Usa /generation download para intentarlo de nuevo.",
|
|
1072
|
+
"The download couldn't reach its source. Check your connection, then use /generation download to try again.": "La descarga no pudo llegar a su origen. Revisa tu conexión y usa /generation download para intentarlo de nuevo.",
|
|
1073
|
+
"Another Moondog window or terminal is already downloading. /generation shows how far it is.": "Otra ventana o terminal de Moondog ya está descargando. /generation muestra cuánto lleva.",
|
|
1074
|
+
"The download didn't finish: {error}. Use /generation download to try again.": "La descarga no terminó: {error}. Usa /generation download para intentarlo de nuevo.",
|
|
1075
|
+
"unknown error": "error desconocido",
|
|
1076
|
+
"Stable Audio 3 {model} is ready. Ask for a track.": "Stable Audio 3 {model} está listo. Pide una pista.",
|
|
1077
|
+
"Stable Audio 3 {model} is downloaded. Use it with /generation use {choice}.": "Stable Audio 3 {model} está descargado. Úsalo con /generation use {choice}.",
|
|
1078
|
+
"Download stopped. /generation download {choice} picks it up where it left off.": "Descarga detenida. /generation download {choice} sigue donde se quedó.",
|
|
1079
|
+
"download stopped on an error": "descarga detenida por un error",
|
|
1080
|
+
"downloading": "descargando",
|
|
1081
|
+
"downloading, {percent}%": "descargando, {percent}%",
|
|
1082
|
+
"installed, in use": "instalado, en uso",
|
|
1083
|
+
"installed": "instalado",
|
|
1084
|
+
"partly downloaded": "descargado en parte",
|
|
1085
|
+
"not downloaded": "sin descargar",
|
|
1086
|
+
"{size} GB": "{size} GB",
|
|
1087
|
+
"In use: your own install at {folder}.": "En uso: tu propia instalación en {folder}.",
|
|
1088
|
+
"Get a model with /generation download medium or small. /generation use, remove and cancel manage them.": "Consigue un modelo con /generation download medium o small. /generation use, remove y cancel los gestionan.",
|
|
1089
|
+
"Making music on this Mac is off. Get Stable Audio 3 with /generation download medium, or small for a lighter model; music making turns on when it's done.": "Hacer música en este Mac está desactivado. Consigue Stable Audio 3 con /generation download medium, o small para un modelo más ligero; la creación de música se activa al terminar.",
|
|
1090
|
+
"Stable Audio 3 {model} isn't downloaded yet. Get it with /generation download {choice}.": "Stable Audio 3 {model} aún no está descargado. Consíguelo con /generation download {choice}.",
|
|
1091
|
+
"Making music on this Mac is off. Stable Audio 3 {model} is ready; turn it on with /generation on.": "Hacer música en este Mac está desactivado. Stable Audio 3 {model} está listo; actívalo con /generation on.",
|
|
1092
|
+
"Use /generation download, use or remove with medium or small, or /generation cancel.": "Usa /generation download, use o remove con medium o small, o /generation cancel.",
|
|
1093
|
+
"No download is running.": "No hay ninguna descarga en curso.",
|
|
1094
|
+
"Stable Audio 3 {model} is already downloading.": "Stable Audio 3 {model} ya se está descargando.",
|
|
1095
|
+
"Another download is running. /generation cancel stops it.": "Hay otra descarga en curso. /generation cancel la detiene.",
|
|
1096
|
+
"Stable Audio 3 {model} is already on this Mac. Use it with /generation use {choice}.": "Stable Audio 3 {model} ya está en este Mac. Úsalo con /generation use {choice}.",
|
|
1097
|
+
"Already downloaded.": "Ya está descargado.",
|
|
1098
|
+
"Stable Audio 3 comes under the Stability AI Community License ({license}), and its text encoder, T5Gemma, under the Gemma Terms of Use ({gemma}). Moondog downloads it only from Stability AI's official sources and checks every file.\n\nTo agree and download {model} ({size} GB): /generation download {choice} --agree": "Stable Audio 3 se rige por la Stability AI Community License ({license}), y su codificador de texto, T5Gemma, por los Gemma Terms of Use ({gemma}). Moondog lo descarga solo de las fuentes oficiales de Stability AI y comprueba cada archivo.\n\nPara aceptar y descargar {model} ({size} GB): /generation download {choice} --agree",
|
|
1099
|
+
"Waiting for your agreement.": "Esperando tu aceptación.",
|
|
1100
|
+
"The download didn't finish.": "La descarga no terminó.",
|
|
1101
|
+
"Downloading Stable Audio 3 {model} ({size} GB) from Stability AI's official sources. It runs in the background; /generation cancel stops it, and a later download picks up where it left off.": "Descargando Stable Audio 3 {model} ({size} GB) de las fuentes oficiales de Stability AI. Sigue en segundo plano; /generation cancel la detiene, y una descarga posterior sigue donde se quedó.",
|
|
1102
|
+
"Downloading Stable Audio 3 {model}.": "Descargando Stable Audio 3 {model}.",
|
|
1103
|
+
"Wait for the download to finish, or stop it with /generation cancel, before removing a model.": "Espera a que termine la descarga, o detenla con /generation cancel, antes de quitar un modelo.",
|
|
1104
|
+
"A download is running.": "Hay una descarga en curso.",
|
|
1105
|
+
"Stable Audio 3 {model} isn't on this Mac.": "Stable Audio 3 {model} no está en este Mac.",
|
|
1106
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. It's the last model, so the rest of Moondog's Stable Audio 3 setup goes too. To go ahead: /generation remove {choice} --yes": "Quitar Stable Audio 3 {model} borra sus {size} GB de este Mac. Es el último modelo, así que también se va el resto de la instalación de Stable Audio 3 de Moondog. Para seguir: /generation remove {choice} --yes",
|
|
1107
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. To go ahead: /generation remove {choice} --yes": "Quitar Stable Audio 3 {model} borra sus {size} GB de este Mac. Para seguir: /generation remove {choice} --yes",
|
|
1108
|
+
"Nothing removed yet.": "Aún no se ha quitado nada.",
|
|
1109
|
+
"Removed Stable Audio 3 {model} from this Mac.": "Stable Audio 3 {model} quitado de este Mac.",
|
|
1110
|
+
"Removed.": "Quitado.",
|
|
1111
|
+
"Removed. Music making isn't ready.": "Quitado. La creación de música no está lista.",
|
|
1112
|
+
"Use /generation, /generation on [folder] or off, or /generation download, use or remove with medium or small.": "Usa /generation, /generation on [carpeta] u off, o /generation download, use o remove con medium o small.",
|
|
1113
|
+
"best sound": "el mejor sonido",
|
|
1114
|
+
"faster, lighter": "más rápido y ligero",
|
|
1115
|
+
"getting uv": "obteniendo uv",
|
|
1116
|
+
"getting Stable Audio 3's code": "obteniendo el código de Stable Audio 3",
|
|
1117
|
+
"setting up Python": "preparando Python",
|
|
1118
|
+
"downloading the model": "descargando el modelo",
|
|
1119
|
+
"checking the files": "comprobando los archivos",
|
|
1120
|
+
"Stable Audio 3's Python environment couldn't be set up. Check your connection, then use /generation download to try again.": "No se pudo preparar el entorno de Python de Stable Audio 3. Revisa tu conexión y usa /generation download para intentarlo de nuevo.",
|
|
1056
1121
|
};
|
package/src/i18n/screen/ja.mjs
CHANGED
|
@@ -1053,4 +1053,69 @@ export default {
|
|
|
1053
1053
|
"Play a track Moondog made": "Moondog が作った曲をもう一度かける",
|
|
1054
1054
|
"Start a stream": "音楽の流れを始める",
|
|
1055
1055
|
"Stop the stream": "音楽の流れを止める",
|
|
1056
|
+
"Go on air: Moondog keeps making music from your taste": "オンエア:あなたの好みから Moondog が音楽を作り続ける",
|
|
1057
|
+
"on air until {time}": "{time} までオンエア",
|
|
1058
|
+
"Cutting the next record": "次のレコードをカッティング中",
|
|
1059
|
+
"Off air: the next record couldn't be made.": "オフエア:次のレコードを作れませんでした。",
|
|
1060
|
+
"The next record is still being cut.": "次のレコードはまだカッティング中です。",
|
|
1061
|
+
"Off air.": "オフエアにしました。",
|
|
1062
|
+
"Turn on music making first: /generation on.": "先に音楽作りをオンにしてください:/generation on。",
|
|
1063
|
+
"Download a Stable Audio 3 model from Stability AI": "Stability AI から Stable Audio 3 のモデルをダウンロードする",
|
|
1064
|
+
"Make music with a downloaded model": "ダウンロードしたモデルで音楽を作る",
|
|
1065
|
+
"Delete a downloaded model from this Mac": "ダウンロードしたモデルをこの Mac から削除する",
|
|
1066
|
+
"Stop the download": "ダウンロードを止める",
|
|
1067
|
+
"Medium: best sound, about 5.2 GB": "Medium:いちばん良い音、約 5.2 GB",
|
|
1068
|
+
"Small Music: faster, lighter, about 1.7 GB": "Small Music:速くて軽い、約 1.7 GB",
|
|
1069
|
+
"getting ready": "準備中",
|
|
1070
|
+
"There isn't enough free space on this Mac for the download. Free some up, then use /generation download again.": "この Mac にはダウンロードに足りる空き容量がありません。空きを作ってから、もう一度 /generation download を使ってください。",
|
|
1071
|
+
"A downloaded file didn't match the one Stability AI publishes, so Moondog deleted it. Use /generation download to try again.": "ダウンロードしたファイルが Stability AI の公開しているものと一致しなかったため、Moondog が削除しました。/generation download でやり直してください。",
|
|
1072
|
+
"The download couldn't reach its source. Check your connection, then use /generation download to try again.": "ダウンロード元に接続できませんでした。接続を確かめてから、/generation download でやり直してください。",
|
|
1073
|
+
"Another Moondog window or terminal is already downloading. /generation shows how far it is.": "別の Moondog のウィンドウかターミナルがすでにダウンロードしています。/generation で進み具合がわかります。",
|
|
1074
|
+
"The download didn't finish: {error}. Use /generation download to try again.": "ダウンロードが終わりませんでした:{error}。/generation download でやり直してください。",
|
|
1075
|
+
"unknown error": "不明なエラー",
|
|
1076
|
+
"Stable Audio 3 {model} is ready. Ask for a track.": "Stable Audio 3 {model} の準備ができました。曲をリクエストしてください。",
|
|
1077
|
+
"Stable Audio 3 {model} is downloaded. Use it with /generation use {choice}.": "Stable Audio 3 {model} をダウンロードしました。/generation use {choice} で使えます。",
|
|
1078
|
+
"Download stopped. /generation download {choice} picks it up where it left off.": "ダウンロードを止めました。/generation download {choice} で続きから再開します。",
|
|
1079
|
+
"download stopped on an error": "エラーでダウンロードが止まりました",
|
|
1080
|
+
"downloading": "ダウンロード中",
|
|
1081
|
+
"downloading, {percent}%": "ダウンロード中、{percent}%",
|
|
1082
|
+
"installed, in use": "インストール済み、使用中",
|
|
1083
|
+
"installed": "インストール済み",
|
|
1084
|
+
"partly downloaded": "一部ダウンロード済み",
|
|
1085
|
+
"not downloaded": "未ダウンロード",
|
|
1086
|
+
"{size} GB": "{size} GB",
|
|
1087
|
+
"In use: your own install at {folder}.": "使用中:{folder} にある自分のインストール。",
|
|
1088
|
+
"Get a model with /generation download medium or small. /generation use, remove and cancel manage them.": "/generation download medium か small でモデルを入手します。/generation use、remove、cancel で管理します。",
|
|
1089
|
+
"Making music on this Mac is off. Get Stable Audio 3 with /generation download medium, or small for a lighter model; music making turns on when it's done.": "この Mac での音楽作りはオフです。/generation download medium で Stable Audio 3 を入手してください。軽いモデルなら small です。終わると音楽作りがオンになります。",
|
|
1090
|
+
"Stable Audio 3 {model} isn't downloaded yet. Get it with /generation download {choice}.": "Stable Audio 3 {model} はまだダウンロードされていません。/generation download {choice} で入手してください。",
|
|
1091
|
+
"Making music on this Mac is off. Stable Audio 3 {model} is ready; turn it on with /generation on.": "この Mac での音楽作りはオフです。Stable Audio 3 {model} は準備できています。/generation on でオンにしてください。",
|
|
1092
|
+
"Use /generation download, use or remove with medium or small, or /generation cancel.": "/generation download、use、remove に medium か small を付けるか、/generation cancel を使ってください。",
|
|
1093
|
+
"No download is running.": "実行中のダウンロードはありません。",
|
|
1094
|
+
"Stable Audio 3 {model} is already downloading.": "Stable Audio 3 {model} はすでにダウンロード中です。",
|
|
1095
|
+
"Another download is running. /generation cancel stops it.": "別のダウンロードが実行中です。/generation cancel で止まります。",
|
|
1096
|
+
"Stable Audio 3 {model} is already on this Mac. Use it with /generation use {choice}.": "Stable Audio 3 {model} はすでにこの Mac にあります。/generation use {choice} で使えます。",
|
|
1097
|
+
"Already downloaded.": "ダウンロード済みです。",
|
|
1098
|
+
"Stable Audio 3 comes under the Stability AI Community License ({license}), and its text encoder, T5Gemma, under the Gemma Terms of Use ({gemma}). Moondog downloads it only from Stability AI's official sources and checks every file.\n\nTo agree and download {model} ({size} GB): /generation download {choice} --agree": "Stable Audio 3 は Stability AI Community License({license})に、そのテキストエンコーダー T5Gemma は Gemma Terms of Use({gemma})に従います。Moondog は Stability AI の公式の配布元からのみダウンロードし、すべてのファイルを確かめます。\n\n同意して {model}({size} GB)をダウンロードするには:/generation download {choice} --agree",
|
|
1099
|
+
"Waiting for your agreement.": "同意を待っています。",
|
|
1100
|
+
"The download didn't finish.": "ダウンロードが終わりませんでした。",
|
|
1101
|
+
"Downloading Stable Audio 3 {model} ({size} GB) from Stability AI's official sources. It runs in the background; /generation cancel stops it, and a later download picks up where it left off.": "Stability AI の公式の配布元から Stable Audio 3 {model}({size} GB)をダウンロードしています。バックグラウンドで進みます。/generation cancel で止まり、後のダウンロードは続きから再開します。",
|
|
1102
|
+
"Downloading Stable Audio 3 {model}.": "Stable Audio 3 {model} をダウンロードしています。",
|
|
1103
|
+
"Wait for the download to finish, or stop it with /generation cancel, before removing a model.": "モデルを削除する前に、ダウンロードが終わるのを待つか、/generation cancel で止めてください。",
|
|
1104
|
+
"A download is running.": "ダウンロードが実行中です。",
|
|
1105
|
+
"Stable Audio 3 {model} isn't on this Mac.": "Stable Audio 3 {model} はこの Mac にありません。",
|
|
1106
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. It's the last model, so the rest of Moondog's Stable Audio 3 setup goes too. To go ahead: /generation remove {choice} --yes": "Stable Audio 3 {model} を削除すると、この Mac からその {size} GB が消えます。最後のモデルなので、Moondog の Stable Audio 3 のほかの部分も消えます。進めるには:/generation remove {choice} --yes",
|
|
1107
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. To go ahead: /generation remove {choice} --yes": "Stable Audio 3 {model} を削除すると、この Mac からその {size} GB が消えます。進めるには:/generation remove {choice} --yes",
|
|
1108
|
+
"Nothing removed yet.": "まだ何も削除していません。",
|
|
1109
|
+
"Removed Stable Audio 3 {model} from this Mac.": "Stable Audio 3 {model} をこの Mac から削除しました。",
|
|
1110
|
+
"Removed.": "削除しました。",
|
|
1111
|
+
"Removed. Music making isn't ready.": "削除しました。音楽作りの準備ができていません。",
|
|
1112
|
+
"Use /generation, /generation on [folder] or off, or /generation download, use or remove with medium or small.": "/generation、/generation on [フォルダ] か off、または /generation download、use、remove に medium か small を付けて使ってください。",
|
|
1113
|
+
"best sound": "いちばん良い音",
|
|
1114
|
+
"faster, lighter": "速くて軽い",
|
|
1115
|
+
"getting uv": "uv を取得中",
|
|
1116
|
+
"getting Stable Audio 3's code": "Stable Audio 3 のコードを取得中",
|
|
1117
|
+
"setting up Python": "Python を準備中",
|
|
1118
|
+
"downloading the model": "モデルをダウンロード中",
|
|
1119
|
+
"checking the files": "ファイルを確認中",
|
|
1120
|
+
"Stable Audio 3's Python environment couldn't be set up. Check your connection, then use /generation download to try again.": "Stable Audio 3 の Python 環境を準備できませんでした。接続を確かめてから、/generation download でやり直してください。",
|
|
1056
1121
|
};
|
package/src/i18n/screen/pt.mjs
CHANGED
|
@@ -1053,4 +1053,69 @@ export default {
|
|
|
1053
1053
|
"Play a track Moondog made": "Tocar de novo uma faixa que o Moondog fez",
|
|
1054
1054
|
"Start a stream": "Começar um fluxo",
|
|
1055
1055
|
"Stop the stream": "Parar o fluxo",
|
|
1056
|
+
"Go on air: Moondog keeps making music from your taste": "Entre no ar: o Moondog segue fazendo música a partir do seu gosto",
|
|
1057
|
+
"on air until {time}": "no ar até {time}",
|
|
1058
|
+
"Cutting the next record": "Gravando o próximo disco",
|
|
1059
|
+
"Off air: the next record couldn't be made.": "Fora do ar: não deu para fazer o próximo disco.",
|
|
1060
|
+
"The next record is still being cut.": "O próximo disco ainda está sendo gravado.",
|
|
1061
|
+
"Off air.": "Fora do ar.",
|
|
1062
|
+
"Turn on music making first: /generation on.": "Ative a criação de música primeiro: /generation on.",
|
|
1063
|
+
"Download a Stable Audio 3 model from Stability AI": "Baixar um modelo do Stable Audio 3 da Stability AI",
|
|
1064
|
+
"Make music with a downloaded model": "Fazer música com um modelo baixado",
|
|
1065
|
+
"Delete a downloaded model from this Mac": "Apagar deste Mac um modelo baixado",
|
|
1066
|
+
"Stop the download": "Parar o download",
|
|
1067
|
+
"Medium: best sound, about 5.2 GB": "Medium: o melhor som, cerca de 5,2 GB",
|
|
1068
|
+
"Small Music: faster, lighter, about 1.7 GB": "Small Music: mais rápido e leve, cerca de 1,7 GB",
|
|
1069
|
+
"getting ready": "preparando",
|
|
1070
|
+
"There isn't enough free space on this Mac for the download. Free some up, then use /generation download again.": "Não há espaço livre suficiente neste Mac para o download. Libere um pouco e use /generation download de novo.",
|
|
1071
|
+
"A downloaded file didn't match the one Stability AI publishes, so Moondog deleted it. Use /generation download to try again.": "Um arquivo baixado não coincidia com o que a Stability AI publica, então o Moondog o apagou. Use /generation download para tentar de novo.",
|
|
1072
|
+
"The download couldn't reach its source. Check your connection, then use /generation download to try again.": "O download não conseguiu chegar à origem. Verifique sua conexão e use /generation download para tentar de novo.",
|
|
1073
|
+
"Another Moondog window or terminal is already downloading. /generation shows how far it is.": "Outra janela ou terminal do Moondog já está baixando. /generation mostra quanto falta.",
|
|
1074
|
+
"The download didn't finish: {error}. Use /generation download to try again.": "O download não terminou: {error}. Use /generation download para tentar de novo.",
|
|
1075
|
+
"unknown error": "erro desconhecido",
|
|
1076
|
+
"Stable Audio 3 {model} is ready. Ask for a track.": "O Stable Audio 3 {model} está pronto. Peça uma faixa.",
|
|
1077
|
+
"Stable Audio 3 {model} is downloaded. Use it with /generation use {choice}.": "O Stable Audio 3 {model} foi baixado. Use com /generation use {choice}.",
|
|
1078
|
+
"Download stopped. /generation download {choice} picks it up where it left off.": "Download parado. /generation download {choice} continua de onde parou.",
|
|
1079
|
+
"download stopped on an error": "download parado por um erro",
|
|
1080
|
+
"downloading": "baixando",
|
|
1081
|
+
"downloading, {percent}%": "baixando, {percent}%",
|
|
1082
|
+
"installed, in use": "instalado, em uso",
|
|
1083
|
+
"installed": "instalado",
|
|
1084
|
+
"partly downloaded": "baixado em parte",
|
|
1085
|
+
"not downloaded": "não baixado",
|
|
1086
|
+
"{size} GB": "{size} GB",
|
|
1087
|
+
"In use: your own install at {folder}.": "Em uso: sua própria instalação em {folder}.",
|
|
1088
|
+
"Get a model with /generation download medium or small. /generation use, remove and cancel manage them.": "Baixe um modelo com /generation download medium ou small. /generation use, remove e cancel cuidam deles.",
|
|
1089
|
+
"Making music on this Mac is off. Get Stable Audio 3 with /generation download medium, or small for a lighter model; music making turns on when it's done.": "Fazer música neste Mac está desativado. Baixe o Stable Audio 3 com /generation download medium, ou small para um modelo mais leve; a criação de música é ativada ao terminar.",
|
|
1090
|
+
"Stable Audio 3 {model} isn't downloaded yet. Get it with /generation download {choice}.": "O Stable Audio 3 {model} ainda não foi baixado. Baixe com /generation download {choice}.",
|
|
1091
|
+
"Making music on this Mac is off. Stable Audio 3 {model} is ready; turn it on with /generation on.": "Fazer música neste Mac está desativado. O Stable Audio 3 {model} está pronto; ative com /generation on.",
|
|
1092
|
+
"Use /generation download, use or remove with medium or small, or /generation cancel.": "Use /generation download, use ou remove com medium ou small, ou /generation cancel.",
|
|
1093
|
+
"No download is running.": "Nenhum download em andamento.",
|
|
1094
|
+
"Stable Audio 3 {model} is already downloading.": "O Stable Audio 3 {model} já está sendo baixado.",
|
|
1095
|
+
"Another download is running. /generation cancel stops it.": "Há outro download em andamento. /generation cancel o interrompe.",
|
|
1096
|
+
"Stable Audio 3 {model} is already on this Mac. Use it with /generation use {choice}.": "O Stable Audio 3 {model} já está neste Mac. Use com /generation use {choice}.",
|
|
1097
|
+
"Already downloaded.": "Já foi baixado.",
|
|
1098
|
+
"Stable Audio 3 comes under the Stability AI Community License ({license}), and its text encoder, T5Gemma, under the Gemma Terms of Use ({gemma}). Moondog downloads it only from Stability AI's official sources and checks every file.\n\nTo agree and download {model} ({size} GB): /generation download {choice} --agree": "O Stable Audio 3 está sob a Stability AI Community License ({license}), e seu codificador de texto, T5Gemma, sob os Gemma Terms of Use ({gemma}). O Moondog o baixa só das fontes oficiais da Stability AI e confere cada arquivo.\n\nPara aceitar e baixar o {model} ({size} GB): /generation download {choice} --agree",
|
|
1099
|
+
"Waiting for your agreement.": "Aguardando sua aceitação.",
|
|
1100
|
+
"The download didn't finish.": "O download não terminou.",
|
|
1101
|
+
"Downloading Stable Audio 3 {model} ({size} GB) from Stability AI's official sources. It runs in the background; /generation cancel stops it, and a later download picks up where it left off.": "Baixando o Stable Audio 3 {model} ({size} GB) das fontes oficiais da Stability AI. Ele segue em segundo plano; /generation cancel o interrompe, e um download depois continua de onde parou.",
|
|
1102
|
+
"Downloading Stable Audio 3 {model}.": "Baixando o Stable Audio 3 {model}.",
|
|
1103
|
+
"Wait for the download to finish, or stop it with /generation cancel, before removing a model.": "Espere o download terminar, ou pare com /generation cancel, antes de remover um modelo.",
|
|
1104
|
+
"A download is running.": "Há um download em andamento.",
|
|
1105
|
+
"Stable Audio 3 {model} isn't on this Mac.": "O Stable Audio 3 {model} não está neste Mac.",
|
|
1106
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. It's the last model, so the rest of Moondog's Stable Audio 3 setup goes too. To go ahead: /generation remove {choice} --yes": "Remover o Stable Audio 3 {model} apaga seus {size} GB deste Mac. É o último modelo, então o resto da instalação do Stable Audio 3 do Moondog também sai. Para continuar: /generation remove {choice} --yes",
|
|
1107
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. To go ahead: /generation remove {choice} --yes": "Remover o Stable Audio 3 {model} apaga seus {size} GB deste Mac. Para continuar: /generation remove {choice} --yes",
|
|
1108
|
+
"Nothing removed yet.": "Nada foi removido ainda.",
|
|
1109
|
+
"Removed Stable Audio 3 {model} from this Mac.": "Stable Audio 3 {model} removido deste Mac.",
|
|
1110
|
+
"Removed.": "Removido.",
|
|
1111
|
+
"Removed. Music making isn't ready.": "Removido. A criação de música não está pronta.",
|
|
1112
|
+
"Use /generation, /generation on [folder] or off, or /generation download, use or remove with medium or small.": "Use /generation, /generation on [pasta] ou off, ou /generation download, use ou remove com medium ou small.",
|
|
1113
|
+
"best sound": "o melhor som",
|
|
1114
|
+
"faster, lighter": "mais rápido e leve",
|
|
1115
|
+
"getting uv": "obtendo o uv",
|
|
1116
|
+
"getting Stable Audio 3's code": "obtendo o código do Stable Audio 3",
|
|
1117
|
+
"setting up Python": "preparando o Python",
|
|
1118
|
+
"downloading the model": "baixando o modelo",
|
|
1119
|
+
"checking the files": "conferindo os arquivos",
|
|
1120
|
+
"Stable Audio 3's Python environment couldn't be set up. Check your connection, then use /generation download to try again.": "Não foi possível preparar o ambiente Python do Stable Audio 3. Verifique sua conexão e use /generation download para tentar de novo.",
|
|
1056
1121
|
};
|
package/src/i18n/screen/zh.mjs
CHANGED
|
@@ -1053,4 +1053,69 @@ export default {
|
|
|
1053
1053
|
"Play a track Moondog made": "再放一首 Moondog 做的曲子",
|
|
1054
1054
|
"Start a stream": "开始音乐流",
|
|
1055
1055
|
"Stop the stream": "停止音乐流",
|
|
1056
|
+
"Go on air: Moondog keeps making music from your taste": "开播:Moondog 照着你的口味一直做音乐",
|
|
1057
|
+
"on air until {time}": "播出到 {time}",
|
|
1058
|
+
"Cutting the next record": "正在刻下一张",
|
|
1059
|
+
"Off air: the next record couldn't be made.": "停播了:下一张没刻成。",
|
|
1060
|
+
"The next record is still being cut.": "下一张还在刻。",
|
|
1061
|
+
"Off air.": "已停播。",
|
|
1062
|
+
"Turn on music making first: /generation on.": "先开启音乐生成:/generation on。",
|
|
1063
|
+
"Download a Stable Audio 3 model from Stability AI": "从 Stability AI 下载一个 Stable Audio 3 模型",
|
|
1064
|
+
"Make music with a downloaded model": "用已下载的模型做音乐",
|
|
1065
|
+
"Delete a downloaded model from this Mac": "从这台 Mac 删除一个已下载的模型",
|
|
1066
|
+
"Stop the download": "停止下载",
|
|
1067
|
+
"Medium: best sound, about 5.2 GB": "Medium:音质最好,约 5.2 GB",
|
|
1068
|
+
"Small Music: faster, lighter, about 1.7 GB": "Small Music:更快更轻,约 1.7 GB",
|
|
1069
|
+
"getting ready": "准备中",
|
|
1070
|
+
"There isn't enough free space on this Mac for the download. Free some up, then use /generation download again.": "这台 Mac 的可用空间不够下载。腾出一些空间,再用一次 /generation download。",
|
|
1071
|
+
"A downloaded file didn't match the one Stability AI publishes, so Moondog deleted it. Use /generation download to try again.": "有个下载的文件和 Stability AI 发布的不一致,Moondog 已把它删除。用 /generation download 重试。",
|
|
1072
|
+
"The download couldn't reach its source. Check your connection, then use /generation download to try again.": "下载连不上来源。检查网络连接,再用 /generation download 重试。",
|
|
1073
|
+
"Another Moondog window or terminal is already downloading. /generation shows how far it is.": "另一个 Moondog 窗口或终端已经在下载。/generation 可以看进度。",
|
|
1074
|
+
"The download didn't finish: {error}. Use /generation download to try again.": "下载没有完成:{error}。用 /generation download 重试。",
|
|
1075
|
+
"unknown error": "未知错误",
|
|
1076
|
+
"Stable Audio 3 {model} is ready. Ask for a track.": "Stable Audio 3 {model} 已就绪。想听就让它做一首。",
|
|
1077
|
+
"Stable Audio 3 {model} is downloaded. Use it with /generation use {choice}.": "Stable Audio 3 {model} 已下载。用 /generation use {choice} 来使用它。",
|
|
1078
|
+
"Download stopped. /generation download {choice} picks it up where it left off.": "下载已停止。/generation download {choice} 会从停下的地方接着下。",
|
|
1079
|
+
"download stopped on an error": "下载因错误停止",
|
|
1080
|
+
"downloading": "下载中",
|
|
1081
|
+
"downloading, {percent}%": "下载中,{percent}%",
|
|
1082
|
+
"installed, in use": "已安装,使用中",
|
|
1083
|
+
"installed": "已安装",
|
|
1084
|
+
"partly downloaded": "已下载一部分",
|
|
1085
|
+
"not downloaded": "未下载",
|
|
1086
|
+
"{size} GB": "{size} GB",
|
|
1087
|
+
"In use: your own install at {folder}.": "使用中:你自己在 {folder} 的安装。",
|
|
1088
|
+
"Get a model with /generation download medium or small. /generation use, remove and cancel manage them.": "用 /generation download medium 或 small 获取模型。/generation use、remove 和 cancel 用来管理它们。",
|
|
1089
|
+
"Making music on this Mac is off. Get Stable Audio 3 with /generation download medium, or small for a lighter model; music making turns on when it's done.": "在这台 Mac 上做音乐已关闭。用 /generation download medium 获取 Stable Audio 3,想要更轻的模型就用 small;下载完成后会开启音乐生成。",
|
|
1090
|
+
"Stable Audio 3 {model} isn't downloaded yet. Get it with /generation download {choice}.": "Stable Audio 3 {model} 还没下载。用 /generation download {choice} 获取。",
|
|
1091
|
+
"Making music on this Mac is off. Stable Audio 3 {model} is ready; turn it on with /generation on.": "在这台 Mac 上做音乐已关闭。Stable Audio 3 {model} 已准备好,用 /generation on 开启。",
|
|
1092
|
+
"Use /generation download, use or remove with medium or small, or /generation cancel.": "用 /generation download、use 或 remove 加上 medium 或 small,或用 /generation cancel。",
|
|
1093
|
+
"No download is running.": "没有正在进行的下载。",
|
|
1094
|
+
"Stable Audio 3 {model} is already downloading.": "Stable Audio 3 {model} 已经在下载了。",
|
|
1095
|
+
"Another download is running. /generation cancel stops it.": "另一个下载正在进行。/generation cancel 可以停止它。",
|
|
1096
|
+
"Stable Audio 3 {model} is already on this Mac. Use it with /generation use {choice}.": "Stable Audio 3 {model} 已经在这台 Mac 上。用 /generation use {choice} 来使用它。",
|
|
1097
|
+
"Already downloaded.": "已经下载过了。",
|
|
1098
|
+
"Stable Audio 3 comes under the Stability AI Community License ({license}), and its text encoder, T5Gemma, under the Gemma Terms of Use ({gemma}). Moondog downloads it only from Stability AI's official sources and checks every file.\n\nTo agree and download {model} ({size} GB): /generation download {choice} --agree": "Stable Audio 3 适用 Stability AI Community License({license}),它的文本编码器 T5Gemma 适用 Gemma Terms of Use({gemma})。Moondog 只从 Stability AI 的官方来源下载,并校验每个文件。\n\n同意并下载 {model}({size} GB):/generation download {choice} --agree",
|
|
1099
|
+
"Waiting for your agreement.": "等你同意。",
|
|
1100
|
+
"The download didn't finish.": "下载没有完成。",
|
|
1101
|
+
"Downloading Stable Audio 3 {model} ({size} GB) from Stability AI's official sources. It runs in the background; /generation cancel stops it, and a later download picks up where it left off.": "正在从 Stability AI 的官方来源下载 Stable Audio 3 {model}({size} GB)。它在后台进行;/generation cancel 可以停止,之后再下载会从停下的地方接着下。",
|
|
1102
|
+
"Downloading Stable Audio 3 {model}.": "正在下载 Stable Audio 3 {model}。",
|
|
1103
|
+
"Wait for the download to finish, or stop it with /generation cancel, before removing a model.": "删除模型前,先等下载完成,或用 /generation cancel 停止它。",
|
|
1104
|
+
"A download is running.": "有下载正在进行。",
|
|
1105
|
+
"Stable Audio 3 {model} isn't on this Mac.": "这台 Mac 上没有 Stable Audio 3 {model}。",
|
|
1106
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. It's the last model, so the rest of Moondog's Stable Audio 3 setup goes too. To go ahead: /generation remove {choice} --yes": "删除 Stable Audio 3 {model} 会从这台 Mac 删掉它的 {size} GB。这是最后一个模型,所以 Moondog 的 Stable Audio 3 其余部分也会一并删除。确定的话:/generation remove {choice} --yes",
|
|
1107
|
+
"Removing Stable Audio 3 {model} deletes its {size} GB from this Mac. To go ahead: /generation remove {choice} --yes": "删除 Stable Audio 3 {model} 会从这台 Mac 删掉它的 {size} GB。确定的话:/generation remove {choice} --yes",
|
|
1108
|
+
"Nothing removed yet.": "还没有删除任何东西。",
|
|
1109
|
+
"Removed Stable Audio 3 {model} from this Mac.": "已从这台 Mac 删除 Stable Audio 3 {model}。",
|
|
1110
|
+
"Removed.": "已删除。",
|
|
1111
|
+
"Removed. Music making isn't ready.": "已删除。音乐生成还没准备好。",
|
|
1112
|
+
"Use /generation, /generation on [folder] or off, or /generation download, use or remove with medium or small.": "用 /generation、/generation on [文件夹] 或 off,或用 /generation download、use 或 remove 加上 medium 或 small。",
|
|
1113
|
+
"best sound": "音质最好",
|
|
1114
|
+
"faster, lighter": "更快更轻",
|
|
1115
|
+
"getting uv": "正在获取 uv",
|
|
1116
|
+
"getting Stable Audio 3's code": "正在获取 Stable Audio 3 的代码",
|
|
1117
|
+
"setting up Python": "正在准备 Python",
|
|
1118
|
+
"downloading the model": "正在下载模型",
|
|
1119
|
+
"checking the files": "正在校验文件",
|
|
1120
|
+
"Stable Audio 3's Python environment couldn't be set up. Check your connection, then use /generation download to try again.": "没能准备好 Stable Audio 3 的 Python 环境。检查网络连接,再用 /generation download 重试。",
|
|
1056
1121
|
};
|
|
@@ -7,6 +7,8 @@ import { access, constants, rm, stat, writeFile } from "node:fs/promises";
|
|
|
7
7
|
import { tmpdir } from "node:os";
|
|
8
8
|
import path from "node:path";
|
|
9
9
|
|
|
10
|
+
import { createPlayerNow } from "../../core/listening-now.mjs";
|
|
11
|
+
|
|
10
12
|
// Players that play one file without a window and exit at its end, in order of preference.
|
|
11
13
|
// None of them may read or write the terminal: the listening room owns it.
|
|
12
14
|
const systemPlayers = {
|
|
@@ -69,8 +71,11 @@ export async function createTerminalPreviewPlayer({
|
|
|
69
71
|
let queue = null;
|
|
70
72
|
let child = null;
|
|
71
73
|
let closed = false;
|
|
74
|
+
// What it plays, for the agent: the queue it holds, moved along by its own events.
|
|
75
|
+
const now = createPlayerNow();
|
|
72
76
|
|
|
73
77
|
const emit = (event) => {
|
|
78
|
+
now.observe(event);
|
|
74
79
|
for (const listener of listeners) {
|
|
75
80
|
try { listener(event); } catch {}
|
|
76
81
|
}
|
|
@@ -223,6 +228,7 @@ export async function createTerminalPreviewPlayer({
|
|
|
223
228
|
if (closed || !name || typeof file !== "string" || !path.isAbsolute(file)) return;
|
|
224
229
|
if (!queue || !queue.tracks.every((track) => track.generated)) return this.playGenerated({ id, title, file });
|
|
225
230
|
queue.tracks.push({ title: name, artist_credit: "", generated: true, id: String(id ?? ""), file });
|
|
231
|
+
now.appended({ title: name, generated: true });
|
|
226
232
|
},
|
|
227
233
|
// Ends the song now playing, or still loading; the next one starts after it.
|
|
228
234
|
skip() {
|
|
@@ -232,6 +238,10 @@ export async function createTerminalPreviewPlayer({
|
|
|
232
238
|
return true;
|
|
233
239
|
},
|
|
234
240
|
stop,
|
|
241
|
+
// What plays now, as createPlayerNow reads it: null, or { state, song, position, count, next }.
|
|
242
|
+
nowPlaying: () => (closed ? null : now.read()),
|
|
243
|
+
// Leaving Apple Music stops its previews here, never the tracks Moondog made.
|
|
244
|
+
holdsCatalogSongs: () => Boolean(queue?.tracks.some((track) => !track.generated)),
|
|
235
245
|
subscribe(listener) {
|
|
236
246
|
listeners.add(listener);
|
|
237
247
|
return () => listeners.delete(listener);
|
|
@@ -245,9 +245,10 @@ export function createNeteasePlayer({
|
|
|
245
245
|
* up. mode "play" replaces the queue and starts the first; "queue" adds after what is
|
|
246
246
|
* playing. Songs NetEase marks as not playable are never sent to the player, nor songs
|
|
247
247
|
* allow(song) refuses, such as the listener's Avoids; those are only counted. Before a lookup,
|
|
248
|
-
* allow gets the title and artist asked for, as { title, artist_credit }.
|
|
248
|
+
* allow gets the title and artist asked for, as { title, artist_credit }. beforePlay runs just
|
|
249
|
+
* before a song starts, which a queue with nothing loaded does too.
|
|
249
250
|
*/
|
|
250
|
-
async play({ items = [], mode = "play", intent, allow = () => true } = {}) {
|
|
251
|
+
async play({ items = [], mode = "play", intent, allow = () => true, beforePlay } = {}) {
|
|
251
252
|
const found = [];
|
|
252
253
|
const unplayable = [];
|
|
253
254
|
const notFound = [];
|
|
@@ -278,6 +279,7 @@ export function createNeteasePlayer({
|
|
|
278
279
|
queue = [...queue, ...songs];
|
|
279
280
|
outcome = "queued";
|
|
280
281
|
} else {
|
|
282
|
+
await beforePlay?.();
|
|
281
283
|
queue = songs;
|
|
282
284
|
await playAt(0);
|
|
283
285
|
outcome = "playing";
|
|
@@ -297,15 +299,19 @@ export function createNeteasePlayer({
|
|
|
297
299
|
checked(await run(["resume"]), "resume");
|
|
298
300
|
stayConnected();
|
|
299
301
|
},
|
|
300
|
-
|
|
302
|
+
// beforePlay runs just before a song starts, so the other players go quiet only for one.
|
|
303
|
+
async next({ beforePlay } = {}) {
|
|
301
304
|
if (index + 1 >= queue.length) throw failure("netease_failed", "Nothing is queued after this song.");
|
|
305
|
+
await beforePlay?.();
|
|
302
306
|
await playAt(index + 1);
|
|
303
307
|
},
|
|
304
308
|
// Back to the start of the song, or to the one before when it has only just begun.
|
|
305
|
-
async previous() {
|
|
309
|
+
async previous({ beforePlay } = {}) {
|
|
306
310
|
const now = await state();
|
|
307
|
-
if (index > 0 && (Number(now.position) || 0) <= 3)
|
|
308
|
-
|
|
311
|
+
if (index > 0 && (Number(now.position) || 0) <= 3) {
|
|
312
|
+
await beforePlay?.();
|
|
313
|
+
await playAt(index - 1);
|
|
314
|
+
} else checked(await run(["seek", "0"]), "go back to the start");
|
|
309
315
|
},
|
|
310
316
|
async seek({ positionMs = 0 } = {}) {
|
|
311
317
|
checked(await run(["seek", String(Math.max(0, Math.round(positionMs / 1000)))]), "move in the song");
|