OTape

Hacker News Top 工具

摘要

oTAPE 是一种开放、自包含的数字磁带文件格式,可将两段等长的连续音频以及标签和封面打包为单个 .otape 文件,并配有基于浏览器的 Web Deck 播放器和磁带音效模拟。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/11/01 06:24

# oTAPE · 开放数字磁带格式 Source: https://www.otape.org/ oTAPE 1.0 · 开放规范 · 候选发布 ## 按下录音键。*当回事。* oTAPE 是一种数字磁带的开放文件格式。一个 `.otape` 文件容纳整盘磁带:两面固定时长,每面为一段连续录音,外加标签、J-card 和防抹挡片。它自包含,可离线使用。 扩展名 `.otape` 容器 ZIP + JSON 许可证 CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) 在浏览器中由几行 `appearance` JSON 绘制。卷轴遵循规范中的磁带缠绕模型。 01 理念 ## 故意慢的方式。 制作一盘混音带曾经要花上一个晚上。你挑好每首歌,听完录完整个过程,再亲手写下歌名。oTAPE 是一种保留了这些约束的文件格式。它不是新的编解码器,也不是音乐播放器:它描述的是一整盘磁带。 1. 01 ### 是磁带,不是播放列表。 每面是一段连续录音。歌与歌之间的空白、一段口白、暂停按键的咔嗒声:都是录音的一部分。曲目标记可以为歌曲命名,而不打断这一面。 2. 02 ### 它像磁带一样运作。 固定时长,一盘磁带分两面,位置靠卷带到达而非跳转。把 A 面播到结尾,翻面,就到了 B 面的开头。 3. 03 ### 文件即物件。 音频、标签、J-card、折页小册子和历史记录全部存在一个 `.otape` 中。它从不链接回录制所用的 MP3,也不链接任何在线内容。 4. 04 ### 聆听是只读的。 播放磁带从不修改文件。播放器单独记住你的位置,就像真实磁带停在你离开的地方。 5. 05 ### 开放且简单。 一个 ZIP 归档、一份 JSON 清单、AAC 音频、PNG 或 JPEG 图片。每一部分都是标准格式,可用现有工具打开。 6. 06 ### 每盘磁带有自己的外观。 提供精确物理比例的美术图,或用几行 JSON 描述外壳和标签,任何播放器都能绘制。 02 试一试 ## 把磁带放进*卡座*。 这是 oTAPE Web Deck:约 1,200 行纯 JavaScript,无任何库。它预装了 *Gitsem*——Mirat Can Bayrak 在 24 岁时创作、42 岁时重新录制的一首 C10 单曲——也可以播放你拖入这里的任何 `.otape` 文件。文件始终留在浏览器中,绝不上传。 *Gitsem* by Mirat Can Bayrak,基于 CC BY 4.0 许可 (https://creativecommons.org/licenses/by/4.0/)。源代码 (https://github.com/otape-studio/otape-spec/blob/main/examples/files/gitsem.otape)。 *o*TAPE Web cassette deck OT-WREC **TAPE RUN** **插入磁带** Download (https://www.otape.org/spec/examples/files/gitsem.otape) Open .otape... 或将文件拖放到卡座任意位置 Time **-:--** Remain **-:--** Tape **---** NO CASSETTE Now— Tape map 点击快卷 0:00 Output Space 播放/停止 ←→ 快退/快进 F 翻面 E 出仓 03 磁带音色 ## 同一盘磁带。*不同的机器。* 同一盘磁带在两台播放器里从不会听起来一样。oTAPE 播放器现在可以像那个年代的机器那样播放磁带:一台录音室卡座、一台车载立体声、一台风光不再的便携立体声。声音在到达你的扬声器之前发生了变化。文件则和录制时一模一样。 *o*TAPETape sound selector TS-6 最近五秒的音高 ### 实现原理 1. **抖晃** 没有电机转动是完全均匀的。缓慢的速度漂移会弯折音高(wow),快速的颤动会让音高变得粗糙(flutter)。播放器会时刻提前或推后一小刻读取音乐,让音高像在那台机器上一样游移。 2. **底噪** 每盘磁带都有自己的一层噪声底。它随磁带运转而存在,歌曲之间和空白段也一样,按下停止键的瞬间就消失。 3. **温暖** 大音量录一盘磁带,峰值会被削圆,高频最先受到影响。这种温和的压缩是磁带声音温暖的重要原因。 4. **磨损** 旧磁带失去高频,涂层磨薄处会瞬间掉音,磁头偏移会让立体声声像变得模糊。 **没有任何东西是烧录进去的。** 机器效果在你聆听时叠加。你的 `.otape` 文件不被触碰,录音保持干净,你甚至可以在歌曲中途切换机器。 **机器就是文件。** 每台机器都是一个小的开放预设,一个 `.otsound` 文件,用真实世界的单位写成:速度百分比、分贝、赫兹。所以一台便携立体声在任何 oTAPE 播放器中听起来都一样。内置六台;自己做一台,分享出去。 04 文件内部 ## 解压一盘*磁带*。 一个 `.otape` 文件是一个普通 ZIP 归档,布局固定:先是 `mimetype` 条目,这样工具无需解压即可识别文件,然后是清单,每个录音面一个音频文件,以及可选的美术图和文档。 night-drive.otapeZIP `` mimetype application/vnd.otape.cassette manifest.json the cassette, sides A and B, the look audio/ side-a.m4a AAC-LC, one continuous take side-b.m4a omitted while the side is blank artwork/ optional, fixed physical sizes cassette-face-a.png label-a.png jcard-front.jpg jcard-spine.png booklet-01.png ... docs/ booklet.html, notes.md `` manifest.json · 一盘空白 C60 `` { "format": "oTAPE", "format_version": "1.0", "cassette": { "id": "550e8400-e29b-41d4-a716-446655440000", "title": "Night Drive", "type": "C60", "side_length_seconds": 1800, "created_at": "2026-10-28T22:00:00Z" }, "sides": { "A": { "write_protect": "intact", "audio": null }, "B": { "write_protect": "intact", "audio": null } } } `` 媒体类型 `application/vnd.otape.cassette` Apple UTI `org.otape.cassette` 音频 AAC-LC in M4A,每个播放器必须支持。ALAC、FLAC 和 PCM 为可选。 时间线 整数帧,44.1 或 48 kHz,精确到采样 魔数 `PK\x03\x04` 位于偏移 0,媒体类型位于字节 38 版本 `MAJOR.MINOR`。次版本仅添加可选字段,未知数据予以保留。 05 介质 ## 固定时长。*可折断的挡片。* 磁带的限制塑造了上面承载的内容,所以 oTAPE 保留了这些限制。你在录制前选择时长,每个面都有一个可以折断的录音挡片。 ### 选择时长 - **C46** 每面 23 分钟 · 65.7 m · 18 μm - **C60** 每面 30 分钟 · 85.7 m · 18 μm - **C90** 每面 45 分钟 · 128.5 m · 12 μm - **C120** 每面 60 分钟 · 171.4 m · 9 μm - **C74** 自定义:每面分钟数 自定义磁带按真实磁带命名:C 加上总时长(分钟)。磁带长度和厚度遵循规范附录 B.3 中的卷绕模型。 ### 掰断挡片 A B `` 允许录制: 这不是 DRM。就像真实磁带上的挡片一样,它防止成品磁带被意外覆盖,任何人都可以用胶带把孔贴上。 06 纸面 ## 美术图,精确到*毫米*。 外壳和标签图,J-card 的正面、书脊和折页,折页小册子、内页文案和献词。每个图片槽位都有以毫米为单位的固定尺寸,所以在一个应用中制作的美术图在任何其他应用中都能正确适配。 flap 25.4 spine 12.7 front 63.5 mm 槽位 mm 推荐像素 Cassette face A / B 100.4 × 63.8 2410 × 1531 Label A / B 89.0 × 42.0 2136 × 1008 J-card front 63.5 × 101.6 1524 × 2438 J-card spine 12.7 × 101.6 305 × 2438 J-card back flap 25.4 × 101.6 610 × 2438 Booklet panel 63.5 × 101.6 1524 × 2438 Thumbnail square 1024 × 1024 推荐 24 px/mm,最低 12 px/mm,宽高比误差在 ±1% 以内。外壳和标签图在窗口和卷轴孔处必须透明,以便播放器的卷轴透出。 07 参考应用 ## oTAPE *Studio*。 一套三件套高保真设备,为你的 Mac 打造:SP-2 CD/MP3 音源播放器和 TU-01 网络收音机调谐器,都接在 OT-1 磁带卡座上。加载你的音乐或调到一个电台,按下 REC,磁带实时录制。暂停播放器,卡座就录空白。保存,你就得到了一个 `.otape` 文件。1.2 新增:磁带音色 (https://www.otape.org/#sound),任何磁带都可以通过一台那个年代的机器播放。 oTAPE Studio:SP-2 音源播放器紧邻 OT-1 磁带卡座,正在从下方的 TU-01 网络收音机调谐器录制一盘 C46。调谐器屏幕显示预设 2 上的电台和当前曲目。 - **实时录制** 磁头以 44.1 kHz 就地覆写磁带。空白段保持空白,录制速度不超过播放速度。 - **拨盘上的电台** TU-01 可调谐 Radio Browser 目录中约 50,000 个电台。歌曲标题变成磁带上的曲目标记和 J-card 上的文字。 - **空白带和设计器** C46 到 C120 空白带,配有可用的计数器和卷轴。设计器涵盖外壳、标签、字体、J-card、美术图和录音挡片,提供八种预设起点。 - **小心对待你的文件** 以 256 kb/s 保存 AAC,只重新编码你改动过的面。其他 oTAPE 应用写入的数据保持不变。 08 浏览器里 ## Studio,*搬到网上*。 oTAPE Studio Web 是一个在浏览器中运行的磁带卡座,任何电脑都可以使用。打开一盘磁带或从空白带开始,然后从你自己的歌曲播放列表、网络电台或任何音频输入实时录制。保存,你就得到了一个 `.otape` 文件。无需安装,无需账户,你的磁带和歌曲永远不会离开你的设备。 - **三种音源** 一个支持 MP3、AAC、WAV 和 FLAC 文件的播放器,Radio Browser 网络电台目录,以及来自电脑任何音频输入的线路输入。 - **真实的走带** 播放、快速卷带、翻面、到头停止。卷轴和计数器遵循磁带缠绕模型,录音挡片保护已完成的面。 - **校验每一盘磁带** 打开任何 oTAPE 1.0 磁带,完整校验,并为每个问题指明规范中的对应章节。支持 C46 到 C120 空白带,或任何自定义长度。 - **可安装** 添加为应用后可从系统打开 `.otape` 文件。卡座快捷键和媒体快捷键可用,以 256 kb/s 保存 AAC。 09 开发者 ## 一个*下午*就能写出播放器。 规范是开放的:任何人都可以在免费或商业软件中实现它,无需版税,无需许可。一个基本播放器只需以下五步。 1. **打开 ZIP** 读取 `manifest.json`。检查 `format == "otape"` 且主版本号为 1。 2. **对每一面,** 解码 `audio.file` 并将其视为恰好 `recorded_frames` 的长度。这一面的其余部分是空白磁带。 3. **从磁头位置开始播放。** 用快进和快退卷带而非跳转。翻面将位置 *p* 映射为 *L − p*。 4. **绘制磁带** 从 `appearance` 绘制,或在有美术图时使用 `artwork` 图片。 5. **记住磁头位置** 在本地按 `cassette.id` 保存。播放从不修改文件。 校验磁带 `` # optional: enables the JSON Schema check pip install -r tools/requirements.txt python3 tools/otape_validate.py my-mixtape.otape `` `` VALID my-mixtape.otape `` ### 实现 名称 平台 角色 oTAPE Studio macOS 14+ 参考录音和播放器,作者 Jan Osio。Download .dmg (https://www.otape.org/assets/download/oTape%20Studio.dmg) oTAPE Studio Web (https://studio.otape.org/) Chrome, Edge, Safari 浏览器中的录音和播放器,作者 Jan Osio oTAPE Web Deck (https://www.otape.org/#deck) 任何现代浏览器 播放器,就在本页 做了能读取或写入 oTAPE 的东西?提一个 pull request (https://github.com/otape-studio/otape-spec/blob/main/CONTRIBUTING.md) 加入列表。 ## 拥有磁带。*不拥有平台。* 没有信息流决定下一首放什么。没有账户、服务器或订阅横在你和别人为你制作的磁带之间。oTAPE 是开放的,所以你的磁带可以比任何播放它的应用活得更久,包括我们自己的。 无云端 · 无账户 · 只有磁带

相似文章

使用FFmpeg模拟磁带音频特征

Hacker News Top

一个GitHub项目,利用FFmpeg模拟磁带音频特征,包括磁带噪声、抖动/颤动、带宽限制以及均衡器调整。提供针对不同磁带类型的脚本。

Tide

Product Hunt

Tide 是一款能创建自绘分层语音笔记的产品,提供了一种将音频与视觉创意相结合的独特方式。

Flipcorder

Product Hunt

# Flipcorder Flipcorder 是一款全新的 iPhone 应用,旨在模拟 1991 年录像机的使用体验。每天仅限录制一盘"磁带",现已在 Product Hunt 上线。

iVox

Product Hunt

iVox 是首款致力于重现 20 世纪 80 年代磁带编辑效果的音频编辑应用。

Ota

Product Hunt

Ota 是 Product Hunt 上发布的一款新产品,提供以合同为先的仓库就绪基础设施。