duangsuse::Echo
583 subscribers
4.12K photos
118 videos
579 files
6.13K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#vocaloid 野子 苏运莹 版 工程配布
Media is too big
VIEW IN TELEGRAM
#vocaloid SynthesizerV — 野子 Yamine Renri 闇音レンリ (Cover 苏运莹)
好想你.s5p
35.4 KB
#vocaloid 又完成了
运动追踪,扣像,厉害 #media #vocaloid
#vocaloid 维尼音源的
— 坏采样表:
hui, da, kuai, fei, chao, kong, zou, sang, shuang, zhou
bai4, diao, dun, piao, po, ran, ruo, mo, wo

gua, guang, kou, lao, mo
han, nei, ni, qun, shao, xiong, yao, zou, huang

— 重复采样表:
ai2
重复太多我已经放弃

迫真心得:
u / uo 音结尾的采样的 consonant 区好像都很短
如果 consonant 的位置比 preutterance 小,那么重复的部分会是 overlap — consonant 而非 consonant — cutoff
如果开头的音是 z / y 的话 preutterance 必须放最前面,不然后面的音素吐音不利落
#vocaloid 维尼熊音源 , _1 的那个是完整未整理 lyrics 版, _2 的是整理正式版
DreamItPossible.s5p
61 KB
#vocaloid 基本上应该可以听了? 🤔
Media is too big
VIEW IN TELEGRAM
#vocaloid Dream It Possible — Eleanor Forte
Audio
Dream It Possible — Eleanor Forte rev. 2 #music #vocaloid
#vocaloid 爸爸去哪儿 工程文件配布
Media is too big
VIEW IN TELEGRAM
#vocaloid 爸爸去哪儿 第一季主题曲 Yamine Renri / Eleanor Forte / GENBU
Audio
#bilibili #vocaloid #music 苏运莹版 歌: 幻晓伊
#plt 呃,这几天眼睛有点疼,那个网页重构也接近尾声了(目的就是交个PR),马上把雄狮扭眼的”热度蹭完“,我就能开始二进制pybind了 ……但是到2月我就必须开始制作一个H5动画礼物,以现在这个效率…… (而且之前说的 Java 入门又鸽子了,尽管对话框和离线javac的问题解决,其他内容还是需费精力

说真的我没一次蹭上国内热度,因为每次都是我趁机学了些”没用的“(比如彩字符画、粒子动画、MBR程序、C指针和数组啦),然后数据不好看 😂
这次也是一样,我用shift重映射圆心距l=1~len 环上像素的方式扭曲一块矩形,这个方法是我自己想的(思而不学(我刚刚上网搜了,没写我这么直白的…… (Android.drawBitmapMesh, web没内建不规则变形)
类似 http://deepred5.com/oppai/ , http://www.htmleaf.com/Demo/201909185795.html (woc dat #gui )这样的。 #Vocaloid 爱好者平时爱看的2D骨架变形是这么做的。
不行这个Grid2Fullscreen #cg webgl实在是太厉害啦 (原作 https://github.com/Anemolo/WebGLDistortionConfigurator . barba.js.org/ 主页动画也很有趣..

它们的原理类似三角形贴图: Mesh=小网格缩放到图片,其上控制点可以移动,相当于小三角在翘曲,例如全向手指位靠(圆挤压 fisheye/pinch C#)
https://blog.csdn.net/lufy_legend/article/details/8084367
当然啦, GLSL 10行内基于笛卡尔座标系() 实现圆的变形是很容易的
https://www.shadertoy.com/view/XsVSW1
翘曲(k=3)
l=length(xy),r=atan2(x,y); //圆心座标<=>直角
l=l*l*k; 放大 //sqrt(dot())速率试试
l=sqrt(l)*k/1; 挤压
p = l * vec2(cos(r)*0.5, sin(r)*0.5);
//xy就是p的新位置

甚至 p *= length((p-mous)* vec2(w/h,1)); fragColor = texture(iChannel0,p);
vec2 p = center - uv ;
float d = length(p),
factor = .5 * sin( iTime ),
f =d>.5?0.: exp( factor * ( d - .5 ) ) - 1.;
fragColor = texture( iChannel0, uv+ /*normalize*/(p/d) *f);

算下距离都能做到同样效果(就是我实现漩涡扭曲滤镜的原理

如果只是圆形其实并不困难,重要是在符合直觉…… (啊草
a:数组,x:项,k:键,q:真假,d:{}表 #code
let a="run (\\f x. (+ (+ x 2)3))  (f 1)".split(/([()\s\\\.])/g).filter(s=>s.trim()!=''),i=0;
层=(tk)=>{for(let x,q;x=a[i];){i++;if(x==')')break;q=x=='('; tk.push(q?(x=[]):x); if(q)层(x)} }
glo={run:a=>a[a.length-1], ['+']:([a,b])=>a+b }
eva=d/*scope*/=>a=>a.values? (a[0]=='\\'?eFun:eCall)(d,...a) : !/\d/.test(a[0])?d[a] : +a//num
eCall=(d,kf,...a)=>(d[kf]||console.error)(a.map(eva(d)) ) //单步规约
eFun=(d,_,kf,...x)=>{let nArg=x.indexOf('.'),ka=x.slice(0,nArg);x=x.slice(nArg+1);x.unshift("run")//解析:切分 //v 名值表允嵌套
d[kf]=a=>{if(a.length!=nArg)throw `bad arity for ${nArg}`; let old=zipMap(ka,a, (k,v)=>{let v0=d[k];d[k]=v;return[k,v0]});
let r=eva(d)(x);old.forEach(([k,v])=>d[k]=v);return r } }

zipMap=(a,b,f)=>a.map((x,i)=>f(x,b[i]))
层(_6=[]); eva(glo)(_6)

调用时才去zipMap(形/实参) 然后解析变量,在运行了KV表仍存在,故称『动态作用域』。 若把 eFun:eva(d)(x) 注意不是微分! 里d.copy()保留,就无需 let old ,且支持『词法域』 just=x=>()=>x, f=just(0/*x是参数0吗?*/) ,若编号变量、独立调用栈,不返回编程(eCall: 内项Promise.all 后才done +-*/)就实现 continuation(断续函数,协程)

有赖于F12 ,在eCall上打断点/ logs=f=>a=>{console.log(...a);return f(a)};glo["+"]=logs(glo["+"])
再次调用 glo.f([1]) ,可以看到计算过程。 Java上用class造解释器同理,只是给 (run ,if, 1/""/true) 的语义(\f. 内是多表达式) 专门建立Node了而已,因为我们必须区分(顶层/函数内) 是”语句列表“而非调用的特殊「语义」(解释器只看语法树,不知”层级关系“,解析信息必编码为此IR中间表式),S-表达式里用x[0]标注足矣。 解析到此”非规范“AST是完全一样甚至更快的

Node和S-expr 一样吗? let a=1,b=2 或 import a.* 应该是S不能表达的语法吧? (= a 1 b 2) (use-all 'a)/甚至变import作用域表 就可以。把x[0]当节点类型即可。另外S的本质(前序算式)可以和后序的+-*/优先链、.[]()左先链 结合,算符后序 按*+重排序

欸,大家也看到我编程风格的变化了:宁可用特殊语法+自己注释也不愿用工程的做法.. 主要是省字数,这里是教程 😅
但如果是省字数却弊大于利的情况,我会写自然点:例如 s.trim()!='' 也可写 !/\s/.test 或 !!s.trim ,这都是有取舍的。我经常对一个表达式改了又删,因为所有写法都不过是茫茫语法树里一片叶子罢了,没啥可稀奇
jb.svp
83.6 KB
https://resource.dreamtonics.com/download/ 欢迎大家试用K华大佬的 SV~ #vocaloid