Panduan Pengguna SONiVOX JETCreator

Aplikasi Penulisan Konten untuk JET Interactive Music Engine

1 Pengantar

1.1 Ringkasan

Dokumen ini berisi pedoman pengguna untuk SONiVOX JET Creator, yaitu aplikasi penulisan untuk membuat dan mengaudit file JET. JET adalah pemutar musik interaktif untuk perangkat tersemat kecil, termasuk yang menjalankan platform Android. Hal ini memungkinkan aplikasi menyertakan soundtrack musik interaktif, dalam format MIDI, yang merespons peristiwa gameplay dan interaksi pengguna secara real time.

JET berfungsi dengan Embedded Audio Synthesizer (EAS) SONiVOX yang merupakan perangkat pemutaran MIDI untuk Android. Baik mesin JET maupun EAS terintegrasi ke dalam platform sematan Android melalui class JetPlayer, serta yang melekat dalam aplikasi JET Creator. Dengan demikian, penulis konten JET dapat memastikan bahwa pemutaran akan terdengar sama persis di JET Creator dan di aplikasi Android akhir yang memutar kembali di perangkat seluler Android.

Selain antarmuka pengguna grafis, ada dua fungsi utama yang berjalan di JET Creator. Yang pertama melibatkan pengumpulan semua data sumber (file MIDI dan file DLS), penambahan atribut real-time JET, dan pembuatan file JET (.jet) yang akan digunakan aplikasi Android. Fungsionalitas kedua melibatkan audisi elemen pemutaran interaktif yang akan berlangsung di aplikasi Android.

Aplikasi JET Creator ditulis dalam bahasa pemrograman Python, sehingga Anda harus menginstal versi terbaru Python dan WXWidgets. Aplikasi ini tersedia dalam versi Mac dan Windows.

1.2 Singkatan dan Istilah Umum

Penting untuk menggunakan seperangkat istilah yang umum untuk meminimalkan kebingungan. Karena JET menggunakan MIDI dengan cara yang unik, istilah industri umum mungkin tidak selalu cukup. Berikut adalah definisi istilah yang digunakan pada halaman ini dan dalam aplikasi JET Creator:

Saluran: Data MIDI yang terkait dengan saluran MIDI tertentu. MIDI standar mengizinkan 16 saluran data MIDI yang masing-masingnya biasanya dikaitkan dengan instrumen tertentu.

Pengontrol: Peristiwa MIDI yang terdiri dari nomor saluran, nomor pengontrol, dan nilai pengontrol. Spesifikasi MIDI mengaitkan banyak nomor pengontrol dengan fungsi tertentu, seperti volume, ekspresi, pedal berkelanjutan, dll. JET juga menggunakan peristiwa pengontrol sebagai sarana untuk menyematkan informasi kontrol khusus dalam urutan MIDI guna menyediakan sinkronisasi audio.

DAW: Digital Audio Workstation. Istilah umum untuk aplikasi pengurutan MIDI dan audio seperti Logic, SONAR, Cubase, dan lainnya.

EAS: Embedded MIDI Synthesizer. Nama mesin synthesizer MIDI SONiVOX.

JET: Jet Interactive Engine. Nama mesin musik interaktif JET SONiVOX.

M/B/T: Measure (Birama), Beat (Ketukan), dan Tick (Subbagian ketukan)

Segmen: Bagian musikal seperti chorus atau bait yang merupakan komponen dari keseluruhan komposisi. Di JET, segmen dapat berupa seluruh file MIDI atau berasal dari sebagian file MIDI.

SMF-0: Jenis File MIDI Standar 0, file MIDI yang berisi satu trek, tetapi dapat terdiri dari beberapa saluran data MIDI.

SMF-1: Jenis File MIDI Standar 1, file MIDI yang berisi satu trek lagi, dan setiap trek dapat terdiri dari satu atau beberapa saluran data MIDI. Berdasarkan konvensi, setiap saluran disimpan di jalur terpisah dalam file SMF-1. Namun, Anda dapat memiliki beberapa saluran MIDI pada satu trek, atau beberapa trek yang berisi data untuk saluran MIDI yang sama.

Trek: Satu trek dalam DAW yang berisi urutan peristiwa dengan waktu. Berhati-hatilah agar tidak tertukar antara Trek dan Saluran. File MIDI dapat berisi banyak trek, dengan beberapa trek yang menggunakan saluran MIDI yang sama.

2 Konsep Musik Interaktif JET

Musik interaktif dapat didefinisikan sebagai musik yang berubah secara real time sesuai dengan peristiwa yang tidak dapat diprediksi, seperti interaksi pengguna atau peristiwa bermain game. Dengan cara ini, musik interaktif menjadi jauh lebih menarik karena memiliki kemampuan untuk menyesuaikan energi dan mood game jauh lebih dekat daripada komposisi yang sudah dikomposisi dan tidak pernah berubah. Dalam beberapa aplikasi dan game, musik interaktif berperan penting terhadap gameplay. Guitar Hero adalah salah satu game yang populer. Saat pengguna akhir berhasil merekam not musik dari papan fret, musik akan disesuaikan dengan sendirinya dan secara bersamaan menyimpan skor keberhasilan dan kegagalan. JET juga memungkinkan jenis game berbasis musik ini.

Ada beberapa metode untuk membuat dan mengontrol musik interaktif, dan JET adalah salah satunya. Bagian ini menjelaskan fitur-fitur JET dan cara penggunaannya dalam aplikasi game atau software. Bagian ini juga menjelaskan bagaimana JET dapat digunakan untuk menghemat memori di perangkat footprint kecil seperti handset seluler berkemampuan Android.

2.1.1 Kompresi Data

JET mendukung format musik fleksibel yang dapat digunakan untuk membuat urutan musik lengkap dengan jumlah data minimal. Komposisi musik dibagi menjadi beberapa segmen yang dapat diurutkan untuk membuat potongan yang lebih panjang. Pengurutan dapat diperbaiki pada saat file musik ditulis, atau dapat dibuat secara dinamis dalam kontrol program.

2.1.2 Contoh Musik Linear


Gambar 1: Potongan Musik Linear

Diagram ini menunjukkan cara segmen musik disimpan. Setiap segmen ditulis sebagai file MIDI terpisah. Fitur pascapemrosesan menggabungkan file tersebut menjadi satu file penampung. Setiap segmen dapat berisi trek musik alternatif yang dapat dibisukan atau dibunyikan untuk meningkatkan minat. Contohnya mungkin adalah aksen brass dalam chorus yang hanya diputar pada terakhir kali. Selain itu, segmen dapat ditransposisikan ke atas atau ke bawah.

Bagian bawah diagram menunjukkan bagaimana segmen musik dapat digabungkan kembali untuk membuat potongan musik linear. Dalam contoh ini, bridge dapat diakhiri dengan modulasi tombol setengah langkah dan segmen yang tersisa dapat ditransposisikan menjadi setengah langkah agar sesuai.

2.1.3 Contoh Musik Nonlinear


Gambar 2: Karya musik nonlinear

Dalam diagram ini, kita melihat bagian musik non-linear. Skenarionya adalah first-person-shooter (FPS) dan JET menyediakan musik latar belakang. Intro akan diputar saat level sedang dimuat, lalu bertransisi dalam kontrol program ke segmen Penelusuran. Segmen ini diulang tanpa batas waktu, mungkin dengan sedikit variasi (menggunakan fitur bisukan/bunyikan) hingga aktivitas dalam game menentukan perubahan.

Saat pemain mendekati sarang monster, program akan memulai transisi yang disinkronkan ke segmen Danger, sehingga meningkatkan tingkat ketegangan dalam audio. Saat pemain semakin dekat ke sarang, trek tambahan akan dibunyikan untuk meningkatkan ketegangan.

Saat pemain mulai bertarung dengan monster, program akan memulai transisi yang disinkronkan ke segmen Combat. Segmen ini diulang tanpa batas saat pertarungan terus berlanjut. Hit Bonus untuk sementara membunyikan trek dekoratif yang memberi tahu pemain tentang serangan yang berhasil, dan begitu pula, trek lain dibunyikan untuk sementara guna menunjukkan saat pemain menerima Kerusakan Khusus.

Pada akhir pertarungan, musik akan beralih ke segmen kemenangan atau kekalahan berdasarkan hasil pertarungan.

2.1.4 Sinkronisasi Bisukan/Bunyikan

JET juga dapat menyinkronkan pembisuan dan pembunyian trek dengan peristiwa dalam musik. Misalnya, dalam game FPS, sebaiknya tempatkan peristiwa musik yang berkaitan dengan bonus dan kerusakan sedekat mungkin dengan peristiwa game yang sebenarnya. Namun, hanya membunyikan trek saat peristiwa game terjadi dapat menyebabkan klip musik yang dimulai di tengah. Atau, klip dapat dimulai dari awal, tetapi kemudian tidak akan disinkronkan dengan trek musik lainnya.

Namun, dengan mesin sinkronisasi JET, klip dapat dimulai pada momen yang tepat berikutnya dan mempertahankan sinkronisasi. Hal ini dapat dilakukan dengan menempatkan sejumlah klip musik pendek pada trek dekoratif. Peristiwa MIDI dalam streaming menandakan awal klip, dan peristiwa kedua menandakan akhir klip. Saat aplikasi memanggil fungsi klip JET, klip berikutnya dalam trek diizinkan untuk diputar secara sinkron dengan musik. Jika ingin, trek dapat dibisukan secara otomatis oleh peristiwa MIDI kedua.


Gambar 3: Bisukan/Bunyikan yang Disinkronkan

2.2 Sinkronisasi Audio

JET menyediakan API sinkronisasi audio yang memungkinkan gameplay disinkronkan dengan peristiwa dalam audio. Mekanismenya mengandalkan data yang disematkan dalam file MIDI pada saat konten ditulis. Saat mendeteksi suatu peristiwa selama pemutaran, mesin JET akan menghasilkan callback ke dalam program aplikasi. Waktu callback dapat disesuaikan untuk mengompensasi latensi apa pun dalam sistem pemutaran audio, sehingga audio dan video dapat disinkronkan. Diagram di bawah menunjukkan contoh game musik sederhana yang melibatkan penekanan panah kiri dan kanan secara tepat waktu mengikuti musik.


Gambar 4: Game Musik

Panah mewakili peristiwa dalam urutan musik saat peristiwa game perlu disinkronkan. Dalam hal ini, panah biru menunjukkan waktu saat pemain seharusnya menekan tombol kiri, dan panah merah untuk tombol kanan. Panah kuning memberi tahu mesin game bahwa urutannya sudah lengkap. Pemain memiliki jangka waktu tertentu sebelum dan sesudah peristiwa untuk menekan tombol yang sesuai.

Jika peristiwa diterima dan pemain belum menekan tombol, timer akan disetel ke setengah durasi jendela. Jika pemain menekan tombol sebelum timer berakhir, game akan mencatat berhasil, dan jika tidak, game akan mencatat kegagalan.

Jika pemain menekan tombol sebelum peristiwa diterima, timer akan disetel ke setengah durasi jendela. Jika peristiwa diterima sebelum timer berakhir, game akan mencatat keberhasilan, dan jika tidak, game akan mencatat kegagalan. Gameplay juga dapat menyertakan bonus karena mendekati waktu peristiwa yang sebenarnya.

3 Ringkasan Penulisan Konten JET

Untuk menulis file JET dan mendengarkannya diputar secara interaktif, penulis konten akan bekerja dalam dua aplikasi yang dirancang agar dapat bekerja sama dengan lancar. Yang pertama adalah aplikasi adalah aplikasi pengurutan MIDI apa pun yang sudah tersedia dan mendukung plugin VST (untuk PC) atau AU (untuk Mac). Di sini, penulis akan menyusun file musik MIDI mereka menggunakan plugin tersebut sebagai perangkat synthesizer. Aplikasi kedua adalah aplikasi JET Creator. Di sini, penulis akan mengimpor file musik MIDI mereka (dan soundset DLS2 secara opsional) dan menyiapkan kondisi untuk pemutaran interaktif dalam game yang mendukung JET. Jika perlu, penulis konten dapat membuat rangkaian instrumen DLS kustom menggunakan editor instrumen yang mendukung format DLS Level 2. Salah satu aplikasi tersebut adalah Awave dari MJSoft.

Lihat dokumentasi Panduan Penulisan Konten JET untuk detail tambahan tentang penulisan konten.

4 Menginstal dan Meluncurkan JET Creator

JET Creator adalah aplikasi bahasa python, jadi Anda harus menginstal Python dan wxPython di komputer Anda.

JetCreator dibuat dan diuji dengan:

Python Versi 2.5.4

wxPython Versi 2.8.7.1

Silakan download aplikasi tersebut di sini:

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

Setelah menginstal Python dan wxPython, cukup ekstrak atau salin semua file di direktori aplikasi JET Creator ke folder di hard drive Anda.

Untuk meluncurkan JET Creator, buka prompt perintah dan atur direktori tempat Anda menginstal Python. Selanjutnya jalankan python dengan perintah:

python jetcreator.py

5 Menggunakan JET Creator

5.1 Jenis File

Ada beberapa jenis file berbeda yang terkait dengan JET Creator.

File proyek .jtc JET Creator. File ini berisi semua informasi yang terkait dengan project JET Creator. Saat Anda melakukan Save atau Save-as dari JET Creator, jenis file ini akan disimpan.

File JET .jet. File output ini otomatis dibuat dari JET Creator setiap kali Anda menyimpan project JET Creator. Ini adalah file yang menggabungkan semua aset JET menjadi satu file yang akan digunakan oleh aplikasi Android. Berikan file ini ke developer aplikasi Android.

File .mid. Ini adalah file MIDI standar tipe 1 yang akan digunakan JET Creator untuk membuat segmen.

.seg File Segmen. Ini adalah file Segmen JET. File ini memiliki nama yang sama dengan file MIDI yang direferensikannya, tetapi berisi informasi Segmen tambahan.

{i>.zip Zip<i}. Saat Anda Mengekspor Arsip JET, file zip yang berisi semua aset (file) yang diperlukan untuk JET Creator akan dibuat. Gunakan ini untuk mentransfer project JET Creator ke orang lain.

5.2 Dialog Pembuka

Saat pertama kali meluncurkan JET Creator, Anda akan melihat dialog terbuka seperti berikut.

<img <="" border="0" height="285" p="" src="/static/images/jet/jc_open_dlg.png" width="450" />

Open akan membuka file .jtc (file JET Creator) yang sudah ada. Gunakan tombol browser untuk mencari direktori tempat Anda menyimpan file .jtc.

New akan membuat file .jtc baru.

Import akan mengimpor file Arsip JET (.zip).

Cancel akan membatalkan dialog dan keluar dari aplikasi.

5 Jendela Utama

Jendela utama aplikasi JET Creator terlihat seperti gambar di bawah ini. Ada tiga bagian utama dari atas ke bawah: tampilan segmen, tampilan peristiwa, dan linimasa.

Bagian tampilan segmen menampilkan daftar segmen saat ini, tempat file MIDI dan (opsional) file DLS2 tempat setiap segmen berasal. Kode ini juga menunjukkan waktu mulai dan waktu berhenti setiap segmen, serta setelan kuantisasi, transposisi, pengulangan, dan tanda pembisuan suara.

Tepat di bawah tampilan Segmen adalah tampilan peristiwa. Bagian tampilan peristiwa menampilkan semua peristiwa yang terkait dengan segmen tertentu. Peristiwa hanya ditampilkan saat segmen yang ditetapkan untuknya ditandai. Setiap peristiwa menampilkan jenisnya, titik awal dan akhirnya, penetapan saluran pelacakan dan midi, serta ID peristiwanya.

Tepat di bawah tampilan Peristiwa adalah tampilan linimasa. Linimasa menunjukkan jumlah ukuran sebuah segmen tertentu serta peristiwa apa pun yang terkait dengan segmen tersebut. Linimasa akan berubah untuk menampilkan segmen yang saat ini dipilih atau diputar. Anda dapat memicu peristiwa di jendela ini saat segmen diputar cukup dengan mengklik peristiwa di tampilan linimasa.


Jendela Utama JET Creator

Tombol di sepanjang sisi kiri jendela utama melakukan hal berikut:

Add: Menampilkan jendela segmen atau peristiwa untuk menambahkan segmen atau peristiwa baru

Revisi: Menampilkan jendela segmen atau peristiwa untuk memperbarui segmen atau peristiwa yang ada

Delete: Menghapus segmen atau peristiwa yang dipilih (akan meminta konfirmasi)

Pindahkan: Menampilkan jendela pemindahan yang memungkinkan Anda memindahkan segmen atau peristiwa yang dipilih secara tepat waktu

Queue All: Memasukkan (memilih) semua segmen ke antrean untuk pemutaran

Dequeue All: Menghapus (membatalkan pilihan) semua segmen

Play: Memulai pemutaran semua segmen dalam antrean. Tombol ini akan berubah menjadi Stop jika ada segmen sedang diputar

Audition: Menampilkan jendela Audition (lihat di bawah)

5.1 Jendela Segment

Jendela segmen adalah tempat atribut segmen tertentu ditetapkan dan diaudit, seperti yang ditunjukkan pada gambar di bawah. Sisi kiri jendela menampilkan atribut segmen yang disimpan dalam file JET. Sisi kanan jendela memungkinkan penulis menyetel flag pembisuan suara, mengulangi dan melakukan transposisi, serta mengaudit segmen seperti yang akan dimainkan dalam game JET.

Catatan: atribut audisi (tanda pembisuan suara, pengulangan, dan transposisi) tidak disimpan dalam file konten JET (.jet), tetapi ditentukan oleh game atau aplikasi itu sendiri. Dalam bahasa pemrograman, setelan ini berhubungan langsung dengan panggilan API ke mesin JET. Dengan menyertakannya di sini, penulis konten JET dapat menyimulasikan cara segmen akan merespons perintah API aplikasi selama gameplay.

Parameter segmen akan melakukan hal berikut:

  • Segment Name - Menetapkan nama segmen
  • File MIDI - Nama dan lokasi file MIDI tempat segmen berasal. Tombol di sebelah kanan akan memunculkan browser untuk menemukan file midi di hard drive.
  • File DLS - Nama dan lokasi file DLS2, jika ada, yang digunakan file MIDI untuk segmen tersebut.
  • Memulai M/B/T - Langkah awal, ketukan, dan ketukan segmen
  • Ending M/B/T - Ukuran akhir, ketukan, dan tick segmen
  • Quantize - Menghitung nilai untuk mengkuantifikasi segmen saat ini selama pemutaran

Kolom Audition terdiri adalah sebagai berikut:

  • Track Mutes - Menampilkan trek MIDI (bukan saluran) dalam file MIDI. Mengeklik kotak centang trek akan membisukan audio trek tersebut.
  • Channel - Menampilkan saluran MIDI yang ditetapkan untuk setiap trek
  • Name - Menampilkan peristiwa meta nama trek (jika ada) untuk setiap trek
  • Pengulangan - Menunjukkan frekuensi pengulangan segmen selama pemutaran
  • Transpose - Menunjukkan transposisi dalam semitone atau half-step yang harus ditransposisikan oleh segmen selama pemutaran
  • Di sebelah kanan jendela Audition, ada beberapa tombol tambahan. Tombol ini berfungsi seperti berikut:
  • OK - Memilih OK akan mengonfirmasi semua setelan segmen dan menutup jendela Segment
  • Cancel - Memilih Batal akan membatalkan perubahan dan menutup jendela Segment
  • Replicate - Menampilkan jendela Replicate Segment untuk memasukkan beberapa segmen sekaligus. Lihat di bawah ini.
  • Play/Stop Segment - Memulai atau Menghentikan pemutaran segmen menggunakan atribut segmen yang ditetapkan.
  • Play/Stop MIDI File - Memulai atau Menghentikan pemutaran file MIDI yang ditetapkan ke segmen.
  • Pause/Resume - Menjeda atau Melanjutkan pemutaran.

5.2 Jendela Event

Jendela peristiwa adalah tempat atribut peristiwa segmen tertentu ditetapkan dan diaudit, seperti yang ditunjukkan pada gambar di bawah. Untuk menambahkan peristiwa ke segmen, penulis harus terlebih dahulu memilih segmen yang akan berisi peristiwa, lalu pilih tombol Tambahkan. Tindakan ini akan memunculkan jendela Event.

Ada dua bagian utama di jendela peristiwa. Bagian segmen di sisi kiri jendela Event hanya untuk tampilan. Bagian ini menunjukkan atribut segmen untuk segmen tertentu. Bagian Peristiwa, di sisi kanan, adalah tempat peristiwa dapat ditetapkan. Parameter berikut tersedia:

Event Name - Menetapkan nama ke peristiwa

Event Type - Memilih jenis peristiwa yang akan ditetapkan.

Mulai M/B/T - Menetapkan ukuran, ketukan, dan ketukan awal untuk peristiwa

Ending M/B/T - Menetapkan birama, ketukan, dan tick akhir untuk peristiwa, jika memungkinkan

Track - Menetapkan trek dalam segmen tertentu tempat peristiwa akan diterapkan

Channel - Menetapkan saluran MIDI tempat peristiwa akan diterapkan. Saluran MIDI harus cocok dengan saluran MIDI trek

Event ID - Menetapkan ID peristiwa untuk peristiwa. Beberapa peristiwa dapat ditetapkan ke segmen yang sama, dan oleh karena itu, ID Peristiwa digunakan untuk mengidentifikasinya

Di sebelah kanan jendela Audition, ada beberapa tombol tambahan. Tombol ini berfungsi seperti berikut:

OK - Memilih OK akan mengonfirmasi semua setelan event dan menutup jendela Event

Cancel - Memilih Batal akan membatalkan perubahan dan menutup jendela Event

Replicate - Menampilkan jendela Replicate Event untuk memasukkan beberapa peristiwa sekaligus. Lihat di bawah.

Play/Stop - Memulai atau Menghentikan pemutaran segmen menggunakan atribut segmen yang ditetapkan. Saat segmen diputar, peristiwa dapat dipicu dan diaudisi.

Pemicu - Memicu peristiwa yang ditetapkan. Ini akan mereplikasi perintah API yang akan digunakan game JET untuk memicu peristiwa, sehingga memberikan metode kepada penulis konten untuk mengaudit perilaku peristiwa.

Mute/UnMute - Mute/UnMute akan membisukan atau membunyikan trek yang menjadi tujuan penetapan peristiwa

Pause/Resume - Menjeda atau Melanjutkan pemutaran.

Untuk mengaudisi perilaku peristiwa, Anda dapat memilih tombol Putar. Tindakan ini akan memulai pemutaran. Tombol pemicu akan mengirim peristiwa pemicu saat ditekan. Hal ini sama dengan memilih peristiwa pemicu hijau di linimasa.

Catatan: Peristiwa pemicu dimaksudkan untuk membunyikan satu trek segmen saat dipicu, lalu membisukan trek tersebut di akhir segmen pemicu. Oleh karena itu, Anda harus memastikan bahwa tanda bisukan ditetapkan untuk membisukan trek yang akan dibunyikan oleh peristiwa pemicu saat menerima peristiwa pemicu.

Baca Bagian 6 Di Balik Layar di bawah untuk mengetahui detail tentang cara kerja dan perilaku peristiwa pemicu.

5.3 Jendela Replicate

Sering kali saat membuat file JET, Anda harus membuat puluhan atau bahkan ratusan peristiwa. Anda mungkin juga harus memindahkan beberapa peristiwa. Jendela Replicate dan Move memungkinkan hal ini. Ada dua jendela Replicate untuk membuat beberapa segmen atau peristiwa. Jendela tersebut terlihat seperti ini:

Jendela Replicate Segment

Jendela Replicate Event

Fungsi kedua jendela Replicate ini sama. Setelah membuat segmen atau peristiwa awal, Anda dapat memilih tombol Replicate. Parameternya adalah sebagai berikut:

Awalan Nama - Menetapkan awalan untuk nama setiap segmen atau peristiwa yang dibuat

Mulai M/B/T - Menetapkan waktu mulai untuk segmen atau acara pertama

Increment M/B/T - Menetapkan waktu di antara segmen atau peristiwa yang dibuat.

Number - Menetapkan jumlah segmen atau peristiwa yang ingin Anda buat. Jika angkanya melebihi panjang file MIDI (untuk segmen) atau segmen (untuk peristiwa), objek tersebut tidak akan dibuat.

Preview - Pratinjau memungkinkan Anda memeriksa objek yang dibuat sebelum memilih OK untuk menyisipkannya.

5.4 Jendela Move

Fungsi Move mirip dengan fungsi Replicate yang memungkinkan Anda mengedit beberapa segmen atau peristiwa sekaligus, dalam hal ini, memindahkannya tepat waktu. Seperti Replicate, ada dua jendela Pindahkan, satu untuk Segmen dan satu untuk Peristiwa. Jendela tersebut akan terlihat seperti berikut:

Jendela Move Event

Untuk menggunakan Move, pertama-tama pilih segmen atau peristiwa yang ingin Anda pindahkan sekaligus, lalu klik tombol Move. Parameternya sebagai berikut:

Mulai M/B/T - Menetapkan waktu mulai untuk segmen atau acara pertama

Penambahan M/B/T - Menyetel waktu dalam M/B/T yang Anda inginkan untuk memindahkan objek.

Preview - Pratinjau memungkinkan Anda memeriksa objek yang dibuat sebelum memilih OK untuk memindahkannya.

5.5 Jendela Audition

Mengklik tombol Audition di jendela utama aplikasi JET Creator akan membuka jendela Audition. Di sini, penulis konten atau pemrogram aplikasi dapat menyimulasikan pemutaran interaktif seperti yang mungkin terjadi di aplikasi seluler atau game itu sendiri.

Jendela JET Audition

Ada empat bagian utama di jendela audisi. Bagian paling kiri menampilkan segmen yang tersedia beserta durasinya dalam hitungan detik. Bagian tengah menampilkan daftar segmen yang sedang diantrekan untuk pemutaran beserta status pemutarannya. Bagian paling kanan menampilkan tanda pembisuan suara untuk segmen yang sedang diputar. Bagian linimasa di bagian bawah sama dengan yang ada di jendela utama. Bagian ini menampilkan segmen yang sedang diputar serta tampilan visual pemicu peristiwa apa pun yang terkait dengan segmen tersebut.

Jendela Audition memungkinkan Anda mengantrekan segmen apa pun dalam urutan apa pun untuk pemutaran. Untuk melakukannya, cukup pilih segmen yang ingin Anda isyaratkan dan tekan Queue. Segmen tersebut akan muncul di jendela antrean dan mulai diputar (jika merupakan segmen pertama). Selanjutnya, Anda dapat memilih segmen atau segmen lain dan mengisyaratkannya untuk diputar. Saat segmen selesai diputar, segmen berikutnya dalam antrean akan mulai diputar. Seperti jendela lain di JET Creator, Anda dapat membisukan, membunyikan, memicu klip peristiwa, dll. secara real time saat setiap segmen diputar.

Untuk detailnya, tombol tersebut berperilaku seperti berikut:

Queue - memuat segmen yang dipilih ke antrean dan memulai pemutaran

Cancel and Queue - membatalkan segmen yang sedang diputar sebelum mengantrekan segmen yang dipilih untuk pemutaran

Cancel Current - membatalkan segmen yang sedang diputar dalam antrean dan memulai pemutaran segmen berikutnya

Stop - menghentikan pemutaran semua segmen yang diantrekan

Bisukan Semua - membisukan semua trek di segmen saat ini

Mute None - membunyikan semua trek dalam segmen saat ini

Original Mutes - menyetel tanda mute asli untuk segmen saat ini

Kombinasi opsi pemutaran ini memungkinkan penulis atau programmer aplikasi mengaudisi perilaku apa pun yang mungkin ditemukan oleh aplikasi musik interaktif.

5.6 Menu JET Creator

Menu JET Creator menyediakan akses ke banyak parameter di jendela utama serta beberapa parameter tambahan.

5.6.1 Menu File

Menu File berisi elemen-elemen berikut:

New - Membuat file JET Creator baru (.jtc)

Open - Membuka file JET Creator yang sudah ada

Save - Menyimpan file JET Creator yang sedang dibuka

Save As - Menyimpan file JET Creator yang sedang dibuka ke file baru

Import Project - Mengimpor arsip JET Creator (.zip)

Export Project - Mengekspor arsip JET Creator (.zip)

Exit - Keluar dari aplikasi

5.6.2 Menu Edit

Menu Edit berisi elemen-elemen berikut:

Undo - Urungkan akan mengurungkan pengeditan terakhir yang dibuat

Redo - Redo akan mengulangi hal yang terakhir diurungkan

Cut - Menyalin parameter yang dipilih ke papan klip dan Menghapus pilihan

Copy - Menyalin parameter yang dipilih ke papan klip dan menyimpan pilihan

Tempel - Tempelkan parameter yang dipilih

5.6.3 JET

Menu Edit berisi elemen-elemen berikut:

Properties - Memunculkan jendela prioritas JET Creator. Jendela ini memungkinkan Anda menetapkan kondisi berikut untuk file JET tertentu:

Copyright Info - Berisi info hak cipta yang akan disisipkan ke dalam file JET

Chase Controllers - Opsi untuk memilih pengontrol (on/off). Opsi ini biasanya harus AKTIF.

Delete Empty Tracks - Menghapus semua trek MIDI yang kosong

5.6.4 Segment

Segmen Menu berisi elemen-elemen berikut:

Add Segment - Memunculkan jendela Segment

Update Segment - Memperbarui atribut segmen

Delete Segmen - Menghapus segmen saat ini dari Daftar Segmen

5.6.5 Help

Menu Bantuan akan berisi setidaknya elemen berikut:

JET Creator Help - akan meluncurkan dokumen bantuan PDF atau membuka bantuan online

Tentang - nomor versi JET Creator, info SONiVOX

6 Penjelasan Peristiwa Pemicu

Memecah file MIDI menjadi beberapa segmen individual (non-linear) dan mengantrekan segmen tersebut untuk diputar dalam game berdasarkan peristiwa dalam game adalah salah satu cara agar file musik JET bersifat interaktif. Peristiwa pemicu adalah metode tambahan untuk pemutaran interaktif. Keduanya akan digunakan bersama-sama dalam game atau aplikasi interaktif.

Peristiwa pemicu memungkinkan hal-hal berikut:

  1. Jalur dalam segmen MIDI dapat diaktifkan atau dinonaktifkan berdasarkan peristiwa game. Misalnya, komposer dapat menulis dua trek drum, yaitu satu trek cepat dan satu trek lambat. Jika aksi dalam game cepat, trek drum cepat dapat diputar. Jika aksi dalam game sedang berjalan lambat, trek drum lambat dapat diputar.
  2. Tindakan pengguna dapat dibandingkan dengan peristiwa pemicu yang sudah disisipkan ke dalam file musik di tempat yang tepat secara musikal. Berdasarkan hasilnya, skor atau tindakan game lainnya dapat berlangsung.
  3. Transisi musik antara level atau urutan tindakan dapat disinkronkan agar terdengar mulus secara musikal.

Di balik layar, JET menggunakan peristiwa CC MIDI standar untuk menyelesaikan tindakan ini dan menyinkronkan audio. Pengontrol yang digunakan JET tidak ditetapkan untuk penggunaan khusus menurut spesifikasi. Definisi pengontrol spesifik adalah sebagai berikut:

Pengontrol 80-83 Disediakan untuk digunakan oleh aplikasi

Pengontrol 102 Penanda peristiwa JET

Pengontrol 103 Penanda klip JET

Pengontrol 104-119 Disediakan untuk penggunaan mendatang

6.1 Penanda Klip JET (CC103)

Pengontrol 103 disediakan untuk menandai klip dalam trek MIDI yang dapat dipicu oleh panggilan API JET_TriggerClip. ID klip dienkode dalam 6 bit rendah dari nilai pengontrol. Bit 6 disetel ke satu untuk menunjukkan titik mulai klip, dan disetel ke nol untuk menunjukkan akhir klip.

Misalnya, untuk mengidentifikasi klip dengan ID klip 1, penulis menyisipkan peristiwa pengontrol MIDI dengan pengontrol=103 dan value=65 di awal klip, serta peristiwa lain dengan pengontrol=103 dan value=1 di akhir klip. Saat fungsi JET_TriggerClip() dipanggil dengan ID klip 1, trek akan dibunyikan saat nilai pengontrol 65 ditemukan dan dibisukan lagi saat nilai pengontrol 1 ditemukan.

Gambar 5: Klip Tersinkron

Pada gambar di atas, jika fungsi JET_TriggerClip() dipanggil sebelum peristiwa pengontrol pertama, Trek 3 akan dibunyikan saat peristiwa pengontrol pertama terjadi, klip pertama akan diputar, dan trek akan dibisukan saat peristiwa pengontrol kedua terjadi. Jika fungsi JET_TriggerClip() dipanggil setelah peristiwa pengontrol pertama terjadi, Trek 3 akan dibunyikan saat peristiwa pengontrol ketiga terjadi, klip kedua akan diputar, dan trek akan dibisukan lagi saat peristiwa pengontrol keempat terjadi.

Catatan: Biasanya, trek yang berisi klip dibisukan oleh aplikasi saat segmen pertama kali diantrekan oleh panggilan ke JET_QueueSegment(). Jika tidak dibisukan, klip akan selalu diputar hingga Jet_TriggerClip() dipanggil dengan ID klip.

6.2 Penanda Peristiwa JET (CC102)

Pengontrol 102 dicadangkan untuk menandai peristiwa dalam streaming MIDI yang spesifik untuk fungsi JET. Saat ini, satu-satunya nilai yang ditetapkan adalah 0, yang menandai akhir segmen untuk tujuan pengaturan waktu.

Biasanya, JET memulai pemutaran segmen berikutnya (atau mengulangi segmen saat ini) saat peristiwa meta akhir trek MIDI ditemukan. Beberapa alat penulisan MIDI mempersulit penempatan penanda akhir trek secara akurat, sehingga mengakibatkan masalah sinkronisasi saat segmen digabungkan.

Untuk menghindari masalah ini, penulis dapat menempatkan penanda akhir segmen JET (pengontrol=102, nilai=0) pada titik tempat segmen akan diulang. Saat penanda akhir segmen ditemukan, segmen berikutnya akan dipicu, atau jika segmen saat ini diulang, pemutaran akan dilanjutkan pada awal segmen.

Penanda titik berakhir segmen juga dapat digunakan untuk memungkinkan penyelesaian gambar musik di luar akhir ukuran yang menandai awal segmen berikutnya. Misalnya, penulis konten mungkin membuat segmen 4 batang dengan isian drum yang berakhir pada ketukan 1 dari bar ke-5, yaitu bar di luar ujung alami segmen. Dengan menempatkan penanda akhir segmen di akhir batang ke-4, segmen berikutnya akan dipicu, tetapi isian drum akan berlanjut secara paralel dengan segmen berikutnya yang memberikan kontinuitas musikal.

Gambar 6: Penanda Titik Berakhir Segmen

6.3 Pengontrol Aplikasi (CC80-83)

Aplikasi dapat menggunakan pengontrol dalam rentang ini untuk tujuannya sendiri. Saat pengontrol dalam rentang ini ditemukan, peristiwa akan dimasukkan ke dalam antrean peristiwa yang dapat dikueri oleh aplikasi. Beberapa penggunaan yang memungkinkan antara lain menyinkronkan peristiwa video dengan audio dan menandai titik dalam segmen MIDI untuk mengantrekan segmen berikutnya. Rentang pengontrol yang dipantau oleh aplikasi dapat diubah oleh aplikasi selama inisialisasi.

7 Pedoman JET Creator

7.1 Urutan Tugas

Seperti semua project lainnya, mendiskusikan dan mendesain skema musik interaktif dengan desainer dan programmer game sebelum memulai penyusunan Anda merupakan tindakan terbaik. Garis besar dan/atau spesifikasi dapat sangat membantu Anda agar tidak perlu mengulang berbagai hal setelah game dibuat.

Secara umum, sebaiknya tulis musik terlebih dahulu dalam DAW pilihan Anda seperti saat menyusun pada umumnya, lalu pisahkan file MIDI final sesuai kebutuhan untuk aplikasi. Selanjutnya, buka JET Creator dan buat semua segmen musik Anda dalam urutan yang paling mudah untuk dipratinjau saat diputar secara berurutan. Terakhir, tambahkan Event JET untuk mengontrol segmen melalui game Android dan jalankan Audition sesuai kebutuhan di JET Creator. Terakhir, simpan project di JET Creator dan serahkan file .jet ke programer untuk diintegrasikan ke dalam game. Setelah melihat pratinjaunya, Anda kemungkinan perlu melakukan perubahan pada file MIDI dan atribut JET Creator Anda.

7.2 Menghemat Memori

Jika ingin menghemat memori, buat sesedikit mungkin file MIDI, lalu buat beberapa segmen dari file MIDI tersebut. Misalnya, file MIDI 12 bar dengan tiga bagian yang terdiri dari 4 bar, A, B, C, dapat membuat lagu yang lebih panjang. Cukup buat beberapa segmen yang mereferensikan satu file MIDI tersebut, lalu urutkan sesuai keinginan Anda. Misalnya, A, A, B, A, C, A, B, A, A akan membuat lagu dengan 36 bar. Gunakan JET untuk menambahkan pengulangan, melakukan transposisi segmen, serta membisukan dan membunyikan trek secara interaktif agar terdengar lebih menarik.

7.3 Replikasi

Untuk mempercepat penambahan segmen atau peristiwa, gunakan perintah Replicate (Replikasi). Replicate dapat menambahkan beberapa segmen atau peristiwa sekaligus serta menggunakan parameter offset dan konvensi penamaan awalan agar semuanya tetap mudah dibaca. Perintah MOVE juga berguna untuk memindahkan beberapa peristiwa menurut birama, ketukan, atau subbagian ketukan dalam jumlah yang ditentukan.

7.4 Opsi Interaktif

Ada beberapa konsep audio interaktif yang dapat dibuat di JET. Berikut adalah beberapa contohnya, meskipun kami berharap developer dapat memberikan contoh lain yang belum terpikirkan oleh kami! Di antaranya:

7.4.1 Pemicuan Beberapa Segmen

Dalam metode ini, aplikasi memicu segmen tertentu berdasarkan peristiwa dalam game. Misalnya, lorong dengan banyak pertarungan dapat memicu segmen 1, dan lorong tanpa pertarungan dapat memicu segmen 2. Menggunakan JET TriggerClips sehubungan dengan metode ini akan menciptakan variasi yang lebih beragam.

7.4.2 Array Pembisuan

Dalam metode ini, aplikasi memicu aktivitas pembisuan dan pembunyian ke trek tertentu dalam satu urutan MIDI. Misalnya, lorong dengan banyak pertarungan dapat memutar trek MIDI 1-16, dan lorong tanpa pertarungan dapat memutar file midi yang sama, tetapi membisukan trek 9-16. Menggunakan JET TriggerClips sehubungan dengan metode ini akan menciptakan variasi yang lebih beragam.

7.4.3 Gameplay Berdasarkan Musik

Game yang didasarkan pada musik mirip dengan Guitar Hero dan JETBOY; konten musiknya menentukan bagaimana peristiwa grafis ditampilkan. Aplikasi kemudian akan meminta respons pengguna terhadap peristiwa grafis, lalu mengubah musiknya secara interaktif. Dalam metode ini, game menggunakan JET Application Events, pengontrol MIDI yang disematkan dalam file MIDI dan dibaca oleh game secara real time. Berdasarkan respons pengguna, pemicuan beberapa segmen dan/atau array pembisuan dapat ditetapkan.