Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Roadmap #58

Open
magic-akari opened this issue Aug 4, 2022 · 3 comments
Open

Roadmap #58

magic-akari opened this issue Aug 4, 2022 · 3 comments

Comments

@magic-akari
Copy link
Owner

本仓库作为我探索前端开发的一个重要实验场。同时具有实用性,至少我自己是这个工具的长期用户。

在此之前,已经验证了接近无脚手架的开发环境。

本仓库中,React 作为全局依赖,且几乎没有第三方依赖,这是为了规避 ESM 的路径解析问题。

时至今日,import-map 作为一个可能的解。但是总体来说这个困境没什么变化。


在此之后,此仓库将会用于探索工具链的使用。

  • 此仓库中有部分依赖 TS 独有的特性,会造成迁移困难,如 const enum。会逐渐移除这些特性,并开启 isolatedModules 选项。
  • 使用 vite (待定)等现代化工具改善开发体验。makefile 等脚本将会被移除,Dockerfile 也没有继续保留的意义。
  • 引入 SWC 作为编译器。可能使用 Rollup/Webpack 叠加 SWC 的 loader 来打包,或者 swcpack 来打包,也可能继续保留 native ESM 状态。web bundle 需要调查一下。
  • 代码内部涉及到具体细节的部分,有些比较 hack 的,会替换成常规写法。
  • 曾经考虑自己写渲染引擎,把 React 替换下来。但是目前来看这个目标实现难度很大。

技术之外,产品细节

  • 通过分析音频数据,自动在打轴的时候吸附音量突变的地方。

难度较大,可能需要先傅立叶变换来去除乐器音,留下人声,然后再设置阈值检测突变。

  • drop 一些旧浏览器,如 Edge,旧版本 Safari
@magic-akari magic-akari pinned this issue Aug 5, 2022
@magic-akari
Copy link
Owner Author

magic-akari commented Aug 9, 2022

  • lrc-parser.js 借助 TS 的 references 功能,把整个目录映射到产物,非常 hacky
    • 考虑 pnpm 的 monorepo
  • 有部分 const enum 被定义在全局类型空间,但是被当作值使用,在 tsc 编译时会被替换成常量。这导致和 tsc 的深度绑定,其他工具无法处理
    • 换成普通的 const 变量,其他的元信息写到 html 文件里
  • html 文件是通过 renderToStaticMarkup 生成的,且有复杂的 SRI 计算过程。这部分应该能简化
    • vite 或许能解决。或者最简单的,两个 html,一个用于开发,另一个用于部署

@unbadfish
Copy link

* 通过分析音频数据,自动在打轴的时候吸附音量突变的地方。

难度较大,可能需要先傅立叶变换来去除乐器音,留下人声,然后再设置阈值检测突变。

这个难度不是一般大,建议直接放弃在网页前端搞定它的“幻想”
光是第一步“可能需要先傅立叶变换来去除乐器音,留下人声”,就有极其巨大的工作量,g站上有些项目(含训练模型)有几个G的容量
见这个项目 https://github.com/Anjok07/ultimatevocalremovergui

就是搞前端的话考虑把布局优化一下 👍

@magic-akari
Copy link
Owner Author

下一步:

有一些 SVG 被直接放到 React 树中,在 React Reconciliation 中造成了不必要的性能开销,
可以考虑 svg-sprite 技术,在 React 数中留下简单的 svg 引用,或 img src 引用。

postcss 只用到了有限的几个插件,可以被 Lightning CSS 覆盖。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants