Для тех кто пишет расширения на PyQt/PySide для CG-софтов.
Когда я только начинал писать тулзы под Maya (тогда еще версия 2010-2011) мне приходилось ручками ставить PyQt4 под Maya. Даже написал мануалы по установке на своём сайте. Но потом стал доступен из коробки PySide и позже он обновится до PySide2. Для некоторых систем была поддержка PyQt5.
И как простому разработчику поддерживать этот зоопарк? Ведь хочется чтобы тул работал на любой версии (вы тоже делали модуль что-то типа import_qt.py?😁)
На помощь приходит проект Qt.py который поставил себе цель унифицировать использование Qt-биндингов вне зависимости от среды где запускается код. Те, кто давно пишут на Qt, скорее всего знают этот проект.
Он стал стандартом для CG-индустрии и используется в топовых студиях и проектах.
Qt․py помогает запускать один и тот же код на разных платформах с разными вариантами Qt-библиотек. Это может быть как интеграция в CG-софт, так и переносимость стендалонов между разными платформами с разными версиями Python.
Я решил рассказать о некоторых особенностях работы с этой библиотекой.
Сегодня о том, как установить и использовать Qt․py и что это вам даёт.
Установка
pip install Qt.py
Чтобы начать использовать Qt․py в коде достаточно заменить импорт вашего варианта Qt-биндинга на Qt․py
from [PySide|PyQt4|PySide2|PyQt5] import QtWidgets
=>
from Qt import QtWidgets
Теперь ваш код будет поддерживать любой вариант биндинга Qt в Python.
При этом не потребуется использовать if-else конструкции под разные версии. Все вызовы теперь одинаковы.
Всё что нужно сделать, это написать его по правилам PySide2. Именно эта версия была взята за основу.
Приоритет импорта такой:
1. PySide2
2. PyQt5
3. PySide
4. PyQt4
Что именно загрузилось можно посмотреть в переменной __binding__
>>> import Qt
>>> Qt.__binding__
'PySide2'
Приоритет имопрта можно изменить через переменные QT_PREFERRED_BINDING и QT_PREFERRED_BINDING_JSON. Причем под каждый проект оверрайды можно настраивать индивидеально.
#qt#libs
Taste of Africa: Музыка без границ: русская гармония + африканский ритм 🎹🌍🥁
Все народы Земли объединяет наличие языка и музыки. Музыка и язык в мозге тесно связаны 🎶 Музыка проходит сквозь эпохи и континенты и соединяет то, что на карте выглядит раздельным🧭✨
В начале XX века русский композитор Александр Скрябин искал гармонию как пространство, выходя за пределы понятий «вопрос–ответ», напряжение–разрешение, он искал состояние: звук, который будто зависает в воздухе, светится изнутри, существует между нотами 🌫️🎼 Он мечтал о синтезе искусств - о музыке как силе, способной менять человека и мир 🔥🎨
А в это же время по другую сторону Атлантики рождалась стихия, основой которой стал пульс ❤️🥁 Африканские ритмические принципы, повтор, смещение акцентов, многослойность, полиритмия.
Джаз оказался местом встречи ритма и гармонии🎷✨
Когда в конце 1950-х джаз начал освобождаться от «жёстких коридоров» гармонии и идти в модальность и атмосферу, в нём стало больше воздуха 🌬️ Гармония перестала диктовать маршрут и стала ландшафтом 🏞️🎹 А африканская ритмическая энергия - тем мотором, который удерживает эту красоту во времени ⏳🥁
Так и родился один из самых важных культурных симбиозов
• русско-европейская гармония дала джазу новые краски 🎨
• африканский ритм сохранил телесность, свободу и огонь 🥁
• вместе они сделали музыку, которая стирает все границы 🚫🗺️
Сегодня этот диалог продолжается в world music, афро-джазе и фьюжне - везде, где музыканты соединяют культуры звуком 🎵
Если в мире начинает преобладать принцип «разделяй и властвуй», то всегда есть альтернатива «Объединяй и Здравствуй»!
Простая практика: включить музыку и услышать, как человечество говорит на одном языке 🌍
🎧 Что поставить сегодня: Miles Davis — “Kind of Blue” 🎺💙
https://moochinaboutltd.bandcamp.com/track/flamenco-sketches-kind-of-blue
и рядом — Скрябин 🎹✨ (любая поздняя фортепианная вещь, где гармония становится светом 💡). Слушайте связь 🔗🎶
🌟 Ритмическое путешествие продолжается – в языке музыки🌟
#TasteOfAfrica#МузыкаБезГраниц🌍#Джаз🎷#Скрябин🎹#AfricanRhythms🥁#WorldMusic🎶#СимбиозКультур🤝✨
🗣️🎶 Taste of Africa: Язык и музыка
🌟🔔 «Ритмическое путешествие продолжается!» 🥁🌟
Когда речь становится ритмом, а мелодия — смыслом 🥁
В Африке язык и музыка часто звучат как единое целое, и это ощущается даже при первом знакомстве. В ряде языков региона (например, Yorùbá, Igbo и многих других) значение передают и слоги, и высота произнесения.
📌 Тональные языки используют тон (высоту голоса) для различения значений. Одна и та же последовательность звуков, произнесённая выше или ниже (или с другим контуром), передаёт другое слово.
Ключевая мысль рубрики:
🎼 в песне мелодия работает как часть смысла и помогает ему звучать точно.
🎤 1) Как язык задаёт форму вокалу
Тональная речь направляет вокальную линию к смысловой точности, поэтому в музыке часто встречаются такие решения:
🗣️ Вокал как речь: мелодия держится в узком диапазоне, звучит как разговор, уложенный в ритмический узор.
🔁 Хуки‑формулы: важная фраза повторяется, смысл закрепляется и становится общим.
👥 Call-and-response (вопрос–ответ): лидер произносит строку → хор отвечает и поддерживает. Формат создаёт ощущение общинного согласия: “мы услышали, мы повторили, мы поняли”.
🥁 2) Барабаны как продолжение языка
Связь языка и музыки проявляется и через ритм речи. У каждой этнической традиции формируется свой набор привычек:
⏱️ акценты
✂️ паузы
📌 группировки слогов
⚡ ускорения и “перебросы”
🥁 Барабанные рисунки часто отражают эти принципы: ритм становится моделью речи.
Поэтому в ансамблях барабаны звучат как участники диалога:
отвечают голосу “репликой”,
поддерживают ключевую фразу,
закрепляют смысл повтором,
в ряде традиций передают сообщения и статус через говорящие барабаны и кодированные сигналы.
🎧 Как услышать это в треке:
представьте вокальную строку как фразу, произнесённую вслух. Когда перкуссия попадает в те же акценты, возникает ощущение разговора внутри музыки.
🌍 3) Кого послушать сегодня (по странам) 🎶
Под тему отлично подходят артисты, у которых композиция строится на риторике, повторе, коллективном ответе и “говорящем” груве.
🇳🇬 Нигерия
• Fela Kuti — длинная музыкальная “речь” поверх гипнотического грува 🔥
fela-kuti.bandcamp.com
• Seun Kuti & Egypt 80 — лозунг‑фраза ↔ ответ, энергия сообщества 👥
seunkuti.bandcamp.com
🇬🇭 Гана
• Ebo Taylor — highlife/afro-funk, где риффы звучат как реплики 🎸
ebotaylor.bandcamp.com
• Gyedu-Blay Ambolley — речевой фанк/highlife 🗣️
gyedublayambolley.bandcamp.com
🇸🇳 Сенегал
• Orchestra Baobab — ансамбль как разговор: слои ответов и мягкий грув 🧵
orchestrabaobab.bandcamp.com
🇲🇱 Мали
• Ali Farka Touré — фразировка как интонация речи, музыка “рассказывает” 🌀
alifarkatoure.bandcamp.com
• Tinariwen — сила повтора и коллективного звучания 🌙
tinariwen.bandcamp.com
🇬🇳 Гвинея
• Bembeya Jazz National — городская оркестровая традиция, где ритм держит “сюжет” 🎺
bembeyajazznational.bandcamp.com
🇪🇹 Эфиопия
• Mulatu Astatke — этно‑джаз: интонации и паузы как пунктуация 🎷
mulatuastatke.bandcamp.com
🇿🇦 ЮАР
• Hugh Masekela — инструмент “говорит”: вопрос–ответ, паузы, реплики 🗣️🎺
hughmasakela.bandcamp.com
🇹🇿 Танзания
• Siti Muharam — суахили‑песня: текст и интонация ведут аранжировку ✨
sitimuharam.bandcamp.com
🎧 4) Мини‑упражнение (2 минуты)
Выберите любой трек из списка и отметьте:
🎤 где вокал поёт, а где говорит/скандирует
🔁 какие фразы повторяются как “формулы”
🥁 где ритм‑секция отвечает голосу — как подтверждение смысла
🔄 Сохраняйте пост и приглашайте друзей в наше увлекательное путешествие вокруг света африканских ритмов!🎶🌍
#TasteOfAfrica#ЯзыкиАфрики#ЯзыкИМузыка#АфриканскаяМузыка#ТональныеЯзыки#Этномузыка#WorldMusic#AfricanRhythms#Drums#TalkingDrum#Djembe#CallAndResponse#Afrobeat#Highlife#AfroJazz#WestAfrica#EastAfrica#SouthAfrica#Nigeria#Ghana#Senegal#Mali#Guinea#Ethiopia#Tanzania#FelaKuti#SeunKuti#EboTaylor#OrchestraBaobab#AliFarkaToure#Tinariwen#MulatuAstatke#HughMasekela#SitiMuharam