Jump to...
redirecting...

Log for Ow< [MSFW]

我現在這個混音算法是兩個信號源都會很清楚
好像很厲害
三個以上呢?
最少我耳朵和我耳機出來是這樣
試試看(
可惜我已經躺在床上了
雖然有點混亂
手機聽啊
可是能分辨出來
手機喇叭你確定
而且蠻OK的
豪吵
我還是不要聽好了
等一下睡不著
這個好 還可以看到title
話說我Azure原本是拿來放電臺的
立即體驗「XiiaLive™ Pro - Internet Radio」
https://play.google.com/store/apps/details?id=com.android.DroidLivePlayer
害我想多開一台Azure VM放這個Bot(
這差別到底在哪.-.
那樣就不怕CPU了(
一個是Pro一個不是
一個要付錢一個是免費
我是說功能上
Pro有更多電臺推介(
沒廣告
其實現在三首混音都很清楚啊
只是CPU
那精美的CPU
cpu用量本來就是線性增加的東西…
現在這種CPU我不開新VM我很難放Bot啦(
寫成native extension我相信會減少很多(?
Cloudflare又不會快取這種東西
快,去寫成C lib
_mixin裡那一段就好
如果Cloudflare支援Stream Distribution就好了
搞不好設定環境花的時間還比實際寫code多
話說多音源混音到底怎麼做的
因為本體就只有一個forloop
(a + b) + c
依此類推
好喔
所以說混音函數應該要符合交換律(?
hmmmmm TG真慢
好 我開始對v8::產生恐懼了
用NaN吧
v8的api每一次更新都大改啊
直接用node.h,bot就被綁死在這個版本node了
先睡覺 很累了
晚安
還要這個時候寫是C
不過 v8::Value 和 node::Buffer 之類的基本東西不會怎麼大變吧
Nan看起來就
我看用了Nan還不是一堆 v8:: 🌚
NaN只wrap v8有大改的東西吧
咦 好像有點不同
Nan::New好像很方便
還有 Nan::ThrowExceptio
我現在Throw一個Exception要寫很多東西
又 isolate->ThrowException 又怎麼 v8::Exception 什麼的
改用Nan了
多很多Helper
然後node.js的C++ API的Doc很少
Nan的Doc還比較多
這Nstive Extension的核心都是在node::Buffer,不過node:: Buffer是Nan::MaybeLocal<v8::Object>
開始覺得那些Doc很混亂
難怪Native Extension沒什麼人寫
參數好像有漏?
接受的應該是buffers的array?而且還有source的onStep也被無視了
有onstep寫進去
遞歸叫Native Function(?
我還不曉v8的array
後來加的
Local<Function> onStep = args[3].As<Function>();
不過我覺得那邊要重寫一下
array of buffers比較好
可是我覺得應該是 Local<Array> sources 會比較好
eww 又是 v8::
我覺得這個設計真的很需要改進
常常都 v8:: 快要手軟啦
[問卦] Uber如果登記宗教法人的話
https://www.ptt.cc/bbs/Gossiping/M.1483938304.A.F53.html
這樣數值會被多cast很多次吧
還是全程double或floor比較好?
當作object用就好
好啦 我定案了
可以看看新的 mix.cc
不過我還沒開始寫混音的部分
少了channel數會不知道什麼時候要fire onstep吧?
不會
咦不對
onstep只有channel 0才會觸發不是嗎?
如果c9有rwd就好了
雖然我不認為有那個人會瘋了拿手機coding
然後c9沒C++的IDE
自己裝
沒自動提示 OAO
是說我記得實驗選項裡有很多語言預設不開
剛剛 node-gyp build 的時候就要一直看信息找錯
沒有linting阿
反而是go 有linting
沒自動提示不要緊 我要Linting(
不然我就要用VS寫了
GCC的debug有點殘
不會,傳到C++會是v8自己的Type
不過其實慢的部分是js的Loop
所以還是要整個搬過去
是說onstep其實也可以改成native function?
只要把 初始值 目標值 總長 進度 都紀錄在 source 上,數字給native code 算就好
或許再加上一個 'mode' 來表示漸變的方式
嗯……
這個喔 也是可以
而且還省去了Native Function叫JS Function的步驟
我也好想寫寫看c++ extension
v8:: 表示:
可是我對C++完全沒概念QQ
@licson 歌是不是會重複阿;-;
Yes,直接推歌就好
新功能:電台永不停止
重複播的是有人重複點?
只要有新歌都會插在下一首播放
不是
bot自己loop
只要推歌就會中斷
明明有排程ㄌR
但卻重複同一首
我看看喔
正式上線了?
Recent songs:
/song_1 uploaded by Sciuridae.
/song_2 uploaded by Choukai.
/song_3 uploaded by Sciuridae.
/song_4 uploaded by Sciuridae.
/song_5 uploaded by Sciuridae.
/song_6 uploaded by Sciuridae.
/song_7 uploaded by Cliff.
/song_8 uploaded by Choukai.
/song_9 uploaded by Choukai.
/song_10 uploaded by Choukai.
/song_11 uploaded by bill96012.
/song_12 uploaded by Sciuridae.
/song_13 uploaded by Sciuridae.
/song_14 uploaded by Sciuridae.
/song_15 uploaded by Sciuridae.
/song_16 uploaded by Sciuridae.
/song_17 uploaded by Sciuridae.
/song_18 uploaded by Sciuridae.
/song_19 uploaded by Sciuridae.
/song_20 uploaded by bill96012.
那mixer呢
還沒
這很松鼠
我剛剛點歌 他都reply兩次
++
這音質有夠差
然後我的歌還被切掉
[sticker](media:AAQFABNPIL4yAAQk3kU984ZIQ3skAAIC@telegram)
我點蠻正常的
[photo](media:AgADBQADGrsxG5GwiAeE-Yvg83KNmxNMyjIABGdJdp09V8EivaAAAgI@telegram)
報時的時候歌會切掉,已知bug(
我沒這種情況
現在播的是很虐的那個嗎
原來剛剛有報時喔ww
測試的bot
哪個
要求中文廣播(#
說到廣播突然覺得很懷念www
國中國小的時候常常都是我在廣播
應該可以找夏語遙念吧
[photo](media:AgADAQADuLIxG1w0qgnvjj0L9C7d5D7w5y8ABG8avx_-twNAIzkCAAEC@telegram)
很快Licson電台就支援真人DJ喔
那是怎樣操作
web錄音什麼的
您可以一邊說話一邊放歌
[sticker](media:AAQFABMxIr4yAASMkcFvXnZXTX83AAIC@telegram)
好帥
這樣要做native mixer就能用一模一樣的介面了?
下面那個是After Grow?
可是JS版本仍然要保留
After Grow?
有時候Native版本不一定能編譯
歌名
先把js版本的參數改成跟natice一樣,this全拿掉?
fade的?
アフターグロウ - 黒崎真音
還是 _mixin
_mixin
念起來就After Grow啊
fade本身的功能被全拿掉了,變成單純設一個參數
也不一定要啊?
Ow<
Native版的是Optional Dependency
這樣會方便很多?
還好
然後這邊似乎只有我會寫C++(
會用C++寫Hello World算嗎(#
try {
MixerStream.prototype._mixin = require('native_mixin');
} catch (e) {
console.warn('fail to load native mixin, using js alternative instead');
}
printf (不
@james58899 真的啦
可是我看不懂日文
我稍微會的編譯語言只有java .-.
然後其他都是腳本語言
上面那個我念不懂Q
我覺得我需要GOgole專業TTS
/tts アフターグロウ - 黒崎真音
Harmonize Clover
念出來是這樣
但是這啥鬼
harumonize kulova(???
@james58899 幹我真的猜中了欸...
可是我完全不懂你們在幹嘛
阿勒,我沒聽過這首.-.
afuta gurou
After Glow?
@licson 是說你的native plugin那一段,你完全沒必要用Buffer 的accessor啊?
直接cast成 int8* int16* 之類不是更快?
不能喔
node的Buffer是要這樣拿到他底下管理的記憶體
而且因為要交給v8做GC也只能這樣
503
@james58899 話說 恋歌是三小(#
沒有歌詞只有音樂
沒有 他有歌詞
拉拉拉
.-.
呵呵拉拉拉
不是可以單純access data不去動到他的生命週期嗎?
嗚~嗚~嗚
嗚~嗚~嗚
嗚~嗚嗚~嗚~
嗚~嗚~嗚~
拉拉拉拉拉拉拉 拉拉拉
拉拉拉拉拉拉拉拉拉
拉拉拉 拉拉拉拉拉 拉拉拉
拉拉拉拉拉拉拉拉拉拉拉拉
[photo](media:AgADBQAD37gxGy-_EAh2i-6UFjZHd3khyjIABBplimHAMRWSy3sBAAEC@telegram)
是說可以連 locate 輸出的 buffer 都給 js 那邊做,natice plugin單純計算就好?
學員孤島ED拉
YEE
改成
mixin(buffers, sources, length, bitdepth, sampleSize, target)
@licson 是說,這樣改的話,你還要用 sampleSize * 8 / bitdepth 取得 channel 數?
所以其實我還要他多pass一個channels
sampleSize = bitdepth / 8 * channel ,現在你已經有兩個了?
[photo](media:AgADBQAD4rgxGy-_EAiA26L7i4tMf3AmyjIABOeDMoJEI_QR8X8BAAEC@telegram)
而且sampleSize本來就只有算音量時用到
那個直接取代成channels比較省事?
這看起來很中二
幹那被唸出來真的會崩潰wwwwww
還好我以前沒PO過這種東西
--很悲劇的東西我已經刪光了--
--據說我blog還留有一些--
想當年我urlencode都可以玩ww
我還又 bahaSpammer 之類的腦殘物呢(
然後用了一次就封印了
大家都很喜歡在名子裡面加乂
還好我沒有
三小www
阿對
我還有個神奇東西
++
還在我Google Drive裡面
你blog換系統喔
沒阿
我那可能換,光要轉移資料就先暴斃了
那換主題?
阿,殘念
GD理的東西被我刪掉了
我記得我有說過說
好貼心喔 還有Telegram的Share按鈕
yeee
超貼心的,今天剛加的
哇嗚
然後馬上試試看嗎
我只有以前玩Minecraft的地圖說
三十秒把一個社團洗到爆炸(標準script kiddle
[photo](media:AgADBQADEK8xG7qdrgPV7K9HVuT7zvFPyjIABFWQKTO7b5RDs6MAAgI@telegram)
。。。
。。。
那是消毒版
@james58899 你那時候幾歲
不知道耶,你自己算好不好
🤣
可以幹嘛?
我哪知道你幾年生
做成書籤,然後在巴哈隨便一個你有加入的社團首頁,按一下
你有87%機會被ban
會spam什麼www
洗留言,洗好喜滿
我是好奇spam的內容阿www
invalid conversion from ‘v8::Value*’ to ‘v8::Array*’
._.
到底我要怎麼在C++存取Array
[photo](media:AgADBQADLKwxG0ohEggl4JVZxqCmyalDyjIABP9kbmFsNzWea6IAAgI@telegram)
debugged
close Issue
node.js沒真的array
node.js 的 array 只是有奇怪特性的 object
其實有耶 .-.
話說我自己丟的.mp3(非連結)他會編碼比較久
啊好了 繼續寫
是說 Local<value> 跟 Handle<value> 的差別是啥?
一個是會被gc的物件,一個是單純數值?
@mmis1000 崩潰Orz
一個是Local Variable
另一個是Handle to JS Object
救我QQ 那個promise到底怎麼用
至於MaybeLocal就是可以是空的
@licson 你也救救我(?
可是我在寫那個Node.js Native Extension(
Q
可是那是node.js(?
@koru1130 你可以嗎www
問題在哪
我打開了,但根本不知道哪個檔案
然後我要全線
Promise.all(
  docs.map(function (doc) {
    return Promise.all( 
      doc.施工項目.map( (id) => { return Check.findById(id.toString())}) 
    )
  })
)
.then(function (results) {
  res.json(results)
})
@seadog007 炸裂概不負責
直接開權限給你啦www
會輸出一個好幾層的array
code都給你了,自己copy & paste拉
space 4 阿...我弄tab
話說我現在才知道原來有Promis.all那麼方便的東西QQ
害我當初還在寫counter
telegram會自動把tab轉成空白..
不看 doc 怪我囉 (姚明笑)
QQ
是說 如果我要保留本來的東西呢(?
?
what are you talking about?
外層本來還有東西
但是map完被幹掉了
不懂
你看看console.log的結果
docs的數值從來沒被改過啊?
return回去的東西可以不只有那個array嗎
我需要把他套到本來的docs中
promise all 可以幫你搞定
一般是
doc.施工項目 = doc.施工項目.map
這樣(?
但是遇到async我就完全不懂了QQ
這樣回傳執會是
[[[結果]], docs]
兩層
{
      "_id": "586ba9f3a36b129f1336ed36",
      "表單名稱": "cover",
      "__v": 0,
      "施工項目": [
        "586ba9f3a36b129f1336ed38",
        "586ba9f3a36b129f1336ed3c",
        "586ba9f3a36b129f1336ed3b",
        "586ba9f3a36b129f1336ed39",
        "586ba9f3a36b129f1336ed3a",
        "586ba9f3a36b129f1336ed37",
        "586ba9f3a36b129f1336ed3d",
        "586ba9f3a36b129f1336ed3e",
        "586ba9f3a36b129f1336ed3f",
        "586ba9f3a36b129f1336ed40",
        "586ba9f3a36b129f1336ed41",
        "586ba9f3a36b129f1336ed42",
        "586ba9f3a36b129f1336ed43",
        "586ba9f3a36b129f1336ed44",
        "586ba9f3a36b129f1336ed45",
        "586ba9f3a36b129f1336ed46",
        "586ba9f3a36b129f1336ed47",
        "586ba9f3a36b129f1336ed48",
        "586ba9f3a36b129f1336ed49",
        "586ba9f3a36b129f1336ed4a",
        "586ba9f3a36b129f1336ed4b",
        "586ba9f3a36b129f1336ed4c"
      ]
    }
是可以不要兩層,但我保證會靠北難看懂
你是不是忘記populate?
他傳回來的是這樣
我是想把他套到施工項目裡面啦((?
現在已經靠北難看懂了
那三小
好像有這麼一個東西
等等.你在做mongoose.populate做的事啊
我要去撞牆了 原來有這東西
去看doc阿阿阿
如果那個不構
--這段code之前是你產的齁--
因為我根本沒注意到你在做這種腦殘是阿
--阿就有人之前這樣寫啊wwww--
我就照抄過來改成兩層的了(X
ˊˋ
雖然我不太清楚情況
但是我覺得海豹笨笨的
明明就是萌萌的(?
兩者不衝突
為什麼 name 會是中文 .-.
不知道誰改了老半天改不出來(茶
不知道是誰遇到問題的
因為要翻英文很麻煩
formName
items
(#
我又不清楚狀況
為什麼我的 populate不能populate array QQ
我適用 deepPopulate拉
我不知道他們有沒有差別
不過array照道理可以
doc裡面也有array阿
我出來就沒結果QQ
改用deepPopulate看看?
另外的[lugin
反了
要先populate在find
開始寫Pointer了
buffer你要直接在 native plugin裡locate嗎?
Unhandled rejection SyntaxError: Invalid regular expression: /(^/(\w+)(?:@dmhyBot)?/: Unterminated group

我看不出哪裡有問題QQ
我這串regex哪裡錯惹
最前面的(
多出來的?
s/\(//
@S_ean 認為 @james58899 的意思是: Unhandled rejection SyntaxError: Invalid regular expression: /^/(\w+)(?:@dmhyBot)?/: Unterminated group 我看不出哪裡有問題QQ
挨幹
s/\(^\//^\\\//
好的,專業眼殘
你一定是目洨(蓋章
s/\(\^\//^\\\//
@S_ean 認為 @james58899 的意思是: Unhandled rejection SyntaxError: Invalid regular expression: /^\/(\w+)(?:@dmhyBot)?/: Unterminated group 我看不出哪裡有問題QQ
um
在Native Plugi
揪凱的聲音廣播 挖 (
嗆我嗆夠ㄌ沒
[sticker](media:AAQFABOzh78yAARGwFqHmHSGx3knAAIC@telegram)
我又沒在嗆你Q
[sticker](media:AAQFABMIaL4yAARC58e9pwFKhEAJAAIC@telegram)
是喔
[sticker](media:AAQFABOaqb8yAATdt9Xk-iQevA8EAAIC@telegram)
[sticker](media:AAQFABOXEcoyAARJadbLI3RDhDxAAAIC@telegram)
挖屋 正常惹
真棒
@koru1130 你看看程度不同94不一樣
五十步----
@licson range是不是轉錯了啊?
-1 ~ 0, 0 ~ 1
對應成unsigend應該是
max ~ 2max + 1, 0 ~ max
0應該還是0啊?
不是
0是在中間
所以轉換了應該是 max 沒錯
想象一下波形
可是出來的pcm應該是signed?
你這樣出來是unsigned啊?
現在有人播歌嗎?
對誒 我傻了
我好像整個都當了是unsigned
可以,這很IRC
其實你可以不用刪,反正超過max的就是負數
unsigned
0 ~ 127, 128 ~ 255
signed
0 ~ 127, -128 ~ -1
@licson 先求unsigned再轉signed會不會比較省事?
把超過max的減 max * 2 + 2
工啥
[photo](media:AgADBQAD5LgxGy-_EAiVk2iMVRtI7IofyjIABJ5wIS1-JAMxsIABAAEC@telegram)
先當unsigned會比較省事
然後大於上限就砍
我是VB出生的齁
然後再來是Shell Script
JS不常寫
Node.js更不常寫
嗯 糟糕了 寫進去當他Unsigned的話
@licson 41 ~ 45 根本不可能發生吧?
打錯
int 的上限值等於 bitdepth 為 32 時的 max 阿
那個處裡應該只有在bitdepth 16 時要做?
事說這裡的int是int32_t嗎?
還是看機器的啊?
可以指定他是 int32_t
然後我發現
用bit operation不就解決我們的問題……
本來這個不就是bit operate .-.?
超過上限砍掉就好
bitdepth 8 跟 16
要加
if (rawValue > max) {
rawValue -= (1 « bitdepth)
}
?
e04,符號又被轉
的確直接改type更快啦...
C的邏輯嘛
現在還差淡出淡入
話說你比較一下原本的 _mixin 和這個 Native 版本
Native這個 🙈
@licson write也要cast,至少最高位那個要
因為正負的bit是最高位的最高bit
不對啊 我做Bit Shift的時候應該不會影響底層的Bit順序吧
阿,沒是
[photo](media:AgADBQADZ68xG2xJBgd9woEku3mxZIw0yjIABBsN63LBqWEpIKEAAgI@telegram)
負值前半段都一開頭,沒影響
是說這樣已經能動了嗎?