Как сделать лаунчпад своими руками

Как сделать лаунчпад своими руками

Администратор
Как сделать лаунчпад своими рукамиКак сделать лаунчпад своими рукамиКак сделать лаунчпад своими рукамиКак сделать лаунчпад своими рукамиКак сделать лаунчпад своими руками

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

Как сделать лаунчпад своими руками

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

Буквально через несколько дней постучался ко мне «с толстой сумкой на ремне. » и замечательной коробочкой ФедЭкса курьер:

Как сделать лаунчпад своими руками

Содержимое коробки меня тоже не разочаровало. Внутри была коробочка поменьше размером

Как сделать лаунчпад своими руками

из которой последовательно были извлечены сама плата ЛаунчПада:

Как сделать лаунчпад своими руками

запаянные пакетики с еще одним процессором, коннекторами для платы и кварцем на 32кГц:

Как сделать лаунчпад своими руками

коротенький шнурочек миниUSB

Как сделать лаунчпад своими руками

и, как бонус, парочка наклеек

Как сделать лаунчпад своими руками

Первым делом, конечно же, распаковываем плату и шнурочек и втыкаем в комп. Винда радостно предлагает поискать драйвера и, разумеется, ничего не находит. Не страшно. Качаем с торрентов пиратский IAR Embedded WorkBench (конечно, можно было бы взять триальную версию с сайта TI, но адепты церкви копиизма не ищут легких путей), и после установки в системе появляются программатор/отладчик и виртуальный COM-порт.

Изначально в процессор прошита демо-программка, мигающая светодиодом в зависимости от температуры (да-да, проц при всей его простоте умеет мерить свою температуру), которую мы тут же затираем своей простенькой программкой «помигай светодиодом», эдакий «Hello, World!» для эмбеддеров.

Особо хочется отметить возможность скачать с сайта TI архив с парой сотен крохотных (буквально по десятку строк) программ на Си и на Ассемблере, демонстрирующих особенности микропроцессора. Как только что-то не получалось — я просто загружал в процессор соответствующий пример, и в дебагере за несколько минут находил суть проблемы.

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

Наигравшись вдоволь, возникла мысль слепить что-нибудь полезное. А на ловца, как известно, и зверь бежит.

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

Как сделать лаунчпад своими руками

Главный плюс серии 430 (по словам TI) — в сверхнизком энергопотреблении. Процессор просто просится в какое-то устройство с автономным питанием. Вот и попробуем сделать контроллер отвертки вместо китайского барахла.

Итак, раскурочиваем отвертку и безжалостно выкидываем ее унылое содержимое:

Как сделать лаунчпад своими руками

и проверяем, что аккум отлично входит (если выломать пару перегородок) и еще остается место для небольшой платки контроллера:

Как сделать лаунчпад своими руками

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

Как сделать лаунчпад своими руками

Небольшое пояснение к схеме: для заряда используется USB порт. Он может выдавать 500мА при 5 вольтах, на аккумуляторе данного типа напряжение отсечки должно составлять 3.6 вольта (рабочее 3.3В), итого закладываемся на ток заряда 100мА при падении на ключе 1.4В, т.е. к сопротивлению ключа добавляем еще небольшой токоограничивающий резистор. Q2,Q3 нужны именно для отсечки, когда аккумулятор будет полностью заряжен. Плюс эта же отсечка срабатывает при перегреве.

Q4 управляет мотором (переключение направления там сделано механически, поэтому мне не пришлось заморачиваться с full-bridge), он взять помощнее, т.к. мотор при старте берет до 3А от аккума.

D1 уменьшает напряжение питания микропроцессора до допустимых величин.

R14, R18 меряют напряжение на аккумуляторе, R16 и R19 меряют входное напряжение.

S1 — большая кнопка на отвертке, включающая мотор. S2 и D2-D4 — крохотная платка (да, я не все китайское барахло выкинул) с кнопкой и тремя светодиодами, красным, желтым и зеленым, показывающими заряд аккума.

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

Как сделать лаунчпад своими руками

Добиваюсь на макете более-менее уверенной работы всех кусков программы и перехожу к сборке окончательной платы. Сначала проверяем геометрические размеры после установки ключей:

Как сделать лаунчпад своими руками

Нормально, по размерам вписались, можно запаять запасной микропроцессор, навешивать на него необходимыке СМД-компоненты и делать все соединения с помощью тонкого МГТФ:

Как сделать лаунчпад своими руками

(Да, на этой картинке уже собранная плата со всеми запаянными деталями. Провод в красной термоусадке — подключение программатора к процессору, потом будет убран)

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

Как сделать лаунчпад своими руками

Попутно проверяем разные режимы сна для процессора. Даже при полностью включенном энергосбережении наш результат на полтора порядка выше заявленного в документации, что и неудивительно, учитывая резисторные делители для АЦП и схему управления Q2. Впрочем, 40 микроамперов вполне допустимый результат для нескольких ампер-часов аккумулятора. Десяток лет на одной зарядке процессор точно поработает, а там уже или шах сдохнет, или ишак:

Как сделать лаунчпад своими руками

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

Аккуратно запихиваем начинку внутрь корпуса

Как сделать лаунчпад своими руками

и скручиваем обе половинки

Как сделать лаунчпад своими руками

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

Там, конечно, причесывать и причесывать — в софте до сих пор остались хвосты от первоначального варианта программы с FSM, в дальнейшем я от нее отказался в пользу sleep-modes, ну а на схеме нумерация элементов слегка странная после прогонов в симуляторе и стирания лишних частей.

Как можно улучшить схему: ну как минимум вместо провода использовать миниUSB маму в корпусе отвертки, ибо болтающийся провод не по Фен-Шую.

Еще вариант для эстетов: после Q2 ставится индуктивность и диод Шоттки по схеме импульсного step-down преобразователя, тогда микропроцессор с помощью ШИМ может заряжать аккум от любого входного напряжения.

На микропроцессоре остался незадействованным последовательный порт — вполне можно (используя преобразователь типа СР2102 или FTDI) рассказывать компу статистику заряда-разряда аккумулятора.

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

PS: А вообще говоря, это просто разрыв мозга — что бы я подумал, если бы мне лет 20 назад сказали, что я буду сидеть за компом и программировать отвертку? Еще десяток лет, и научимся хакать зубочистки.

Источник

«Программирование» светового шоу на Novation LaunchPad

В недавнем посте от @giepol промелькнула просьба рассказать о том, как вообще все это делается. Были озвучены две догадки:

1) Нажимание на кнопочки с эффектами под музыку

2) Собственно, сэмплы и мастерство.

У меня получались оттенки зеленого (вплоть до оливкового и хаки), оттенки желтого (от красного до оранжевого).

Как контрол понимает, каким цветом какую кнопку зажечь?

Все просто. Цвет кодируется численным значением от 0 (выключен/черный) до 127 (максимальная яркость двух диодов, на выходе имеем зеленовато-желтый). Кнопки определяются номером CC.

Как сделать лаунчпад своими руками

Для подачи на него команд будем использовать скриптовый программер игровых контроллеров GlovePIE с костылем из Midi-OX. Я пробовал настроить без мидиокса, но походу гловпай не умеет одновременно принимать и передавать комманды на одно и то же устройство. В итоге имеем такую схему:

Как сделать лаунчпад своими руками

Самый простой скрипт в этом случае будет звучать так:

Как сделать лаунчпад своими руками

Управлять этим хаосом можно только с помощью стандартных if <> конструкций, операторов wait; и переменных var.ИмяПеременной в качестве переключателей. К примеру:

Как сделать лаунчпад своими руками

Покажу наглядно. Вот на этом видео:

С 1:40 обрабатывается этот код:

Как сделать лаунчпад своими руками

Надеюсь, все было достаточно информативно, лаконично и не скучно.

Найдены возможные дубликаты

Для неопытных рассказывать тебе. Там программирования нет же, все на цветных плиточках в аблетоне, насколько я помню.

Как сделать лаунчпад своими руками

Автоматизация на почте

Устроился на работу сотрудником почты. На окраине города стоит полупустое здание, там начальство решило сделать архив. Рабочие привезли туда огромную груду мешков с письмами, которые требовалось отсортировать и занести в базу. Процесс таков: имеется пачка писем, обвязанная шпагатом. У каждой пачки есть накладная со штрихкодом, в котором зашифрована информация по этой пачке. Нужно 1) нажать в программе кнопку «сканировать штрихкод» 2) провести сканером по накладной 3) подождать 10-30 секунд пока программа расшифрует ШК 4) нажать кнопку «внести данные» 5) подождать 30-90 секунд 6) написать на пачке диапазон номеров, которые программа присвоила этим письмам (10-15 сек) 7) нажать кнопку «закрыть накладную» (5-10 сек), выйти назад в меню 8) следующий цикл.

Как видите, все эти ожидания плюс время на нажатие кнопок отнимает много времени. Во время 10-30 и 30-90 секундных перерывов можно занять себя открывая очередной мешок в другом конце комнаты и вытаскивая новые пачки, однако приходится бегать туда сюда и жать кнопки. Тогда я написал скрипт, автоматически определяющий когда закончился предыдущий шаг (распознавание экрана), жмущий нужные кнопки, а также назначил горячие клавиши, которые быстро выходят в меню и начинают новый цикл. Также я наловчился писать цифры загодя на основе диапазонов предыдущих пачек и количества писем в текущей. Теперь процесс выглядит так: сканирую ШК, иду занять себя другими делами (вскрытие мешков, написание цифр на следующих накладных, складирование готовых), программа в это время сама проходит полный цикл, возвращаюсь, сканирую следующий ШК и т.д. Скорость работы приблизилась к теоретическому пределу: теперь все упиралось в скорость работы программы, ускорить которую я не мог. Но этого вполне хватало, программа постоянно что-то обрабатывала, а я выполнял другие работы.

Также были бракованные накладные или пачки писем вообще без накладных. Приходилось брать каждое письмо 1) сканировать его ШК 2) клик «ввести данные» 3) 1-2 секунды программа думает 4) вылезает окно с характеристиками письма, тут ничего не делаем, все письма одинаковые, жмем «сохранить письмо» 5) следующий цикл

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

Но мне и этого показалось мало. Мало приятного в двухсекундном пялении в монитор. Открыл блокнот, занес туда штрихкоды писем, каждое письмо требует треть-полсекунды. Затем пишется еще один скрипт, который заносит в программу из блокнота по письму каждые 2 секунды, а я иду пить чай (а писем очень много, 10-30 тысяч, их накопилось достаточно за три года). Или не иду. Принес с собой ноутбук, пока скрипт работает над другой пачкой писем, открываю на ноуте блокнот и вношу туда следующую партию. Скорость работы выросла еще больше.

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

Источник

Novation Launchpad Mini — больше, чем маленький лончпад

На первый взгляд, Novation Launchpad Mini — это просто уменьшенная и существенно более доступная по цене версия популярного DJ-контроллера Launchpad S. Но не торопитесь с выводами!

Как сделать лаунчпад своими руками

Первый сюрприз: Launchpad Mini предназначен для iPad-приложения Novation Launchpad. На коробке даже имеется специальная надпись «Launchpad for the iPad generation», а с устройства убран логотип Ableton. Что это? Ответ Novation на Ableton Push? Вполне возможно!

Конечно, в Launchpad Mini по-прежнему реализована и полная интеграция с Ableton Live 9 и FL Studio 11, однако теперь Novation потихоньку начинает двигать свою собственную, не менее интересную экосистему: аппаратные контроллеры Launch и два приложения для них: Novation Launchpad для iPad и Novation Launchkey для iPad.

Мы ознакомились с этими продуктами довольно глубоко и может ответственно заявить: это достаточно мощный шаг Novation, и однозначно с большим потенциалом. Для создания полноценной экосистемы, Launchpad Mini или S нужно только объединить с Launchkey Mini и LaunchControl. Все три контроллера подключаются к iPad и, в комплекте с фирменным софтом Novation, превращают его в, не побоимся этого слова, самодостаточный инструмент для выступлений! И что немаловажно, по сверх-привлекательной цене. (Напомним, в России Launchpad Mini стоит 4725 руб.)

Наряду с этим возможно и традиционное использование с любыми известными программами, которые управляются по MIDI. В доказательство, в комплекте идёт Ableton Live Lite. Однако все возможности Ableton Live 9-й версии по-прежнему остаются уделом студий и гиков. Массовый пользователь пользуется от силы 10% всех возможностей программы, а при выступлениях и подавно не использует ничего, кроме нескольких кнопок и пары фильтров. Но об этом чуть ниже!

Как сделать лаунчпад своими руками

В сравнении с большим лончпадом, новинка Launchpad Mini обладает на 37% меньшей площадью, однако все кнопки 8×8 с цветной подсветкой полностью сохранены. Вместо фиксированных надписей на корпусе, в комплекте идёт набор наклеек для Ableton Live, FL Studio и с пустыми полями под любой софт пользователя.

Как сделать лаунчпад своими руками

Корпус Launchpad Mini сделан из прочного пластика. Вся нижняя поверхность полностью покрыта резиной, для исключения скольжения по поверхности.

Как сделать лаунчпад своими руками

Как сделать лаунчпад своими руками

Как сделать лаунчпад своими руками

Как сделать лаунчпад своими руками

Как сделать лаунчпад своими руками

Приложения Novation для iPad бесплатные, так что любой желающий может запустить обе программы и проверить их возможности. Зачем тогда нужны контроллеры, спросите вы? Очень просто: Во-первых, в порыве творчества вполне можно повредить сенсорный экран iPad, что аппаратным кнопкам не грозит. Во-вторых, на аппаратных кнопках отзыв происходит быстрее и вообще вполне можно играть не глядя, так как существует та самая приятная тактильная связь. Маленькие кнопки Mini имеют при этом даже определённое преимущество. В большой версии у пэдов двое больший ход, а при нажатии на пэд ощущается двойной клик (из-за особенностей самой кнопки). В Mini таких проблем нет, а если манера игры исполнителя предполагает нажатие сразу нескольких кнопок, то Mini будет вне конкуренции!

Источник

Обзор грид-контроллера Novation Launchpad Pro

Как сделать лаунчпад своими руками

Novation Lauchpad вполне заслуженно считается одним из самых успешных и узнаваемых продуктов на рынке контроллеров. Ди-джеям, продюсерам и музыкантам-любителям контроллер пришелся по душе за свою совместимость с Ableton Live, доступность и гибкость в настройке.

До появления Launchpad Pro в линейке очень не хватало модели, которая могла бы как запускать аудиоклипы, так и использоваться как пэд-контроллер, а в конструкции младших моделей не хватало пэдов, чувствительных к силе нажатия. Launchpad Pro разрабатывался с учетом этих потребностей.

Содержание:

Основные особенности

Прежде чем углубляться в детали, начнем с главных особенностей Pro-модели. Во-первых, флагман Launchpad-серии – не просто контроллер конфигурации 8×8 с пэдами, чувствительными к силе нажатия и давлению. Novation в полной мере используют функционал и API, встроенные в Live для поддержки внешних устройств, а это дает возможность пользоваться многими приемами, доступными в контроллерах от самих Ableton.

При этом, Launchpad Pro – не просто внешнее устройство для Ableton. Тщательно продуманный режим работы с MIDI позволяет контроллеру работать со сторонним софтом (например, пользователи FL Studio и Bitwig также могут пользоваться Launchpad), а с помощью входа/выхода на MIDI можно подключать внешние аппаратные синтезаторы.

Еще одна особенность Pro-модели – Novation сделали код ПО Launchpad Pro частично открытым, что позволяет сторонним разработчикам создавать собственные расширения, меняя функциональность девайса под свои нужды.

Внешний вид и компоновка

У модели Pro прочный, компактный и стильный черно-оранжевый корпус. Основание корпуса прорезинено. Pro несколько больше младших контроллеров в линейке, поскольку по периметру устройства теперь располагается по ряду кнопок. На каждой кнопке есть название функции, за которую она отвечает. Это небольшое улучшение делает контроллер гораздо удобнее, поскольку кнопки еще больше визуально отделены от пэдов, которые используются непосредственно для исполнения. Еще одна приятная особенность – цветная индикация текущего режима устройства.

Как сделать лаунчпад своими руками

Рабочая поверхность Launchpad Pro

При использовании с компьютером питание идет через USB-порт. Он очень прочно фиксирует кабель, что исключает случайное отсоединение. (Есть также Kensington lock, если вам нужно буквально привязать контроллер к тому месту, куда вы его поставили). После подключения вам потребуется только запустить Live, и вы сразу же сможете начать работу. Live сам обнаружит новое устройство и автоматически сделает первичную настройку и проведет мэппинг.

По умолчанию, девайс работает в режиме Session view: сетка пэдов 8×8 соответствует Session View в Ableton Live. Работа в этом режиме стала значительно удобнее благодаря LED-подсветке – цвет каждого назначенного пэда соответствуют клипу.

Контроллер в работе

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

На такие параметры как громкость, панорамирование и посылы отводится вся сетка пэдов. Ряды по вертикали в этом случае работают как фейдеры. Это уже было воплощено в других моделях Launchpad, но здесь примечательно то, что стало возможным контролировать плавность перехода от текущего положения к новому. Сильное нажатие на пэд приведет к практически мгновенному изменению параметра – мягкое, наоборот, позволит изменить его в плавном режиме. Эта особенность реализована на аппаратном уровне: при нажатии Launchpad посылает множество последовательных MIDI-сообщений, чтобы переход был плавным.

Как сделать лаунчпад своими руками

На задней панели находится разъем для блока питания, порт USB и 2 I/O-разъема (джек, 3,5 мм) для подключения MIDI устройств через кабели jack-MIDI.

Еще одна положительная черта Launchpad: переключение между режимами происходит мгновенно. Любой режим можно включить двумя способами. Если нажать и отпустить кнопку, контроллер переключится на новый режим и останется в нем до следующего нажатия. Если кнопку удерживать – контроллер временно перейдет в новый режим. Чтобы вернуться в предыдущий режим, вам нужно будет просто отпустить кнопку. Эта функция оказывается очень полезной, если использовать контроллер для исполнения музыкальных фрагментов.

Использование контроллера в качестве музыкального инструмента

Рядом с кнопкой Session находится кнопка Note. В этом режиме Launchpad Pro используется именно как MIDI-контроллер. Доступны различные режимы управления Drum Rack и прочими инструментами. Режим устанавливается автоматически, в зависимости от того, какое устройство назначено на активную дорожку. В Drum mode пэды (каждый банк назначается на сектор из 16 пэдов) управляют голосами Drum Rack. Все пэды, на которые назначен какой-либо звук из рэка, подсвечиваются желтым. Использовать под рэк можно все 64 пэда контроллера. Такое изобилие особенно оценят те, кому приходилось работать на маленьком 4×4-контроллере и постоянно переключаться между банками.

Как сделать лаунчпад своими руками

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

Переключиться на другой инструмент можно удержанием кнопки Rec Arm, которая временно переключит вас в режим Session View. Вернуться в Note mode можно, нажав на нижний пэд нужной дорожки и отпустив кнопку Rec Arm.

При игре на отличном от Drum Rack-а инструменте, Note mode назначает за пэдами ноты, начиная с До контроктавы (C1). Ноты диатонического звукоряда обозначаются синим цветом, октавы выделяются фиолетовым. Ноты от ряда к ряду идут не строго в хроматическом порядке. Каждый следующий ряд на кварту выше предыдущего – почти как в стандартном гитарном строе. Это очень удобно, если вы играете на гитаре: вы сможете пользоваться знакомыми аппликатурными формами.

Клавиши со стрелками транспонируют ноты, перемещая всю сетку влево или вправо соответственно. При этом контроллер продолжит выделять ноты До (C) цветом. В отличие от других контроллеров, здесь нет возможности вывода других звукорядов или выделения гамм/ладов целиком. Выделить ноты, не относящиеся к звукоряду также нельзя. Функция автоматической подстановки аккордов (auto-chord) тоже отсутствует. Пользователи Live могут компенсировать отсутствие этих функций с помощью MIDI-эффектов Scale, Chord и Arpeggiator.

Сочинение музыки

Функционал Ableton Live очень удобен для использования внешних контроллеров, как фирменных, так и от сторонних производителей. Novation проделали большую работу по интеграции этих функций в Launchpad Pro, превратив пэд-контроллер в полноценную рабочую станцию.

Функции для записи, дублирования, удаления и квантования клипов расположены на левой стороне рабочей зоны контроллера. Запись нового клипа в назначенную дорожку доступна нажатием кнопки Session Record. Вы также можете записать аудиоклип в определенный слот, нажав соответствующий пэд и удерживая кнопку Rec Arm.

Повторное нажатие кнопки Record завершит запись и начнет циклическое воспроизведение нового аудиоклипа. Чтобы записать что-либо поверх, нужно нажать на кнопку Record еще раз. Также есть возможность сделать копию клипа удержанием клавиши Duplicate и нажатием на нужный пэд – клип скопируется и начнется его воспроизведение. Дальнейший овердаббинг будет направлен уже на него.

Как сделать лаунчпад своими руками

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

С помощью кнопки Device в верхнем ряду можно управлять инструментами и эффектами, назначенными на соответствующие дорожки, а также переключает секвенсор между режимами Clip и Device. Если вы используете рэк, с помощью Device view вы сможете управлять регуляторами macro слева от него. Управление работает также, как на микшере секвенсора.

Выводы

Преимущества Launchpad Pro:

Недостатки:

Конечно, устройство не лишено некоторых недостатков. C другой стороны, некоторые из них можно обойти сторонними расширениями – линейка Launch славится своей гибкостью, и Launchpad Pro здесь не исключение.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *