Мы рассказываем о гитарах
О технике и культуре акустической и электрогитары
MIDI интерфейс — как организована работа
Musical Instrument Digital Interface, более известный как MIDI — это язык, с помощью которого компьютеры, виртуальные инструменты и аппаратные сэмплеры (синтезаторы) могут общаться между собой.
MIDI является цифровым интерфейсом музыкальных инструментов, это способ, чтобы передать данные для создания музыки в программном обеспечении, например Cubase, Sonar. Даже многие современные планшеты умеют понимать и генерировать MIDI данные.
Сам интерфейс появился еще в 70-е годы, но до сих пор остается одним из основных интерфейсов для работы с музыкальными инструментами или созданием музыки.
Давайте разберем несколько основных понятий в мире MIDI интерфейсов.
Сам по себе midi — это не звук, который можно воспринять ухом. Это общепринятый стандарт для передачи музыкальных данных — информации. Он включает в себя как аппаратную, так и программную реализацию. Хотя при этом его можно использовать и для передачи другой информации, например для контроля освещения света в театре. Структура его следует четко установленным инструкциям, иначе отклонение от правил приведет к тому, что музыкальное оборудование не будет понимать, что от него хотят.
2. Где появился MIDI?
Первая коммерческая реализация появилась в начале 1980 годов, когда производители электронных инструментов США и Японии признали, что инструменты должны быть в состоянии говорить друг с другом. Позднее были введены стандарты на интерфейс и он стал встраиваться в электронные схемы оборудования, что позволило одному инструменту понимать другой.
3. Как работает MIDI?
Передача данных в этом интерфейсе передачи данных состоит из серии сигналов, называемых битами. Они представляют собой бинарные цифры, которые передаются по каналу, например через кабель. Или через виртуальный порт. Эти данные передаются на вход программы, которая интерпретирует их как определенный логический ряд инструкций и далее преобразует в электрические импульсы, которые в свою очередь, преобразуются через динами в звуковые колебания.
4. Как генерировать midi последовательности?
Есть два способа. Первый включает в себя создание музыки на компьютере или подобном устройстве (например цифровой станции DAW), обычно с помощью программы записи музыки. Далее данные из программы уже передаются через контроллер миди далее, например в музыкальное оборудование. Причем, обычно можно создавать множество midi виртуальных устройств-портов. Второй способ — это генерация миди последовательностей непосредственно на инструменте, через специальный миди-контроллер, который на аппаратном уровне преобразует электрические импульсы в бинарные данные.
5. Как можно визуализировать?
Обычно, программы работающие с данным интерфейсом представляют миди данные как последовательность точек, установленных для конкретного музыкального инструмента. В программе уже можно редактировать миди трек, добавляя или удаляя данные.
6. Какая разница между MIDI контроллером, аппаратным синтезатором, и виртуальным инструментом?
MIDI-контроллер — аппаратные решения, которые нужны для приема или передачи данных т других устройств, поддерживающих midi. Через него могут приниматься-передаваться данные на компьютер, на котором будут с ними работать виртуальные инструменты. Миди- контроллер может иметь клавиатуру, клавишы или сенсорный ввод для создания миди потока.
Аппаратный синтезатор — электронное устройство, которое может иметь или не иметь клавиш или иных устройств для ввода данных, но при этом способно преобразовывать аналоговый сигнал от музыкальных инструментов в цифровой поток данных midi.
Виртуальный инструмент — представляет из себя модуль программы, который существует только в цифровом виде. Это программа, написанная для генерации или одного или нескольких музыкальных инструментов в виде миди потока (Z3TA+ 2, Lounge Lizard, and Addictive Drums).
7.Какая разница между MIDI интерфейс и интерфейсом Audio?
Разъем у обоих может быть одинаковым, но в аудио передаются аналоговые данные, а в миди цифровые наборы единиц и нулей.
8. Что такое миди сообщения?
Это сообщения, которые указывают программе или оборудованию, что необходимо делать при получении определенных миди данных. К ним относятся, например:
9. Могу ли я конвертировать аудио в MIDI и MIDI аудио?
На текущий момент программные решения уже далеко шагнули, в некоторых программах можно просто перетянуть аудио файл в программу обработки миди и она автоматически сделает преобразование его в миди поток с разбивкой инструментов.
Подробнее о +CubozoaRu
Разработка, изготовление уникальных, программируемых блоков питания для педалей эффектов гитар.
MIDI и OSC — основные протоколы взаимодействия музыкальных приложений
Часть 1. MIDI
1 Предпосылки
Необходимость в таком стандарте возникла примерно к концу 70-х годов. В то время синтезаторы управлялись напряжением с помощью интерфейса CV/Gate. Существовало несколько его видов, однако, наибольшую популярность получил вариант, предложенный фирмой Roland: в нем при увеличении напряжения на 1 В, частота генерируемого тона увеличивалась на одну октаву. Главным недостатком такого интерфейса является то, что с помощью него можно управлять только одним голосом полифонии. Для извлечения дополнительной ноты нужно добавлять еще один интерфейс CV/Gate. Кроме того, таким способом передается только сам факт нажатия клавиши и ее высота, чего однозначно мало для выразительной игры.
Другим недостатком синтезаторов того времени была сложность настройки. Для каждого нового звука музыкантам приходилось настраивать инструмент заново, что было очень не удобно на живых выступлениях. На концертах тех времен часто можно было увидеть целые стеллажи из синтезаторов — так музыканты выходили из ситуации. Со временем в инструменты были встроены мини-компьютеры, с помощью которых можно было сохранять положения ручек в пресеты.
Однако, есть еще один момент, который оказал большое влияние на разработку MIDI.
Несомненно, у каждого синтезатора свой характер звучания, каждый из них был силен в определенных типах звуков. Поэтому многие музыканты того времени практиковали игру сразу на двух инструментах, как бы используя лучшее из разных моделей. Наслоение звуков из различных синтезаторов стало исполнительским приемом, визитной карточкой многих музыкантов. [1]
2 История появления
К началу 80-х большинство производителей осознали необходимость создания единого интерфейса. Задача стояла такая: разработать стандарт передачи действий исполнителя в цифровой форме между всеми типами электромузыкальных инструментов. [1]
3 Основы
MIDI — это протокол последовательной передачи данных между главным и подчиненным устройством. Главное устройство генерирует сообщения и отправляет их подчиненному устройству, который выполняет полученные команды. Последовательный — значит информация передается по одному биту, бит за битом. Отсюда следует невозможность передачи нескольких сообщений одновременно.
Сам протокол состоит из трех частей [1]: спецификация формата данных, аппаратная спецификация интерфейса и спецификация хранения данных. В данной статье будет идти речь только о первой части.
MIDI сообщения делятся на два типа: сообщения канала (channel messages) и системные сообщения (system messages). Первые управляют звукообразованием, а вторые выполняют служебные функции, например, синхронизация.
Сообщение обычно состоит из двух или трех байт. Первый байт называется статус байтом. В нем задается тип сообщения и номер канала, к которому оно относится. Все последующие байты называются байтами данных. Статус-байт всегда начинается с единицы, а байт-данных с нуля — таким образом система их различает. Получается, что для MIDI информации остается только 7 бит, с помощью которых можно закодировать целые числа от 0 до 127, — вот откуда берется это «знаменитое» ограничение на количество нот и значения контроллеров.
Как видно из рисунка, информации о типе сообщений отводится всего 3 бита, в которых можно закодировать только 8 чисел. 7 из них отведены под наиболее часто используемые команды, а последнее используется для системных сообщений. Когда передается системное сообщение, последние 4 бита статус байта (в которых обычно передается номер канала) определяют тип системного сообщения.
Табл. 1. Сообщения канала.
| Сообщение | Статус-байт | Байт данных 1 | Байт данных 2 |
| Note Off | 1000nnnn | Номер ноты | Velocity |
| Note On | 1001nnnn | Номер ноты | Velocity |
| Polyphonic Key Pressue | 1010nnnn | Номер ноты | Давление |
| Control Change | 1011nnnn | Номер контроллера | Значение |
| Program Change | 1100nnnn | Номер программы | — |
| Channel Pressure | 1101nnnn | Давление | — |
| Pitch Wheel Change Change | 1110nnnn | Номер программы | — |
| Системные сообщения | 1111nnnn | . | . |
Табл. 2. Системные сообщения
| Сообщение | Статус-байт | Байт данных 1 | Байт данных 2 |
| System Exclusive (SysEx) | |||
| System Exclusive | 11110000 | ID | . |
| System Common | |||
| MTC Quater Frame | 11110001 | Тайм-код | — |
| Song Position Pointer | 11110010 | LSB | MSB |
| Song Select | 11110011 | Номер песни | — |
| Tune Request | 11110110 | — | — |
| End Of Exclusive (EOX) | 11110111 | — | — |
| Real Time | |||
| Timing Clock | 11111000 (248) | — | — |
| Start | 11111010 (250) | — | — |
| Continue | 11111011 (251) | — | — |
| Stop | 11111100 (248) | — | — |
| Active Sensing | 11111110 | — | — |
| System Reset | 11111111 | — | — |
4 Недостатки
MIDI разрабатывался, как доступный и практичный стандарт для передачи жестов исполнителя между любыми MIDI-устройствами [2]. Не в последнюю очредь благодаря своей легковесности он и получил такое распространение. Что ни говори, со своим предназначением он справляется прекрасно, и это подтверждается временем.
Итак, наверное, самый известный недостаток — ограничение значений контроллеров на 128 значений. Конечно, есть возможность передавать их с помощью двух байтов данных (что дает 16 384 возможных значений), но для этого надо передать три сообщения Control Change, что очень сильно загрузит протокол, так как данные по нему передаются со скоростью 31 250 бит/с. Это очень мало. Для сравнения, 12-нотный аккорд передастся примерно за 10 мс. И это без других сообщений, например Clock и CC. В реальном перфомансе, когда одновременно передается много различных параметров, могут возникнуть проблемы с синхронизацией.
Часть 2. Open Sound Contol
«Open Sound Control — это новый, оптимизированный для современных сетевых технологий протокол для взаимодействия компьютеров, звуковых синтезаторов и других мультимедиа устройств» — так был представлен OSC на международной конференции по компьютерной музыке в 1997 году [3]. OSC не является протоколом в том виде, каким является MIDI, так как он не описывает требований к аппаратному обеспечиванию — спецификации описывают лишь формат передачи данных. В этом плане OSC больше схож с XML или JSON, нежели с MIDI [8].
Пока оставим технические подробности и начнем с самого начала, с истории.
1 История, области применения
Open Sound Control был создан в 1997 году Мэттью Райтом (Matthew Wright) и Эдрианом Фридом (Adrian Freed) в Университете Калифорнии в центре новой музыки и аудио технологий (CNMAT — Center of New Music and Audio Technologies). Разработчики хотели использовать высокоскоростные сетевые технологии в интерактивной компьютерной музыке [4]. OSC не важно, по какому протоколу передаваться, так как он представляет собой всего лишь формат данных (binary message format), хотя большинство реализаций используют TCP/IP или UDP. Другой причиной создания было то, что MIDI с его нотами, каналами и контроллерами логично не подходил к разрабатывающемуся в то время синтезатору CAST (CNMAT Additive Synthesis Tools), оно и понятно, ведь MIDI — это клавишно-ориентированный протокол, который разрабатывался для управления одним синтезатором с другого [1].
Слово «Open» в названии означает, что OSC не предопределяет, какие сообщения должны использоваться для определенных параметров — это решается разработчиком конкретного девайса. Кроме того, это слово имеет и другое значение: протокол открыт, его спецификации находятся на официальном сайте, где можно скачать исходники.
2 Особенности
3 Анатомия сообщений
Стоит отметить, что при использовании UDP, если сообщения передавались в разных пакетах, они не обязательно будут приходить в том порядке, в каком были переданы [6]. Допустим, были переданы сообщения:
/synth1/noteoff 54
/synth1/noteon 60
Фактически они могут прийти в обратном порядке:
/synth1/noteoff 60
/synth1/noteon 54
Это может привести к проблемам с управлением голосами в полифонии, например, в данном сообщении передается команда noteoff, которая выключает голос, а потом включает другую ноту. Если эти сообщения придут в обратном порядке, голос не освободится и новая нота не сможет запуститься.
Чтобы этого избежать, нужно передавать сообщения в одном пакете (bundle), либо использовать TCP/IP, он отличается от UDP тем, что гарантирует корректную доставку пакетов, передавая каждый из них до тех пор, пока он не передастся в изначальном виде. Нужно иметь ввиду, что ценой такому удобству будут большие в сравнении с UDP задержки, поэтому использование TCP/IP должно быть обосновано.
4 Pattern matching
дефис между двумя символами означает диапазон чисел в ASCII последовательности (дефис в конце строки не имеет специального значения);
Что такое MIDI? Как использовать MIDI в своей музыке
Что такое MIDI? – Это один из важнейших инструментов для музыкантов и продюсеров.
Если вы взаимодействуете с каким-либо цифровым музыкальным устройством в своем рабочем процессе, вы, вероятно, уже используете его.
С такой важной частью процесса записи и микширования трудно понять, с чего начать. MIDI чрезвычайно мощный инструмент, и его использование может сбивать с толку.
Если вы уже используете MIDI, я также дам несколько полезных советов, которые помогут вам получить максимальную отдачу от использования MIDI. Чтобы помочь вам ориентироваться в этом руководстве, вот все, что вам нужно знать о MIDI, упорядоченное по темам:
Что такое MIDI?
MIDI – это стандарт связи, который позволяет цифровому музыкальному оборудованию говорить на одном языке. MIDI – это сокращение от M usical I nstrument D igital I nterface. Это протокол, который позволяет компьютерам, музыкальным инструментам и другому оборудованию обмениваться данными.
MIDI был впервые разработан в начале 80-х годов для стандартизации растущего количества цифрового музыкального оборудования. Производителям требовался простой способ сделать свою продукцию совместимой с продуктами других брендов. Основатель Roland Икутаро Какехаши предложил идею стандартного языка инструментов другим крупным производителям, включая Oberheim, Sequential Circuits и Moog, в 1981 году.
У проекта были высокие цели. MIDI попытался предоставить способ передать все особенности музыкального исполнения в цифровом виде.
Создатели стандарта MIDI должны были определить все виды сложного музыкального поведения таким образом, чтобы технологии эпохи 1980-х годов могли работать, – задача не из легких. Их выбор имел большие последствия для разработки электронных инструментов на следующие 40 лет.
Законченный стандарт MIDI был наконец представлен в 1982 году. Какехаши и Дэйв Смит позже получили технические награды Грэмми в 2013 году за свои ключевые роли в развитии MIDI – пора!
Теперь вы знаете, как родился MIDI, так что давайте начнем его использовать.
Как использовать MIDI в своей музыке
MIDI может играть несколько разных ролей в вашей музыке. Возможно, вы уже знакомы с некоторыми из них.
Для начала может быть даже полезнее выяснить, чем не является MIDI.
MIDI никогда не передает реальный аудиосигнал – это только информация. Это означает, что если на MIDI-клавиатуре нет встроенного источника звука, такого как синтезатор или сэмплер, она не будет издавать никакого звука!
Это проливает свет на то, где MIDI может быть использовано в вашем рабочем процессе. Если вы пишете с использованием плагинов в своей DAW, MIDI-клипы – это регионы на вашей шкале времени, которые определяют, какие ноты воспроизводятся вашими плагинами и когда они воспроизводят их.
Когда вы подключаете MIDI-контроллер к DAW для игры на виртуальных инструментах, вы просто передаете им MIDI-информацию в реальном времени. То же самое верно, когда вы секвенируете MIDI в своей DAW и отправляете информацию на оборудование, такое как аналоговый синтезатор или драм-машина.
Самым большим преимуществом MIDI является то, что вы можете легко редактировать исполнение по нотам, изменять их артикуляцию или даже изменять или заменять воспроизводимый ими звук!
Но это не все. С помощью MIDI вы можете управлять не только нотами. Многие функции традиционного музыкального исполнения имеют эквивалент в MIDI. Вы также можете использовать его для автоматизации параметров или изменения патчей на аппаратных или программных инструментах или эффектах. Вот где приходят MIDI-сообщения…
MIDI-сообщения и MIDI-события
MIDI-сообщения – это цифровые передачи данных, которые сообщают вашему музыкальному устройству, что делать.
Самым большим преимуществом MIDI является то, что вы можете легко редактировать исполнение по нотам, изменять их артикуляцию или даже изменять или заменять воспроизводимый ими звук!
Они несут информацию о том, какие параметры следует изменить, как должна вести себя система или какие ноты играть, и как на них следует играть.
MIDI-сообщения можно разделить на два типа: системные сообщения и сообщения каналов.
Большую часть времени вы будете иметь дело с сообщениями каналов, хотя некоторые важные функции, такие как часы и транспорт (остановка, запуск и продолжение), являются системными сообщениями.
Начнем с сообщений канала. Сообщения канала передают до двух типов данных одновременно. Например, сообщения включения и выключения ноты содержат номер ноты, а также значение скорости нажатия – интенсивность, с которой игралась нота.
Это часть того, как MIDI может передать выразительность исполнения.
Вот основные сообщения MIDI-канала:
Системные сообщения управляют другими важными данными, которые необходимы цифровым приборам для связи друг с другом.
Вот наиболее важные системные сообщения MIDI:
Это может показаться сложным, но для большинства задач MIDI ваша DAW обрабатывает технические детали ваших сообщений MIDI, о которых вы даже не подозреваете.
MIDI-событие – это MIDI-сообщение, которое происходит в определенное время. Они особенно актуальны, когда речь идет о композициях, в которых используются MIDI-секвенсоры.
MIDI-секвенсоры
MIDI-секвенсор хранит MIDI-информацию и управляет воспроизведением, записью и редактированием. Это один из наиболее распространенных способов использования MIDI.
В этой конфигурации секвенсор отправляет свои данные во все различные части вашей установки и синхронизирует их друг с другом. Для большинства производителей их DAW берет на себя функции MIDI-секвенсора.
DAW и секвенсоры тесно связаны. Cubase начинал как MIDI-секвенсор!
Некоторые музыканты предпочитают использовать аппаратные секвенсоры из-за своего уникального рабочего процесса или возможностей. Многие синтезаторы содержат встроенные секвенсоры, а грувбоксы, такие как Akai MPC, известны своими возможностями секвенирования.
Секвенсоры могут управлять внешним оборудованием, виртуальными инструментами в вашей DAW или их комбинацией.
MIDI каналы
MIDI был разработан для координации музыкальных жестов между множеством разных инструментов одновременно – с помощью одного соединения. Один поток MIDI-данных имеет в общей сложности 16 независимых каналов для сообщений и событий.
Один поток MIDI-данных имеет в общей сложности 16 независимых каналов для сообщений и событий.
Вы можете думать об этих каналах как о треках в вашей DAW или секвенсоре – но не запутайтесь, вы, конечно, не ограничены только 16 MIDI-треками в DAW! MIDI-каналы наиболее важны, когда вы имеете дело с внешним оборудованием. Каждое устройство в вашей настройке MIDI можно настроить на отправку или получение данных по определенному каналу.
Оттуда так же просто, как установить выходной канал на дорожках в секвенсоре, чтобы определить, какое устройство и что должно воспроизводить. Это также означает, что вы можете легко соединить все свои устройства с помощью одного кабеля с помощью интерфейса MIDI.
MIDI интерфейсы и контроллеры
MIDI-интерфейсы – это устройства, которые позволяют отправлять MIDI-информацию на компьютер и из него через USB.
Они идеально подходят для работы с внешним MIDI-оборудованием, таким как аппаратные синтезаторы и драм-машины. Некоторые даже имеют несколько пар MIDI-входов / выходов для размещения всех возможных устройств в вашей студии.
MIDI-контроллеры – это особый тип MIDI-интерфейса со встроенным устройством ввода. Типичными методами ввода, доступными на MIDI-контроллерах, являются клавиши пианино и чувствительные к давлению пэды, но большинство из них включает ручки и ползунки для управления другими параметрами.
MIDI кабели
Для подключения MIDI к цифровому музыкальному оборудованию требуются специальные кабели. Возможно, вы уже видели эти забавные круглые кабели с нечетным количеством контактов.
Они называются 5-контактными кабелями DIN и предназначены для подключения входов, выходов и сквозных выходов на традиционном MIDI-оборудовании.
MIDI-интерфейсы часто подключаются к компьютеру через USB.
MIDI IN, MIDI OUT и MIDI THRU
Информация передается в одном направлении через MIDI-соединение. Вот почему вы увидите до трех MIDI-портов на задней панели большинства MIDI-устройств. Наиболее распространенная конфигурация – это три порта с одним MIDI IN, одним MIDI OUT и одним MIDI THRU.
Правильный способ их подключения может немного сбивать с толку в зависимости от ситуации. Чтобы понять это правильно, вы должны следовать направлению потока вашего сигнала.
MIDI thru предназначен для отправки одной и той же MIDI-информации на несколько устройств. Помните – вы можете настроить каждое устройство на отдельный канал и использовать один поток MIDI для управления ими всеми.
MIDI THRU – вот как вы устанавливаете это соединение. Просто подключите MIDI Thru первого устройства к MIDI IN следующего устройства в цепочке, чтобы скопировать MIDI-данные и отправить их вниз по потоку.
3 наиболее распространенных настройки MIDI
Способов использования MIDI столько же, сколько музыкантов. Но есть некоторые типичные рабочие процессы MIDI, которые должны понимать большинство продюсеров. Я рассмотрю три наиболее распространенных способа работы с MIDI.
1. DAW и MIDI-контроллер
Самая простая и наиболее распространенная настройка MIDI – это использование MIDI-контроллера с вашей DAW в домашней студии. Это простой, портативный и мощный способ использования MIDI.
С помощью плагинов VST эта установка превращает ваш MIDI-контроллер в то, что вы хотите: миллионы различных синтезаторов, драм-машин, гитар, флейт, валторн или почти все, что вы можете придумать.
Вы можете редактировать секвенции в пианино и вводить ноты вручную с помощью контроллера, чтобы играть свои партии. Кроме того, многие MIDI-контроллеры поставляются с регуляторами, пэдами и ползунками, которые также можно назначать через вашу DAW. Эта установка легкая и интуитивно понятная для создания музыки всех жанров через MIDI.
2. Компьютер, MIDI-интерфейс и синтезаторы.
Благодаря функциям преобразования MIDI-интерфейса, MIDI-треки в вашем DAW-секвенсоре могут управлять реальными аппаратными синтезаторами. Это означает, что вы можете использовать все свои цифровые инструменты и методы для ввода и редактирования нот и воспроизведения их с помощью настоящего синтезатора или любого другого устройства с поддержкой MIDI.
В этой ситуации ваша DAW действует как главный концентратор для отправки и упорядочивания всей MIDI-информации. Используя DAW Piano roll, каждое аппаратное устройство можно настроить на воспроизведение любой последовательности нот на любом MIDI-канале.
3. Аппаратный секвенсор, драм-машина и синтезатор.
Не все настройки MIDI должны быть ориентированы на компьютер. В этом примере аппаратный секвенсор заменяет функции редактирования MIDI вашей DAW. Используя MIDI THRU, секвенсор отправляет информацию на три устройства: два синтезатора и драм-машину.
Эта установка похожа на мини-DAW, состоящую полностью из аппаратного оборудования. Именно так большинство продюсеров использовали MIDI до того, как компьютеры стали достаточно дешевыми, чтобы их можно было широко использовать в музыке.
MIDI 2.0
MIDI – впечатляюще долговечный стандарт. Это версия 1.0 с 80-х годов! Первоначальные архитекторы протокола проделали фантастическую работу по созданию способа общения цифровых инструментов. Но с момента появления MIDI в мире технологий многое произошло.
На данный момент стандарт должен развиваться, чтобы соответствовать тому, как изменились музыкальные технологии вокруг него. Во-первых, мощность и скорость даже самого простого современного цифрового оборудования на световые годы опережают то, с чем дизайнеры работали в 80-х годах.
Изменились и представления о том, как должны взаимодействовать цифровые музыкальные устройства. Все это привело к разработке совершенно нового стандарта MIDI 2.0. Он еще не полностью выпущен, но в ближайшем будущем он может значительно расширить возможности производства цифровой музыки.
Ассоциация MIDI гарантирует, что новый стандарт будет полностью обратно совместим с любым оборудованием MIDI 1.0 – и это облегчение!
Официального описания нет, но вот общий план того, что будет включать MIDI 2.0:
Подробности пока неизвестны, но многие продюсеры в восторге от MIDI 2.0!
Управляйте настройкой MIDI
Теперь, когда вы знаете мощь MIDI, пришло время интегрировать его в рабочий процесс вашей студии. MIDI дает вам доступ ко всем звукам, которые вы только можете придумать, и все возможности редактирования, необходимые для быстрого и беспрепятственного создания музыки.
Экспериментируйте и найдите свои любимые способы работы с MIDI. Если статья вам понравилась, поделитесь ей в соцсетях. Спасибо всем, кто развивается с нами!



















