Важная информация
Страница 11 из 13 ПерваяПервая ... 910111213 ПоследняяПоследняя
Показано с 101 по 110 из 121

Тема: Простенькая программа для аранжировки (Планирование проекта & реализация)

  1. #101  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Сначала самое аппетитненькое - мини прожка, а потом уж читайте кому интересно. Для работы проги
    нужна Midi клавиатура, вы сможете увидеть как нажимаются и с какими Velocity клавиши, вы сможете
    увидеть положения высоты тона и вибрато, также вы сможете увидеть, когда зажата сустейн педаль.
    У кого больше midi клав - сделал выбор вначале, проверить не могу но должно работать.

    К сожалению на моей дешёвой Midi клаве больше ничего нет, что было - проверил, а на обум код не
    пишу, слишком много нюансов.

    Загрузить: Midi Input.zip
    Midi show.jpg

    И так на данном этапе что у меня есть:

    - Сетка для Piano Roll(скриншоты выкладывал), в ней пока ещё нет готового масштабирования отображения
    и она не подогнана под тайминги, но она на всё это уже рассчитана.
    - Рабочие тайминги (видео демо выкладывал)
    - Рабочий Midi ввод
    - Рабочий Midi вывод
    - Основа умеющая грузить\сохранять прозрачные *.BMP, ресайзить буферы, получать приращение мышки и
    её параметры, менять сенсу мышки, загружать шкурьё для циферблата и отрисовывать как циферблат, так
    и просто цифры из строки, грузить CP866 шрифты и печатать ими.

    - Есть спектроанализ(лагистый и паршивенький но есть)
    - Есть конволюция сигнала (крайне убогая и не тестенная на реальных сигналах, но опять же есть)
    - Есть готовый к работе FBSound с перехваченым Master буфером.
    - Есть образец SSE для быстрой работы со звуком в 4 канала.

    - Есть семплы фортепиано с 15 уровнями Velocity на каждую октаву(может быть их там больше, по моему всё
    таки нет), для реализации потребуется вручную найти ноты, до которых можно повысить\понизить скорость
    воспроизведения семплов, ну и собственно сделать это на весь диапазон фортепиано, создав по 15 *.WAV
    файлов на каждую ноту. Т.к. семплы эти образно говоря - гавно, нужен рум, т.е. пропустить семплы через
    ревербератор и так же сделать по 15 файлов рума для каждой ноты, так мы сможем подмешивать его. Знаю,
    что всё это очень криво ребят, но это самое простое как я вообще планирую делать, т.е. через семплер,
    который ещё нужно закодить. Не хочется в итоге со всем этим промудохаться и получить никакой результат,
    посему нужно делать на совесть. Одного фортепиано конечно мало, и позже вероятно смогу ещё наискать
    каких-нть бесплатных семплов.

    Чего пока нет:

    - GUI, до сих пор терплю))), вдумайтесь только - спец интерфейсник терпит, OMFG!
    - Декода\Энкода Midi файлов (не горит но всё же, это можно сказать окно в мир работы с нотным материалом,
    т.к. почти любую партитуру можно найти в *.MID)
    - Модульной надстройки над структурой буферов инструментов, для работы с оной, также в этом модуле
    должны быть по идее реализованы откаты(доп. буфер на откаты, буфер обмена и промежут. буферы для нот).
    - Прототипа меню инструментов, прототипа редактора расстановки паттернов, прототипа меню настроек звука.
    - Нет идей как слепить всё это вместе.

    Сейчас уже можно приблизительно оценить, где я нахожусь по прогрессу, как уже говорил с момента
    приобретения клавы работаю над прогой более серьёзно.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  2. 2 пользователя(ей) сказали cпасибо:

    stabud (13.07.2013), Абадябер (13.07.2013)

  3. #102  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    Вау. Прочитал, и должен отметить, что это действительно впечатляет. Обилие терминологии, так или иначе связанной со звуком внушает и вовсе трепет
    Мне-то эта тема вообще не знакома, я музыкой не занимался даже (в смысле - игрой на музыкальных инструментах или пением), а также не программировал ничего связанного со звуком. Поэтому прочитал, и мало что понял, кроме того, что работа идет. И вот это как-раз и очень радует
    Пожелаю вам дальнейших успехов, надеюсь, через несколько месяцев наш форум увидит новую, и самую крупную разработку, процесс которой освещался именно у нас
    Дружба-магия-радость!
    Ответить с цитированием  
     

  4. Пользователь сказал cпасибо:

    >Quiet Snow< (13.07.2013)

  5. #103  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Посмотрел я сегодня размер семплов Salamander Grand Piano и припух, 1.76 Гб. Смысл, в том, что чтобы
    поиграться на таком фортепиано надо б его в память загрузить, а 1.76 Гб это мягко говоря - дофига.
    Даже GIMP падает когда переваливает за 1.6, а тут ещё больше. Всем нам известно, что ~1.6 на 1 процесс
    это и есть предел 32 битной винды. Есть конечно варианты типа похимичить с опциями загрузки и довести
    этот объём до 3 гигабайт, но всё равно, представляем как юзер сидит и ждёт пока почти 2 гига семплов
    сольются с харда в память, процесс мягко говоря не доставляющий, а я тут уж было на радостях хотел
    испытать свой midi ввод и прикрутить к нему простейший генератор на основе FBSound, да ещё и губу
    раскатал на рум примерно такого же объёма(Семплов оказалось в 4 раза больше, обрабатывать их в таком
    кол-ве по одному просто нереально). Вот теперь сижу и думаю как быть, резать семплы и без того не шибко
    офигенные не хочется, потому что нет у меня синтетической генерации фортепиано, так я мог бы разбавить
    звук и получить сносный результат. Резать уровни velocity - тоже плохо, хотя наверное именно так и придётся
    сделать. Сделать не 16, а 6 уровней velocity. Засада короче.

    О большом количестве инструментов мечтать уже и не приходится, одно фортепиано похавает всю память))).
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  6. #104  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Сделайте несколько вариантов программы:
    Базовый. Средние семплы и среднее количество инструментов.
    Макс. Инструментов. Низкое качество семплов и 100500 инструментов.
    Макс. Качество. Высокое качество семплов и 2-3 инструмента.
    Вот как-то так. И пусть каждый юзер выбирает, что ему по душе. Мне, например, подойдёт вариант с низким качеством, так как я не аудиофил. Зато он весит меньше.
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  7. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (18.07.2013), stabud (18.07.2013)

  8. #105  
    Гуру Аватар для Абадябер
    Регистрация
    09.12.2010
    Адрес
    Беларусь, Минск
    Сообщений
    1,219
    Сказал(а) спасибо
    302
    Поблагодарили 176 раз(а) в 144 сообщениях
    Записей в блоге
    5
    А насколько годится вариант с подгрузкой нужных семплов?
    Например, держите в оперативке предполагаемо самые часто используемые семплы, а остальные, при необходимости, подгружаются. Если длительность семплов не крайне коротка, то теоретически, успевать можно, хотя, конечно, это в целом не нормально - постоянно терзать диск, да и что-то мне подсказывает, что при плотном порядке семплов, подгружаться они все-равно не будут успевать.
    Задача была-бы проще, если-бы не нужно было воспроизводить семплы по ходу игры. Юзер-бы наигрывал, а потом на основе наигранного генерировалась wav-ка, например. Но это не серьезно - играть, и не слышать звука =)
    Есть промежуточный вариант, что-то вроде компромисса. Например, переводите сэмплы в довольно низкое качество, чтобы они занимали, например, в раз 8 меньше места. Юзер сначала наигрывает мелодию с помощью них, а потом она генерируется на основе наигранного но уже с высококачественными семплами, и не в реалтайме, само собой.
    Дружба-магия-радость!
    Ответить с цитированием  
     

  9. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (18.07.2013), stabud (18.07.2013)

  10. #106  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Всем спасибо за чтение моих мыслей по проекту.

    Сделайте несколько вариантов программы:
    Базовый. Средние семплы и среднее количество инструментов.
    Макс. Инструментов. Низкое качество семплов и 100500 инструментов.
    Макс. Качество. Высокое качество семплов и 2-3 инструмента.
    Вот как-то так. И пусть каждый юзер выбирает, что ему по душе. Мне, например, подойдёт вариант с низким качеством, так как я не аудиофил. Зато он весит меньше.
    Идея впринципе понятная, боюсь столько вариантов чисто физически сделать не смогу и скорее
    всего останослюсь на одном. К тому же о 100500 инструментов - нужны семплы, семплы есть конечно,
    но в нормальном формате только фортепиано и немного перкуссии. Есть вариант задействовать Midi
    выход - там куча тембров General Midi, впринципе вариант нормальный, но рендера не будет точно, а
    это противоречит задумке программы, чтобы на выходе что-то было(о формате *.MID пока речи не идёт).

    Касательно качества, подумал, что можно срезать битность, всё таки 24 бита это действительно для
    рендера больше, нежели для реал тайм игры. Надо поэкспериментировать, сейчас думаю как сделать
    простейший генератор, который будет воспроизводить средствами FBSound. FBSound очень быстро
    микширует 16 бит файлы, поэтому на нём можно вдоволь поэкспериментировать.

    Но это не серьезно - играть, и не слышать звука =)
    Да, но это метод рендеринга, т.е. генерирование высококачественной *.WAV-ки.

    Есть промежуточный вариант, что-то вроде компромисса. Например, переводите сэмплы в довольно низкое качество, чтобы они занимали, например, в раз 8 меньше места. Юзер сначала наигрывает мелодию с помощью них, а потом она генерируется на основе наигранного но уже с высококачественными семплами, и не в реалтайме, само собой.
    Так изначально хотел делать. Метод хороший, думаю насчёт разницы. Хороший качественный рендер делается
    небыстро, потому что должна работать интерполяция, т.е. семплы интерполируются в более высокую ЧД, далее
    микшируются, далее ЧД понижается до той, которая была и используется фильтр антиналожения.
    У меня была интерполяция по Лагранжу, но она ппц какая медленная и очень корябит данные по бокам
    интерполируемого участка. Да и к сожалению нету нормального алгоритма антиналожения, может быть погуглю.

    Пока решил перевести семплы вручную в 16 бит, оставить на ЧД 48КГц. Количество уровней Velocity думаю
    снизить до 6-ти. По идее не должно всё это занять больше 500 Мегабайт. А вот при рендере решил сделать
    то, про что говорит Абадябер - подгружать те, которые играются, но сам алгоритм конечно нелёгок.

    держите в оперативке предполагаемо самые часто используемые семплы
    Вся проблема в том, что их невозможно вычислить, когда давлю на midi клаве, часто выбрасывает не ту Velocity
    которая задумывается, да и в принципе нельзя узнать что будет в партии, может музыкант будет как бешеный
    на полной Velocity шпарить по Бетховенски, а может наоборот смазливую партию, еле еле слышную. Т.е.
    предсказать нельзя, нужен весь диапазон как по нотам так и по Velocity. Даже каких-либо среднестатистических
    выкладок сделать нельзя.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  11. #107  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
    держите в оперативке предполагаемо самые часто используемые семплы

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

  12. #108  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Тогда нужно что то вроде страничной организации семплов в памяти, чтобы система сама определяла наиболее
    часто используемые, конечно если так возможно. Прошу прощения если сморозил глупость, я не очень владею материаллом
    Если имелась в виду страничная организация памяти ОС, то моя мысль настолько глубоко не погружалась.
    Работаю на небольшом приближении идей, а это совсем глобально, т.е. даже не на что опереться, чтобы
    придумать каким же образом приспособиить данный принцип к оптимизации памяти. Я тут пока копошусь
    с совсем мелкой рыбёшкой, много аналитики по нотам и их высотным соотношениям с семплами и midi
    интерфейсом.

    А насколько годится вариант с подгрузкой нужных семплов?
    Чисто теоретически работать будет, но будет небольшая задержка от харда, совсем небольшая.
    Самое фиговое, что хард будет постоянно колбаситься и чем больше звуков играет, тем больше
    этот расколбас будет, + такой микшер придётся написать самому т.к. стандартный FBSound грузит
    весь семпл сразу, а это будет создавать ощутимую задержку, т.е. нужно загружать самый первый
    кусочек, требуемый для старта воспроизведения и по мере воспроизведения подгружать кусочки.
    Последний раз редактировалось >Quiet Snow<; 18.07.2013 в 19:12.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  13. #109  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Хорошие новости друзья, вчера закупил болванок, сделал полный бекап проекта(исключая семплы).
    А сегодня очень долго мудрил мудрил и сделал загрузку и переназначение семплов в расчётном виде.


    Памяти кушает около 475 метров судя по диспетчеру, грузится около минуты. Вчера также с помощью
    Audacity в пакетном режиме преобразовал все открытые ноты из семплов в формат 16 Бит.
    Осталось чуть-чуть прогерства и смогу потестировать фортепиано с 6-ю уровнями Velocity, кстати
    сделал, чтобы можно было менять количество уровней через правку констант исходника, будет поле
    для экспериментов, уверен смогу сделать компромисс качество звука/исп. память.

    Сейчас я хочу понять, чисто субъективно насколько это фортепиано будет хуже используемого в
    Ableton Live 8, которое я иногда терзаю. Прога эта лицензионная и досталась мне нахаляву вместе
    с клавой.

    Да ещё, одними семплами звук не ограничивается, звук этот с макс. сустейном, поэтому придётся ещё
    кодить плавное гашение звуков, надо будет посмотреть, как в FBSound обстоят дела с изменением
    параметров воспроизводящегося звука, а то можно и на лосося сыграть.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  14. #110  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Потестировал, не думал, что будет НАСТОЛЬКО плохо. Алгоритмы изменения скорости воспроизведения
    размазывают все семплы вмясо, отчётливо слышен синтетический высокочастотный призвук, который
    портит все. Семплы впринципе нормальные и хорошо подходят для академической музыки.

    Плохо, что на текущем этапе нужно будет писать свой микшер, да и не знаю смогу ли на простейших
    алгоритмах сделать лучше. Думается нужно искуственно увеличивать разрешение(промежуточные отсчёты)
    и вводить продвинутый алгоритм интерполяции(у меня есть только голимый Лагранж, для реалтайма навряд
    ли, т.к. медленный), короче зашёл в тупик. Конечно с таким звуком удовольствия никакого, нужно что-то
    делать.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

Страница 11 из 13 ПерваяПервая ... 910111213 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 09.04.2013, 12:28
  2. Программа по двумерным массивам.
    от Stannum в разделе QBasic
    Ответов: 23
    Последнее сообщение: 27.03.2013, 01:37
  3. Программа не верно работает
    от Smoke Veka в разделе C/C++
    Ответов: 0
    Последнее сообщение: 23.03.2013, 14:03
  4. Ответов: 0
    Последнее сообщение: 03.03.2013, 08:01
  5. Экологическая программа
    от VadimT в разделе Turbo Pascal
    Ответов: 8
    Последнее сообщение: 20.01.2013, 13:28
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •