Открытие и сохранение файлов

Открытие файлов в Kwave аналогично той же операции в большинстве приложений; возможно

  • указать список файлов в командной строке при запуске Kwave,

  • открыть пустое окно Kwave (например, через пункт меню ФайлСоздать... (Ctrl+W)) и добавить файл с помощью функции перетаскивания,

  • открыть файл через пункт меню ФайлОткрыть (Ctrl+O),

  • открыть один из последних недавно открытых файлов через пункт меню ФайлПоследние файлы,

  • сохранить текущий файл через пункт меню ФайлСохранить (Ctrl+S),

  • сохранить текущий файл под другим именем через пункт меню ФайлСохранитьСохранить как... (Shift+Ctrl+S),

  • сохранить каждую разделённую маркерами часть в отдельный файл через пункт меню ФайлСохранитьБлоки...,

  • сохранить только текущее выделение через пункт меню ФайлСохранитьВыделение....

Поддерживаемые форматы файлов

Kwave поддерживает следующие форматы файлов:

  • Предпочитаемым форматом файлов для приложения Kwave является .wav. Этот формат распространён в других операционных системах, а также часто используется в рабочей среде Plasma™.

  • Вторым по популярности форматом, поддерживаемым Kwave, является «ASCII». Этот формат поддерживает как экспорт, так и импорт данных. Обратите внимание, что файлы, сохраняемые в этом формате, имеют очень большой размер. Подробнее этот формат будет рассмотрен далее.

  • Импорт .mp3 и .mp2 доступен через библиотеку libmad для декодирования MP3, id3lib для декодирования меток ID3 и lame для кодирования.

  • Импорт и экспорт Ogg/Vorbis (*.ogg). Для получения более подробной информации посетите сайт https://www.xiph.org.

  • Импорт и экспорт FLAC (*.flac). Для получения более подробной информации посетите сайт https://xiph.org/flac/.

  • Также возможно импортировать файлы в таких форматах как *.8svx (формат Amiga IFF/8SVX), *.au (NeXT, Sun Audio), *.aiff (формат Audio Interchange), *.avr (формат Audio Visual Research), *.caf (формат Core Audio), *.nist (формат NIST SPHERE), *.sf (формат Berkeley, IRCAM, Carl), *.smp (формат Sample Vision), *.snd (NeXT, Sun Audio), *.voc (формат Creative Voice) и других с помощью модуля audiofile.

Работа с форматом .wav

Лучший способ работы с форматами, отличными от поддерживаемых Kwave, — это использование внешних программ-конвертеров. Хороший набор инструментов для этих целей и полезная документация есть в пакете SoX.

В будущем планируется поддержка импорта и экспорта фильтров для большего количества форматов и, возможно, фильтр, который будет использовать определённый пользователем сценарий с вызовом внешнего фильтра, чтобы программа могла читать и/или записывать данные в форматах, поддержка которых не предусмотрена в SoX.

Формат файлов ASCII

Формат файлов ASCII удобен в использовании в научных и образовательных целях. Из-за его простой структуры возможно либо написать простые файлы с помощью текстового редактора, либо использовать входные данные другого приложения и преобразовать их в ASCII. Поскольку формат действительно простой, при написании конвертера не должно возникать никаких проблем, а большинство научных приложений даже имеет свой собственный формат ASCII для экспорта данных.

Формат ASCII достаточно прост и руководствуется следующими правилами:

  1. В начале файла располагается блок свойств, по одному свойству на строку.

  2. Каждая строка со свойствами начинается с символов ##.

  3. После блока свойств находится список мгновенных значений уровня сигнала (отсчётов), по одному отсчёту на строку. При использовании нескольких каналов отсчёты разделяются запятыми.

  4. Строки могут заканчиваться символом возврата каретки и/или символом перевода строки (поэтому поддерживаются файлы DOS). Но при сохранении файлы всегда будут содержать символ перевода строки в конце каждой строки.

  5. Пустые строки и символы после # рассматриваются как комментарии и игнорируются.

  6. Значения должны быть заданы в формате целых чисел со знаком в пределах диапазона 24 бит, то есть в формате хранения внутренних данных Kwave.

  7. Всё, что следует после символа # (кроме строк свойств, смотрите выше), будет рассматриваться как комментарий и игнорироваться. Пустые строки также будут проигнорированы.

Далее приведён пример простого файла в формате ASCII, который представляет собой синусоидальную волну с одиннадцатью заданными мгновенными значениями уровня аналогового сигнала (отсчётами):

Пример 3.1. Содержимое файла в формате ASCII с одной синусоидальной волной

## 'rate'=44100
## 'tracks'=2
## 'bits'=16
## 'length'=11
## 'Date'='2013-11-09'
## 'Software'='Kwave-0.8.11 for KDE 4.11.3'
  5930496,   5930496 #            0
        0,   8388352 #            1
 -5930752,   5930496 #            2
 -8388608,         0 #            3
 -5930752,  -5930752 #            4
        0,  -8388608 #            5
  5930496,  -5930752 #            6
  8388352,         0 #            7
  5930496,   5930496 #            8
        0,   8388352 #            9
 -5930752,   5930496 #           10
# EOF