PyxelWidgets: Müzikal ızgara kontrolcüler için grafiksel kullanıcı arayüzü çatısı tasarımı
PyxelWidgets: Graphical user interface framework design for musical grid controllers
Yazar: MALİK ENES ŞAFAK
Danışman: PROF. DR. ABDURRAHMAN TARİKCİ
ANKARA MÜZİK VE GÜZEL SANATLAR ÜNİVERSİTESİ / Müzik ve Güzel Sanatlar Enstitüsü / Müzik Teknolojileri Ana Bilim Dalı / Müzik Teknolojisi Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Müzik = Music
Dizin: Açık kaynaklı yazılım = Open source software ; Bilgisayar grafikleri = Computer graphics ; Bilgisayar yazılımları = Computer softwares ; Müzik teknolojisi = Music technology ; Müzik yazılımları = Music softwares ; Nesneye dayalı yazılım = Object oriented software ; İnsan-bilgisayar etkileşimi = Human-computer interaction

Özet:
Bu tezde, müzikal ızgara kontrolcülere yeni kontrol parametreleri eklemek için Python programlama dili kullanılarak PyxelWidgets adında bir grafiksel kullanıcı arayüzü çatısı geliştirilmiştir. Müzikal ızgara kontrolcüler tarafından MIDI protokolünün yaygın olarak kullanılması sebebi ile PyxelWidgets çatısı tarafından desteklenen donanım ve yazılımlar ile iletişim için MIDI 1.0 protokolü kullanılmıştır.
İlk olarak müzikal ızgara kontrolcülere diğer müzikal kontrolcüler üzerindeki hangi ögelerin eklenebileceği incelenmiştir. Bu amaca ulaşmak için müzikal kontrolcüler üzerindeki kontroller performans ögeleri ve kontrol ögeleri olarak iki kategoriye ayrılmıştır. Daha sonrasında bu ögeler incelenerek müzikal ızgara kontrolcü üzerinde nasıl ifade edilebilecekleri analiz edilmiştir. Benzer şekilde, müzikal ızgara kontrolcülerin de renk bilgisini nasıl aldıkları ve kullanıcı girişini nasıl ilettikleri analiz edilmiştir. Daha sonrasında PyxelWidgets analiz edilen müzikal ızgara kontrolcülerden ve kontrol ögelerinden elde edilen veriler kullanılarak geliştirilmiştir. PyxelWidgets çatısı farklı iletişim yöntemlerini kullanan bütün müzikal ızgara kontrolcüler ile çalışması için tasarlanmıştır. PyxelWidgets'ın çalışmasını kontrol etmek için Akai APC40 MK2 ve Novation Launchpad MK3 adlı iki farklı müzikal ızgara kontrolcüsü ile test edilmiş ve eklenen her yeni kontrolcü ile başarıyla çalıştığı gözlemlenmiştir. Ayrıca, PyxelWidgets gelecekte ortaya çıkacak farklı müzikal ızgara kontrolcülere de uyarlanabilecek bir mimari ile geliştirilmiştir. Birden çok pencerenin ve birden çok müzikal ızgara kontrolcünün bir arada kullanılmasını sağlayan bir pencere yöneticisi de geliştirilerek kullanıcı deneyiminin arttırılması hedeflenmiştir. Müzikal ızgara kontrolcülerin, PyxelWidgets'in özellikleri ve yapısı sayesinde, sahip olduğu özelliklerin genişletilmesi, kullanıcıların ses tasarımında ve prodüksiyonunda kullandıkları donanımları ve yazılımları kontrol etmek için daha çok olanağa sahip olmasını sağlamaktadır. Bu geliştirmelerin sonucu olarak müzisyenler, ses mühendisleri ve ses tasarımcıları müzikal ızgara kontrolcüleri ile sahip oldukları ekipmanları kolaylıkla kontrol edebileceklerdir. Ayrıca kullanım amacına uygun olarak özelleştirilmiş müzikal ızgara kontrolcüler, kullanıcının daha hızlı işlem yapmasını sağlayarak, müzik prodüksiyonu için daha çok zamana sahip olmasını sağlayacaktır. PyxelWidgets çatısı kullanılarak geliştirilen grafiksel kullanıcı arayüzleri ile müzikal ızgara kontrolcülerin kapasitelerinin artmasından dolayı, ekipman çeşitliliği gereksiniminde de azalma olasılığı ortaya çıkmaktadır.

Anahtar Kelimeler
Müzikal Izgara Kontrolcüleri, MIDI, Grafiksel Kullanıcı Arayüzü Çatısı, Nesne Yönelimli Programlama, Python

Abstract:
In this thesis, in order to add new control parameters to musical grid controllers, graphical user interface framework, called as PyxelWidgets, is developed by using Python programming language. MIDI 1.0 protocol is used to communicate hardwares or softwares that are supported by PyxelWidgets, since musical grid controllers communicate with MIDI.
First, it is examined to find which control parameters can be added to musical grid controllers.To achieve this aim, controllers are grouped into two categories named as control elements and performance elements. Then it is analyzed to determine how to express these elements. Similarly, musical grid controllers are analyzed to find how they get color information and how to transmit user inputs. After that, PyxelWidgets is developed using the results obtained by analysis of the musical grid controllers. In fact, PyxelWidgets is designed such a way that it can be used with all kinds of musical grid controllers. To check PyxelWidgets performance, it is tested in two models of musical grid controllers, Akai APC40 MK2 and Novation Launchpad MK3, and seen that all kinds of new controllers added work successfully. Moreover, by means of the architecture of PyxelWidgets, it can be adapted to new musical grid controllers that will emerge in the future. To improve user-friendliness, window manager is developed to use more than one windows or musical grid controllers.
Through properties and structure of the PyxelWidgets, musical grid controllers capacity improves and users get more ability to control their hardwares or softwares, which are used in sound design and production. As a result of these improvements, musicians, sound engineers, and sound designers can more easily use their equipment that can be used with musical grid controllers. Furthermore, they have more time while production due to faster processing. Moreover, due to the increase in the capacities of the musical grid controllers, the possibility of a decrease in the need for equipment diversity arises.

Keywords
Musical Grid Controllers, MIDI, Graphical User Interface Framework, Object Oriented Programing, Python