プチコン3号 SmileBASIC コミュニティプレイ日記SquidSky ugomemo_gorohati2017/01/29 18:05:26これ、リアルタイムにマイクからの音声が再生されるんですが…実はそうはいきません。0.1秒録音しているのを待機しているにも関わらず、再生時に音がブツブツとなりロボットのような音になってしまいます。どうすればいいのでしょうか?5そうだね 18返信プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿あまさと しおん ShionAmasato2017/1/29 18:16まずWAIT 1が0.1秒じゃないというツッコみ。4そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿SquidSky ugomemo_gorohati2017/1/29 18:27え!?MICSTARTの0.1秒はWAIT 1では表せないのですか? ということは、録音時間の指定の問題ですね。 まず、整理をしてみます。 MICSTARTの録音時間は、秒数で指定する。 となると、1秒のうちの1%、60÷0.1になる…答えは600。 え。これって計算式がおかしい気がする…0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿ぺぃ shiba_petitcom2017/1/29 18:296f=0.1秒なので、WAIT 6。2そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿あまさと しおん ShionAmasato2017/1/29 18:30うにゃ??? 60(フレーム毎秒)*0.1(秒数) 0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿SquidSky ugomemo_gorohati2017/1/29 18:31いや、これは合ってますね…? 算出されたのは、600ミリ秒ということか…な? でもWAITが実数に対応していないので、0.06ができません… AWAIT 600とできれば…。 あ、出来るかもしれません。 WHILEループでMILLISEC+600になるまで待機させれば、上手く行くかもしれませんね。0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿あまさと しおん ShionAmasato2017/1/29 18:31まあ、そもそもフレームは当てにすべきじゃないんだけど(厳密には60フレームは1秒にならないので)1そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿あまさと しおん ShionAmasato2017/1/29 18:32そもそもはCHK()の類があるんじゃないかと思うけど0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿SquidSky ugomemo_gorohati2017/1/29 18:32すれ違いました。やはり算出式が間違っていましたね。(._.;)1そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿あまさと しおん ShionAmasato2017/1/29 18:34(MILLISEC+600ってなんだ) MILLISECはミリ秒だぞ(フレームとは関係が無い)0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿SquidSky ugomemo_gorohati2017/1/29 18:35(プチコン初心者になってきた件)3そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿ぺぃ shiba_petitcom2017/1/29 18:37ほうほう。1秒あたり約60fだが60f=1秒という訳ではないのか。 リアルタイム録音なら毎フレームではなくて1秒ごとで事足りると思う。2そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿あまさと しおん ShionAmasato2017/1/29 18:37でも調べてみたらPCMCHK()が無いだと??? いや、BGMにもTALKにもあるのにPCMだけ冷遇とかやめてよ感0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿Mc mc0144832017/1/29 18:48以前、WAITは処理による遅延込みの1フレーム(1/60s)、VSYNCは遅延無視の1/60sだと理解したのですが。違いますか?2そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿あまさと しおん ShionAmasato2017/1/29 19:12WAITとVSYNCの違いはそれであってるけど、「60フレーム=1秒」自体が誤差があるってだけ。0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[15]親投稿SquidSky ugomemo_gorohati2017/1/29 19:37今改良していていいのができました。 始めに、少し録音し配列に保存します。 そして、ループに入る前にPCMSTREAMを一度実行し、ループ内からいちいちPCMSTREAMを呼び出さず、配列に順次注ぎ込んでやる処理だけをします。こうすればほぼプツプツも解消され、スムーズに動作するようになりました。 波形を表示するのもモロコミでやっていたので…1そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[16]親投稿SquidSky ugomemo_gorohati2017/1/29 19:41どうやらPCMSTREAMは、内部バッファに転送はしていますが、配列の終端に行く度に配列を読み込みながら転送しているようなんです。 なのでその特徴を生かして、配列に再生が終わるまでに配列を置き換えれば、上手く繋がって再生されるというわけです。1そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[17]親投稿Mc mc0144832017/1/29 21:0860フレーム!=1sec.か。 電気信号だし仕方ないか。しかし、人間の目で確認できる誤差ではないはず(であることを信じる)。 【結論】正確な時間を計りたいなら (^^)っ[セシウム原器]0そうだね プレイ済み2017/11/03 00:52:39に取得
プチコン3号 SmileBASIC コミュニティ返信[18]親投稿あまさと しおん ShionAmasato2017/1/30 16:40そもそもはフレームって画面を書き換える間隔なので、秒とかいう単位と噛み合うことを気にしていないってだけね。1そうだね プレイ済み2017/11/03 00:52:39に取得