Подделка человеческого выступления в миди

Я не знаю, действительно ли этот вопрос относится сюда или к какой-то другой части StackExchange. Если широкая публика или администраторы захотят, чтобы он был перенесен в другое место, я, конечно, буду рад согласиться.

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

Любые советы или трюки будут тепло оценены.

Большое спасибо за ваши комментарии или ответы!

Это во многом зависит от инструмента и стиля игры, который вы пытаетесь воспроизвести. Например, при попытке очеловечить ударные вам нужно создать чередование левой и правой рук на сбивках, но работа педали с одним бочкой имеет другое ощущение в зависимости от положения пятки и т. д. По сути, если вы знаете, как играть на инструменте, вы много знаю о том, как очеловечить его. Если вы этого не сделаете, то вас ждет огромный путь в гору.
Хорошо сформулированный вопрос. IMO, проблема со всеми этими «алгоритмами гуманизации» заключается в том, что их предпосылка полностью ошибочна: человеческая производительность — это не просто неточное воспроизведение точно квантованного времени и интонации, которые обычно выдает миди-секвенсор. Мне нравится смотреть на это с другой стороны: растр с фиксированным временем и фиксированная сетка с шагом 12 эдо — это просто неточное приближение к тому, как работает хорошая человеческая производительность.

Ответы (4)

Я не уверен, что это на самом деле отвечает на сам вопрос, но может дать некоторое представление о том, что связано с гуманизацией.

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

Неточности вносят свой вклад в окончательное ощущение всего произведения, хотя взаимосвязь между точностью и «канавкой» может меняться в самом произведении, становясь все более плотным по ходу исполнения.

Идеальным иллюстративным примером, на мой взгляд, является «Суеверие» Стиви Уандера.

Имейте в виду, что инструменты — это только барабаны, син-бас, 2 трека для клавинета [все играет Стиви] и 2 трека для духовых инструментов.
Барабаны были уложены первыми, как это было его обычным методом работы. Я не знаю, в каком порядке были записаны остальные, но вы можете быть уверены, что духовые были последними.

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

Во всем первом куплете ничего не кажется особенно синхронизированным — да, это отличный рифф, но клависы блуждают друг от друга, барабаны немного толкают и тянут, но не в то же время, что и клавис. К тому времени, когда приходит начальство, они звучат так, будто договорились, что «пиво покупает тот, кто закончит последним», поэтому они пытаются добраться до конца как можно быстрее.

Медные духовые продолжаются в том же духе на протяжении всего трека, но на самом деле этот кажущийся порыв действительно связывает грув воедино и делает его очень жестким.

Второй куплет делает почти то же самое, что и первый, но немного плотнее — также ваше ухо начинает более снисходительно относиться к отдельным компонентам, поскольку ваше «сердце» действительно начинает понимать, что на самом деле происходит что-то особенное.

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

... но к тому времени тебе уже все равно!
Трек побеждает, ваш аналитический мозг проигрывает, и вы ловите момент.

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

Если вы хотите получить лучшую награду за наименьшие усилия, я бы начал с трека темпа. Выясните, как музыка должна быть «фразирована» на уровне отдельных долей в такте или даже подразделений долей. Часто одно и то же ритмическое чувство или грув применимы ко многим похожим фразам, как только вы их найдете. Изменение темпа примерно на 5% на отдельных долях часто не бьет вас между ушей, но нарушает нечеловеческую точность.

Иногда «растягивание» одной ноты до удвоенной ее номинальной длины по-прежнему звучит так, как будто она играется «вовремя». В других случаях крошечное изменение торчит, как больной палец. Человеческое восприятие не совпадает с научными измерительными приборами!

По крайней мере, на мой слух, у вас есть повторяющийся ритм, например, 3 четверти, за которыми следуют 2 восьмых, ритм звучит только «в такт», когда восьмые ноты находятся в немного более быстром темпе, чем четверти. Ваши уши и ваш стиль музыки, конечно, могут различаться, и вы не обязательно захотите , чтобы она звучала «точно вовремя».

Добавление рандомизированной компьютерной «очеловечивания» (сделанной путем смещения начала и конца нот относительно доли) поверх такого рода ритмической настройки, кажется, работает лучше, чем добавление ее к математически точному ритму.

Я подозреваю, что игроки-люди бессознательно действуют таким же образом. Однажды я слышал, как один хоровой дирижер заметил, что если взять 30 хороших певцов, которые никогда не работали вместе, чтобы сформировать хор, вы начнете с 30 различных идей о том, что «вовремя», и вам просто нужно будет подождать, пока они не послушают. друг друга достаточно долго, чтобы прийти к какому-то компромиссу между собой. Только после того, как они достигли этого момента, вы могли начать руководить выступлением, а не просто отбивать время.

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

Пробовали ли вы применять обычный свинг/грув в тандеме с рандомайзером? Использование всего лишь нескольких слегка измененных версий одного и того же грува и корректировка того, насколько он стирается в каждой части (как тайминг, так и скорость) вместе с количеством случайной дисперсии, должны продвинуть вас довольно далеко. Что касается конкретного вопроса «редактирование числовых значений всех миди-параметров всех нот один за другим, как лучше всего это сделать?» это, безусловно, ответ, так как он позволяет вам редактировать тайминг ваших партий, не настраивая каждую ноту по отдельности.

Однако есть несколько очень крутых вариантов для дальнейшего развития, но, безусловно, лучший инструмент, о котором я знаю, — это набор устройств Max for Live Джеймса Холдена «Group Humanizer». Он основан на статье « Синхронизация музыкальных ритмов человека и взаимодействующих сложных системах» , которая в основном дает те же ответы, что и вы, но с большим количеством научных данных.

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

В основном устройство позволяет одной части быть ведущей, а за ней следуют до 10 ведомых. Он создан для живого использования, но, очевидно, может использоваться для такого рода вещей любым количеством различных способов. Цитата от Холдена:

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

Вот статья с обсуждением темы, ссылки на устройство и видео, показывающее его в действии. На мой взгляд, несколько сомнительное музыкальное произведение, но оно определенно показывает, насколько это невероятный инструмент. Вы даже можете настроить его так, чтобы он подталкивал и тянул мастер-темп Ableton с дрейфом.

Для людей, не увлеченных Ableton, я думаю, что патчи могут быть адаптированы для автономного использования Max/MSP, хотя не знаю, было ли это сделано.

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

Начните со времени. Установите некоторые заметки, чтобы начать немного раньше или немного позже, чем они должны. Судите на слух. Для более плотного ощущения вы можете оставить биты без изменений и смешать с оптимистичными и другими нотами, которые не попадают в бит. Сделайте то же самое с длиной нот.

Вы можете извлечь тайминг одного выступления и применить его к другому с помощью таких инструментов, как Ableton Live, так что вы тоже можете попробовать это.

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

И так далее. То же самое относится к любой динамике, на которую вы можете положиться. Дисперсия, некоторая случайность, но в пределах диапазона (возможно, диапазон — это мастерство нашего эмулируемого исполнителя). Например, при работе с перкуссией применение дисперсии к тембру очень эффективно, потому что они будут звучать по-разному в зависимости от того, где вы нажимаете на перкуссию, и даже самый опытный перкуссионист в мире не попадает каждый раз в одно и то же место.

Я понимаю, что это ужасно неэффективный способ ведения дел, и что самому сыграть это произведение на миди-клавиатуре было бы намного проще. Но предположим, что кто-то действительно хочет сделать это сложным путем, отредактировав числовые значения всех миди-параметров всех нот один за другим, что будет самым разумным способом сделать это? Для начала: я не нахожу результаты различных алгоритмов рандомизации/очеловечивания очень убедительными, во всяком случае, сами по себе.

Эти алгоритмы реализуют дисперсию, о которой я говорю. Они делают то, что я предложил, но автоматически. Возможно, вы их не настраиваете и/или неправильно понимаете. Возможно, вы ожидаете от них слишком многого, механика и акустика, связанные с человеческим музыкальным исполнением, очень сложны, и до сих пор (по крайней мере, насколько мне известно) невозможно на 100% точно имитировать человека-исполнителя.

Большое спасибо за ваш быстрый, но исчерпывающий ответ! Чтобы было ясно, моя цель не в том, чтобы подражать игроку-человеку со 100% точностью (что, как вы говорите, невозможно), а в том, чтобы сделать мою пьесу более реалистичной.
@KimFierens Я вырезал этот ответ с учетом этого. 100%-ная часть заключалась в том, чтобы глубже погрузиться в тему, а не подразумевать, что вы ищете идеальную эмуляцию.
И я не имел в виду, что вы имели в виду это. :-) Если не возражаете, два небольших вопроса вдогонку: есть ли у вас какой-нибудь общий совет (за многими исключениями, конечно) о том, как распределять динамику внутри фразы? То же самое с (изменением) темпа. Между прочим, моя пьеса лирическая и романтичная, поэтому мне нужно много экспрессии.
Это зависит. Разные подходы дают разные результаты. Вы можете распределить все случайным образом, или вы можете разработать очень конкретные значения для каждой ноты индивидуально, как если бы вы проектировали исполнение (которым вы и являетесь). Кроме того, вы не меняете темп, вы меняете положение нот во времени. Это важное различие.
Один крошечный трюк заключается в том, что если есть нота, которую вы хотите выделить, в дополнение к небольшому увеличению громкости вы можете немного ее удлинить.