siri 声波效果. 请自备支持 HTML5 的浏览器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liaa

siri 声波效果. 请自备支持 HTML5 的浏览器

  •  1
     
  •   liaa 2014 年 6 月 14 日 9371 次点击
    这是一个创建于 4332 天前的主题,其中的信息可能已经有所发展或是发生改变。
    demo: http://blog.kidliaa.com/demo/siri%20wave

    前两天特别想亲手写一个siri打开时的动画效果. 发现这个siri动画效果并不是那么简单. 当初认为用bezier曲线就能做到,后来发现没那么简单...搜索后发现完成这样的效果需要用到一个方程:

    1. 衰弱方程

    尼玛,根本就没接触过啊(大学不是学数学的).方程也就算了,尼玛还要自己调参数. 深深的挫败感,我还是好好学习去吧.

    PS: v2ex上做交互的大牛,希望听一下你们是怎么学习(数学怎么学,如何在代码中实践)
    28 条回复    2015-01-16 17:53:11 +08:00
    liteneo
        1
    liteneo  
       2014 年 6 月 14 日
    感觉更像水波。。。
    liaa
        2
    liaa  
    OP
       2014 年 6 月 14 日
    @liteneo 它们本来就很像的...
    dongbeta
        3
    dongbeta  
       2014 年 6 月 14 日
    振幅不变化好生硬,如果可以监测鼠标点击模拟声音输入的强度来调整振幅的话,就太好了。
    liaa
        4
    liaa  
    OP
       2014 年 6 月 14 日
    @dongbeta 目前是根据背景音乐来调整幅度的.

    PS: 请使用Chrome观看
    ChiangDi
        5
    ChiangDi  
       2014 年 6 月 14 日
    优雅,艺术
    RIcter
        6
    RIcter  
       2014 年 6 月 14 日
    好!!!!
    求放到github 0w0
    xxr3376
        7
    xxr3376 &nbs;
       2014 年 6 月 14 日
    @liaa 可以考虑调用Audio API,直接读取麦克风的声音呀!以及求github开源!
    liaa
        8
    liaa  
    OP
       2014 年 6 月 14 日
    @RIcter @xxr3376 直接看index.js就好了. 如果想要控制曲线的化.可以修改 Noise和F参数

    Noise: 控制震动幅度(0~1, 越大曲线震动的越高)
    F : 控制单个波浪起伏的个数

    目前我就是读取音源的声音大小来更新这两个值的.
    xxr3376
        9
    xxr3376  
       2014 年 6 月 14 日
    @liaa Thx
    zhujinliang
        10
    zhujinliang  
       2014 年 6 月 14 日
    挺不错,赞一个
    同用到数学公式时深深的挫败感
    RIcter
        11
    RIcter  
       2014 年 6 月 14 日
    @liaa 震的度能不能整,我想再它往拉伸一下>_>
    liaa
        12
    liaa  
    OP
       2014 年 6 月 14 日
    @RIcter 调整K值即可
    Mutoo
        13
    Mutoo  
       2014 年 6 月 14 日   2
    推荐你一个大神的博客 acko.net
    他的两个讲座非常棒:
    Making Things With Maths
    Making WebGL Dance
    Dzinlife
        14
    Dzinlife  
       2014 年 6 月 14 日
    liaa
        15
    liaa  
    OP
       2014 年 6 月 14 日
    @Dzinlife 是的,在这基础上做的...
    Dzinlife
        16
    Dzinlife  
       2014 年 6 月 15 日
    @liaa 哦,那就根本没牵扯到图形算法嘛,不过你改变系数的时候至少要做一层缓冲,突变是非常生硬的。
    cnallenzhao
        17
    cnallenzhao  
       2014 年 6 月 15 日
    背景音很好听,求一发。。
    GPU
        18
    GPU  
       2014 年 6 月 15 日
    Chrome 35 稳定版 , 加载5分钟反应呢?
    Vindia
        19
    Vindia  
       2014 年 6 月 15 日
    @liaa 求BGM
    GPU
        20
    GPU  
       2014 年 6 月 15 日
    @liaa 好吧 。第一次加载没反应 。需要刷新一下才加载成功 。还有可以自定义歌曲吗?
    Exin
        21
    Exin  
       2014 年 6 月 15 日
    求BGM
    liaa
        22
    liaa  
    OP
       2014 年 6 月 15 日   1
    @cnallenzhao @Vindia @Exin http://blog.kidliaa.com/demo/siri%20wave/sound.mp3

    @Dzinlife 是的,也发现这个问题. 接下来要弄这个(其实现在还不知道怎么弄).
    Dzinlife
        23
    Dzinlife  
       2014 年 6 月 15 日   1
    liaa
        24
    liaa  
    OP
       2014 年 6 月 16 日
    @Dzinlife 使用之后效果真的很明显,谢谢指点.

    让我想到了这句话:
    Math is hard, use computer.
    Computer is hard, use Math.

    另外希望能指点一下应该如何系统的来学习这些东西.上网搜了Interactive Design之类的,也没能看到一些好的答案.
    Dzinlife
        25
    Dzinlife  
       2014 年 6 月 16 日   1
    @liaa 这类东西似乎是 processing 拥有最多的教学资源。D3.js 和 paper.js 官网的showcase里不少大牛的blog也不错。还有就是 codepen.com
    vagrancy
        26
    vagrancy  
       2015 年 1 月 16 日
    这个波形的算法,在音乐比较激烈的情况,由于波形衰减速度过慢,导致整个波形一直维持在一个水平上看不出变化,哪个参数能够加快衰减速度呢。
    vagrancy
        27
    vagrancy  
       2015 年 1 月 16 日
    @liaa 请作者关注下啊
    liaa
        28
    liaa  
    OP
       2015 年 1 月 16 日   1
    @vagrancy Dzinife 的公式

    const double ALPHA = 0.05;
    resultSpeed = ALPHA * currentSpeed + (1.0 - ALPHA) * resultSpeed;

    修改ALPHA 参数。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2968 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 77ms UTC 02:58 PVG 10:58 LAX 19:58 JFK 22:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86