Ekstensi file SMF. Format SMF Buka file smf

Jika Anda memiliki komputer yang diinstal perangkat lunak antivirus bisa pindai semua file di komputer, serta setiap file secara terpisah... Anda dapat memindai file apa pun dengan mengklik kanan file dan memilih opsi yang sesuai untuk memindai file dari virus.

Misalnya, pada gambar ini, file file-saya.smf, maka Anda perlu klik kanan pada file ini, dan pilih opsi dari menu file "Pindai dengan AVG"... Memilih opsi ini akan membuka AVG Antivirus, yang akan memindai file ini dari virus.


Terkadang kesalahan dapat terjadi karena instalasi perangkat lunak yang salah, yang mungkin disebabkan oleh masalah yang dihadapi selama proses penginstalan. Ini dapat mengganggu sistem operasi Anda tautkan file SMF Anda ke perangkat lunak aplikasi yang benar mempengaruhi apa yang disebut "Asosiasi ekstensi file".

Terkadang sederhana menginstal ulang Apache OpenOffice mungkin memecahkan masalah Anda dengan menghubungkan SMF dengan Apache OpenOffice dengan benar. Dalam kasus lain, masalah dengan asosiasi file dapat disebabkan oleh: pemrograman perangkat lunak yang buruk pengembang dan Anda mungkin perlu menghubungi pengembang untuk bantuan lebih lanjut.


Nasihat: Coba perbarui Apache OpenOffice ke versi terbaru untuk memastikan patch dan pembaruan terbaru telah diinstal.


Ini mungkin tampak terlalu jelas, tetapi sering file SMF itu sendiri mungkin menyebabkan masalah... Jika Anda menerima file melalui lampiran email atau mengunduhnya dari situs web dan proses pengunduhan terganggu (misalnya, pemadaman listrik atau alasan lain), file mungkin rusak... Jika memungkinkan, coba dapatkan salinan baru file SMF dan coba buka lagi.


Dengan hati-hati: File yang rusak dapat menyebabkan kerusakan tambahan pada malware sebelumnya atau yang sudah ada sebelumnya di PC Anda, jadi sangat penting bagi Anda untuk memiliki antivirus yang diperbarui yang berjalan di PC Anda setiap saat.


Jika file SMF Anda terkait dengan perangkat keras di komputer Anda untuk membuka file yang mungkin Anda perlukan perbarui driver perangkat berhubungan dengan peralatan ini.

Masalah ini biasanya dikaitkan dengan jenis file media yang bergantung pada keberhasilan pembukaan perangkat keras di dalam komputer, misalnya, kartu suara atau kartu video... Misalnya, jika Anda mencoba membuka file audio tetapi tidak dapat membukanya, Anda mungkin perlu perbarui driver kartu suara.


Nasihat: Jika, ketika Anda mencoba membuka file SMF, Anda mendapatkan Pesan kesalahan terkait file SYS, masalahnya mungkin terkait dengan driver perangkat yang rusak atau ketinggalan zaman yang perlu diperbarui. Proses ini dapat difasilitasi dengan menggunakan perangkat lunak pembaruan driver seperti DriverDoc.


Jika langkah-langkah tidak menyelesaikan masalah dan Anda masih mengalami masalah saat membuka file SMF, bisa jadi karena kurangnya sumber daya sistem yang tersedia... Beberapa versi file SMF mungkin memerlukan sejumlah besar sumber daya (mis. memori / RAM, daya pemrosesan) untuk dibuka dengan benar di komputer Anda. Masalah ini cukup sering terjadi jika Anda menggunakan perangkat keras komputer yang cukup lama dan pada saat yang sama sistem operasi yang jauh lebih baru.

Masalah ini dapat terjadi saat komputer mengalami kesulitan menyelesaikan tugas, karena sistem operasi (dan layanan lain yang berjalan di latar belakang) dapat mengkonsumsi terlalu banyak sumber daya untuk membuka file SMF... Coba tutup semua aplikasi di PC Anda sebelum membuka File Formula StarMath. Dengan mengosongkan semua sumber daya yang tersedia di komputer Anda, Anda menyediakan lingkungan yang lebih baik untuk mencoba membuka file SMF.


Jika kamu selesaikan semua langkah di atas dan file SMF Anda masih tidak dapat dibuka, Anda mungkin perlu menjalankannya peningkatan peralatan... Dalam kebanyakan kasus, bahkan dengan versi perangkat keras yang lebih lama, kekuatan pemrosesan mungkin masih lebih dari cukup untuk sebagian besar aplikasi kustom (kecuali jika Anda melakukan banyak pekerjaan intensif CPU seperti rendering 3D, pemodelan keuangan / ilmiah, atau pekerjaan multimedia yang berat) ... Lewat sini, kemungkinan komputer Anda tidak memiliki cukup memori(lebih sering disebut "RAM", atau memori akses acak) untuk melakukan tugas membuka file.

Bagian 5 dari serangkaian artikel yang merinci protokol MIDI.

Salah satu dari tiga bagian protokol MIDI adalah spesifikasi format penyimpanan data (ingat, dua lainnya adalah format pesan dan spesifikasi antarmuka perangkat keras). Format pesan telah dibahas dalam tiga artikel pertama dari seri ini, sekarang saatnya untuk format penyimpanan. Itu diusulkan oleh organisasi MMA pada akhir 1987 dan diberi nama Standard MIDI Files (SMF).

Tujuan file MIDI adalah untuk memungkinkan peristiwa (yaitu, pesan MIDI yang dicap waktu) untuk dipertukarkan antara berbagai perangkat dan program. Sebelum munculnya file MIDI standar, pengaturan yang disiapkan dalam satu sequencer tidak dapat dimuat ke yang lain karena format yang tidak kompatibel. Ini bukan untuk mengatakan bahwa dengan munculnya SMF, semua produsen sequencer telah beralih ke format ini. Ada beberapa alasan untuk ini, dan kami juga akan membicarakannya hari ini.

Karena penyimpanan informasi terkait langsung dengan perangkat sequencer, kami akan membahas masalah ini secara lebih rinci, tetapi hanya sejauh yang diperlukan untuk memahami SMF. Dan, tidak diragukan lagi, kami akan mencurahkan salah satu artikel berikutnya dalam siklus untuk sequencer.

Acara
Pesan MIDI yang diberi cap waktu disebut peristiwa... Unit yang berbeda dapat digunakan untuk menunjukkan waktu - tick, pulsa internal, waktu dalam format SMPTE, dll. Penting untuk memahami perbedaan mendasar antara suatu peristiwa dan pesan. Pesan "hidup" selama sepersekian milidetik waktu nyata - dari saat dihasilkan oleh sumber hingga saat dikirim ke penerima untuk dieksekusi. Itu dapat ditangkap dalam proses transmisi melalui kabel MIDI dalam bentuk satu set pulsa. Suatu peristiwa adalah beberapa byte informasi yang direkam dalam memori perangkat, atas dasar yang pesan akan dihasilkan di masa depan, pada waktu yang ditentukan.

Misalnya, sequencer dapat menyimpan acara "pilih catatan" dengan stempel waktu 100 ms dari awal pemutaran. Anda dapat mengedit acara ini dalam dua dimensi: pertama, ubah parameter pesan MIDI itu sendiri (dalam hal ini, nada atau dinamika nada), dan kedua, pindahkan nada di sepanjang trek, yaitu, ubah waktu eksekusi dari pesan.

Peristiwa muncul di memori sequencer saat merekam pesan MIDI. Saat Anda menekan tombol Rekam, sequencer menyalakan generator pulsa perangkat keras (centang) dan mulai "mendengarkan" input MIDI yang ditentukan. Misalnya, saat Anda menekan tombol, input menerima pesan "pilih catatan". Sequencer terlihat - aha, pesan tiba di centang ke-20, dan menulisnya ke memori dengan label 20. Setelah beberapa detik, mereka melepaskan kuncinya - pesan "hapus catatan" datang, generator internal dengan senang hati melambai 64 kutu ke sequencer pada saat itu. Sequencer menyimpan pesan dengan label 64. Sekarang kita berurusan dengan dua event - Note On dan Note Off. Generator pulsa dihidupkan lagi selama pemutaran. Ketika tick ke-20 muncul, pesan Note On dikirim ke output MIDI sequencer, tick ke 64 adalah Note Off. Kami merekam dan kemudian memutar ulang aksi pemain!

Jelas, hal yang sama dapat dilakukan secara offline, yaitu tanpa perlu pertunjukan langsung. Dengan mengklik mouse di tempat yang tepat di trek (dan telah memilih durasi nada sebelumnya), kami akan membangun memori sequencer persis seperti gambar sebelumnya.

Jenis memori
Sekaranglah waktunya untuk menerapkan dua istilah komputer yang menakutkan: memori primer dan sekunder. Memori primer (atau internal) adalah memori sequencer tempat pesan direkam dan peristiwa disimpan di seluruh sesi. Isi memori ini dihapus saat daya dimatikan. Interpretasi ini lebih cocok untuk pengurutan perangkat keras. Dalam sequencer perangkat lunak, memori utama hanyalah RAM komputer. Untuk menyimpan isi memori utama dalam waktu yang lama, digunakan memori sekunder, atau dengan kata lain pembawa data. Ini bisa berupa floppy disk, hard drive, kartu pintar, dan sejenisnya.

Jumlah memori utama dalam sequencer perangkat keras dan workstation (ingat, workstation adalah generator nada dan sequencer dalam satu kotak) biasanya dinyatakan dalam jumlah catatan yang disimpan (misalnya, 200 ribu). Terkadang volume dinyatakan dalam peristiwa, dalam hal ini Anda harus waspada - satu nada memerlukan dua peristiwa untuk disimpan (menekan dan melepaskan kunci), dan memutar roda nada atau aftertouch dapat menghasilkan hingga 100 peristiwa atau lebih. Kebetulan ukuran memori sequencer dinyatakan dalam unit komputer asli - kilobyte. Tetapi ini juga sangat tidak nyaman - satu peristiwa dapat menempati jumlah byte yang berbeda (dari lima hingga beberapa puluh).

Dalam pengurutan perangkat lunak modern, hanya sedikit orang yang peduli dengan jumlah memori utama - bahkan pada mesin dengan RAM 128 MB, Anda dapat melupakan batasan apa pun saat bekerja dengan data MIDI. Selain itu, ada sequencer yang dapat memutar aransemen langsung dari disk, tanpa memuatnya ke memori utama (dan, omong-omong, merekamnya juga), yang biasanya menghapus perbedaan antara kedua jenis memori.

Dalam memori sekunder, data biasanya ditulis ke file. Sebagian besar sequencer memiliki format mereka sendiri untuk file ini, yang mempersulit pertukaran pengaturan yang dibuat di perangkat atau program yang berbeda. Disebutkan sebelumnya bahwa inilah alasan utama didirikannya SMF.

Pengukuran waktu
Faktanya, tidak ada "kutu" di dalam sequencer. Ada pengatur waktu perangkat keras yang menghasilkan pulsa dengan frekuensi yang sangat konstan (misalnya, setiap mikrodetik). Memaksa musisi untuk mengukur waktu dalam mikrodetik akan menjadi ejekan yang mengerikan, seperti halnya, dalam satuan waktu nyata lainnya (detik, menit). Musisi terbiasa berpikir dalam bar dan ketukan, dan mengekspresikan waktu dalam satuan relatif (durasi nada), tergantung pada tempo saat ini.

"Tidak masalah," jawab pabrikan, "biarkan mereka mengukurnya karena lebih nyaman bagi mereka." Hanya unit pengukuran minimum yang tidak akan menjadi durasi ke-32, tetapi tick yang diambil secara konvensional (unit ini bahkan lebih kecil, sehingga, misalnya, satu tiga puluh detik dapat berisi 48 tick). Sejak zaman klasik, tempo diukur dengan jumlah seperempat per menit (BPM, denyut per menit), maka mereka memutuskan untuk mengambil seperempat sebagai durasi utama dan menunjukkan jumlah ticks per quarter - PPQN (Pulse Per Seperempat not). Semakin besar PPQN, semakin baik resolusi sequencer dan semakin akurat dalam waktu menangkap pesan selama perekaman dan output ke output MIDI selama pemutaran. Sebagian besar sequencer memungkinkan Anda untuk mengatur PPQN secara sewenang-wenang - misalnya, dari 32 hingga 1536 tick per kuartal (sequencer modern - hingga 15360 PPQN).

Kutu adalah unit yang bergantung pada laju: semakin cepat laju, semakin pendek interval antara kutu dalam satuan waktu nyata. Interval ini dapat ditemukan dengan rumus pada Gambar. satu.

Misalnya, pada 120 BPM dan 96 PPQN, kutu akan mengikuti setiap 5,208 milidetik. Pada resolusi yang sama dan 180 BPM, interval antar tick akan dikurangi menjadi 3,472 ms. Bagaimana cara sequencer menghitung kutu jika timer internalnya berdenyut setiap mikrodetik? Ini sangat sederhana: berdasarkan tempo dan resolusi saat ini dalam seperempat, persis sesuai dengan rumus yang ditentukan. Karena satu milidetik berisi 1000 mikrodetik, dalam contoh terakhir sequencer akan menghasilkan centang lain ketika menerima 3472 pulsa dari timer.

Ketika resolusi tinggi tidak masuk akal
Jika sequencer dan generator nada berada "di bawah atap yang sama" (workstation atau komputer dengan perangkat lunak sequencer dan synthesizer pada kartu suara, atau synthesizer virtual), maka resolusi internal sistem tersebut dapat menjadi tinggi secara sewenang-wenang (15360 PPQN sangat mengesankan). Ini memungkinkan Anda untuk menyinkronkan data MIDI dan audio dengan akurasi sampel. Tetapi segera setelah kami menghubungkan sequencer dan generator nada dengan kabel MIDI melalui antarmuka MIDI, resolusi tinggi menjadi tidak relevan.

Mengapa? Biarkan saya mengingatkan Anda bahwa satu byte ditransmisikan melalui antarmuka MIDI dalam 320 mikrodetik. Ini berarti, misalnya, pesan pencatat (terdiri dari tiga byte) akan ditransmisikan selama 960 s, atau hampir satu milidetik. Sekarang bayangkan bahwa dalam sequencer pada 120 BPM dan 2048 PPQN, dua nada diprogram dengan dua centang terpisah. Dalam satuan waktu nyata, ini adalah 488 mikrodetik. Jadi: generator nada tidak akan dapat menerima nada kedua 488 mikrodetik setelah yang pertama, tetapi pada kenyataannya - hanya setelah 960 mikrodetik. Jadi dia akan melakukannya setelah tidak dua kutu, tapi hampir empat.

Oleh karena itu kesimpulannya: ketika bekerja melalui antarmuka MIDI (ketika sequencer dan generator nada dipisahkan), resolusi sequencer lebih dari satu tick per 960 mikrodetik tidak masuk akal. Untuk mengetahui berapa banyak yang akan di PPQN, Anda dapat menggunakan rumus pada Gambar. 2.

Tabel di Gambar. 3 menunjukkan nilai PPQN untuk tempo yang berbeda, yang tidak ada gunanya untuk dilampaui.

Posisi suatu peristiwa pada timeline diatur dalam sequencer, biasanya dalam format "bar: beats: ticks", misalnya 22: 3: 152. Yaitu: birama ke dua puluh dua, ketukan ketiga, ketukan ke-152 dari awal ketukan ketiga. Prinsip pengaturan waktu ini (istilah bahasa Inggris - Timebase) disebut musikal, karena akrab dan nyaman bagi musisi. Harap dicatat bahwa Anda perlu mengetahui tanda waktu saat ini untuk bekerja dalam format ini. Artinya, berapa banyak ketukan yang terkandung dalam pengukur dan apa yang sama dengan setiap ketukan.

Jadi, dengan tanda waktu 4/4, satu ketukan sama dengan seperempat, dan satu nada berisi empat ketukan. Pada resolusi 384 PPQN, akan ada 384 tick dalam satu ketukan, dan akan ada 1536 tick dalam setiap tick (384 x 4). Pada 6/8 dan resolusi yang sama, satu ketukan akan menjadi 192 tick (seperdelapan adalah setengah dari seperempat), dan satu ketukan akan memiliki enam ketukan atau 1152 tick (192 x 6). Jadi, 22: 3: 152 dalam kasus pertama berarti 35096 tick dari awal lagu (22 x 1536 + 3 x 384 + 152), dan dalam kasus kedua - 26072 tick (22 x 1152 + 3 x 192 + 152) .

Jadi, untuk menentukan posisi suatu peristiwa dalam satuan waktu nyata berdasarkan format "bar: beats: ticks", Anda perlu mengetahui tiga parameter: tempo saat ini, tanda waktu, dan resolusi dalam ticks per quarter (PPQN).

Ada kemungkinan pengaturan waktu lain, ketika posisi suatu peristiwa di trek dinyatakan dalam satuan absolut yang tidak bergantung pada tempo, paling sering dalam format waktu SMPTE - "jam: menit: detik: bingkai". Prinsip pengaturan waktu ini disebut "berbasis kode waktu" (timecode-based, absolute). Kebutuhan itu muncul ketika sequencer bekerja sama dengan tape recorder atau peralatan film / video. Operasi pengeditan dengan materi film, video dan audio, menentukan posisi awal dan akhir rekaman lebih nyaman untuk dilakukan, diikat ke skala absolut, dan bukan pada ukuran dan ketukan.

Dalam hal ini, koordinat acara pada penggaris waktu tergantung pada tempo saat ini. Jadi dengan tempo 120 BPM, ketukan pertama dari ukuran kedua dapat memiliki waktu SMPTE 00: 00: 02:00, dan dengan tempo 60 BPM - 00: 00: 04: 00. Ketika suatu peristiwa diposisikan dalam sebuah bingkai (antara detik), koordinatnya juga akan berbeda dengan format bingkai yang berbeda (jumlah bingkai per detik). Anda dapat membaca lebih lanjut tentang Kode Waktu SMPTE dan MIDI di artikel seri sebelumnya.

Jumlah panjang variabel
Cukup penyimpangan liris, sekarang tugas kita adalah memahami format penyimpanan data. Dan tantangan pertama yang dihadapi developer SMF adalah bagaimana menjaga waktu event.

Ada dua opsi di sini: untuk menyimpan untuk setiap acara waktu dari awal lagu, atau dari acara terakhir sebelumnya (pada saluran yang sama). Namun, opsi pertama tidak rasional, karena paling sering interval antara peristiwa kecil, peristiwa tetangga memiliki waktu eksekusi yang dekat satu sama lain. Jadi, dalam bagian tiga nada, yang pertama dapat memiliki waktu, katakanlah, 22: 3: 152, yang kedua - 22: 3: 244, yang ketiga - 22: 3: 288. Untuk menyimpan angka-angka ini (diterjemahkan ke dalam tanda centang dari awal lagu), Anda perlu memesan setidaknya empat byte untuk masing-masing. Jika Anda mengikuti jalur kedua, maka alih-alih tiga angka besar, Anda dapat menyimpan satu awal yang besar (22: 3: 152), dan setelah itu - dua yang kecil, perbedaan kutu antara yang pertama dan kedua, dan yang kedua dan catatan ketiga (dalam hal ini, 92 dan 44), satu byte sudah cukup untuk mereka. Tapi tetap saja, masalahnya tetap: tergantung pada acaranya, Anda perlu mengalokasikan jumlah byte yang berbeda untuk menghemat waktu.

Jika SMF sedang dikembangkan saat ini (dan bahkan oleh Microsoft, yang umumnya tidak terlalu peduli dengan ukuran file dan memori yang dibutuhkan), masalah ini akan ditutup-tutupi. Kami mengalokasikan bidang tetap untuk menghemat waktu, katakanlah, 8 byte per peristiwa, dan tidak menderita. Namun, pada tahun 1988, memori primer (RAM) sangat mahal, setiap byte dihitung, dan sekunder (media disk) memiliki ukuran yang sangat sederhana. Oleh karena itu, pengembang SMF ingin mendapatkan format yang paling ringkas.

Diputuskan untuk tetap waktu delta, yaitu, perbedaan tanda centang antara acara ini dan yang sebelumnya (atau awal lagu). Misalnya, jika peristiwa pertama - pemukulan not ke oktaf pertama - terjadi pada waktu 40 tik dari awal lagu, maka waktu deltanya adalah 40. Jika setelah empat tik not F dimainkan, maka waktu deltanya adalah 4. Jika dua peristiwa terjadi secara bersamaan, maka salah satunya diberi waktu delta sama dengan nol. Jika peristiwa itu terjadi tepat di awal lagu, ia juga memiliki waktu delta nol. Namun, peristiwa berikutnya dapat terjadi dalam satu setengah jam (yaitu, dalam beberapa juta tick). Bagaimana menjadi dalam kasus ini? Bagaimanapun, memori perlu disimpan, dan tidak diinginkan untuk mengalokasikan bidang tetap beberapa byte untuk waktu delta.

Disebut panjang variabel... Mereka menyediakan cara yang nyaman untuk menulis bilangan bulat, dari terkecil ke terbesar, tanpa harus mengalokasikan sejumlah byte tetap untuk nomor tersebut. Bit dari nomor asli dikemas menjadi satu atau lebih byte: setiap byte memiliki tujuh bit (di sebelah kanan, bit 0 sampai 6). Bit paling signifikan dalam satu byte adalah layanan; semua byte dalam seri, kecuali yang terakhir, harus berisi satu, yang terakhir - nol. Beberapa contoh kemasan ditunjukkan pada Gambar. 4.

Misalnya, Anda perlu mengemas nomor 64 (hex 0x40) ke dalam format panjang variabel. Dalam bentuk biner, angka ini ditulis sebagai 0100 0000. Hanya ada tujuh bit signifikan, jadi angka ini dikemas menjadi satu byte tanpa perubahan - 0100 0000 (juga merupakan byte terakhir dari rangkaian), bit paling signifikan adalah 0 .

Sekarang jumlahnya 128 (0x80). Dalam bentuk biner, ditulis 1000 0000. Ada delapan bit signifikan, jadi semuanya tidak akan muat menjadi satu byte, Anda harus membaginya menjadi dua. Byte pertama harus memiliki satu di bit paling signifikan, yang kedua (sebagai byte pengakhiran seri) - nol. Pada byte kedua kami menempatkan tujuh bit paling tidak signifikan dari angka aslinya, ternyata 0 000 0000. Kami menempatkan satu bit yang tersisa (satu) di sisi kanan byte pertama - kami mendapatkan 1000 0001. Akibatnya, angka 0x80 ditulis sebagai dua byte: 0x81 0x00. Membongkar sangat sederhana. Kami tidak tahu sebelumnya berapa banyak byte dalam seri. Kami membaca byte pertama - 1000 0001. Bit layanan paling signifikan (1) menunjukkan bahwa ini bukan byte terakhir dari seri, ada lebih banyak byte. Kami membuang unit layanan, meninggalkan tujuh bit - 000 0001. Baca byte kedua - 0000 0000. Bit layanan paling signifikan (0) menunjukkan bahwa ini adalah byte terakhir dari seri (yaitu, hanya ada dua byte dalam seri). Kami membuang bit layanan. Ada juga tujuh bit yang tersisa - 000 0000. Kami menambahkannya di sebelah kiri tujuh bit yang dialokasikan dari byte pertama, kami mendapatkan 000 0000 000 0000. Membuang enam nol pertama, kami mendapatkan angka yang diperlukan 1000 0000 (0x80).

Jadi, metode panjang variabel memungkinkan jumlah byte yang berbeda dialokasikan untuk angka yang berbeda: untuk angka dalam kisaran dari 0 hingga 127 - satu byte, dari 128 hingga 16383 - dua byte, dan seterusnya. Jumlah maksimum yang diwakili dengan cara ini, pada prinsipnya, tidak terbatas. Namun, dalam SMF, panjang burst dibatasi hingga empat byte (tiga dengan set bit paling signifikan dan satu berakhir dengan nol). Akibatnya, waktu delta maksimum dapat menjadi 0x0FFFFFFF (atau 268 435 455 tick), yang pada kecepatan 500 BPM dan resolusi 96 PPQN adalah sekitar empat hari. Lebih dari cukup!

Dalam bentuk nilai panjang variabel, SMF menunjukkan tidak hanya waktu delta, tetapi juga panjang beberapa peristiwa.

Format File Pertukaran (IFF)
Struktur file MIDI standar hampir seluruhnya berasal dari IFF (Interchange File Format), yang dikembangkan pada tahun 1985 oleh Electronic Arts. Ini adalah penyimpanan data dan format pertukaran yang telah membuat hidup lebih mudah bagi pengguna dan pengembang perangkat lunak selama hampir dua puluh tahun. Electronic Arts tidak hanya menyediakan dokumentasi open source, tetapi juga kode sumber C untuk membaca dan menulis file IFF.

Format IFF kompatibel ke belakang dan dapat diperluas. Yang pertama berarti bahwa versi baru program dapat membaca file yang dibuat oleh versi sebelumnya tanpa masalah. Kedua, Anda tidak perlu menemukan format baru untuk menyimpan informasi tambahan, cukup memasukkan ekstensi Anda sendiri ke dalam IFF. Struktur format memungkinkan program dari produsen yang berbeda untuk bertukar data yang tidak memiliki perjanjian bisnis yang sesuai di antara mereka sendiri. Semua ini menyenangkan pengguna - setelah menyimpan data dalam format IFF, mereka tidak lagi dirantai ke format tertutup sistem mereka dan dapat menggunakan data dalam perangkat lunak dan lingkungan perangkat keras yang kompatibel dengan IFF.

File IFF adalah kumpulan data yang diatur sedemikian rupa sehingga program yang berbeda dan tidak terkait dapat membacanya. Di sisi lain, program dapat menyimpan informasi spesifik dalam IFF yang hanya berarti bagi dirinya sendiri. Struktur IFF membuatnya mudah. Program lain yang tidak tahu bagaimana menangani informasi tersebut dapat mengabaikannya tanpa mengorbankan pembacaan konten utama.

Ada beberapa jenis file IFF. Misalnya, file ILBM dan GIFF berisi informasi grafik, file SMUS berisi notasi musik, dan file AIFF dan WAVE berisi audio digital.

File IFF terdiri dari elemen serupa yang disebut potongan. Blok adalah struktur data yang terdiri dari pengenal alfabet (empat karakter ASCII), ukuran blok (empat byte), dan data itu sendiri (Gambar 5). Lebih mudah untuk menganggap blok sebagai shell di mana data "dibungkus". Data itu sendiri dapat berisi apa saja: grafik, teks, animasi, suara, kumpulan objek 3D, dan sebagainya.

Blok dalam file IFF dapat disarangkan, gbr. 6. Faktanya, file IFF tidak lebih dari blok tingkat atas yang berisi satu atau lebih blok lain di dalamnya. Prinsip penyimpanan data ini memungkinkan Anda untuk "membungkus" beberapa data heterogen ke dalam file, termasuk beberapa file IFF, yang sudah menyerupai sistem file di dalam file. Benar, dengan organisasi data bersarang, ada satu kelemahan - file menjadi sulit untuk ditafsirkan, untuk mengisolasi blok darinya.

Sebagian besar file IFF berisi blok tingkat atas dengan pengenal "FORM". Ini termasuk blok lain (Gbr. 7). Satu-satunya data di blok FORM adalah empat byte yang menjelaskan jenis file (misalnya "ILBM", InterLeaved Bit Map). Tepat di belakangnya adalah blok bersarang seperti "BMHD" (tajuk gambar), "CMAP" (palet), dan "BODY" (piksel itu sendiri). Nama-nama blok dan format data ditemukan oleh pengembang jenis file tertentu. Program lain, jika mereka menemukan blok dengan nama yang tidak dikenal, dapat dengan aman melewatinya, dipandu oleh bidang yang berisi panjang blok.

Semua data numerik dalam file IFF disimpan dalam urutan big-endian, yaitu byte paling signifikan dari angka (MSB) disimpan terlebih dahulu, kemudian byte paling tidak signifikan. Lihat bilah sisi untuk lebih lanjut tentang ini. Blok dalam file harus selalu dimulai dengan byte genap. Jika blok sebelumnya berisi jumlah byte ganjil, blok tersebut diisi dengan byte nol untuk menjadi genap.

Dari ujung mana untuk menyimpan?
Memori komputer terdiri dari sel, masing-masing berisi tepat satu byte. Untuk mengakses sel (menulis atau membaca satu byte), prosesor menggunakan apa yang disebut alamat dalam pikiran. Ini hanyalah bilangan bulat yang ditetapkan ke sel oleh sistem operasi (semoga para ahli komputer memaafkan saya untuk penyederhanaan ini). Dalam kehidupan nyata, satu byte biasanya tidak cukup. Bahkan untuk menyimpan bilangan bulat, kata-kata digunakan, yaitu, kelompok dua byte, kata ganda atau empat (masing-masing, empat atau delapan byte, lihat bagian pertama dari siklus untuk lebih jelasnya). Artinya, nomor tersebut disimpan dalam beberapa byte yang berdekatan.

dalam gambar. 8 menunjukkan dua cara yang mungkin untuk menempatkannya dalam memori, dengan menggunakan contoh kata ganda. Cara pertama - byte disimpan dalam memori secara berurutan, byte paling signifikan di alamat terkecil. Artinya, MSB kata tinggi disimpan di alamat N, kemudian LSB kata tinggi (N + 1), MSB kata rendah (N + 2), LSB kata rendah (N + 3) . Cara ini biasa disebut big-endian(atau "alokasi byte langsung"). Dalam metode kedua, semuanya justru sebaliknya, byte tinggi disimpan di alamat tertinggi: LSB kata rendah (N), MSB kata rendah (N + 1), LSB kata tinggi (N + 2 ), MSB kata tinggi (N + 3) ... Cara ini biasa disebut little-endian- "alokasi byte terbalik".

Artinya, perbedaannya adalah "dari ujung mana" nilai multibyte disimpan. Istilah "big-endian" dan "little-endian" diciptakan dalam sebuah artikel tentang subjek yang mengacu pada buku Jonathan Swift, The Adventures of Gulliver. Seperti yang Anda ketahui, gerakan Big-Endians muncul di Lilliput, yang tidak mau melaksanakan perintah kaisar yang memerintahkan untuk memecahkan telur rebus hanya dari ujungnya yang tajam. Di dunia komputer, konfrontasi big / little-endian terlihat sangat mirip.

Pendukung little-endian berpendapat bahwa urutan byte yang diatur ulang dalam memori memudahkan untuk melakukan operasi aritmatika pada nilai multibyte, karena byte paling tidak signifikan yang ditambahkan pertama disimpan dalam byte paling tidak signifikan.

Sirkuit little-endian digunakan dalam prosesor yang kompatibel dengan Intel mulai dari Intel 8080 hingga Intel Pentium IV. Penempatan langsung (big-endian) - di prosesor Sun Spark, Motorola 68000 (baris awal komputer Apple) dan banyak prosesor RISC. Tetapi prosesor PowerPC dan Intel Itanium memahami kedua format data sekaligus (kadang-kadang disebut "bi-endian").

Namun, yang penting bukanlah bagaimana komputer menyimpan data "di dalam dirinya sendiri", tetapi bagaimana ia menyimpannya "di luar", dalam file. Ini jauh lebih penting dari sudut pandang praktis. Misalnya, jika kata "UNIX" disimpan ke file big-endian oleh sistem (sebagai dua kata byte ganda), maka sistem little-endian akan membacanya sebagai "NUXI". Inilah yang disebut jargon komputer sebagai "masalah NUXI". Kesulitan serupa dapat muncul saat menyimpan grafik karena warna dikodekan dengan angka multibyte. Misalnya, file Adobe Photoshop dan JPEG menggunakan skema big-endian, sedangkan file GIF dan BPM menggunakan little-endian.

Format Standard MIDI File (SMF) "non-platform" menggunakan metode big-endian, yaitu byte paling signifikan dari sebuah kata (MSB) disimpan terlebih dahulu.

struktur SMF
File MIDI standar, seperti file IFF, terdiri dari Potongan. Ada dua jenis potongan total: Header Chunk dan Track Chunk. Hanya ada satu blok header dan satu atau lebih blok trek dalam file SMF. Blok memiliki struktur IFF yang khas: empat byte pertama adalah pengidentifikasi, empat byte berikutnya adalah panjang blok dalam byte, tidak termasuk jenis/panjang delapan byte. Pengidentifikasi blok header adalah empat karakter "MThd", dan pengidentifikasi blok trek adalah empat karakter "MTrk". Struktur ini akan memungkinkan jenis blok baru untuk didefinisikan di masa depan, dan blok yang tidak dikenal dapat dengan mudah diabaikan berdasarkan panjangnya. Spesifikasi SMF memperingatkan: "Program harus siap untuk mengabaikan blok dari tipe yang tidak diketahui ketika mereka menemukannya."

Blok header berisi informasi umum tentang file, blok track berisi aliran pesan MIDI dengan cap waktu. Selain itu, file MIDI menyimpan informasi tambahan yang diperlukan untuk sequencer: tempo, tanda waktu, kunci, pengaturan metronom, dan sejenisnya. Informasi ini tidak ditransmisikan melalui antarmuka MIDI, dan peristiwa yang membentuknya disebut peristiwa meta.

File MIDI selalu dimulai dengan blok header diikuti oleh satu atau lebih blok track (Gambar 9). Artinya, setiap file MIDI standar dimulai dengan empat huruf "M", "T", "h", "d". Ini berarti bahwa file MIDI tidak sesuai dengan spesifikasi IFF (yang mengharuskan setiap file yang sesuai dengan IFF dimulai dengan blok tingkat atas dari salah satu dari tiga jenis - "FORM", "CAT" atau "LIST"). Ada perbedaan lain: SMF tidak dapat berisi blok bersarang, dan panjang blok tidak harus genap. Namun, mengonversi SMF ke file yang sesuai dengan IFF sangatlah mudah. Cukup dengan mengisi blok dengan panjang ganjil dengan byte nol (jika ada) dan meletakkan semua konten di blok FORMULIR. Operasi serupa digunakan dalam format RMID yang diusulkan oleh Microsoft (lihat bilah sisi).


Anda "di sini karena Anda memiliki file yang memiliki ekstensi file berakhiran .smf. File dengan ekstensi file .smf hanya dapat diluncurkan oleh aplikasi tertentu. Mungkin saja file .smf adalah file data daripada dokumen atau media , yang berarti mereka "tidak dimaksudkan untuk dilihat sama sekali.

apa itu & nbsp.smf & nbspfile?

File dalam format SMF berisi data audio dengan efek, dan format file ini terintegrasi dengan teknologi dan fungsi serupa sebagai file dengan ekstensi MID. Trek audio dengan ekstensi .smf dapat diputar menggunakan aplikasi Apple QuickTime, dan program multimedia ini memiliki versi yang kompatibel dengan sistem berbasis Microsoft Windows selain versi lain yang dikembangkan untuk pengguna Mac. Asosiasi Produsen MIDI mengintegrasikan spesifikasi MIDI ke dalam format file SMF selama pengembangannya. Ini berarti file SMF juga dapat berisi trek berbeda yang digabungkan dari trek audio berbeda yang disimpan di beberapa file SMF, yang juga berarti file dalam format .smf dapat digabungkan dan diubah menjadi satu trek audio dalam format yang lebih populer yang dapat dilihat dan digunakan dengan lebih banyak perangkat lunak pengembangan presentasi video dan dokumen digital, aplikasi multimedia dan pemutar audio digital. Ini memberi pengguna sarana untuk menambahkan efek secara terpisah ke setiap trek dan membuat modifikasi pada yang lain sebelum menggabungkannya untuk diputar sebagai trek audio tunggal. Beberapa dari efek dan modifikasi ini mungkin termasuk penyesuaian volume dan nada, distorsi dan reverb, pengeditan panning dan pengaturan waktu. Ada aplikasi pihak ketiga yang dapat mengonversi file SMF ke dalam format MIDI untuk dukungan kompatibilitas silang yang lebih luas untuk aplikasi pengeditan audio yang lebih banyak.

bagaimana cara membuka file .smf?

Luncurkan file .smf, atau file lain apa pun di PC Anda, dengan mengklik dua kali. Jika asosiasi file Anda diatur dengan benar, aplikasi yang "dimaksudkan untuk membuka file .smf Anda akan membukanya. Mungkin Anda perlu mengunduh atau membeli aplikasi yang benar. Mungkin juga Anda memiliki aplikasi yang benar di PC Anda, tetapi file .smf belum terkait dengannya. Dalam hal ini, ketika Anda mencoba membuka file .smf, Anda dapat memberi tahu Windows aplikasi mana yang benar untuk file itu. Sejak saat itu, membuka file .smf akan membuka aplikasi yang benar.

aplikasi yang membuka file .smf

Pemutar QuickTime Apple

Pemutar QuickTime Apple

Apple QuickTime Player adalah perangkat lunak pemutar multimedia yang menangani berbagai file dengan format berbeda dari foto digital hingga gambar panorama, audio hingga video, serta interaktivitas. Program pemutar multimedia ini tersedia untuk komputer Mac OS X serta versi komputer Windows yang lebih baru. Produk perangkat lunak oleh Apple ini memiliki Kit Pengembangan Perangkat Lunak atau SDK yang tersedia untuk umum selama berlangganan dengan Apple Developer Connection atau ADC. Ini memiliki kerangka kerja QuickTime, yang kompatibel dengan aplikasi pemutar gratis lainnya, yang menyediakan beberapa fungsi. Ini termasuk encoding audio dan video, transcoding file yang sama, decoding dengan opsi untuk mengirim aliran decode ke subsistem grafis atau subsistem audio, dan arsitektur plugin komponen untuk mendukung codec lain (pihak ketiga seperti DivX). Versi terbaru dari perangkat lunak ini adalah QuickTime Player 7 yang dapat diunduh secara gratis untuk komputer Mac dan Windows.

sebuah kata peringatan

Berhati-hatilah untuk tidak mengganti nama ekstensi pada & nbsp.smf & nbspfiles, atau file lainnya. Ini tidak akan mengubah jenis file. Hanya perangkat lunak konversi khusus yang dapat mengubah file dari satu jenis file ke jenis file lainnya.

apa itu ekstensi file?

Ekstensi file adalah kumpulan tiga atau empat karakter di akhir nama file; dalam hal ini, ekstensi & nbsp.smf. & nbspFile memberi tahu Anda jenis file apa itu, dan memberi tahu Windows program apa yang dapat membukanya. Windows sering mengaitkan program default ke setiap ekstensi file, sehingga ketika Anda mengklik dua kali file tersebut, program akan diluncurkan secara otomatis. Ketika program itu tidak lagi ada di PC Anda, terkadang Anda bisa mendapatkan kesalahan saat mencoba membuka file terkait.


Biasanya sequencer menggunakan format penyimpanan pengaturan mereka sendiri. Ini disebabkan oleh fakta bahwa struktur data yang dirancang untuk kemampuan program tertentu jauh lebih efisien, lebih mudah untuk bekerja dengannya. Anda dapat menulis data tambahan ke dalam format Anda, misalnya, pada penyesuaian antarmuka pengguna (posisi dan ukuran jendela, font, dan sebagainya). Selain itu, kekompakan file MIDI standar (khususnya, panjang variabel untuk menyimpan waktu terjadinya peristiwa) berubah menjadi ketidaknyamanan: untuk bekerja dengan pengaturan, semua waktu delta dalam file harus "dibongkar", dan ketika file disimpan, "zip" lagi.

Di sisi lain, SMF adalah format lintas platform portabel, di mana Anda dapat menentukan blok tambahan apa pun untuk menyimpan data tertentu. Misalnya, satu sequencer dapat menyimpan metronom on atau off di blok bernama "Mtr". Blok ini tidak menghalangi sequencer lain; blok ini dapat mendefinisikan beberapa blok spesifiknya dalam file yang sama. Jadi beberapa sequencer menggunakan format SMF secara langsung, itu "asli" untuk mereka. Lainnya memungkinkan Anda mengimpor dan mengekspor file MIDI sesuai kebutuhan.

Untuk mendukung berbagai jenis sequencer dan peralatan lainnya, file MIDI standar diklasifikasikan ke dalam tiga rasa atau format: 0, 1, dan 2.

Format file 0 berisi satu trek, yang berisi acara dari enam belas saluran MIDI. Ini adalah format paling sederhana untuk bertukar data, karena tidak memperhitungkan struktur asli trek di sequencer (trek mana yang ditetapkan ke saluran MIDI mana). Format 0 file lebih cocok untuk mentransfer data ke perangkat seperti mixer dan prosesor efek daripada untuk menyimpan pengaturan. Saat merekam file dalam format 0, sequencer hanya menggabungkan semua pesan dari semua saluran MIDI menjadi satu trek. Dengan demikian, saat memuat file, kami mendapatkan satu trek, yang bermasalah untuk mengedit acara, karena acara untuk saluran yang berbeda diselingi satu sama lain. Sebagian besar sequencer memiliki fungsi membagi "campuran" semacam itu menjadi trek terpisah, yang masing-masing berisi acara untuk satu saluran MIDI.

Format 1 file berisi trek terpisah untuk setiap saluran MIDI, yang mencerminkan struktur pengaturan yang sudah dikenal dalam sequencer. Format 2 file berisi beberapa bagian independen (atau pola lengkap), setiap pola terdiri dari satu trek yang berisi pesan di semua 16 saluran. Format ini seharusnya digunakan pada sequencer yang dapat bekerja dengan pola independen yang dimainkan oleh beberapa instrumen secara bersamaan. Namun, Format 2 telah diabaikan secara luas dan saat ini dianggap dalam spesifikasi sebagai "tidak dimaksudkan untuk pengurutan".

Salah satu perbedaan utama antara format 0 dan 1 adalah cara peristiwa meta ditempatkan. Dalam format 0, peristiwa meta tempo dan tanda waktu (disebut peta tempo) dicampur dengan pesan MIDI lainnya. Selain itu, judul lagu tidak disimpan dalam format ini. Dalam format 1, trek pertama dalam file dicadangkan secara eksklusif untuk peta tempo dan peristiwa meta lainnya seperti Urutan / Nama Trek, Nomor Urutan, Penanda, Offset SMPTE (lihat di bawah).

Jika tidak ada peta tempo dalam file, tempo diasumsikan 120 BPM, dan tanda waktunya adalah 4/4.

Organisasi MMA dapat mengembangkan format SMF lain di masa depan untuk mendukung struktur data baru di sequencer.

Blok judul ("MThd")

Blok header berisi informasi dasar tentang file. Struktur blok ditunjukkan pada Gambar. 11. Bidang panjang selalu berisi angka 6, berdasarkan jumlah byte data header yang mengikuti bidang ini. Data header adalah tiga kata 16-bit. Kata pertama (format) - format SMF, dapat mengambil salah satu dari tiga nilai - 0, 1 dan 2. Kata kedua (ntrks) - jumlah blok trek (yaitu trek itu sendiri) dalam file. Untuk file dengan format 0, itu akan selalu sama dengan satu.

Kata terakhir dari blok heading divisi menentukan bagaimana waktu diukur (timebase). Seperti disebutkan sebelumnya, ada dua cara: musik (bar / ketukan) dan absolut (berbasis kode waktu), berdasarkan waktu absolut dalam format SMPTE. Bagaimanapun, waktu delta dalam file SMF diukur dengan kutu: dengan metode musik, jumlah kutu per kuartal (yaitu, PPQN) diatur, dengan yang absolut, jumlah kutu dalam satu bingkai SMPTE. Jika bit paling signifikan (ke-15) dari bidang pembagian diatur ke nol, maka metode musik digunakan, dan 15 bit sisanya berisi PPQN (hingga 32767), Gbr. 12. Jika bit paling signifikan diatur ke satu, maka mode absolut digunakan. Byte rendah (bit 0 hingga 7) menyimpan jumlah tick per frame, byte tinggi (bit 8 hingga 15) menyimpan format frame SMPTE, dinyatakan sebagai nilai negatif (-24, -25, -29, -30 ). Dalam hal ini, angka -29 sesuai dengan format Drop Frame 30 fps (lihat artikel sebelumnya dalam siklus).

Angka negatif dipilih karena ditulis sebagai pelengkap dua (lihat artikel sebelumnya), yaitu mengandung satu di bit paling signifikan. Dan satuan ini hanyalah tanda cara mutlak menghitung waktu. Jumlah tick per frame disimpan positif dan biasanya mengambil salah satu dari nilai berikut: 4 (resolusi seperti pada Kode Waktu MIDI, ketika ada empat pesan Quarter Frame per frame), 8, 10, 80 (resolusi satu bit dalam bingkai SMPTE), atau 100 ...

Sistem ini memungkinkan Anda untuk menunjukkan waktu absolut terjadinya peristiwa dengan akurasi 1/128 frame. Selain itu, jika Anda mengatur format bingkai ke 25 fps dan resolusi ke 40 tick per frame, maka setiap tick akan sesuai dengan satu milidetik. Bidang pembagian dalam hal ini akan memiliki nilai 0xE728, byte 0xE7 adalah bilangan komplemen dua -25, dan 0x28 adalah 40 dalam notasi heksadesimal.

Blok trek ("MTrk")

Blok trek menyimpan peristiwa itu sendiri, yaitu, pesan MIDI dengan cap waktu. Blok harus berisi setidaknya satu peristiwa. Struktur blok trek sama untuk file MIDI dalam format apa pun (0, 1 dan 2), Gbr. tigabelas.

Acara terdiri dari waktu delta dan pesan MIDI itu sendiri, Gambar. 14. Biarkan saya mengingatkan Anda bahwa waktu delta disimpan sebagai panjang variabel.

Kami harap kami membantu Anda memecahkan masalah dengan file SMF. Jika Anda tidak tahu di mana Anda dapat mengunduh aplikasi dari daftar kami, klik tautannya (ini adalah nama programnya) - Anda akan menemukan informasi lebih rinci tentang lokasi tempat Anda dapat mengunduh versi instalasi aman yang diperlukan aplikasi.

Mengunjungi halaman ini akan membantu Anda menjawab pertanyaan ini secara spesifik, atau pertanyaan serupa:

  • Bagaimana cara membuka file dengan ekstensi SMF?
  • Bagaimana cara mengonversi file SMF ke format lain?
  • Apa ekstensi format file SMF?
  • Program apa yang mendukung file SMF?

Jika setelah melihat barang-barang di situs ini, Anda masih belum mendapatkan jawaban yang memuaskan dari salah satu pertanyaan di atas, ini berarti informasi mengenai file SMF yang disajikan di sini belum lengkap. Hubungi kami menggunakan formulir kontak dan tulis informasi apa yang tidak Anda temukan.

Apa lagi yang bisa menyebabkan masalah?

Mungkin ada lebih banyak alasan mengapa Anda tidak dapat membuka file SMF (bukan hanya tidak adanya aplikasi yang sesuai).
Pertama- File SMF mungkin salah ditautkan (tidak kompatibel) dengan aplikasi yang diinstal untuk menayangkannya. Dalam hal ini, Anda perlu mengubah sendiri tautan ini. Untuk tujuan ini, klik kanan pada file SMF yang ingin Anda edit, klik opsi "Untuk membuka dengan" dan kemudian pilih program yang telah Anda instal dari daftar. Setelah tindakan seperti itu, masalah dengan membuka file SMF akan benar-benar hilang.
Kedua- file yang ingin Anda buka mungkin saja rusak. Kemudian, solusi terbaik adalah mencari versi baru, atau mengunduhnya kembali dari sumber yang sama seperti sebelumnya (mungkin karena alasan tertentu di sesi sebelumnya unduhan file SMF belum selesai dan tidak dapat dibuka dengan benar).

Apakah Anda ingin membantu?

Jika Anda memiliki informasi tambahan tentang ekstensi file SMF, kami akan berterima kasih jika Anda membagikannya kepada pengguna situs kami. Gunakan formulir yang disediakan dan kirimkan informasi Anda tentang file SMF kepada kami.