{
  "slug": "wav-to-csv-samples",
  "name": "gizza-ai/wav-to-csv-samples",
  "version": "0.1.0",
  "title": "WAV to CSV — Export Audio Samples to CSV Online — gizza.ai",
  "description": "Paste an uncompressed WAV as base64 or hex and export its decoded PCM samples to CSV: one column per channel, with a time or sample index. Runs in your browser.",
  "tags": [
    "wav to csv",
    "wav to csv converter",
    "audio samples to csv",
    "pcm to csv",
    "export wav samples",
    "wav sample data export",
    "wav decoder",
    "audio to csv",
    "wav csv export",
    "extract wav samples"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/wav-to-csv-samples/",
    "markdown": "https://gizza.ai/tools/wav-to-csv-samples/index.md",
    "descriptor": "https://gizza.ai/tools/wav-to-csv-samples/tool.json",
    "deep_link_example": "https://gizza.ai/tools/wav-to-csv-samples/?input=UklGRi4AAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YQYAAAAAQADgAAA%3D&input_format=base64&value_scale=float&precision=6&index_column=time&delimiter=comma&header=true&start_frame=0&max_frames=100000"
  },
  "cli": "gizza tool wav-to-csv-samples \"UklGRi4AAABXQVZFZm10IBAAAAABAAEAgD4AAAB9AAACABAAZGF0YQYAAAAAQADgAAA=\"",
  "tool": {
    "description": "Decode an uncompressed WAV clip (pasted as base64 or hex bytes) and export its PCM samples to CSV: one column per audio channel, optionally preceded by a time (seconds) and/or sample-index column. Choose the sample value scale (normalized float in [-1,1], raw PCM integer at the source bit depth, or dBFS), the decimal precision, the delimiter (comma/semicolon/tab), whether to write a header row, and a start_frame/max_frames window for long clips. Decodes RIFF/WAVE PCM 8/16/24/32-bit integer and 32/64-bit IEEE float; compressed MP3/AAC/FLAC/Ogg/A-law/mu-law inputs are rejected clearly rather than guessed.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "delimiter": {
          "default": "comma",
          "description": "Field separator between columns: 'comma' (default, standard CSV), 'semicolon', or 'tab' (TSV).",
          "enum": [
            "comma",
            "semicolon",
            "tab"
          ],
          "type": "string"
        },
        "header": {
          "default": true,
          "description": "Write a header row naming the columns (e.g. time_s, channel_1, channel_2). Default true; set false for headerless numeric data.",
          "type": "boolean"
        },
        "index_column": {
          "default": "time",
          "description": "First column(s) before the channel columns: 'time' (seconds, default), 'sample' (absolute sample-frame index), 'both', or 'none'.",
          "enum": [
            "time",
            "sample",
            "both",
            "none"
          ],
          "type": "string"
        },
        "input": {
          "description": "Uncompressed WAV audio bytes encoded as base64 (default) or hex. Only RIFF/WAVE PCM 8/16/24/32-bit integer or 32/64-bit IEEE float is decoded; compressed MP3/AAC/FLAC/Ogg/A-law/mu-law is rejected with a clear message.",
          "type": "string"
        },
        "input_format": {
          "default": "base64",
          "description": "Encoding of the pasted WAV bytes: 'base64' (default) or 'hex'. Hex may include whitespace, ':' or '-' separators.",
          "enum": [
            "base64",
            "hex"
          ],
          "type": "string"
        },
        "max_frames": {
          "default": 100000,
          "description": "Maximum number of sample frames (one frame = one sample per channel) to export (1-500000, default 100000). Export covers frames start_frame..start_frame+max_frames, clamped to the clip length.",
          "maximum": 500000,
          "minimum": 1,
          "type": "integer"
        },
        "precision": {
          "default": 6,
          "description": "Decimal places for 'float' and 'db' sample values and for the time column (0-15, default 6). Ignored for the integer 'int' scale.",
          "maximum": 15,
          "minimum": 0,
          "type": "integer"
        },
        "start_frame": {
          "default": 0,
          "description": "Zero-based index of the first sample frame to export (default 0). Use with max_frames to export a window of a longer clip. Errors if it is at or past the end of the clip.",
          "minimum": 0,
          "type": "integer"
        },
        "value_scale": {
          "default": "float",
          "description": "How each sample value is written. 'float' (default) = normalized amplitude in [-1,1]; 'int' = the raw PCM integer at the source bit depth (float-WAV sources scale to 32-bit); 'db' = dBFS magnitude (0 = full scale, silence = -120).",
          "enum": [
            "float",
            "int",
            "db"
          ],
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}