SONiVOX JETCreator Kullanım Kılavuzu

JET Interactive Music Engine İçin İçerik Yazma Uygulaması

1 Giriş

1.1 Genel Bakış

Bu dokümanda, JET dosyalarını oluşturmak ve denetlemek için kullanılan bir yazma uygulaması olan SONiVOX JET Creator için kullanıcı yönergeleri bulunmaktadır. JET, Android platformunu çalıştıranlar da dahil olmak üzere küçük yerleşik cihazlara yönelik etkileşimli bir müzik çalardır. Uygulamaların, oyun etkinliklerine ve kullanıcı etkileşimine gerçek zamanlı olarak yanıt veren, MIDI biçiminde etkileşimli müzik müziklerini dahil etmesini sağlar.

JET, Android için MIDI oynatma cihazı olan SONiVOX'un Yerleşik Ses Sentezleyicisi (EAS) ile birlikte çalışır. Hem JET hem de EAS motorları, JET Creator uygulamasında olduğu gibi JetPlayer sınıfıyla Android yerleşik platforma entegre edilmiştir. Bu nedenle JET içeriğinin yazarı, oynatmanın hem JET Creator'da hem de Android mobil cihazlarda oynatılan son Android uygulamasında tam olarak aynı şekilde ses vereceğinden emin olabilir.

Grafik kullanıcı arayüzüne ek olarak, JET Creator'da iki temel işlev yer alır. Birincisi tüm kaynak verileri (MIDI dosyaları ve DLS dosyası) toplamak, JET'in gerçek zamanlı özelliklerini eklemek ve Android uygulamasının kullanacağı bir JET (.jet) dosyası oluşturmaktır. İkinci işlev, etkileşimli oynatma öğelerinin Android uygulamasında yer alacakları şekilde seçilmesini içerir.

JET Creator uygulaması Python programlama dilinde yazıldığı için Python ve WXWidgets'ın güncel sürümünü yüklemiş olmanız gerekir. Mac ve Windows sürümü vardır.

1.2 Kısaltmalar ve Genel Terimler

Kafa karışıklığını en aza indirmek için ortak terim kullanmak önemlidir. JET, MIDI'yi benzersiz bir şekilde kullandığı için normal sektör şartları her zaman yeterli olmayabilir. Bu sayfada ve JET Creator uygulamasında kullanılan terimlerin tanımlarını aşağıda bulabilirsiniz:

Kanal: Belirli bir MIDI kanalıyla ilişkilendirilmiş MIDI verileri. Standart MIDI, her biri genellikle belirli bir araçla ilişkilendirilen 16 MIDI verisi kanalına olanak tanır.

Denetleyici: Kanal numarası, denetleyici numarası ve denetleyici değerinden oluşan bir MIDI etkinliğidir. MIDI spesifikasyonu; çok sayıda denetleyici numarasını ses düzeyi, ifade, sabitleme pedalı vb. belirli işlevlerle ilişkilendirir. JET, ses senkronizasyonu sağlamak için denetleyici etkinliklerini bir MIDI sırasına özel kontrol bilgileri yerleştirme aracı olarak da kullanır.

DAW: Dijital Ses İş İstasyonu. Logic, SONAR, Cubase ve diğerleri gibi MIDI ve ses dizileme uygulamaları için yaygın olarak kullanılan bir terim.

EAS: Yerleştirilmiş MIDI Sentezleyici. SONiVOX MIDI sentezleyici motorunun adı.

JET: Jet Interactive Engine. SONiVOX JET etkileşimli müzik motorunun adı.

M/B/T: Ölçümler, Ritim ve Değer Değeri

Segment: Genel bestenin bileşeni olan bir nakarat veya nakarat gibi müzik bölümü. JET'de segment, tam bir MIDI dosyası veya bir MIDI dosyasının bir kısmından türetilebilir.

SMF-0: Standart MIDI Dosyası Türü 0, tek bir parça içeren ancak birden fazla MIDI veri kanalından oluşabilen bir MIDI dosyasıdır.

SMF-1: Standart MIDI Dosya Türü 1, bir parça daha içeren bir MIDI dosyasıdır ve her parça bir veya daha fazla MIDI veri kanalından oluşabilir. Geleneksel olarak, her kanal bir SMF-1 dosyasında ayrı bir parçada depolanır. Ancak, tek bir kanalda birden çok MIDI kanalı veya aynı MIDI kanalının verilerini içeren birden fazla kanal olabilir.

İzleme: Zamanlanmış bir etkinlikler dizisi içeren DAW (DAW) tek bir parçadır. Parçaları Kanallar ile karıştırmamaya dikkat edin. Bir MIDI dosyası, aynı MIDI kanalını kullanan birkaç parçaya sahip birçok parça içerebilir.

2 JET Etkileşimli Müzik Kavramı

Etkileşimli müzik, kullanıcı etkileşimi veya oyun oynama etkinlikleri gibi öngörülemeyen olaylara göre gerçek zamanlı olarak değişen müzik olarak tanımlanabilir. Bu şekilde, etkileşimli müzik çok daha ilgi çekicidir çünkü oyunun enerjisini ve ruhunu hiç değişmeyen önceden oluşturulmuş bir besteye kıyasla çok daha yakındır. Bazı uygulamalarda ve oyunlarda etkileşimli müzik, oyunun merkezinde yer alır. Guitar Hero bu kadar popüler bir oyun. Son kullanıcı perdeden düşen müzik notalarını başarılı bir şekilde yakaladığında, müzik kendini uyarlar ve aynı zamanda başarıları ve başarısızlıkları da not eder. JET, bu tür müziğe dayalı oyunlara da izin veriyor.

Etkileşimli müzik yapmak ve kontrol etmek için birkaç yöntem vardır ve JET, bu yöntemlerden biridir. Bu bölümde JET'in özellikleri ve bunların bir oyun ya da yazılım uygulamasında nasıl kullanılabileceği açıklanmaktadır. Ayrıca, Android özellikli mobil telefonlar gibi küçük ayak izi cihazlarında bellekten tasarruf etmek için JET'in nasıl kullanılabileceği de açıklanmaktadır.

2.1.1 Veri Sıkıştırma

JET, minimum miktarda veriyle genişletilmiş müzik dizileri oluşturmak için kullanılabilecek esnek bir müzik biçimini destekler. Müzik bestesi, daha uzun bir parça oluşturmak için sıralanabilecek segmentlere ayrılır. Sıralama, müzik dosyası yazıldığında düzeltilebilir veya program kontrolü altında dinamik olarak oluşturulabilir.

2.1.2 Geleneksel Müzik Örneği


Şekil 1: Doğrusal Müzik Parçası

Bu diyagramda müzik segmentlerinin nasıl saklandığı gösterilmektedir. Her segment ayrı bir MIDI dosyası olarak yazılır. İşleme sonrası aracı, dosyaları tek bir kapsayıcı dosyasında birleştirir. Her segmentte, ek ilgi alanı yaratmak için sesi kapatılabilen veya açılabilen alternatif müzik parçaları bulunabilir. Nakarattaki bir pirinç aksanı, son kez çalınan bir pirinç aksanı olabilir. Ayrıca, segmentlerin yukarı veya aşağı devri yapılabilir.

Diyagramın alt kısmında müzik bölümlerinin doğrusal bir müzik parçası oluşturmak için nasıl yeniden birleştirilebileceğini gösteriyor. Bu örnekte köprü yarım adımlı bir anahtar modülasyonuyla bitebilir ve kalan segmentler yarım adım bununla uyumlu olacak şekilde ters çevrilebilir.

2.1.3 Doğrusal Olmayan Müzik Örneği


Şekil 2: Doğrusal olmayan müzik parçası

Bu diyagramda, doğrusal olmayan bir müzik parçası görüyoruz. Senaryoda birinci şahıs nişancılar (FPS) kullanılır ve arka plan müziği JET tarafından sağlanır. Seviye yüklenirken giriş bölümü oynatılır ve ardından program kontrolü altında Arama segmentine geçiş yapılır. Bu segment süresiz olarak, belki de oyundaki etkinlik bir değişiklik belirtene kadar küçük varyasyonlarla (ses kapatma/sesi açma özelliği kullanılarak) tekrarlanır.

Oyuncu canavar sığınağına yaklaşırken program, Tehlike segmentine senkronize bir geçiş başlatarak sesteki gerilim seviyesini artırır. Oyuncu sığına yaklaştıkça gerginliği artırmak için ek parçaların sesi açılır.

Oyuncu canavarla savaşa girdiğinde, programda Dövüş segmentine senkronize bir geçiş başlar. Savaş sürerken segment süresiz olarak tekrarlanır. Bonus İsabeti oyuncuya başarılı bir saldırıyı bildiren dekoratif parçanın sesini geçici olarak açar. Benzer şekilde, oyuncunun Özel Hasar aldığı durumu belirtmek için başka bir parçanın sesi geçici olarak kapatılır.

Savaşın sonunda müzik, savaşın sonucuna göre zafere ya da yenilgiye geçer.

2.1.4 Senkronizasyonu Sesi Kapatma/Açma

JET, parçaların sesi kapatma ve sesi açma işlemlerini müzikteki etkinliklerle senkronize edebilir. Örneğin, FPS oyununda bonuslar ve hasarla ilgili müzik etkinliklerinin gerçek oyun etkinliğine mümkün olduğunca yakın yerleştirilmesi tercih edilir. Bununla birlikte, oyun etkinliği gerçekleştiği anda bir parçanın sesini açmak bir müzik klibinin ortaya çıkmasına neden olabilir. Alternatif olarak, bir klip en baştan başlatılabilir, ancak diğer müzik parçalarıyla senkronize edilmez.

Bununla birlikte, JET senkronizasyon motoruyla bir klip bir sonraki uygun anda başlatılabilir ve senkronizasyonun korunması sağlanabilir. Dekoratif bir parçaya birkaç kısa müzik klibi yerleştirerek bunu başarabilirsiniz. Akıştaki bir MIDI etkinliği bir klibin başlangıcını, ikinci bir etkinlik ise klibin sonunu belirtir. Uygulama JET klip işlevini çağırdığında, parçadaki bir sonraki klibin müziğe tam olarak senkronize edilmiş şekilde oynatılmasına izin verilir. Parça, isteğe bağlı olarak ikinci bir MIDI etkinliğiyle otomatik olarak kapatılabilir.


Şekil 3: Senkronize Sesi Kapatma/Açma

2.2 Ses Senkronizasyonu

JET, oyunun sesteki etkinliklerle senkronize edilmesini sağlayan bir ses senkronizasyon API'si sunar. Sistem, içerik yazıldığında MIDI dosyasına yerleştirilen verilere dayanır. JET motoru, oynatma sırasında bir etkinlik algıladığında uygulama programına bir geri çağırma oluşturur. Ses ve videonun senkronize edilebilmesi için, geri çağırmanın zamanlaması ses oynatma sistemindeki gecikmeyi telafi edecek şekilde ayarlanabilir. Aşağıdaki şemada, müzikle birlikte sol ve sağ oklara zamanında basılan basit bir müzik oyunu örneği gösterilmektedir.


Şekil 4: Müzik Oyunu

Oklar, müzik dizisinde oyun etkinliklerinin senkronize edilmesi gereken etkinlikleri gösterir. Bu örnekte mavi ok, oynatıcının sol düğmeye, kırmızı ok ise sağ düğmeye basması gereken zamanı temsil eder. Sarı ok, oyun motoruna adımın tamamlandığını söyler. Oyuncunun etkinlikten önce ve sonra uygun tuşa basması için belirli bir zaman aralığı vardır.

Bir etkinlik alınırsa ve oynatıcı bir düğmeye basmamışsa zamanlayıcı, pencerenin yarısına ayarlanır. Oyuncu, zamanlayıcı süresi dolmadan düğmeye basarsa, oyun bir başarı kaydettirir, değilse oyun bir hata olarak kaydeder.

Oynatıcı etkinlik alınmadan düğmeye basarsa zamanlayıcı, pencerenin yarısına ayarlanır. Zamanlayıcının süresi dolmadan bir etkinlik alınırsa oyun başarılı olarak kaydedilir, değilse oyun bir hata olarak kaydedilir. Oyun oynanışında, gerçek etkinliğin zamanına yaklaşma bonusları da bulunabilir.

3 JET İçeriği Yazmaya Genel Bakış

İçerik yazarı, JET dosyalarını yazmak ve bunların etkileşimli olarak çalınmasını dinlemek için birlikte sorunsuz bir şekilde çalışmak üzere tasarlanmış iki uygulamada çalışır. Bunlardan ilki, VST (PC için) veya AU (Mac için) eklentilerini destekleyen, kullanıma hazır herhangi bir MIDI sıralama uygulamasıdır. Yazar burada, sentezleyici cihazı olarak eklentiyi kullanarak MIDI müzik dosyalarını oluşturur. İkinci başvuru ise JET Creator başvurusudur. Yazar burada MIDI müzik dosyalarını (ve isteğe bağlı olarak bir DLS2 ses kümesini) içe aktarır ve JET özellikli oyunda etkileşimli oynatma koşullarını ayarlar. İsteğe bağlı olarak, içerik yazarı DLS Seviye 2 biçimini destekleyen bir araç düzenleyici kullanarak özel bir DLS enstrümanı seti oluşturabilir. Bu uygulamalardan biri de MJSoft'un sunduğu Awave'dir.

İçerik yazma hakkında ek ayrıntılar için lütfen JET İçerik Yazma Yönergeleri dokümanlarına bakın.

4 JET Creator'ı Yükleme ve Başlatma

JET Creator, bir python dili uygulamasıdır. Bu nedenle, makinenizde Python ve wxPython yüklü olmalıdır.

JetCreator kullanılarak oluşturuldu ve test edildi:

Python 2.5.4 Sürümü

wxPython Sürüm 2.8.7.1

Bu dosyaları şuradan indirebilirsiniz:

PC:

  • http://www.python.org/download/releases/2.5.4/
  • http://www.wxpython.org/download.php

MAC:

  • http://wiki.python.org/moin/MacPython/Leopard
  • http://www.wxpython.org/download.php

Python ve wxPython'u yükledikten sonra, JET Creator uygulama dizinindeki tüm dosyaları zip dosyasından çıkarın veya sabit diskinizdeki bir klasöre kopyalayın.

JET Creator'ı başlatmak için bir komut istemine gidin ve dizini Python'u yüklediğiniz yere ayarlayın. Ardından şu komutu kullanarak python'ı çalıştırın:

python jetcreator.py

5 JET Creator'ı kullanma

5.1 Dosya Türleri

JET Creator ile ilişkilendirilmiş birkaç farklı dosya türü vardır.

.jtc JET İçerik Oluşturucu proje dosyası. Bu dosya bir JET Oluşturucu projesiyle ilişkili tüm bilgileri içerir. JET Oluşturucu'nun dışında Kaydet veya Farklı Kaydet işlemi yaptığınızda bu dosya türü kaydedilir.

.jet JET Dosyası'nı seçin. Bu çıkış dosyası, JET Creator projenizi her kaydettiğinizde JET Creator’dan otomatik olarak oluşturulur. Bu, tüm JET öğelerini Android uygulamasının kullanacağı tek bir dosyada gruplandıran dosyadır. Bu dosyayı Android uygulama geliştiricisine verin.

.mid Dosyası. Bu, JET Oluşturucu'nun segment oluşturmak için kullanacağı standart MIDI tür 1 dosyasıdır.

.seg Segment Dosyası. Bu bir JET segment dosyasıdır. Referans aldığı MIDI dosyasıyla aynı ada sahiptir ancak ek Segment bilgilerini içerir.

.zip Zip Arşivi dosyası. Bir JET Arşivini dışa aktardığınızda, JET Creator için gerekli tüm öğeleri (dosyaları) içeren bir zip dosyası oluşturulur. JET Creator projelerini başka kullanıcılara aktarmak için bunu kullanın.

5.2 İletişim Kutusunu Açma

JET Creator'ı ilk kez başlattığınızda aşağıdaki gibi açık bir iletişim kutusuyla karşılaşırsınız.

<img <="" kenarlık="0" yükseklik="285" p="" src="/static/images/jet/jc_open_dlg.png" width="450" />

seçeneği, mevcut bir .jtc (JET Oluşturucu dosyası) dosyasını açar. .jtc dosyanızı kaydettiğiniz dizine göz atmak için tarayıcı düğmesini kullanın.

Yeni seçeneği, yeni bir .jtc dosyası oluşturur.

İçe Aktar, bir JET Arşivi (.zip) dosyasını içe aktarır.

İptal, iletişim kutusunu iptal eder ve uygulamadan çıkar.

5 Ana Pencere

JET Creator uygulamasının ana penceresi aşağıdaki resme benzer. Yukarıdan aşağıya üç ana bölüm vardır: Segment görünümü, etkinlik görünümü ve zaman çizelgesi.

Segment görünümü bölümü, her bir segmentin türetildiği MIDI dosyası ve (isteğe bağlı olarak) DLS2 dosyası bulunan mevcut segmentlerin bir listesini görüntüler. Ayrıca, her bir segmentin başlangıç ve bitiş zamanı gösterilir ve her segmentin işaretleme ayarları sayısallaştırılır, ters aktarılır, yinelenir ve sessize alınır.

Segment görünümünün hemen altında etkinlik görünümü bulunur. Etkinlik görünümü bölümü, belirli bir segmentle ilişkili tüm etkinlikleri gösterir. Etkinlikler, yalnızca atandıkları segment vurgulandığında görüntülenir. Her etkinliğin türü, başlangıç ve bitiş noktaları, izleme ve orta seviye kanal ataması ve etkinlik kimliği görüntülenir.

Etkinlik görünümünün hemen altında zaman çizelgesi görünümü bulunur. Zaman çizelgesi, belirli bir segmentin kaç ölçümü olduğunu ve bu segmentle ilişkili tüm etkinlikleri gösterir. Zaman çizelgesi, seçili olan veya oynatılan segmenti görüntüleyecek şekilde değişir. Zaman çizelgesi görünümündeki etkinliği tıklayarak segment oynatılırken bu pencerede bir etkinlik tetikleyebilirsiniz.


JET İçerik Üretici Ana Penceresi

Ana pencerenin sol tarafındaki düğmeler şunları yapar:

Ekle: Yeni bir segment veya etkinlik eklemek için gerekli segmenti veya etkinlik penceresini görüntüler

Düzelt: Mevcut bir segmenti veya etkinliği güncellemek için segmenti veya etkinlik penceresini görüntüler

Sil: Seçilen segmenti veya etkinliği siler (onay istenir)

Taşı: Seçili segmentleri veya etkinlikleri zamanında taşımanıza olanak tanıyan taşıma penceresini görüntüler

Tümünü Sırala: Oynatma için tüm segmentleri sıraya ekler (seçer)

Tümünü Sıradan Çıkar: Tüm segmentleri sıradan çıkarır (seçimini kaldırır)

Oynat: Sıradaki tüm segmentlerin oynatılmasını başlatır. Bu düğme, herhangi bir segment oynatılıyorsa Durdur olarak değişir.

Denetleme: Denetleme penceresini görüntüler (aşağıya bakın)

5.1 Segment Penceresi

Aşağıdaki resimde gösterildiği gibi, segment penceresi, belirli bir segmentin özelliklerinin atandığı ve denetlendiği yerdir. Pencerenin sol tarafında, JET dosyasında depolanan segment özellikleri gösterilir. Pencerenin sağ tarafı, yazarın sessiz işaretlemeler ayarlamasına, ayarları tekrarlayıp ters çevirmesine ve JET oyununda oynatılacak olan segmenti seçmesine olanak tanır.

Not: Denetleme özellikleri (ses kapatma işaretleri, tekrar ve ters çevirme), JET içerik dosyasında (.jet) depolanmaz, bunun yerine oyun veya uygulama tarafından tanımlanır. Programlama dilinde bu ayarlar doğrudan JET motoruna yapılan API çağrılarına karşılık gelir. JET içeriğinin yazarı, bunları buraya ekleyerek oyun sırasında segmentin uygulama API komutlarına nasıl yanıt vereceğini simüle edebilir.

Segment parametreleri aşağıdakileri yapar:

  • Segment Adı - Segmentin adını, yeni bir Analytics 360 veya
  • MIDI Dosyası: Segmentin türetildiği MIDI dosyasının adı ve konumu. Hemen sağ taraftaki düğmeyle bir tarayıcı açılır. Bu düğme, sabit diskteki MIDI dosyasını bulmak için kullanılır.
  • DLS Dosyası - MIDI dosyasının söz konusu segment için kullandığı DLS2 dosyasının adı ve konumu (varsa).
  • M/B/T'yi başlatma - Başlangıç ölçümü, segmentin geçme ve tik işareti
  • M/B/T'nin sona ermesi - Segmentin ölçüsünün, nabzının ve tik değerinin bitmesi
  • Niceleme: Oynatma sırasında mevcut segmentin nicelik olarak belirlenmesi için değeri nicelleştirme

Denetleme alanları aşağıdaki gibidir:

  • Ses Kapatmalarını İzle: MIDI dosyasındaki MIDI parçalarını (kanalları değil) gösterir. Bir kanalın onay kutusunu tıklamak, o kanalın sesini kapatır.
  • Kanal: Her bir parçaya atanan MIDI kanalını görüntüler
  • Ad: Her parça için parça adı meta etkinliğini (varsa) görüntüler
  • Tekrarla: Bir segmentin oynatma sırasında kaç kez tekrarlanması gerektiğini belirtir
  • Ters Çevir: Bir segmentin oynatma sırasında ters çevirmesi gereken yarı tonlar veya yarım adımlar halinde yer değiştirmeyi gösterir
  • Denetim penceresinin sağında birkaç ek düğme bulunur. Bunlar aşağıdaki gibidir:
  • Tamam. Tamam'ı seçmek tüm segment ayarlarını onaylar ve segment penceresini kapatır
  • İptal - İptal'i seçtiğinizde tüm değişiklikler iptal edilir ve segment penceresi kapatılır
  • Çoğalt: Tek seferde birden çok segment girmeniz için Segmenti Çoğalt penceresini görüntüler. Aşağıdaki bilgilere bakın.
  • Segmenti Oynat/Durdur - Atanan segment özelliklerini kullanarak segmentin oynatılmasını başlatır veya durdurur.
  • MIDI Dosyasını Oynat/Durdur - Segmentin atandığı MIDI dosyasının çalınmasını başlar veya Durdurur.
  • Duraklat/Devam Ettir: Oynatmayı duraklatır veya devam ettirir.

5.2 Etkinlik Penceresi

Aşağıdaki resimde gösterildiği gibi, etkinlik penceresi, belirli bir segmentin etkinlik özelliklerinin atandığı ve denetlendiği yerdir. Bir segmente etkinlik eklemek için, yazarın öncelikle etkinliği içeren segmenti seçmesi ve ardından Ekle düğmesini seçmesi gerekir. Bu işlem, Etkinlik penceresini açar.

Etkinlik penceresinin iki ana bölümü vardır. Etkinlik penceresinin sol tarafındaki segment bölümü yalnızca görüntüleme içindir. İlgili segment için segment özelliklerinin ne olduğunu gösterir. Sağ taraftaki Etkinlik bölümü, etkinliklerin atanabileceği yerdir. Aşağıdaki parametreler kullanılabilir:

Etkinlik Adı - Bir etkinliğe bir ad atar.

Etkinlik Türü: Atanacak etkinlik türünü seçer.

M/B/T'yi başlatma - Etkinlik için başlangıç ölçüsünü, vuruşunu ve değerini ayarlar

M/B/T'yi bitirme - Varsa etkinlik için bitiş ölçüsünü, vuruşunu ve onay işaretini ayarlar.

İzleme - Etkinliğin, belirli bir segmentteki hangi parçaya uygulanacağını belirler

Kanal: Etkinliğin hangi MIDI kanalına uygulanacağını belirler. MIDI kanalı, parçanın MIDI kanalıyla

Event ID - Etkinliğin etkinlik kimliğini ayarlar. Birden çok etkinlik aynı segmente atanabilir. Bu nedenle, bunları tanımlamak için Etkinlik Kimliği kullanılır.

Denetim penceresinin sağında birkaç ek düğme bulunur. Bunlar aşağıdaki gibidir:

Tamam. Tamam'ı seçtiğinizde tüm etkinlik ayarları onaylanır ve etkinlik penceresi

İptal - İptal'i seçtiğinizde tüm değişiklikler iptal edilir ve etkinlik penceresi kapatılır

Çoğalt - Aynı anda birden çok etkinlik girmek için Etkinliği Çoğaltma penceresini görüntüler. Aşağıya bakın.

Oynat/Durdur - Atanan segment niteliklerini kullanarak segmentin oynatılmasını başlatır veya durdurur. Segment oynatılırken etkinlikler tetiklenebilir ve denetlenebilir.

Tetikleyici: Atanan etkinliği tetikler. Bu işlem, JET oyununun etkinliği tetiklemek için kullanacağı API komutunu çoğaltarak içerik yazarına etkinlik davranışını denetleyebilmesi için bir yöntem sunar.

Sesi Kapat/Sesi Aç - Sesi Kapat/Sesi Aç, etkinliğin atandığı kanalın sesini kapatır veya açar

Duraklat/Devam Ettir: Oynatmayı duraklatır veya devam ettirir.

Bir etkinliğin davranışını denetlemek için Oynat düğmesini seçebilirsiniz. Bu işlem, oynatma işlemini başlatır. Tetikleyici düğmesi, basıldığında tetikleyici etkinliğini gönderir. Bu, zaman çizelgesinde yeşil bir tetikleyici etkinliğini seçmekle eşdeğerdir.

Not: Tetikleyici etkinliklerin amacı, tetiklendiğinde bir segmentin tek bir kanalının sesini açmak, ardından tetikleyici segmentinin sonunda bu kanalın sesini kapatmaktır. Bu nedenle, sesi kapatma işaretinin, bir tetikleyici etkinliği alınırken tetikleyici etkinliğin sesinin açılacağını belirten kanalın sesini kapatacak şekilde ayarlandığından emin olmanız gerekir.

Tetikleyici etkinliklerin nasıl çalıştığı ve davranışlarla ilgili ayrıntılar için lütfen aşağıdaki 6. Gelişmiş Seçenekler bölümüne bakın.

5.3 Windows Çoğaltma

JET dosyaları oluştururken genellikle onlarca, hatta yüzlerce etkinlik oluşturmanız gerekir. Etkinlikleri taşımanız da gerekebilir. Çoğalt ve Taşı pencereleri buna izin verir. Birden çok segment veya etkinlik oluşturmak için iki Çoğaltma penceresi vardır. Bunlar aşağıdaki gibi görünür:

Segment Penceresini Çoğalt

Etkinlik Penceresini Çoğalt

İki Çoğaltma penceresi de aynı şekilde çalışır. Bir ilk segmenti veya etkinliği oluşturduktan sonra, Çoğalt düğmesini seçebilirsiniz. Parametreler aşağıdaki gibidir:

Ad Ön Eki - Oluşturulan her segmentin veya etkinliğin adının ön ekini ayarlar

M/B/T'yi Başlatma - İlk segment veya etkinlik için başlangıç zamanını ayarlar

M/B/T'yi artır - Segmentler veya oluşturulan etkinlikler arasındaki süreyi ayarlar.

Sayı - Oluşturmak istediğiniz segmentlerin veya etkinliklerin sayısını ayarlar. Sayı, MIDI dosyasının (segmentler için) veya segmentin (etkinlikler için) uzunluğunu aşıyorsa bu nesneler oluşturulmaz.

Önizleme: Önizleme, oluşturulmuş nesneleri eklemek için Tamam demeden önce incelemenize olanak tanır.

5.4 Pencereleri Taşıma

Taşı işlevi, aynı anda birden çok segmenti veya etkinliği düzenlemenize, bu durumda bunları zamanında taşımanıza olanak tanıması açısından Çoğaltma işlevine benzer şekilde davranır. Çoğaltma gibi, biri Segmentler ve diğeri Etkinlikler için olmak üzere iki Taşıma penceresi vardır. Pencereler aşağıdaki gibi görünür:

Etkinlik Penceresini Taşı

Taşı'yı kullanmak için önce zamanda taşımak istediğiniz segmentleri veya etkinlikleri seçin, ardından Taşı düğmesini tıklayın. Parametreler aşağıdaki gibidir:

M/B/T'yi Başlatma - İlk segment veya etkinlik için başlangıç zamanını ayarlar

M/B/T değerini artır - Nesneleri taşımak istediğiniz zamanı M/B/T cinsinden ayarlar.

Önizleme: Önizleme, oluşturulmuş nesneleri taşımak için Tamam demeden önce incelemenize olanak tanır.

5.5 Denetleme Penceresi

JET Creator uygulamasının ana penceresindeki Denetim düğmesini tıkladığınızda Denetim penceresi açılır. Burada içerik yazarı veya uygulama programcı, mobil uygulamada veya oyunun kendisinde gerçekleşebilecek etkileşimli oyunu simüle edebilir.

JET Denetleme Penceresi

Seçim penceresinin dört ana bölümü vardır. En soldaki bölümde, kullanılabilir segmentler ve saniye cinsinden uzunlukları görüntülenir. Orta bölümde, hangi segmentlerin oynatma için sıraya alındığı ve oynatma durumlarının gösterildiği bir liste görüntülenir. En sağdaki bölümde, o anda oynatılan segmente ait ses kapatma bayrakları görüntülenir. Alttaki zaman çizelgesi bölümü ana penceredekiyle aynıdır. Bu işlem, o anda oynatılan segmenti ve bu segmentle ilişkilendirilmiş etkinlik tetikleyicilerinin görsel görüntüsünü gösterir.

Denetleme penceresi, dilediğiniz segmenti oynatma için istediğiniz sırada sıraya koymanıza olanak tanır. Bunun için, işaret etmek istediğiniz segmenti seçip Sıra'ya basmanız yeterlidir. Bu segment, sıra penceresinde görünür ve oynatılmaya başlar (ilk segmentse). Daha sonra, başka herhangi bir segmenti veya segmenti seçebilir ve bunları oynatma için hazırlayabilirsiniz. Segmentler oynatmayı tamamladıkça, sıradaki bir sonraki segment oynatılmaya başlar. JET Creator'ın diğer pencerelerinde olduğu gibi, her bir segment oynatılırken gerçek zamanlı olarak sesini kapatabilir, açabilir, etkinlik kliplerini tetikleyebilir ve daha fazlasını yapabilirsiniz.

Özellikle düğmeler aşağıdaki gibi davranır:

Sıra: Seçilen segmenti sıraya yükler ve oynatma işlemini başlatır

İptal ve Sıraya Ekle: Seçilen segmenti oynatma için sıraya almadan önce şu anda oynatılan segmenti iptal eder

Geçerli Olanı İptal Et: Sırada gösterilmekte olan segmenti iptal eder ve sonraki segmenti oynatmaya başlar

Durdur: Sıraya alınmış tüm segmentlerin oynatılmasını durdurur

Tümünün Sesini Kapat - Mevcut segmentteki tüm parçaların sesini kapatır

Sesi Kapat - Mevcut segmentteki tüm parçaların sesini açar

Orijinal Sesi Kapatmalar - Geçerli segment için orijinal sessize alma işaretlerini ayarlar

Bu çalma seçeneklerinin kombinasyonu, bir yazarın veya uygulama programcısının etkileşimli bir müzik uygulamasının karşılaşabileceği her davranışı denetlemesine olanak tanır.

5.6 JET İçerik Üretici Menüleri

JET Oluşturucu menüleri, ana penceredeki birçok parametreye ve birkaç ek parametreye erişim sağlar.

5.6.1 Dosya Menüsü

Dosya Menüsü aşağıdaki öğeleri içerir:

Yeni: Yeni bir JET Creator dosyası (.jtc) oluşturur

Aç: Mevcut bir JET Creator dosyasını açar

Kaydet: Açık olan JET Oluşturucu dosyasını kaydeder

Farklı Kaydet: Şu anda açık olan JET Creator dosyasını yeni bir dosyaya kaydeder

Projeyi İçe Aktar - Bir JET Oluşturucu arşivini (.zip) içe aktarır

Projeyi Dışa Aktar - JET Oluşturucu arşivini (.zip) dışa aktarır

Exit - Uygulamadan çıkar

5.6.2 Menüyü Düzenle

Düzenle Menüsü aşağıdaki öğeleri içerir:

Geri al - Geri alma, yapılan son düzenlemeyi geri alacak

Yeniden yap - Yeniden yap, son geri alma işlemini yeniden yapacaktır

Kes: Seçilen parametreyi panoya kopyala ve Seçimi sil

Kopyala: Seçili parametreyi panoya kopyalar ve seçimi korur

Yapıştır - Seçilen parametreyi yapıştırın

5.6.3 JET

Düzenle Menüsü aşağıdaki öğeleri içerir:

Özellikler: JET İçerik Oluşturucu öncelikleri penceresini açar. Bu pencere, belirli bir JET dosyası için aşağıdaki koşulları ayarlamanızı sağlar:

Telif Hakkı Bilgileri - JET dosyasına eklenecek telif hakkı bilgilerini içerir

Chase Kumandaları - Kumandaları takip etme seçeneği (açık/kapalı). Bu, genellikle AÇIK olmalıdır.

Boş Kanalları Sil - Boş MIDI kanallarını siler

5.6.4 Segmentler

Segmentler Menüsü aşağıdaki öğeleri içerir:

Segment Ekle - Segment penceresini açar

Segment Güncelleme - Segment özelliklerini günceller

Segmenti Sil - Mevcut segmenti Segment Listesinden siler

5.6.5 Yardım

Yardım Menüsü, en azından aşağıdaki öğeleri içerecektir:

JET İçerik Oluşturucu Yardımı: PDF yardım dokümanı açılır veya çevrimiçi yardıma yönlendirilir

Hakkında - JET Creator sürüm numarası, SONiVOX bilgisi

6 Tetikleyici Olay Açıklaması

JET müzik dosyalarını etkileşimli hale getirmek için MIDI dosyasını ayrı (doğrusal olmayan) segmentlere ayırmak ve bu segmentleri oyun içindeki etkinliklere göre bir oyunda oynatılmak üzere sıraya koymaktır. Tetikleyici etkinlikler, etkileşimli oynatma için ek bir yöntemdir. Etkileşimli bir oyun veya uygulamada her ikisi de birlikte kullanılır.

Tetikleyici etkinlikleri aşağıdakilere olanak tanır:

  1. MIDI segmenti içindeki takipler, oyun etkinliklerine bağlı olarak açılabilir veya kapatılabilir. Örneğin, besteci biri hızlı diğeri yavaş olmak üzere iki davul parçası yazabilir. Bir oyundaki aksiyon hızlıysa hızlı davul parçaları çalabilir. Oyunun temposu yavaşsa yavaş davul parçası da çalabiliyor.
  2. Kullanıcı işlemleri, müzik dosyasına önceden yerleştirilmiş, müziksel açıdan doğru yerlere yerleştirilmiş tetikleyici etkinliklerle karşılaştırılabilir. Sonuçlara göre puanlama veya diğer oyun işlemleri gerçekleştirilebilir.
  3. Seviyeler veya aksiyon sıraları arasındaki müzik geçişleri, kesintisiz müzik deneyimi için senkronize edilebilir.

JET, gelişmiş modda bu işlemleri gerçekleştirmek ve sesi senkronize etmek için standart MIDI CC etkinliklerini kullanır. JET tarafından kullanılan denetleyiciler, spesifikasyonda belirli kullanım için tanımlanmayan kontrollerden bazılarıdır. Belirli denetleyici tanımları aşağıdaki gibidir:

Denetleyiciler 80-83 Uygulama tarafından kullanılmak üzere ayrılmıştır

Kumanda 102 JET etkinlik işaretçisi

Kumanda 103 JET klip işaretleyici

Kumandalar 104-119 Gelecekte kullanım için ayrılmıştır

6.1 JET Klip İşaretleyici (CC103)

Denetleyici 103, JET_TriggerClip API çağrısıyla tetiklenebilen bir MIDI kanalındaki klipleri işaretlemek için ayrılmıştır. Klip kimliği, denetleyici değerinin düşük 6 bitinde kodlanır. Bit 6, klibin başlangıcını belirtmek için bir, klibin sonunu belirtmek için ise sıfır olarak ayarlanır.

Örneğin, 1 klip kimliğine sahip bir klibi tanımlamak için yazar, klibin başına control=103 ve value=65 değerine sahip bir MIDI denetleyici etkinliği, klibin sonuna da control=103 ve value=1 değerine sahip başka bir etkinlik ekler. JET_TriggerClip() işlevi 1 klip kimliğiyle çağrıldığında, denetleyici değeri 1 ile karşılaşıldığında denetleyici değeri 65 ile tekrar karşılaşıp sesi kapatıldığında kanalın sesi açılır.

Şekil 5: Senkronize Klip

Yukarıdaki şekilde, JET_TriggerClip() işlevi ilk denetleyici etkinliğinden önce çağrılırsa, ilk denetleyici etkinliği gerçekleştiğinde 3. Parçanın sesi açılır, ilk klip oynatılır ve ikinci denetleyici etkinliği gerçekleştiğinde kanalın sesi kapatılır. JET_TriggerClip() işlevi ilk denetleyici etkinliği gerçekleştikten sonra çağrılırsa üçüncü denetleyici etkinliği gerçekleştiğinde 3. Parçanın sesi açılır, ikinci klip oynatılır ve dördüncü denetleyici etkinliği gerçekleştiğinde kanalın sesi tekrar kapatılır.

Not: Normalde, segment ilk olarak JET_QueueSegment() çağrısıyla sıraya alındığında klibi içeren parçanın sesi uygulama tarafından kapatılır. Ses kapatılmamışsa klip her zaman Jet_TriggerClip() klip kimliğiyle çağrılana kadar oynatılır.

6.2 JET Etkinlik İşaretçisi (CC102)

Denetleyici 102, JET işlevine özel MIDI akışlarında etkinlikleri işaretlemek için ayrılmıştır. Şu anda tanımlanan tek değer 0'dır ve zamanlama amacıyla bir segmentin sonunu işaret eder.

Normalde JET, MIDI parça sonu meta etkinliğiyle karşılaşıldığında bir sonraki segmenti oynatmaya başlar (veya geçerli segmenti tekrar eder). Bazı MIDI yazma araçları, parça sonu işaretçisinin doğru şekilde yerleştirilmesini zorlaştırır ve segmentler birleştiğinde senkronizasyon sorunlarına neden olur.

Bu sorunu önlemek için yazar, segmentin döngüye alınacağı noktaya bir JET segment sonu işaretçisi (denetleyici=102, değer=0) yerleştirebilir. Segment sonu işaretçisiyle karşılaşıldığında sonraki segment tetiklenir veya geçerli segment döngüye alınırsa oynatma, segmentin başında devam eder.

Parça sonu işaretçisi, müzikal bir figürün bir sonraki bölümün başlangıcını işaret eden sürenin bitiminden sonra tamamlanmasını sağlamak için de kullanılabilir. Örneğin, içerik yazarı, 5. çubuğun 1. vuruşunda biten davul dolgusu içeren 4 çubuklu bir segment oluşturabilir. Bu segment, segmentin doğal ucunun ötesinde bir çubuk oluşturur. 4. çubuğun sonuna bir segment sonu işaretçisi yerleştirildiğinde sonraki segment tetiklenir, ancak davul doldurma işlemi, müzik sürekliliği sağlayan bir sonraki segmente paralel olarak devam eder.

Şekil 6: Segment Sonu İşaretçisi

6.3 Uygulama Denetleyicileri (CC80-83)

Uygulama, bu aralıktaki denetleyicileri kendi amaçları doğrultusunda kullanabilir. Bu aralıktaki bir denetleyiciyle karşılaşıldığında etkinlik, uygulama tarafından sorgulanabilen bir etkinlik sırasına girilir. Bazı olası kullanımlar arasında, video etkinliklerini sesle senkronize etmek ve sonraki segmenti sıraya almak için MIDI segmentindeki bir noktayı işaretlemek yer alır. Uygulama tarafından izlenen denetleyicilerin aralığı, başlatma sırasında uygulama tarafından değiştirilebilir.

7 JET İçerik Üretici Kuralları

7.1 Görevlerin Sırası

Tüm projelerde olduğu gibi, bestenize başlamadan önce oyun tasarımcısı ve programcı ile etkileşimli müzik şemasını tartışmak ve tasarlamak en iyisidir. Özet ve/veya teknikler, oyun başladıktan sonra tekrar yapmak zorunda kalmaktan kurtulmanıza yardımcı olabilir.

Genel olarak, müziklerinizi ilk olarak DAW çalışmanızı oluştururken kullandığınız yöntemle yazmak, ardından son MIDI dosyasını uygulama için gereken şekilde bölmek istersiniz. Ardından JET Creator'a geçin ve sırayla çalındığında tüm müzik segmentlerinizi en kolay şekilde önizleyebileceğiniz şekilde oluşturun. Son olarak, segmentleri Android oyunu aracılığıyla kontrol etmek için JET Etkinlikleri'ni ekleyin ve JET Creator'da gerektiği şekilde denetleyin. Son olarak, projeyi JET Creator'a kaydedin ve oyuna entegre etmesi için .jet dosyasını programcıya verin. Önizlemeden sonra muhtemelen MIDI dosyalarında ve JET Oluşturucu özelliklerinde değişiklikler olacaktır.

7.2 Bellekten Koruma

Bellekten tasarruf etmeye çalışıyorsanız mümkün olduğunca az sayıda MIDI dosyası oluşturun ve bu MIDI dosyasından birden fazla segment oluşturun. Örneğin, A, B, C gibi üç bölümden oluşan 12 çubuklu bir MIDI dosyası, çok daha uzun bir şarkı oluşturabilir. Bir MIDI dosyasına başvuran birden çok segment oluşturup bunları istediğiniz gibi sıralamanız yeterlidir. Örneğin A, A, B, A, C, A, B, A, A 36 çubukluk bir şarkı oluşturur. JET ile tekrarlar ekleyebilir, segmentleri ters çevirebilir ve parçaların daha ilgi çekici olması için etkileşimli olarak parçaların sesini kapatıp açabilirsiniz.

7.3 Çoğaltma

Segment veya etkinlik eklemeyi hızlandırmak için Çoğalt komutunu kullanın. Çoğaltma, tek seferde birden çok segment veya etkinlik ekleyebilir ve okumayı kolaylaştırmak için ofset parametresi ve ön ek adlandırma kuralı kullanır. MOVE komutu belirli sayıda ölçü, vuruş veya değer çizgisine göre birden fazla etkinliği taşımak için de kullanışlıdır.

7.4 Etkileşim Seçenekleri

JET'de birkaç etkileşimli işitsel kavram vardır. Aşağıda birkaç örnek verilmiştir. Bununla birlikte, geliştiricilerin aklımıza gelmeyen başka fikirler de ortaya atacağını umuyoruz. Bunlar şu şekildedir:

7.4.1 Birden Fazla Segmenti Tetikleme

Bu yöntemde uygulama, oyundaki etkinliklere dayanarak belirli segmentleri tetikler. Örneğin, çok fazla dövüşün olduğu bir koridor 1. segmenti, kavgasız bir koridor ise 2. segmenti tetikleyebilir. Bu yöntemle birlikte JET TriggerClips kullanıldığında daha da çeşitlilik sağlanır.

7.4.2 Dizilerin sesini kapatma

Bu yöntemde uygulama, tek bir MIDI sırasında belirli parçalara yönelik ses kapatma ve açma etkinliklerini tetikler. Örneğin, çok sayıda dövüşün olduğu bir koridorda 1-16 arasındaki MIDI parçaları çalınabilirken, dövüşün olmadığı bir koridorda aynı MIDI dosyası çalınırken 9-16 arasındaki parçaların sesini kapatabilir. Bu yöntemle birlikte JET TriggerClips kullanıldığında daha da çeşitlilik sağlanır.

7.4.3 Müzik Destekli Oyun Oynanışı

Müzik odaklı oyunlar, Guitar Hero ve JETBOY'un yaptığı gibi, müzik içeriklerinin rahatsız edici etkinliklerin nasıl gösterileceğini belirler. Daha sonra uygulama, kullanıcının grafik olaylara verdiği yanıtı sorgular ve buna göre müziği etkileşimli olarak değiştirir. Bu yöntemde oyun, MIDI dosyasına yerleştirilmiş ve gerçek zamanlı olarak oyun tarafından okunan MIDI denetleyicileri olan JET Uygulama Etkinlikleri'ni kullanır. Kullanıcının yanıtına bağlı olarak birden fazla segment tetikleme ve/veya sessize alma dizisi ayarlanabilir.