当前位置: 首页 > news >正文

看见旋律 - WinUI3 实现音乐监听:47 种漂亮的数学线条形态

在 看见旋律 - WPF 实现音乐监听:频谱图展示-CSDN博客 中,我实现了对音乐旋律的监听,把监测到的鼓点、低频通量等可视化,看到了漂亮有趣的节奏线,现在我们把它与常见的数学线条结合,让节奏影响线条灯粗细、缩放、速度、跳动。

整体处理流程:

把「音频状态 → 相位 → 采样点 → 归一化 → 绘制」串成一条线;画廊里每个格子都走这段逻辑:

// Companion.WinUI3/Rendering/MathCurveGalleryRenderer.cs · DrawTile var influence = MathCurveAudioBindings.ForEntry(entry, index, audioState); var linearPhase = audioState.CyclePhase * entry.Speed; var phase = MathCurvePhaseMapper.MapDisplayPhase(linearPhase, audioState.LoopMode); entry.Sample(phase, SampleBuffer, SampleCount); PrepareDisplaySamples(SampleBuffer, DisplayBuffer, SampleCount); ApplyBeatScalePulse(DisplayBuffer, SampleCount, audioState); DrawCurve(session, plotCenter, radiusX, radiusY, plotRect, linearPhase, audioState.LoopMode, influence); DrawTileLabel(session, entry, x, y + height - labelBand, width, labelBand);

音乐不直接改曲线公式,而是改「相位推进速度」和「视觉强度」;鼓点则触发脉冲包络:

// Companion.Core/MathCurveAudioModulator.cs · TickCore 摘录 if (driveChannel != MathCurveDriveChannel.None && isListening && frame is not null) { channelRaw = MathCurveChannelSampler.Sample(driveChannel, frame); channelNormalized = Math.Clamp(channelRaw / _channelScale, 0f, 1f); _trendEstimator.Tick(channelRaw, dt, settings); speedMultiplier = _trendEstimator.SpeedMultiplier; motionIntensity = 0.35f + channelNormalized * 0.45f; } _beatPulseTracker.Tick(dt, isListening, frame?.IsConfirmedKick ?? false, settings); _cyclePhase += dt * baseRate * speedMultiplier; // 动画相位累积

以下是 47 种漂亮的数学线条,一起来欣赏吧:

漂亮的茅尓玫瑰,送给你:

http://www.cnnetsun.cn/news/3093111.html

相关文章:

  • 实战指南:如何用changedetection.io构建企业级网站变更监控系统
  • 遗传算法实操调参与收敛性诊断实战指南
  • AI 辅助:后端架构选型取舍:没有银弹,只有约束条件
  • 系统调用全路径拆解:从用户态 read(fd) 到内核驱动的上下文切换代价与字符设备实战
  • 3D渲染新范式:从画面像素到全域实景空间 像素流实时建模 新一代视频孪生图形架构
  • AI 辅助:Service Mesh 落地经验:流量治理不是先把边车塞满
  • GitOps 发布实践:声明式配置也需要回滚纪律
  • AI浪潮下普通人焦虑何解?花叔、“五道口纳什”等UP主分享学习路径
  • 企业级检索增强 后端集成:Java 服务如何管理知识库版本
  • PPTist:8个专业模板+完整功能,打造浏览器中的PowerPoint替代方案
  • 工程化工程师的炼丹日常:深夜调参也要守住边界
  • 中餐厅摆台-点击下一步一次显示骨碟碗勺并显示文字 距离
  • STM32寄存器开发练习(一):GPIO-从最原始的代码到规范写法
  • 从推荐系统到大模型:算法工程师的转型实战指南
  • 机械设计公差与配合实战指南:从核心原理到图纸标注
  • 零代码设计小米穿戴表盘:Mi-Create让创意触手可及
  • 为什么说APAxpo已然成为各大品牌新品首发的核心阵地?
  • Redis Bitmap 实现北极星日淘用户签到与活跃度统计(极致省内存)
  • 2026大二寸证件照制作工具指南:手机App、免费无水印小程序操作教程
  • Topit:告别窗口切换烦恼,让你的Mac窗口永远在最前面
  • 机电安装公司有哪些?广州机电安装公司推荐!
  • IDEA大纲导航突然卡顿?,紧急排查清单:内存泄漏、插件冲突、AST缓存溢出——3分钟定位根因的5个诊断命令
  • Claude 3.5语义压缩层解析:零偏移输出与灰度信息蒸发
  • GPT-4o深度解析:技术落地与工程避坑指南
  • 三通道直流电阻测试仪的现场效率对比
  • 如何在Blender中高效创作GTA V模型:Sollumz插件实战指南
  • Playwright元素定位实战:从原理到健壮策略的完整指南
  • STM32驱动WS2812全彩LED:SPI+DMA高效实现动态光效
  • Anthropic Mythos:语义约束引擎驱动的推理阶跃
  • Navicat Mac版无限试用重置终极指南:3分钟解决14天试用限制