PaintCAD для Windows - журнал разработки

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Пт ноя 29, 2013 6:08 pm

Выложена тестовая 1.2.4.937
Скачать: http://blackstrip.ru/paintcad.exe
Класть: в папку с версией 1.2.3, перезаписывая оригинальный exe (тогда подгрузятся ваши настройки). Или просто в пустую папку.

Интерфейс:
- окно палитры сделано более широким для добавления новых функций и укрупнения элементов интерфейса

Новые функции:
- пункты загрузки и сохранения палитры в PAL-файлы доступны в меню и для 24-битного режима
- в окне палитры на вкладке Таблица: добавлены кнопки выделения, вырезания, копирования, вставки, очистки ячеек цветов, применения эффектов к выделенному фрагменту таблицы и загрузки/сохранения таблицы в PAL-файлы
- в окне палитры на вкладке RGB: добавлены кнопки копирования и вставки цвета в текущий выбранный цвет (ПЦ или ЗЦ), кнопки работают с буфером, управляемым аналогичными кнопками на вкладке Таблица
- палитра-таблица теперь не сбрасывается автоматически в UNI-палитру при рисовании в 24-битном режиме
- в 24-битном режиме: теперь открытие окна палитры не перебрасывает автоматически пользователя на вкладку RGB
- в 24-битном режиме: при открытии окна палитры если активной была вкладка Таблица, то положение рамок цветов ПЦ и ЗЦ в таблице не сбрасывается
- в 24-битном режиме: при использовании таблицы-палитры обмен ПЦ и ЗЦ местами (ctrl+влево) теперь меняет местами рамки ПЦ и ЗЦ в таблице

Исправления ошибок:
- исправлена ошибка, возникающая иногда при перерисовке рисунка или буфера после редактирования палитры в 8-битном режиме
- исправлена ошибка сохранения некорректных данных палитры в PAL-файл
- исправлена ошибка возможной установки некорректных границ выделения при загрузке предыдущей сессии

Суть:
Раньше работа с палитрой была возможна только в 8-битном режиме, а каждый цвет в таблице можно было править только вручную (через RGB-вкладку).
Теперь и в 24-битном режиме можно очистить таблицу цветов, записать туда сколько надо конкретных цветов и рисовать ими.

Окно палитры было увеличено чтоб напихать туда побольше кнопок управления палитрой. Они располагаются справа от таблицы.
Изображение

Таблица управляется теперь гораздо более гибко. Можно выделить кусок таблицы (клавишей Z включается/выключается выделение), скопировать или вырезать его, вставить куда нибудь, очистить кнопкой Del. Если не выделено ничего - то выделенным считается одна ячейка где сейчас находится курсор (рамка ПЦ или ЗЦ).
Изображение

Есть кнопка эффектов, вызывающая небольшое меню.
Изображение

Можно очистить таблицу (все цвета будут черные), записать туда стандартную UNI-палитру, залить выделение скопированным цветом (если был скопирован фрагмент таблицы, т.е. много цветов - то будет использован первый цвет в из этого фрагмента), залить выделение градиентом от ПЦ к ЗЦ (об этом ниже подробнее).

Также можно экспортировать палитру в виде рисунка 16х16 в буфер Windows и импортировать ее оттуда (причем даже не в виде 16х16, а хоть в виде линейки 256х1, паинткад съест и это при импорте палитры).
Пример использования импорта-экспорта палитры: открываем готовый 8-битный рисунок с палитрой, экспортируем палитру, открываем буфер Windows в паинткаде в 24битном режиме, делаем рисунок-палитру более ярким, или меняем цветовой тон (эффектом Доп.эффекты-Обмен каналов) и прочее. По окончании правки копируем наш рисунок-палитру и он снова попадает в буфер Windows. Далее снова открываем наш 8-битный рисунок, импортируем в него нашу новую палитру из буфера Windows - и он станет другого цвета или более яркий, при этом оставаясь 8-битным.

Вкладка RGB также была расширена и добавлены 2 кнопки - копировать (Ctrl+C) и вставить (Ctrl+V), с помощью этой вкладки можно выбирать по RGB цвета, копировать их, а затем вставлять в нужные места в палитру-таблицу (на первую вкладку).
Изображение

Пример градиента в палитре: когда нужно получить несколько оттенков с некоторого по некоторый цвет, то нужно:
1) с помощью вкладки RGB сформировать по очереди стартовый и финишный цвета, скопировать их на RGB-вкладке и вставить на вкладку Таблица в нужное место. Далее выделить фрагмент от первой ячейки до последней. И поставить рамку ПЦ на первый цвет, а рамку ЗЦ на второй цвет.
Изображение

2) Запустить Эффекты (Ctrl+E), выбрать градиент ПЦ->ЗЦ.
Изображение

3) Пространство между ПЦ и ЗЦ будет заполнено необходимыми оттенками.
Изображение

Также теперь можно сохранять/загружать текущую палитру в главном окне через Ctrl+S/Ctrl+O и в 24-битном режиме, и в 8-битном (раньше только в 8-битном было). Аналогичные функции теперь лежат в виде кнопок на вкладке Таблица окна палитры.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Вс дек 15, 2013 12:37 pm

Выпущена версия 1.2.4.950

Скачать:
По прямой ссылке http://blackstrip.ru/pcw.rar (11339 Кбайт)

Изображение

Изменения:

Интерфейс:
- окно палитры сделано более широким для добавления новых функций и укрупнения элементов интерфейса

Новые функции:
- в меню "Экстра" добавлен новый инструмент "Scriptaint", позволяющий программировать на языке Java Script рисование и сохранение в файл изображений и анимаций с помощью примитивов (пикселей, линий, прямогоульников, эллипсов), а также текста и подгружаемых изображений
- эффект "Цветозамена" теперь может заменить не только цвет ПЦ на цвет ЗЦ, но и обменять ПЦ и ЗЦ местами на рисунке
- в окне палитры на вкладке RGB: добавлена кнопка инвертирования RGB-компонент выбранного цвета (I)
- в окне палитры на вкладке RGB: добавлена кнопка обмена RGB-компонент цветов ПЦ и ЗЦ местами (E). В 24-битном это обычный обмен ПЦ и ЗЦ, а в 8-битном режиме цвета в ячейках ПЦ и ЗЦ палитры поменяются местами
- в меню Настройки-Общие: добавлена настройка "Тихий режим браузера Bro". Раньше тихий режим всегда был включен, а теперь можно выключить его чтобы увидеть в браузере Bro login-окна и окна ошибок. Настройка сохраняется при выходе из паинткада и подгружается при следующем запуске.
- функция Экстра-Специальные-Синхронизация времени: добавлена возможность вводить несколько NTP-серверов, разделенных вертикальной чертой. По умолчанию используются два сервера, опрашиваемые по очереди (если первый в оффлайне - используется второй).
- пункты загрузки и сохранения палитры в PAL-файлы доступны в меню и для 24-битного режима
- в окне палитры на вкладке Таблица: добавлены кнопки выделения, вырезания, копирования, вставки, очистки ячеек цветов, применения эффектов к выделенному фрагменту таблицы и загрузки/сохранения таблицы в PAL-файлы
- в окне палитры на вкладке RGB: добавлены кнопки копирования и вставки цвета в текущий выбранный цвет (ПЦ или ЗЦ), кнопки работают с буфером, управляемым аналогичными кнопками на вкладке Таблица
- палитра-таблица теперь не сбрасывается автоматически в UNI-палитру при рисовании в 24-битном режиме
- в 24-битном режиме: теперь открытие окна палитры не перебрасывает автоматически пользователя на вкладку RGB
- в 24-битном режиме: при открытии окна палитры если активной была вкладка Таблица, то положение рамок цветов ПЦ и ЗЦ в таблице не сбрасывается
- в 24-битном режиме: при использовании таблицы-палитры обмен ПЦ и ЗЦ местами (ctrl+влево) теперь меняет местами рамки ПЦ и ЗЦ в таблице

Исправления ошибок:
- имя режима "8 бит" теперь отображается корректно в правом верхнем углу главного окна при загрузке предыдущей 8-битной сессии
- исправлена фатальная ошибка, возникающая при создании нового 8-битного рисунка при находившемся ранее в буфере 24-битном рисунке. Теперь при переходе от 24-битного к 8-битному режиму через создание нового рисунка буфер просто стирается и ошибок не возникает.
- окно скачивания файла теперь имеет атрибут "всегда наверху" и не будет скрываться за главным окном паинткада при разворачивании или передаче фокуса главному окну
- исправлена ошибка, возникающая иногда при перерисовке рисунка или буфера после редактирования палитры в 8-битном режиме
- исправлена ошибка сохранения некорректных данных палитры в PAL-файл
- исправлена ошибка возможной установки некорректных границ выделения при загрузке предыдущей сессии

Суть изменений

1) новый инструмент Scriptaint (вызов по Ctrl+E или в меню Экстра-Scriptaint), пишем на java script вебстраницу и сохраняем ее изображение в файл с помощью специальных команд.

Изображение

Доступны для создания заготовки:
- пустой скрипт,
- готовый пример отрисовки изображения,
- готовый пример отрисовки и сохранения кадров анимации,
- а также готовый пример отрисовки изображения для старого IE (типа IE4.0 в Windows 98).

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

Таким образом можно рисовать картинки и анимации типа вот таких:
Изображение

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

Подробнее - нажми F1 в окне Scriptaint или читай помощь в разделе Экстра - Scriptaint.

2) Усовершенствованная палитра, в которой можно более легко работать с 256 ячейками цветов как в 8-битном, так и в 24-битном режиме. Выделять, копировать, вырезать, вставлять, удалять цвета и диапазоны ячеек цветов, применять к ячейкам и диапазонам ячеек специальные эффекты (градиент цветов, заливка одним из выбранных цветов, очистка палитры), сохранять и загружать палитру через PAL-файлы, экспортировать палитру в виде изображения 16х16 в буфер Windows, работать с ней как с обычным рисунком и импортировать обратно из буфера в ячейки палитры.

Подробности - см. в постах выше этого поста.

3) Доп.Эффекты - Цветозамена теперь может менять ПЦ и ЗЦ местами на рисунке.

4) Настройки - Общие - Тихий режим браузера Bro - новая настройка для браузера. Браузер Bro теперь может работать не только в тихом режиме, но и в обычном, в котором видны все login-окна, окна ошибок скриптов и т.д.

5) Синхронизация времени теперь может использовать два и более NTP серверов, опрашиваемых по очереди.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Вс дек 15, 2013 11:32 pm

Выложена тестовая 1.3.0.952
Скачать: http://blackstrip.ru/paintcad.exe
Класть: в папку с версией 1.2.4, перезаписывая оригинальный exe (тогда подгрузятся ваши настройки). Или просто в пустую папку.

Новые функции:
- Scriptaint: в текст заготовок скриптов добавлены функции _fillrecttrans, fillrecttrans, imgouttrans, imgoutframetrans, textouttrans, textoutframetrans, имеющие дополнительный параметр прозрачности (от 0 до 100) и позволяющие отрисовать полупрозрачный прямоугольник, текст или изображение

Исправления ошибок:
- Scriptaint теперь правильно подсвечивает оборванные html-комментарии

Суть:
В Scriptaint у новых функций _fillrecttrans, fillrecttrans, imgouttrans, imgoutframetrans, textouttrans, textoutframetrans в конце списка параметров идет дополнительный параметр tr, задавая его от 0 до 100 можно менять прозрачность (0 - полностью прозрачно, 100 - полностью непрозрачно). Например, можно сделать в анимации плавный переход от черного если в конце отрисовки каждого кадра, используя fillrecttrans, на всю область вывода рисовать черный прямоугольник с плавно понижающимся параметром tr от 100 до 0.

Вот пример с теми же птицами и облаками, в котором с помощью textoutframetrans текст выезжая плавно появляется, а потом уезжая плавно исчезает:
Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Пн дек 16, 2013 9:53 pm

Выложена тестовая 1.3.0.956
Скачать: http://blackstrip.ru/paintcad.exe
Класть: в папку с версией 1.2.4, перезаписывая оригинальный exe (тогда подгрузятся ваши настройки). Или просто в пустую папку.

Исправления ошибок:
- Scriptaint теперь правильно подсвечивает скрипты большого объема
- в английском переводе название инструмента "синхронизация времени" исправлено на "Synchronize time" в программе и в помощи
- Scriptaint: размер скрипта теперь не ограничивается 65536 символами
- инструмент Текст: в поле редактирования выделение теперь не сбрасывается если выделять спереди назад

sany32
Новичок
Сообщения: 1
Зарегистрирован: Пт дек 20, 2013 6:36 pm

Re: PaintCAD для Windows

Сообщение sany32 » Пт дек 20, 2013 7:14 pm

Здравствуйте! Большой респект за вашу программу Muzz! Единственное огорчение у меня (далекого от программистских сложностей) вызывает то обстоятельство, что никак не получается войти по вашей инструкции в генератор Muzz "при запуске paintcad.exe с ключом -muzz в командной строке". Нельзя ли это сделать как-то проще или холтябы пошагово объяснить как это делается людям. которые не владеют навыками работы с cmd?! у меня. например. при вводе места расположения программы C:\Users\user\Desktop\pcw\paintcad.exe она открывается без возможности доступа к окну BlackStrip s Muzz? А при вводе C:\Users\user\Desktop\pcw\paintcad.exe\muzz (или -muzz) пишет, что неверно задано имя папки. Как быть?

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Пт дек 20, 2013 10:35 pm

sany32 писал(а):Здравствуйте! Большой респект за вашу программу Muzz! Единственное огорчение у меня (далекого от программистских сложностей) вызывает то обстоятельство, что никак не получается войти по вашей инструкции в генератор Muzz "при запуске paintcad.exe с ключом -muzz в командной строке". Нельзя ли это сделать как-то проще или холтябы пошагово объяснить как это делается людям. которые не владеют навыками работы с cmd?! у меня. например. при вводе места расположения программы C:\Users\user\Desktop\pcw\paintcad.exe она открывается без возможности доступа к окну BlackStrip s Muzz? А при вводе C:\Users\user\Desktop\pcw\paintcad.exe\muzz (или -muzz) пишет, что неверно задано имя папки. Как быть?
Здравствуйте) Я вам вконтакте ответил на этот вопрос. Отвечу и тут:
1) создать ярлык для paintcad.exe
2) прописать в свойствах ярлыка в поле "объект" строку C:\Users\user\Desktop\pcw\paintcad.exe -muzz
3) также можно попробовать взять в кавычки имя файла и путь "C:\Users\user\Desktop\pcw\paintcad.exe" -muzz

Но вообще этим окном пользоваться не рекомендуется, т.к. оно запутанное и используется в данный момент как служебное. Лучше запустить паинткад без всякого ключа -muzz, и в меню Экстра - Генератор музыки Muzz сначала выбрать Настройки и указать какие стили, размер, настроение мелодии требуется. А потом либо через Ctrl+P запустить проигрывание (и по Alt+P сохранять понравившиеся мелодии в MID), либо запустить "MIDI-бластер" (Shift+P) и сгенерировать от 1 до 100 MID-мелодий в папку. Потом по очереди их прослушать, выбрать что понравилось (или стереть все 100 мелодий, если все получились не очень), а потом снова запустить "MIDI-бластер" и еще раз сделать 100 мелодий. Повторять до тех пор пока не наберете нужное количество или не найдете нужный мотив)

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Сб янв 25, 2014 4:02 pm

Идет разработка версии 1.3.0.

С появлением Скриптаинта в паинткаде стало можно делать заскриптованные последовательности кадров, титры, плавные переходы между видео, подмешивание любой графики в последовательности кадров (если в каждом кадре на задний фон пихать ранее подготовленный N.bmp из заранее заготовленной папки с кадрами) и т.д.

Но это все немое кино. И поэтому захотелось добавить возможности озвучки видео. Поэтому:

1) В меню Утилиты появится функция подмешивания WAV-озвучки в AVI-видеофайл (уже работает) - "Добавить WAV-аудио в AVI-видео".

Изображение

2) Саму озвучку предполагается делать в "редакторе музыки Qmpot" (раньше заготовка под него в меню Экстра называлась Compot).

Изображение

Редактор будет работать с незапакованными WAV-файлами формата PCM. Также будут возможности импорта и экспорта запакованных WAV-файлов (для того чтоб загрузить чужие WAV, сжатые кодеками, а также чтоб ужать озвучку каким нибудь кодеком перед ее добавлением в AVI).

Вот он уже работает, грузит 8/16-битные моно и стерео WAV, позволяет выделять фрагменты аудио в одном или обоих каналах. Окно не доделано до конца, и еще будет дополнено кнопками разными и пр.

Изображение

В плане автоматизации планируется сделать следующие возможности (пока это в процессе разработки):

а) Математическая генерация звуков в Скриптаинте. Новая заготовка скрипта "Генерация звука" позволит создать большой массив, записать в него свои звуки (с помощью синусоидальных, пилообразных, треугольных и пр. сигналов), а потом вытащить это дело через буфер обмена Windows в виде огромной строки текста (к сожалению, Java Script не имеет доступа к файлам на жестком диске, иначе можно было бы обойти использование буфера. Но в любом случае буфер Windows может быть растянут до очень и очень больших размеров, поэтому он вроде бы подходит для таких задач). В свою очередь в Qmpot будет возможность импорта такой длинной строки из буфера и преобразование ее в звук с последующим прослушиванием, редактированием, сохранением в WAV.

Изображение

б) Поддержка инструментов. С помощью специального языка можно будет подгрузить WAV-файлы инструментов, лежащие рядом с вашим основным WAV-файлом, установить для них границы loop-цикла (вручную или подгрузкой ins-файлов с параметрами цикла) и вставлять их начиная с нужного отсчета звукового массива, транспонированные на определенную частоту (ноту) и зацикленные на заданную длительность. Таким образом можно будет писать мелодии.

в) Автоматизация поддержки инструментов. В Скриптаинте появится еще один вариант заготовки скрипта, позволяющий автоматизировать создание скриптов на "специальном языке" для предыдущего пункта Б и легко задать такие команды, которые расставят звуки во времени ровно и на нужные частоты. С последующим копированием полученного скрипта в буфер и его подгрузки в редактор Qmpot.

Также хотелось бы сделать:
- запись звука с микрофона (для речевой озвучки, а также для создания необычных вокальных инструментов);
- распознавание мелодий (напел мелодию - и qmpot разобрал ее на ноты через БПФ по частотам);
- связать редактор "Очереди кадров" и Qmpot, чтоб там сделать метки на кадрах, а потом в Qmpot разложить по этим меткам фразы озвучки;
- экспорт звука из Qmpot в виде длинной строки и ее импорт в Scriptaint для обработки как массива в Java Script разными готовыми функциями обработки звука (т.е. задача обратная пункту А выше, затащить звук из Qmpot в Java Script).

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Пт фев 07, 2014 12:40 am

Продолжается разработка музыкально-звукового модуля для озвучки видео, написания музыки, создания звуков для PaintCAD 4Windows. Из редактора музыки Qmpot он теперь переименован в Редактор звука Qmpot.

1. Связка "Scriptaint - Qmpot"

В Скриптаинте для генерации звука будут два примера заготовок - для Моно и для Стерео.

Изображение

Внутри заготовки вот такой скрипт, в котором указываются параметры звука: частота дискретизации, битность, количество каналов (1 или 2), рассчитывается длина звука в отсчетах (можно указать в секундах, функция Sec2Num сама переведет в отсчеты) и создается массив звуковых данных в памяти. Потом его можно мурыжить ява-скриптом.

Изображение

По умолчанию в заготовку моно-звука (у которого количество каналов chans равно 1) записана генерация синусоиды определенной частоты: Ля 1 октавы, т.е. 440 герц. За выбор частоты по номеру ноты отвечает функция GetNoteA. Здесь A - это обозначение "ля", и это значит что GetNoteA - получить ноту относительно ля первой октавы. GetNoteA(0) - это и есть частота для ля, GetNoteA(1) - ля диез, GetNoteA(2) - си, GetNoteA(2) - до, GetNoteA(12) - ля второй октавы, GetNoteA(0.5) - средняя нота между ля и ля-диез, (можно использовать для плавных перекатов последовательности нот или еще как нибудь, надо будет еще послушать как оно будет звучать). И так далее. Ну и по закону sin(2*пи*f) получаем простейший звук.

Кроме встроенного в ява-скрипт синуса в заготовке присутствуют функции:
squ - генерирует прямоугольные импульсы (в диапазоне амплитуд -1/+1) со скважностью 50%. Имеет период "2 пи", как и синус.
tri - генерирует треугольные импульсы (также в диапазоне амплитуд -1/+1). Имеет тоже период "2 пи", как и синус.

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

После выполнения скрипта JS копирует получившийся массив в длинную строку текста в буфер Windows (и показывает в окошке скрипта Готово или Ready, а также количество миллисекунд от текущего времени, чтоб видно было когда в очередной раз запустили скрипт и он выполнился - то это число изменится на другое, а буфере Windows будет лежать полученная строка-звук). Чтоб подгрузить получившийся звук - выходим по Esc из скритаинта и входим в Qmpot (Ctrl+Q). Там в меню открытия (а теперь оно есть) выбираем "Буфер Windows (от Scriptaint)" и ждем подгрузки звука.

Изображение

В итоге видим осциллограмму сгенерированного в Java Script звука:

Изображение

Это, конечно, не генератор мелодий, а больше генератор звучания какого либо инструмента. А потом уже из таких готовых инструментов можно будет собирать в Qmpot большую мелодию/песню/звуковое оформление. Для этого будут использоваться особые QMP-программы. Вот при нажатии на кнопку "Программа" или "F3" в правой части Qmpot открывается поле для создания и ввода QMP-программы, ее загрузки/сохранения, а также исполнения.

Изображение

Пока поддерживается только команда создания нового файла (она введена на скриншоте), но вскоре будут добавлены множество команд, включая
- загрузку лежащих рядом с QMP-файлом звуковых WAV-файлов в качестве инструментов под определенным номером,
- подгрузку из INS-файлов/ручную установку параметров loop-ов,
- вставка ранее загруженного инструмента без учета/с учетом loop-ов в нужное место (в секундах или отсчетах) и транспонированных под нужную ноту (в герцах или в полутонах относительно ля первой октавы)
- и многое другое (команды уже расписаны на бумаге, осталось реализовать)

Можно будет:
- либо вручную эти команды вписывать, выполнять программу, прослушивать результат.
- либо воспользоваться еще одной заготовкой скриптаинта, позволяющей аккуратно в цикле выставлять нужные инструменты на нужные места во времени, и таким образом быстро сгенерировать QMP-программу для создания ритма, мелодии, случайно раскидать звуки (например, "ночной лес" из звуков пения птиц и стрекотания сверчков, раскиданных рандомно по всей длине звука).

2. Запаковка/распаковка WAV файлов с использование различных кодеков

После перебора десятков различных примеров кода, использующих ACM (Audio Compression Manager), был создан паинткадовский модуль распаковки/запаковки WAV-файлов. Это было нелегко, но теперь все более-менее работает и в Windows XP, и в Windows 8.1.

В Qmpotовском меню открытия можно выбрать просто PCM WAV - и если попытаться этим пунктом открыть запакованный каким либо кодеком кроме PCW-формата (который, собственно, является форматом без сжатия) - то вылезет сообщение, подсказывающее выбрать другой пункт в меню открытия WAV:

Изображение

Вот этот пункт в меню:

Изображение

При открытии из WAV подгружаются основные данные о кодеке и пользователю предлагается выбрать желаемые настройки PCM-формата (лучше выбрать самые лучшие с наиболее высокой частотой дискретизации и битностью, но можно выбрать и хреновые - Windows перед подгрузкой звуковых данных из файла испортит качество этого звука специально для вас):

Изображение

Аналогично и при сохранении можно сохранять с запаковкой кодеком:

Изображение

Выбираем один из форматов, в который можно сохранить (причем, для файлов 11025 кГц будут одни кодеки подходить, а для более крутых 44100 кгц - уже другие тоже заработают и появятся в списке для выбора, Windows сам выбирает и кладет в список только те кодеки, которые без особых проблем должны съесть формат именно вашего сохраняемого звука):

Изображение

После этого полоса прогресса добегает до 100% (быстро добегает) и все, файл запакован и сохранен. И после этого можно его послушать в вашем плеере, установленном в системе по умолчанию для проигрывания WAV, нажав Ctrl+F5 или кнопку "В плеер" внизу окна. И потом примотать к ранее нарисованному AVI-видео упомянутой в предыдущем посте командой "Добавить WAV-аудио в AVI-видео":

Изображение

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Сб фев 15, 2014 2:42 am

Продолжается разработка музыкального модуля:

1. Движок исполнения QMP-программ.

По нажатию на F3 открывается область для ввода QMP-программ. QMP-программа - однопроходной скрипт (т.е. без циклов), в котором можно вызвать создание нового звука и микширование в нем различных WAV файлов-инструментов.

Изображение

Если область ввода QMP-программ включена - то по Shift+F3 можно вставить в программу новую команду, выбрав ее вручную из меню-списка всех команд:

Изображение

На данный момент список команд таков:

Новый звук
N fдискр,бит,каналы,длина

Создать инструмент по строке
C #инстр,fдискр,бит,каналы,строка

Загрузить инструмент+цикл из INS файла
L #инстр,"имя_ins_файла"

Загрузить инструмент из WAV файла
LW #инстр,"имя_wav_файла"

Установить цикл для инструмента
SL #инстр,нач_отсчет,кон_отсчет

Запись инструмента по смещению
P #инстр,канал,смещение,транспоз

Запись инструмента по смещению и длине
PL #инстр,канал,нач_смещение,длина,транспоз

Запись повторяющегося инструмента по смещению
PR #инстр,канал,нач_смещение,повторы,транспоз

Завершить выполнение
X (без параметров)

Переход на строку
G номер_строки

Установить множитель громкости инструмента
SA #инстр,множитель_громкости

Установить глобальное смещение
SO смещение,относительное

Установить значение автотранспозиции инструмента
ST #инстр,транспоз

С помощью этих команд можно написать, например, вот такую простую мелодию из синусов (если предварительно фрагмент синуса сгенерировать в Scriptaint-е для Qmpot, а затем сохранить в WAV-файл уже в Qmpot-е, положив его рядом с файлом QMP-программы):

Скачать WAV

Вот текст программы, генерирующей такую мелодию.

Создается новый файл 44100 кгц, 16 бит, 1 канал (моно), длиной 16 секунд.
N 44100,16,1,16S

Затем в качестве инструмента №1 подгружается anote.wav (это 1 период синуса).
LW 1,"anote.wav"

Потом ему устанавливается амплитуда 0.2 (т.е. в пять раз меньше изначальной его амплитуды, чтоб при наложении суммарный сигнал не вылез за границы 16-битного звука (-32768..32767)).
SA 1,0.2

Потом командами ST - аккорд передвигается (транспозируется) на нужное количество полутонов. Если представить, что 0 - это Ля, а я сначала написал проигрывание Ля-минора. Так вот транспозиция на 5 полутонов вверх делает из него Ре-минор.
ST 1,5

Затем, используя инструмент 1, командами PL ставятся звуки длиной 0.3 секунды с шагом в 0.5с. Сначала 0 - это ля, потом одновременно по смещению 0.5с ставятся 3 (до) и 7 (ми), потом по смещению 1с ставится Ми ниже октавой (-5), затем по смещению 1.5с ставится снова 3 (до) и 5 (ми).
PL 1,1,0S,0.3S,0
PL 1,1,0.5S,0.3S,3
PL 1,1,0.5S,0.3S,7
PL 1,1,1S,0.3S,-5
PL 1,1,1.5S,0.3S,3
PL 1,1,1.5S,0.3S,7

Затем аналогичный аккорд вставляется по глобальному смещению, сдвинутому относительно предыдущего смещения (нуля) на 2с, но там транспозиция выставляется в 0 - и это будет обычный ля-минор.
SO 2S,1
ST 1,0
PL 1,1,0S,0.3S,0
PL 1,1,0.5S,0.3S,3
PL 1,1,0.5S,0.3S,7
PL 1,1,1S,0.3S,-5
PL 1,1,1.5S,0.3S,3
PL 1,1,1.5S,0.3S,7

Еще сдвигаемся на 2с относительно предыдущего смещения (т.е. получается на 4с относительно начала звука). Тут уже Ми-мажор, поэтому вызов нот 0-3-7 заменен на вызов 0-4-7 (чтоб мажор был, а не минор), а транспозиция установлена в -5 (т.к. -5 полутонов от Ля - это Ми).
SO 2S,1
ST 1,-5
PL 1,1,0S,0.3S,0
PL 1,1,0.5S,0.3S,4
PL 1,1,0.5S,0.3S,7
PL 1,1,1S,0.3S,-5
PL 1,1,1.5S,0.3S,4
PL 1,1,1.5S,0.3S,7

И снова Ля-минор
SO 2S,1
ST 1,0
PL 1,1,0S,0.3S,0
PL 1,1,0.5S,0.3S,3
PL 1,1,0.5S,0.3S,7
PL 1,1,1S,0.3S,-5
PL 1,1,1.5S,0.3S,3
PL 1,1,1.5S,0.3S,7

Фа-мажор
SO 2S,1
ST 1,0
PL 1,1,0S,0.3S,-4
PL 1,1,0.5S,0.3S,0
PL 1,1,0.5S,0.3S,3
PL 1,1,1S,0.3S,-9
PL 1,1,1.5S,0.3S,0
PL 1,1,1.5S,0.3S,3

Ми-мажор
SO 2S,1
ST 1,-5
PL 1,1,0S,0.3S,0
PL 1,1,0.5S,0.3S,4
PL 1,1,0.5S,0.3S,7
PL 1,1,1S,0.3S,-5
PL 1,1,1.5S,0.3S,4
PL 1,1,1.5S,0.3S,7

Ля-минор
SO 2S,1
ST 1,0
PL 1,1,0S,0.3S,0
PL 1,1,0.5S,0.3S,3
PL 1,1,0.5S,0.3S,7
PL 1,1,1S,0.3S,-5
PL 1,1,1.5S,0.3S,3
PL 1,1,1.5S,0.3S,7

И все вместе - 4 ноты ля-минора одновременно играют в течении 1 секунды.
SO 2S,1
ST 1,0
PL 1,1,0S,1S,0
PL 1,1,0S,1S,3
PL 1,1,0S,1S,7
PL 1,1,0S,1S,12
X

2. Загрузка и сохранение

В окнах сохранения и загрузки WAV стало возможно подгрузить любой файл как звук, указав при этом его частоту дискретизации, битность и количество каналов (а потом еще и прослушать его) - для этого есть пункт "Звуковой поток".

Изображение

Изображение

3. Создание инструментов

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

Возможно сохранить готовый инструмент с циклом по текущему выделению. Сохраняются два рядом лежащих файла INS и WAV, в INS записано 3 строки: имя wav-файла, начальный отсчет цикла (номер), конечный отсчет цикла (номер). Сохраненные инструменты (INS-файлы) могут быть подгружены в QMP-программу с помощью команды L и использованы для сборки мелодий.

Для подбора цикла инструмента используется обычное выделение (Пробел), при этом удерживая Alt можно перепрыгивать курсором на начало или конец выделения, подстраивая их под идеально сглаженный цикл (без щелчков). Также можно переходить на начало и конец выделения через меню, вызываемое по кнопке "Перейти" (Ctrl+G):
Изображение

При создании своего инструмента и подборе цикла для него, даже не завершая процесс выделения цикла - можно прослушать получившийся инструмент. Для этого есть кнопка Плеер (Ctrl+F5), показывающая такое меню:

Изображение

Здесь можно послушать в Qmpot состыкованные вместе 5 экземляров текущего выделенного цикла, а также целиком инструмент (начало + 5кратное повторение выделенного цикла + конец). Также здесь есть другие команды: отправка в ваш Windows-плеер по умолчанию текущего звукового потока (чтоб испытать, как его будет слышно в обычном плеере с вашими любимыми настройками эквалайзера и т.д., если нужно), а также отправка в Windows-плеер последнего сохраненного WAV-файла, это удобно для прослушивания после сохранения запакованного WAV-файла с (возможно) искаженным звучанием, чтобы принять решение - оставить как есть или перепаковать с настройками покруче и звучанием получше.

Аватара пользователя
blackstrip
Админ
Сообщения: 1176
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Re: PaintCAD для Windows

Сообщение blackstrip » Вт фев 18, 2014 2:33 pm

PaintCAD 4Windows в Ubuntu через Wine
Вот он лежит в папке, распакованный из pcw.rarПоказать
Изображение
Обучение показывается шрифтами как на упаковке китайской дешевой…Показать
Изображение
Главное окно выглядит похожим на запуск под WindowsПоказать
Изображение
Палитра, курсор вкладки сбился, но в целом сносноПоказать
Изображение
Инструмент, при каждом следующем вызове это окно (а также окна "…Показать
Изображение
Я побежал тестить текст и обломался. Видимо это проблемы при пол…Показать
Изображение
Копирование-вставка изображения работает, т.к. тут TRichEdit не …Показать
Изображение
Поддержки работы с вебкамерой (avicap32.dll) не видноПоказать
Изображение
Браузер Bro работает! А IRC зависло после коннекта и resolving h…Показать
Изображение
Создание PCF шрифтов на основе местных "виндовских" и последующа…Показать
Изображение
Можно собирать анимированные GIFы и просматривать их на местном …Показать
Изображение
Изображение

Изображение

Изображение

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 19 гостей