MIT License

项目介绍

eurotools/es-ima-adpcm-encoder-decoder 是一个托管在 GitHub 上的开源项目,主要使用 C# 编写,采用 MIT License 许可证,目前获得 25 个 Star、3 次 Fork。

仓库全名
eurotools/es-ima-adpcm-encoder-decoder
开源许可证
MIT License
Star 数
25
Fork 数
3

README 摘要

IMA ADPCM Audio Tool IMA ADPCM Audio Tool is a console utility for converting 16-bit PCM WAV files to the IMA ADPCM layout used by EuroSound 3 and back. It supports mono and stereo audio, either as headerless data or inside a RIFF/WAV container. Features Encode 16-bit PCM WAV files (mono or stereo) to raw IMA ADPCM. Decode raw IMA ADPCM files (mono or stereo) to 16-bit PCM WAV. Store the same EuroSound-compatible…

完整内容见 GitHub 原始 README 或本页 。

常见问题

es-ima-adpcm-encoder-decoder 用什么语言开发?

主要使用 C# 编写,采用 MIT License 许可证,目前有 25 个 Star。

es-ima-adpcm-encoder-decoder 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 es-ima-adpcm-encoder-decoder 的源码?

可以直接克隆仓库:git clone https://github.com/eurotools/es-ima-adpcm-encoder-decoder.git,默认分支为 main;安装与运行步骤见仓库 README。

es-ima-adpcm-encoder-decoder 最近还在维护吗?

仓库最近一次更新为 8月22日,当前没有未关闭的 Issue;Star 数为 25,可作为社区活跃度的参考。

关于

A small tool to convert IMA ADPCM files to a WAV PCM 16-bit encoding file and vice versa.

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
32
价值分
16
活跃状态
活跃

README

License Issues GitHub Release

IMA ADPCM Audio Tool

IMA ADPCM Audio Tool is a console utility for converting 16-bit PCM WAV files to the IMA ADPCM layout used by EuroSound 3 and back. It supports mono and stereo audio, either as headerless data or inside a RIFF/WAV container.

Features

  • Encode 16-bit PCM WAV files (mono or stereo) to raw IMA ADPCM.
  • Decode raw IMA ADPCM files (mono or stereo) to 16-bit PCM WAV.
  • Store the same EuroSound-compatible ADPCM payload in a RIFF/WAV container.
  • Headerless output compatible with the layout used by EuroSound 3.
  • Independent IMA predictor and step-index state for each stereo channel.
  • High-nibble-first IMA ADPCM packing.
  • Input validation, useful exit codes, and optional exact sample trimming when decoding raw data.

File format and EuroSound 3 compatibility

When the output name ends in .wav, the encoder wraps the EuroSound-compatible ADPCM payload in a RIFF/WAV container containing its sample rate, channel count, and exact sample count. Any other output extension writes that same payload without a header.

The container uses a private format identifier so the payload is always recognized as the EuroSound variant.

Each encoded byte contains two consecutive samples from one channel:

  • The first sample is stored in the high nibble.
  • The second sample is stored in the low nibble.
  • The initial predictor and step index are zero.

Mono files contain one continuous encoded channel.

Stereo files encode the left and right channels independently and interleave the resulting bytes as follows:

L0 R0 L1 R1 L2 R2 ...

L0 and R0 are complete ADPCM bytes, not individual nibbles. This is the stereo interleaving expected by EuroSound 3.

The encoded size is:

ceil(samples per channel / 2) * channels

When decoding raw data, the sample rate and channel count must be supplied explicitly because the file does not store them. A RIFF/WAV input is detected from its contents and supplies this information automatically.

Download

Download the latest version here:

GitHub All Releases

Usage

Encoding WAV to IMA ADPCM

ImaAdpcmTool.exe <InputFile> <OutputFile>

Example:

ImaAdpcmTool.exe "input.wav" "output.adpcm"

EuroSound IMA ADPCM WAV-container example:

ImaAdpcmTool.exe "input.wav" "output.wav"

The encoder reads the channel count from the WAV file. The input must be uncompressed PCM, 16-bit, and either mono or stereo.

Decoding IMA ADPCM to WAV

ImaAdpcmTool.exe Decode <InputFile> <OutputFile> <Frequency> <Channels> [--samples <Frames>]
  • <Frequency> is the original sample rate, for example 22050 or 44100.
  • <Channels> is 1 for mono or 2 for stereo.

Mono example:

ImaAdpcmTool.exe Decode "mono.ima" "mono.wav" 22050 1

Stereo example:

ImaAdpcmTool.exe Decode "stereo.adpcm" "stereo.wav" 44100 2

--samples removes padding samples when the exact original frame count is known:

ImaAdpcmTool.exe Decode "sound.ima" "sound.wav" 22050 1 --samples 12345

To decode a EuroSound IMA ADPCM WAV container, frequency and channels are not required:

ImaAdpcmTool.exe Decode "compressed.wav" "decoded.wav"

Supplying the wrong frequency changes playback speed. Supplying the wrong channel count changes how the raw bytes are interpreted.

评论

暂无评论