SMF ekstenzija datoteke. SMF formati Otvorite smf datoteku

Ako vaš računar ima antivirusni program mogu skenirajte sve datoteke na računaru, kao i svaki fajl pojedinačno. Možete skenirati bilo koju datoteku desnim klikom na datoteku i odabirom odgovarajuće opcije za skeniranje datoteke na viruse.

Na primjer, na ovoj slici, fajl my-file.smf, zatim je potrebno da kliknete desnim tasterom miša na ovu datoteku i u meniju fajla izaberete opciju "scan with AVG". Odabirom ove opcije otvorit će se AVG Antivirus i skenirati datoteku na viruse.


Ponekad može doći do greške neispravna instalacija softvera, što može biti uzrokovano problemom koji se dogodio tokom procesa instalacije. To može ometati vaš operativni sistem povežite svoju SMF datoteku sa odgovarajućom softverskom aplikacijom, utičući na tzv "asocijacije ekstenzija datoteka".

Ponekad jednostavno ponovna instalacija apache openofficea može riješiti vaš problem ispravnim povezivanjem SMF-a sa Apache OpenOffice. U drugim slučajevima, problemi s asocijacijom datoteka mogu biti rezultat loše programiranje softvera programera, a možda ćete morati kontaktirati programera za dalju pomoć.


savjet: Pokušajte ažurirati Apache OpenOffice na najnoviju verziju kako biste bili sigurni da imate najnovije popravke i ažuriranja.


Ovo može izgledati previše očigledno, ali često sama SMF datoteka može uzrokovati problem. Ako ste primili datoteku putem privitka e-pošte ili ste je preuzeli s web-mjesta, a proces preuzimanja je prekinut (na primjer, zbog nestanka struje ili drugog razloga), datoteka je možda oštećena. Ako je moguće, pokušajte da nabavite novu kopiju SMF datoteke i pokušajte je ponovo otvoriti.


Pažljivo: Oštećena datoteka može uzrokovati kolateralnu štetu prethodnom ili postojećem zlonamjernom softveru na vašem računaru, stoga je važno da vaš računar ažurirate sa ažuriranim antivirusnim programom.


Ako je vaš SMF fajl povezan sa hardverom na vašem računaru da otvorite datoteku koja vam može zatrebati ažurirati drajvere uređaja povezane sa ovom opremom.

Ovaj problem obično povezan sa tipovima medijskih datoteka, koji zavise od uspješnog otvaranja hardvera unutar računara, npr. zvučna ili video kartica. Na primjer, ako pokušavate otvoriti audio datoteku, ali ne možete je otvoriti, možda ćete morati ažurirajte drajvere zvučne kartice.


savjet: Ako kada pokušate da otvorite SMF fajl dobijete Poruka o grešci u vezi sa .SYS datotekom, problem bi vjerovatno mogao biti povezano s oštećenim ili zastarjelim drajverima uređaja koje treba ažurirati. Ovaj proces se može olakšati korišćenjem softvera za ažuriranje drajvera kao što je DriverDoc.


Ako koraci nisu riješili problem i još uvijek imate problema s otvaranjem SMF datoteka, to može biti zbog nedostatak raspoloživih sistemskih resursa. Neke verzije SMF datoteka mogu zahtijevati značajnu količinu resursa (npr. memorija/RAM, procesorska snaga) za pravilno otvaranje na vašem računaru. Ovaj problem je prilično čest ako istovremeno koristite prilično star računarski hardver i mnogo noviji operativni sistem.

Ovaj problem se može pojaviti kada računar ima poteškoća u izvršavanju zadatka jer operativni sistem (i druge usluge koje rade u pozadini) mogu troši previše resursa za otvaranje SMF datoteke. Pokušajte da zatvorite sve aplikacije na svom računaru pre nego što otvorite StarMath Formula File. Oslobađanjem svih raspoloživih resursa na vašem računaru, osiguraćete najbolje uslove za pokušaj otvaranja SMF datoteke.


Ako ti završili sve gore navedene korake a vaš SMF fajl se i dalje neće otvoriti, možda ćete morati da ga pokrenete nadogradnja hardvera. U većini slučajeva, čak i kada koristite starije verzije hardvera, procesorska snaga i dalje može biti više nego dovoljna za većinu korisničkih aplikacija (osim ako ne radite puno CPU-intenzivnog posla kao što je 3D renderiranje, financijsko/naučno modeliranje ili intenzivan rad na multimediji ) . Na ovaj način, vjerovatno je da vaš računar nema dovoljno memorije(češće se naziva "RAM" ili RAM) za obavljanje zadatka otvaranja datoteke.

Peti dio serije članaka s detaljima o MIDI protokolu.

Jedna od tri komponente MIDI protokola je specifikacija formata skladištenja podataka (podsjetimo da su druge dvije komponente format poruke i specifikacija hardverskog interfejsa). O formatu poruke raspravljalo se u prva tri članka ciklusa, sada je vrijeme za format pohrane. Predložila ga je MMA organizacija krajem 1987. godine i nazvana je "Standard MIDI Files" (Standard MIDI Files, SMF).

Svrha MIDI datoteka je omogućiti razmjenu događaja (tj. MIDI poruka koje imaju vremensku oznaku) između različitih uređaja i programa. Prije pojave standardnih MIDI datoteka, aranžman pripremljen u jednom sekvenceru nije mogao biti učitan u drugi zbog nekompatibilnosti formata. Ne može se reći da su s pojavom SMF-a svi proizvođači sekvencera prešli na ovaj format. Postoji nekoliko razloga za to, a o njima ćemo danas i govoriti.

Budući da je skladištenje informacija direktno povezano sa strukturom sekvencera, zadržaćemo se na ovom pitanju detaljnije, ali samo u meri koja je neophodna za razumevanje SMF-a. A sekvencerima, naravno, posvetit ćemo jedan od sljedećih članaka u ciklusu.

Događaji
Poziva se MIDI poruka sa vremenskom oznakom događaj. Za označavanje vremena mogu se koristiti različite jedinice - tikovi, interni impulsi, vrijeme u SMPTE formatu, itd. Važno je razumjeti fundamentalnu razliku između događaja i poruke. Poruka "živi" djelić milisekundi realnog vremena - od trenutka kada je generira izvor do trenutka kada stigne na izvršenje kod primaoca. Može se uhvatiti tokom prenosa preko MIDI kabla kao skup impulsa. Događaj je nekoliko bajtova informacija snimljenih u memoriji uređaja, na osnovu kojih će se u budućnosti, u zakazano vrijeme, generirati poruka.

Na primjer, memorija sekvencera može pohraniti događaj "play note" sa vremenskom oznakom od 100 ms od početka reprodukcije. Ovaj događaj možete urediti u dvije dimenzije: prvo, promijeniti parametre same MIDI poruke (u ovom slučaju visinu tona ili dinamiku note), i drugo, pomjeriti notu duž staze, odnosno promijeniti vrijeme poruka.

Događaji se pojavljuju u memoriji sekvencera tokom snimanja MIDI poruka. Kada pritisnete dugme Record, sekvencer uključuje hardverski generator impulsa (tikovi) i počinje da "sluša" navedeni MIDI ulaz. Na primjer, kada se pritisne tipka, ulaz prima poruku "zabilježi". Sekvenser izgleda - da, poruka je stigla na 20-ti tik, i upisuje je u memoriju sa oznakom 20. Nakon par sekundi, ključ je otpušten - stigla je poruka "ukloni bilješku", interni generator u tom trenutku radosno mahnuo 64 tiksa sekvenceru. Sekvenser čuva poruku sa oznakom 64. Sada imamo posla sa dva događaja - Note On i Note Off. Tokom reprodukcije, generator impulsa se ponovo uključuje. Kada se približi 20. tik, poruka o Note On se šalje na MIDI izlaz sekvencera, 64. tik - Note Off. Snimili smo i potom reproducirali radnje izvođača!

Očigledno, ista stvar se može uraditi i "offline", odnosno bez potrebe za nastupom uživo. Klikom miša na pravo mjesto u numeri (i odabirom trajanja note unaprijed) izgradićemo tačno prethodnu sliku u memoriji sekvencera.

Tipovi memorije
Sada je vrijeme da primijenite dva zastrašujuća kompjuterska termina: primarna i sekundarna memorija. Primarna (ili interna) memorija je memorija sekvencera, gdje se pišu poruke i gdje se događaji pohranjuju tokom cijele sesije. Sadržaj ove memorije se resetuje kada se napajanje isključi. Ova interpretacija je pogodnija za hardverske sekvencere. U softverskim sekvencerima, primarna memorija je jednostavno glavna memorija računara. Da bi se sadržaj primarne memorije pohranio na duže vrijeme, koristi se sekundarna memorija, odnosno medij za skladištenje. To može biti disketa, tvrdi disk, pametna kartica i slično.

Količina primarne memorije u hardverskim sekvencerima i radnim stanicama (podsjetimo, radna stanica je tonski generator i sekvencer u jednoj kutiji) obično se izražava u vidu broja pohranjenih nota (na primjer, 200 hiljada). Ponekad se jačina zvuka izražava u događajima, u tom slučaju morate biti na oprezu - jedna nota zahtijeva dva događaja za pohranu (pritisak i otpuštanje tipke), a okretanje kotača ili naknadni dodir može generirati do 100 ili više događaja. Dešava se da je količina memorije sekvencera izražena u izvornim računarskim jedinicama - kilobajtima. Ali to također nije baš zgodno - jedan događaj može zauzeti različit broj bajtova (od pet do nekoliko desetina).

U modernim softverskim sekvencerima, malo ljudi brine o količini primarne memorije - čak i na mašini sa 128 MB RAM-a, možete zaboraviti na sva ograničenja kada radite sa MIDI podacima. Osim toga, postoje sekvenceri koji mogu reproducirati aranžman direktno s diska, bez učitavanja u primarnu memoriju (i, usput rečeno, i snimanje), što općenito zamagljuje razliku između dvije vrste memorije.

U sekundarnoj memoriji podaci se obično zapisuju u datoteku. Većina sekvencera ima svoj format ove datoteke, zatvoren, što otežava razmjenu aranžmana kreiranih u različitim uređajima ili programima. Ranije je rečeno da je to glavni razlog za stvaranje SMF-a.

Merenje vremena
U stvari, nema "krpelja" unutar sekvencera. Postoji hardverski tajmer koji generiše impulse sa strogo konstantnom frekvencijom (na primjer, svake mikrosekunde). Prisiljavanje muzičara da mjere vrijeme u mikrosekundama bilo bi monstruozno podsmijeh, kao, uostalom, i u drugim jedinicama realnog vremena (sekunde, minute). Muzičari su navikli da razmišljaju u taktovima i taktovima, i izražavaju vrijeme u relativnim jedinicama (trajanja nota) u zavisnosti od trenutnog tempa.

"Nema problema", odgovorili su proizvođači, "neka mjere na način koji im najviše odgovara." Samo minimalna mjerna jedinica neće biti neko 32. trajanje, već uslovno uzet tik (jedinica je još manja, tako da, na primjer, jedna trideset i sekunda može sadržavati 48 tikova). Budući da se od klasične ere tempo mjerio brojem četvrtina u minuti (BPM, otkucaji u minuti), odlučeno je da se za glavno trajanje uzme četvrtina i naznači broj otkucaja po četvrtini - PPQN (Pulse Per Četvrtina nota). Što je veći PPQN, to je bolja rezolucija sekvencera i preciznije u vremenu može uhvatiti poruke tokom snimanja i emitovati ih na MIDI izlaz tokom reprodukcije. Većina sekvencera vam omogućava da postavite PPQN proizvoljno - na primjer, od 32 do 1536 tikova po kvartalu (moderni sekvenceri - do 15360 PPQN).

Tik je jedinica zavisna od tempa: što je tempo brži, kraći je interval između taktova u jedinicama u realnom vremenu. Ovaj interval se može pronaći pomoću formule na Sl. jedan.

Na primjer, sa tempom od 120 BPM i rezolucijom od 96 PPQN, bit će tikovi svakih 5,208 milisekundi. Pri istoj rezoluciji i tempu od 180 BPM, interval između tikova će se smanjiti na 3.472 ms. Kako sekvencer broji otkucaje ako njegov interni tajmer pulsira svake mikrosekunde? Da, vrlo jednostavno: na osnovu trenutnog tempa i rezolucije u četvrtini, tačno prema navedenoj formuli. Pošto postoji 1000 mikrosekundi u jednoj milisekundi, u posljednjem primjeru sekvencer će generirati još jedan tik kada primi 3472 impulsa od tajmera.

Kada visoka rezolucija nema smisla
Ako su sekvencer i tonski generator "pod istim krovom" (radna stanica ili kompjuter sa softverskim sekvencerom i sintisajzerom na zvučnoj kartici, ili virtuelni sintisajzer), onda interna rezolucija takvog sistema može biti proizvoljno velika ( broj 15360 PPQN je impresivan). Ovo omogućava da sinhronizacija MIDI i audio podataka bude tačna kao uzorak. Ali čim povežemo sekvencer i tonski generator MIDI kablom preko MIDI interfejsa, visoka rezolucija više nije relevantna.

Zašto? Da vas podsjetim da se jedan bajt prenosi preko MIDI interfejsa u roku od 320 mikrosekundi. A to znači da će se, na primjer, poruka o snimanju bilješke (koja se sastoji od tri bajta) prenositi 960 μs, odnosno gotovo cijelu milisekundu. Sada zamislimo da su dvije note programirane u sekvenceru na 120 BPM i 2048 PPQN, sa intervalom od dva tiksa jedna između druge. U jedinicama realnog vremena, ovo je 488 mikrosekundi. Dakle: tonski generator neće moći primiti drugu notu 488 mikrosekundi nakon prve, ali u stvarnosti - tek nakon 960 mikrosekundi. Dakle, on će to izvršiti nakon ne dva tiketa, već skoro četiri.

Otuda zaključak: kada se radi preko MIDI interfejsa (kada su sekvencer i tonski generator razmaknuti), rezolucija sekvencera od više od jednog tikta na 960 mikrosekundi nema smisla. Da biste saznali koliko će to biti u PPQN, možete koristiti formulu na sl. 2.

U tabeli na sl. 3 za različite stope prikazuje vrijednosti PPQN, koje je besmisleno premašivati.

Pozicija događaja na vremenskom ravnalu se postavlja u sekvenceru, obično u formatu "barovi: otkucaji: tikovi", na primjer, 22:3:152. Odnosno: dvadeset drugi takt, treći takt, 152. tik od početka trećeg takta. Sličan princip tajminga (engleski termin - Timebase) naziva se musical (muzički), jer je poznat i pogodan za muzičare. Imajte na umu da za rad u ovom formatu morate znati trenutni vremenski potpis. To jest, koliko taktova sadrži takt i čemu je svaki takt jednak.

Dakle, u vremenu 4/4 takt je jednak četvrtini, a mjera sadrži četiri takta. Sa rezolucijom od 384 PPQN, biće 384 tikova u jednom taktu, odnosno 1536 tikova u svakom taktu (384 x 4). Sa vremenskim potpisom 6/8 i istom rezolucijom, biće 192 takta po taktu (osma nota je polovina dužine četvrtine) i šest taktova po taktu, ili 1152 takta (192 x 6). Dakle, unos 22:3:152 u prvom slučaju znači 35096 tikova od početka pjesme (22 x 1536 + 3 x 384 + 152), a u drugom - 26072 tikova (22 x 1152 + 3 x 192 + 152).

Dakle, da biste odredili poziciju događaja u jedinicama u realnom vremenu na osnovu formata "barovi: otkucaji: tikovi", morate znati tri parametra: trenutni tempo, vremenski potpis i rezoluciju u taktovima po kvartalu (PPQN).

Postoji još jedna mogućnost brojanja vremena, kada se pozicija događaja na stazi izražava u apsolutnim jedinicama koje ne zavise od tempa, najčešće u vremenskom formatu SMPTE - "sati: minute: sekunde: kadrovi". Ovaj princip mjerenja vremena se naziva "bazirano na vremenskom kodu" (bazirano na vremenskom kodu, apsolutno). Potreba za njim nastaje kada sekvencer radi zajedno sa kasetofonom ili filmskom/video opremom. Operacije montaže sa filmskim, video i audio materijalom, naznačavajući pozicije početka i kraja snimka, pogodnije su za izvođenje, koje su vezane za apsolutnu skalu, a ne za mjere i taktove.

U ovom slučaju, koordinate događaja na vremenskom ravnalu zavise od trenutnog tempa. Dakle, na 120 BPM, prvi takt drugog takta može imati SMPTE vrijeme 00:00:02:00, a na 60 BPM može biti 00:00:04:00. Ako se događaj nalazi unutar okvira (između sekundi), njegova koordinata će se također razlikovati za različite formate okvira (broj okvira u sekundi). Više o SMPTE i MIDI vremenskom kodu možete pročitati u prethodnom članku u seriji.

Varijabilne dužine
Dosta lirskih digresija, sada je naš zadatak da shvatimo format pohrane podataka. A prva poteškoća s kojom su se programeri SMF-a suočili bila je kako uštedjeti vrijeme događaja.

Ovdje postoje dvije opcije: pohraniti za svaki događaj vrijeme od početka pjesme ili od posljednjeg događaja prije njega (na istom kanalu). Međutim, prva opcija nije racionalna, jer je najčešće interval između događaja mali, susjedni događaji imaju vremena izvršavanja blizu jedno drugom. Dakle, u odlomku od tri beleške, prva bi mogla imati vreme od, recimo, 22:3:152, druga 22:3:244, treća 22:3:288. Da biste pohranili ove brojeve (pretvorene u tikete s početka pjesme), morate rezervirati najmanje četiri bajta svaki. Ako krenete drugim putem, onda umjesto tri velika broja, možete sačuvati jedan veliki početni broj (22:3:152), nakon čega slijede dva mala, razlika u kvačicama između prvog i drugog, te drugog i trećeg bilješke (u ovom slučaju 92 i 44), dovoljan im je jedan bajt. Ipak, problem ostaje: ovisno o događaju, morate dodijeliti različit broj bajtova da biste uštedjeli vrijeme.

Da se SMF razvija u ovom trenutku (pa čak i od strane Microsofta, koji generalno malo brine o veličini svojih datoteka i potrebnoj memoriji), na ovaj problem bi se zatvorilo oko. Dodijelili smo fiksno polje za uštedu vremena, recimo, 8 bajtova po događaju, i nismo patili. Međutim, 1988. primarna (RAM) memorija je bila veoma skupa, svaki bajt se brojao, a sekundarna (medij na disku) imala je vrlo skromnu količinu. Stoga su programeri SMF-a željeli dobiti što kompaktniji format.

Odlučeno je da se zadrži delta vrijeme, odnosno razlika u tikovima između ovog događaja i prethodnog (ili početka pjesme). Na primjer, ako se prvi događaj - udaranje note C do prve oktave - dogodio u trenutku 40 otkucaja od početka pjesme, tada će njeno delta vrijeme biti 40. Ako se nota F odsvira nakon četiri takta, tada je delta vrijeme će biti 4. Ako se dva događaja dogode istovremeno, tada se jednom od njih dodjeljuje delta vrijeme jednako nuli. Ako se događaj dogodi tačno na početku pjesme, on također ima nultu delta vrijeme. Međutim, sljedeći događaj se može dogoditi za sat i po (dakle, nakon nekoliko miliona tikova). Kako biti u ovom slučaju? Na kraju krajeva, memoriju treba sačuvati, a nepoželjno je dodijeliti fiksno polje od nekoliko bajtova za delta vrijeme.

tzv količine varijabilne dužine. Oni pružaju zgodan način za pisanje cijelih brojeva, od najmanjeg do najvećeg, bez odvajanja fiksnog broja bajtova za broj. Bitovi originalnog broja su pakirani u jedan ili više bajtova: svaki bajt ima sedam bitova (desno, bitovi od 0 do 6). Najznačajniji bit u bajtu je usluga; svi bajtovi u nizu, osim posljednjeg, moraju sadržavati jedan, a posljednji - nulu. Nekoliko primjera pakiranja prikazano je na Sl. 4.

Na primjer, želite da spakujete broj 64 (heksadecimalni 0x40) u format promjenjive dužine. U binarnom obliku, ovaj broj je zapisan kao 0100 0000. Postoji samo sedam značajnih bitova, tako da je ovaj broj nepromijenjen u jedan bajt - 0100 0000 (to je ujedno i posljednji bajt serije), najznačajniji bit je 0.

Sada je broj 128 (0x80). U binarnom obliku, zapisuje se kao 1000 0000. Ima osam značajnih bitova, tako da neće sve stati u jedan bajt, morate ga podijeliti na dva. Prvi bajt mora imati jedan u visokom bitu, drugi (kao konačni bajt serije) mora imati nulu. Stavljamo sedam najmanjih bitova originalnog broja u drugi bajt, ispada 0 000 0000. Preostali jedan bit (jedan) stavlja se na desnu stranu prvog bajta - ispada 1000 0001. Kao rezultat , broj 0x80 je zapisan kao dva bajta: 0x81 0x00. Raspakivanje je vrlo jednostavno. Ne znamo unaprijed koliko je bajtova u nizu. Čitamo prvi bajt - 1000 0001. Visoki servisni bit (1) ukazuje da ovo nije zadnji bajt serije, ima više bajtova. Odbacujemo servisnu jedinicu, ostaje sedam bitova - 000 0001. Čitamo drugi bajt - 0000 0000. Visoki servisni bit (0) označava da je ovo posljednji bajt serije (tj. postoje samo dva bajta u serija). Odbacujemo servisni bit. Ostalo je i sedam bitova - 000 0000. Dodamo im s lijeve strane sedam bitova dodijeljenih od prvog bajta, dobijemo 000 0001 000 0000. Odbacivši prvih šest nula, dobijemo željeni broj 1000 0000 (0x80) .

Dakle, metoda vrijednosti varijabilne dužine omogućava vam da dodijelite različit broj bajtova za različite brojeve: za brojeve u rasponu od 0 do 127 - jedan bajt, od 128 do 16383 - dva bajta i tako dalje. Maksimalan broj koji se može predstaviti na ovaj način u principu nije ograničen. Međutim, u SMF-u, dužina pokretanja je ograničena na četiri bajta (tri sa najvažnijim postavljenim bitom i jedan završni sa nulom). Kao rezultat, maksimalno delta vrijeme može biti 0x0FFFFFFF (ili 268,435,455 tikova), što pri 500 BPM i 96 PPQN iznosi oko četiri dana. Više nego dovoljno!

U obliku vrijednosti varijabilne dužine, SMF specificira ne samo delta vrijeme, već i dužinu nekih događaja.

Format datoteke za razmjenu (IFF)
Struktura standardne MIDI datoteke gotovo je u potpunosti posuđena iz formata IFF (Interchange File Format), koji je 1985. godine razvio Electronic Arts. Ovo je format za pohranjivanje i razmjenu podataka koji je već skoro dvadeset godina olakšavao život i korisnicima i programerima softvera. Electronic Arts nije pružio samo dokumentaciju otvorenog koda, već i C izvorni kod za čitanje i pisanje IFF datoteka.

IFF format je kompatibilan unatrag i proširiv. Prvi znači da nova verzija programa može lako čitati datoteke kreirane prethodnom verzijom. Drugo, da biste pohranili dodatne informacije, ne morate izmišljati novi format, dovoljno je uvesti vlastitu ekstenziju u IFF. Struktura formata omogućava programima različitih proizvođača da razmjenjuju podatke koji nemaju relevantne poslovne ugovore jedni s drugima. Sve to raduje i korisnike - nakon što su pohranjeni podaci u IFF formatu, oni više nisu vezani za zatvoreni format svog sistema i mogu koristiti podatke u bilo kojem IFF kompatibilnom hardverskom i softverskom okruženju.

IFF datoteka je zbirka podataka organizirana na takav način da je mogu čitati različiti nepovezani programi. S druge strane, program može pohraniti određene informacije u IFF koje imaju smisla samo za sebe. IFF struktura to čini lakim. Drugi programi koji ne znaju kako da rukuju takvim informacijama mogu ih zanemariti bez utjecaja na čitanje glavnog sadržaja.

Postoji nekoliko tipova IFF datoteka. Na primjer, ILBM i GIFF datoteke sadrže grafičke informacije, SMUS datoteke sadrže muzičke zapise, AIFF i WAVE datoteke sadrže digitalni zvuk.

IFF datoteka se sastoji od elemenata istog tipa, koji se nazivaju blokovi (komadići). Blok je struktura podataka koja se sastoji od identifikatora slova (četiri ASCII znaka), veličine bloka (četiri bajta) i samih podataka (slika 5). Zgodno je zamisliti blok kao ljusku u koju su podaci "umotani". Sami podaci mogu sadržavati bilo šta: grafiku, tekst, animaciju, zvuk, skup 3D objekata itd.

Blokovi u IFF datoteci mogu biti ugniježđeni, sl. 6. Zapravo, IFF datoteka nije ništa drugo do blok najviše razine koji sadrži jedan ili više drugih blokova unutar sebe. Ovaj princip skladištenja podataka omogućava vam da "umotate" nekoliko heterogenih podataka u datoteku, uključujući nekoliko IFF datoteka, što već liči na sistem datoteka unutar datoteke. Istina, kod organizacije ugniježđenih podataka postoji jedan nedostatak - datoteku postaje teško interpretirati, izolirati blokove od nje.

Većina IFF datoteka sadrži blok najviše razine s identifikatorom "FORM". Uključuje i druge blokove (slika 7). Jedini podatak u bloku FORM su četiri bajta koji opisuju tip datoteke (npr. "ILBM", InterLeaved Bit Map). Ugniježđeni blokovi se postavljaju direktno iza njih, na primjer, "BMHD" (zaglavlje slike), "CMAP" (paleta) i "BODY" (sami pikseli). Nazive blokova i format podataka donosi programer određene vrste datoteke. Drugi programi, ako naiđu na blok nepoznatog imena, mogu ga sigurno preskočiti, vođeni poljem koje sadrži dužinu bloka.

Svi numerički podaci u IFF datotekama pohranjuju se u big-endian redoslijedu, to jest, prvi se pohranjuje najznačajniji bajt broja (MSB), a zatim najmanje značajan. Više o ovome u bočnoj traci. Blokovi unutar datoteke uvijek moraju započeti parnim bajtom. Ako prethodni blok sadrži neparan broj bajtova, on se popunjava nultim bajtom kako bi bio paran.

Koji kraj spasiti?
Računarska memorija se sastoji od ćelija, od kojih svaka stane tačno po jedan bajt. Za pristup ćeliji (upisivanje ili čitanje bajta), procesor koristi tzv adresa u vidu. To je samo cijeli broj koji je ćeliji dodijelio operativni sistem (neka mi kompjuterski naučnici oproste na ovom pojednostavljenju). U stvarnom životu, jedan bajt obično nije dovoljan. Čak i za pohranjivanje cijelih brojeva koriste se riječi, odnosno grupe od dva bajta, dvostruke ili četverostruke riječi (odnosno četiri ili osam bajtova, za više detalja pogledajte prvi dio ciklusa). To jest, broj je pohranjen u nekoliko susjednih bajtova.

Na sl. 8 prikazuje dva moguća načina njihovog postavljanja u memoriju, koristeći primjer dvostruke riječi. Prvi način - bajtovi se pohranjuju u memoriju uzastopno, najveći bajt na najnižoj adresi. To jest, MSB visoke riječi se pohranjuje na adresi N, zatim LSB visoke riječi (N + 1), MSB niske riječi (N + 2), LSB niske riječi (N + 3). Takav metod se zove big-endian(ili "direktna alokacija bajtova"). Kod druge metode, sve je upravo suprotno, visoki bajt se pohranjuje na najvišoj adresi: LSB niske riječi (N), MSB niske riječi (N + 1), LSB visoke riječi (N + 2 ), MSB visoke riječi (N + 3) . Ova metoda se zove little-endian- "obrnuta alokacija bajtova".

To jest, razlika je "sa kog kraja" (kraja) je pohranjena višebajtna vrijednost. Termini "big-endian" i "little-endian" predloženi su u jednom od članaka na ovu temu u vezi s Guliverovim avanturama Jonathana Swifta. Kao što znate, u Liliputu je nastao pokret Big-Endianaca, koji nisu htjeli postupiti u skladu s carevim dekretom, koji je nalagao da se kuhana jaja razbijaju samo s oštrog kraja. U kompjuterskom svijetu, konfrontacija big/little-endian izgleda vrlo slično.

Zagovornici malog endiana tvrde da endianness u memoriji olakšava izvođenje aritmetike na višebajtnim vrijednostima, budući da se najmanje značajni bajtovi koji se prvi dodaju pohranjuju na niskim adresama.

Malo-endian šema se koristi u Intel kompatibilnim procesorima od Intel 8080 do Intel Pentium IV. Direktno postavljanje (big-endian) - u Sun Spark procesorima, Motorola 68000 (rana linija Apple računara) i mnogim RISC procesorima. Ali PowerPC i Intel Itanium procesori razumiju oba formata podataka odjednom (ponekad se nazivaju "bi-endian").

Međutim, nije toliko važno kako računar pohranjuje podatke "unutar sebe", već kako ih skladišti "vani" u fajlovima. Ovo je mnogo važnije sa praktične tačke gledišta. Na primjer, ako je riječ "UNIX" spremljena u datoteku od strane big-endian sistema (kao dvije dvobajtne riječi), onda će je sistem s malim završetkom čitati kao "NUXI". U kompjuterskom žargonu, to je ono što se zove - "NUXI problem". Slične poteškoće mogu nastati prilikom pohranjivanja grafičkih slika, jer su boje kodirane kao višebajtni brojevi. Na primjer, Adobe Photoshop i JPEG datoteke koriste big-endian, dok GIF i BPM datoteke koriste mali-endian.

Standardni MIDI format datoteke (SMF) "van platforme" koristi metodu big-endian, tj. najvažniji bajt riječi (MSB) se prvi pohranjuje.

SMF struktura
Standardni MIDI fajlovi, poput IFF fajlova, sastoje se od blokova (komadova). Postoje dvije vrste blokova: Header Chunk i Track Chunk. Može postojati samo jedan blok zaglavlja i jedan ili više blokova zapisa u SMF datoteci. Blok ima tipičnu IFF strukturu: prva četiri bajta su identifikator, sljedeća četiri bajta su dužina bloka u bajtovima, isključujući osam bajtova tipa/dužine. Identifikator bloka zaglavlja je četiri "MThd" znaka, identifikator bloka staze je četiri "MTrk" znaka. Ova struktura će omogućiti da se u budućnosti definišu novi tipovi blokova, a nepoznati blok se može lako zanemariti na osnovu njegove dužine. SMF specifikacija upozorava: "Programi bi trebali biti spremni da ignorišu blokove tipova koje ne poznaju."

Blok zaglavlja sadrži opće informacije o datoteci, blok zapisa sadrži tok MIDI poruka s vremenskim oznakama. Osim toga, dodatne informacije potrebne sekvencerima se pohranjuju u MIDI fajl: tempo, vremenski potpis, tonalitet, postavke metronoma i slično. Ove informacije se ne prenose preko MIDI interfejsa, a događaji koji ih formiraju nazivaju se meta-događaji.

MIDI datoteka uvijek počinje blokom zaglavlja nakon kojeg slijedi jedan ili više blokova zapisa (slika 9). Odnosno, svaka standardna MIDI datoteka počinje sa četiri slova "M", "T", "h", "d". To znači da MIDI datoteka nije u skladu sa IFF specifikacijom (koja zahtijeva da svaka datoteka kompatibilna s IFF-om počinje s blokom najviše razine jednog od tri tipa - "FORM", "CAT" ili "LIST"). Postoje i druge razlike: SMF ne može sadržavati ugniježđene blokove, a dužina bloka ne mora biti parna. Međutim, pretvaranje SMF-a u datoteku kompatibilnu s IFF-om je jednostavno. Dovoljno je popuniti blokove neparne dužine od nula bajta (ako ih ima) i smjestiti sav sadržaj u blok FORM. Slična operacija se koristi u RMID formatu koji je predložio Microsoft (pogledajte bočnu traku).


Ovdje ste jer imate datoteku koja ima ekstenziju datoteke koja se završava na .smf. Datoteke sa ekstenzijom datoteke .smf mogu pokrenuti samo određene aplikacije. Moguće je da su .smf datoteke datoteke s podacima, a ne dokumenti ili mediji , što znači da "uopšte nisu namijenjeni za gledanje.

šta je a .smf file?

Datoteke u SMF formatu sadrže audio podatke sa efektima, a ovaj format datoteke je integrisan sa sličnim tehnologijama i funkcionalnostima kao datoteke sa ekstenzijom MID. Audio zapisi sa ekstenzijom .smf mogu se reproducirati pomoću Apple QuickTime aplikacije, a ovaj multimedijalni program ima verziju kompatibilnu sa sistemima baziranim na Microsoft Windows-u osim druge verzije razvijene za korisnike Mac-a. Udruženje MIDI Manufacturers Association integrisalo je MIDI specifikacije u SMF format datoteke tokom njegovog razvoja. To znači da SMF datoteke također mogu sadržavati različite numere kombinovane iz različitih audio zapisa pohranjenih u nekoliko SMF datoteka, što također znači da se datoteke u .smf formatu mogu kombinovati i pretvoriti u jedan audio zapis u popularnijim formatima koji se mogu gledati i koristiti s više Softver za razvoj digitalnog videa i prezentacije dokumenata, multimedijskih aplikacija i digitalnih audio playera. Ovo korisnicima pruža mogućnost da zasebno dodaju efekte svakoj numeri i naprave modifikacije na drugima prije nego što ih kombinuju za reprodukciju kao jedan audio zapis. Neki od ovih efekata i modifikacija mogu uključivati ​​podešavanja jačine i visine tona, izobličenja i reverb, pomeranje i izmene vremena između ostalog. Postoje aplikacije trećih strana koje mogu pretvoriti SMF datoteke u MIDI format za širu podršku za unakrsnu kompatibilnost za više aplikacija za uređivanje zvuka.

kako otvoriti .smf datoteku?

Pokrenite .smf datoteku ili bilo koju drugu datoteku na svom računaru dvostrukim klikom na nju. Ako su vaše asocijacije datoteka ispravno postavljene, aplikacija koja treba da otvori vašu .smf datoteku će je otvoriti. Moguće je da ćete morati preuzeti ili kupiti ispravnu aplikaciju. Takođe je moguće da imate ispravnu aplikaciju na svom računaru, ali .smf datoteke još nisu povezane s njom. U ovom slučaju, kada pokušate da otvorite .smf datoteku, možete reći Windowsu koja je aplikacija ispravna za tu datoteku. Od tada, otvaranjem .smf datoteke otvorit će se ispravna aplikacija.

aplikacije koje otvaraju .smf datoteku

Apple QuickTime Player

Apple QuickTime Player

Apple QuickTime Player je softver za multimedijalni plejer koji rukuje raznim datotekama različitih formata od digitalnih fotografija do panoramskih slika, audio i video zapisa kao i interaktivnosti. Ovaj program za multimedijalni plejer dostupan je za Mac OS X računare, kao i za novije verzije Windows računara. Ovaj softverski proizvod kompanije Apple ima komplete za razvoj softvera ili SDK-ove koji su dostupni javnosti sve dok ste pretplaćeni na Apple Developer Connection ili ADC. Ima QuickTime framework, koji je kompatibilan sa drugim besplatnim aplikacijama za igrače, koje pružaju nekoliko funkcija. To uključuje kodiranje audio i video zapisa, transkodiranje istih datoteka, dekodiranje sa opcijom slanja dekodiranog toka u grafički podsistem ili audio podsistem, i arhitekturu komponentnih dodataka za podršku drugim kodecima (treće strane kao što je DivX). Najnovija verzija ovog softvera je QuickTime Player 7 koji se može besplatno preuzeti za Mac i Windows računare.

riječ upozorenja

Pazite da ne preimenujete ekstenziju na .smf files ili bilo koje druge datoteke. Ovo neće promijeniti vrstu datoteke. Samo specijalni softver za konverziju može promijeniti datoteku iz jedne vrste datoteke u drugu.

šta je ekstenzija datoteke?

Ekstenzija datoteke je skup od tri ili četiri znaka na kraju naziva datoteke; u ovom slučaju, .smf.  Ekstenzije datoteke govore o kojoj se vrsti datoteke radi i govore Windows-u koji programi mogu da je otvore. Windows često pridružuje zadani program svakoj ekstenziji datoteke, tako da kada dvaput kliknete na datoteku, program se automatski pokreće. Kada taj program više nije na vašem računaru, ponekad možete dobiti grešku kada pokušate da otvorite povezanu datoteku.


Obično sekvenceri koriste svoj vlastiti format pohrane za aranžmane. To je zato što je struktura podataka dizajnirana za mogućnosti određenog programa mnogo efikasnija i jednostavno lakša za rad. Možete upisati dodatne podatke u svoj format, na primjer, da biste prilagodili korisničko sučelje (položaj i veličina prozora, font i tako dalje). Osim toga, kompaktnost standardnih MIDI datoteka (posebno vrijednosti varijabilne dužine za pohranjivanje vremena nastanka događaja) pretvara se u neugodnost: za rad s aranžmanom, sva delta vremena u datoteci moraju biti "raspakirana" , a prilikom pohranjivanja fajla ponovo se "pakira".

S druge strane, SMF je prenosivi multi-platformski format, može definirati sve dodatne blokove za pohranjivanje određenih podataka. Na primjer, jedan sekvencer može pohraniti metronom uključen ili isključen u blok pod nazivom "Mtr". Ovaj blok nije prepreka drugom sekvenceru, on može definirati nekoliko svojih specifičnih blokova u istoj datoteci. Dakle, neki sekvenceri koriste SMF format direktno, on je za njih "domaći". Drugi vam omogućavaju uvoz i izvoz MIDI datoteka po potrebi.

Da bi se podržale različite vrste sekvencera i druge opreme, standardni MIDI fajlovi su podeljeni u tri varijante ili formata: 0, 1 i 2.

Datoteka formata 0 sadrži jednu stazu, koja sadrži događaje sa svih šesnaest MIDI kanala. Ovo je najjednostavniji format za razmjenu podataka, jer ne uzima u obzir originalnu strukturu zapisa u sekvenceru (koja je staza dodijeljena kojem MIDI kanalu). Datoteka formata 0 je pogodnija za prijenos podataka na uređaje kao što su mikseri i efekt procesori nego za pohranjivanje aranžmana. Kada pišete datoteku u formatu 0, sekvencer jednostavno spaja sve poruke sa svih MIDI kanala u jednu stazu. U skladu s tim, prilikom učitavanja fajla dobijamo jednu stazu, gdje je problematično uređivati ​​događaje, jer su događaji za različite kanale isprepleteni jedan s drugim. Većina sekvencera ima mogućnost da podijeli ovaj "miks" u zasebne staze, od kojih svaka sadrži događaje za jedan MIDI kanal.

Datoteka Format 1 sadrži zasebnu stazu za svaki MIDI kanal, odražavajući poznatu strukturu aranžmana u sekvenceru. Datoteka formata 2 sadrži nekoliko nezavisnih radova (ili kompletnih obrazaca), svaki obrazac se sastoji od jedne trake koja sadrži poruke na svih 16 kanala. Ovaj format je trebalo da se koristi u onim sekvencerima koji mogu da rade sa nezavisnim šablonima koje svira više instrumenata u isto vreme. Međutim, format 2 je univerzalno zanemaren i sada se smatra da "nije namijenjen sekvencerima" u specifikaciji.

Jedna od glavnih razlika između formata 0 i 1 je način na koji se meta događaji postavljaju. U formatu 0, meta-događaji tempa i vremenskog potpisa (koji se nazivaju mapa tempa) se miješaju s drugim MIDI porukama. Također, nazivi pjesama se ne čuvaju u ovom formatu. U formatu 1, prva numera u datoteci je rezervisana isključivo za mapu tempa i druge meta događaje kao što su naziv sekvence/trake, broj sekvence, marker, SMPTE pomak (pogledajte dole).

Ako u datoteci nema mape tempa, pretpostavlja se da je tempo 120 BPM, a vremenski potpis je 4/4.

MMA bi mogao razviti druge SMF formate u budućnosti kako bi podržao nove strukture podataka u sekvencerima.

Blok zaglavlja ("MThd")

Blok zaglavlja sadrži osnovne informacije o datoteci. Struktura bloka je prikazana na sl. 11. Polje dužine uvijek sadrži broj 6, broj bajtova podataka zaglavlja koji slijede nakon ovog polja. Podaci zaglavlja su tri 16-bitne riječi. Prva riječ (format) je SMF format, može imati jednu od tri vrijednosti - 0, 1 i 2. Druga riječ (ntrks) je broj blokova staza (odnosno samih staza) u datoteci . Za datoteku formata 0, uvijek će biti jednaka jedan.

Posljednja riječ bloka zaglavlja (podjela) specificira kako se mjeri vrijeme (vremenska baza). Kao što je ranije spomenuto, postoje dvije metode: muzička (taktovi/ritovi) i apsolutna (bazirana na vremenskom kodu), zasnovana na apsolutnom vremenu u SMPTE formatu. U svakom slučaju, delta vrijeme u SMF datoteci se mjeri u tikovima: muzičkom metodom precizira se broj tikova po četvrtini (tj. PPQN), a apsolutnim - broj tikova u jednom SMPTE kadru. Ako se najznačajniji (15.) bit polja podjele resetuje na nulu, tada se koristi muzički metod, a preostalih 15 bitova sadrži PPQN (do 32767), sl. 12. Ako je najznačajniji bit postavljen na jedan, tada se koristi apsolutna metoda. Niži bajt (bitovi od 0 do 7) pohranjuje broj tikova po kadru, visoki bajt (bitovi 8 do 15) pohranjuje format okvira SMPTE izražen kao negativne vrijednosti (-24, -25, -29, -30) . U ovom slučaju, broj -29 odgovara formatu Drop Frame od 30 fps (pogledajte prethodni članak u seriji).

Negativni brojevi se biraju jer su napisani u obliku binarnog komplementa (vidi prethodni članak), odnosno sadrže jedan u najznačajnijem bitu. A ova jedinica je samo znak apsolutnog načina računanja vremena. Broj tiketa po kadru je pohranjen pozitivno i obično uzima jednu od sljedećih vrijednosti: 4 (rezolucija kao u MIDI vremenskom kodu kada postoje četiri četvrtine poruke po kadru), 8, 10, 80 (jedan bit rezolucija u SMPTE okviru ), ili 100 .

Takav sistem vam omogućava da odredite apsolutno vrijeme događaja sa tačnošću od 1/128 kadra. Osim toga, ako postavite format okvira na 25 fps i rezoluciju na 40 tikova po kadru, tada će svaki tik odgovarati jednoj milisekundi. Polje podjele u ovom slučaju imat će vrijednost 0xE728, bajt 0xE7 predstavlja komplementa dva od -25, a 0x28 je broj 40 u heksadecimalnoj notaciji.

Blok staze ("MTrk")

Blok staze pohranjuje same događaje, odnosno MIDI poruke sa vremenskom oznakom. Blok mora sadržavati najmanje jedan događaj. Struktura bloka zapisa je ista za MIDI datoteke bilo kojeg formata (0, 1 i 2), sl. trinaest.

Događaj se sastoji od delta vremena i same MIDI poruke, sl. 14. Podsjetimo da je delta vrijeme pohranjeno kao vrijednost varijabilne dužine.

Nadamo se da smo vam pomogli da riješite problem sa SMF datotekom. Ako ne znate gdje možete preuzeti aplikaciju sa naše liste, kliknite na link (ovo je naziv programa) - naći ćete detaljnije informacije o mjestu odakle možete preuzeti sigurnu instalacionu verziju potrebne aplikacije .

Posjetite ovu stranicu trebalo bi vam pomoći da odgovorite na ova ili slična pitanja:

  • Kako otvoriti datoteku sa ekstenzijom SMF?
  • Kako pretvoriti SMF datoteku u drugi format?
  • Šta je ekstenzija SMF formata datoteke?
  • Koji programi podržavaju SMF fajl?

Ako nakon pregleda materijala na ovoj stranici još uvijek niste dobili zadovoljavajući odgovor na bilo koje od gornjih pitanja, to znači da informacije u vezi s SMF datotekom koje su ovdje predstavljene nisu potpune. Kontaktirajte nas putem kontakt forme i javite nam koje informacije niste pronašli.

Šta još može uzrokovati probleme?

Može biti više razloga da ne možete otvoriti SMF datoteku (ne samo nedostatak odgovarajuće aplikacije).
Prvo- SMF datoteka može biti pogrešno povezana (nekompatibilna) s aplikacijom koja je instalirana da bi je podržavala. U tom slučaju morate sami promijeniti ovu vezu. Da biste to uradili, kliknite desnim tasterom miša na SMF datoteku koju želite da uredite, kliknite na opciju "Za otvaranje sa" a zatim sa liste izaberite program koji ste instalirali. Nakon takve radnje, problemi s otvaranjem SMF datoteke trebali bi potpuno nestati.
Drugo- datoteka koju želite da otvorite može jednostavno biti oštećena. Tada je najbolje rješenje pronaći novu verziju, ili je ponovo preuzeti sa istog izvora kao prije (možda iz nekog razloga u prethodnoj sesiji preuzimanje SMF datoteke nije završeno i ne može se pravilno otvoriti).

Želite li pomoći?

Ako imate dodatne informacije o ekstenziji datoteke SMF, bit ćemo vam zahvalni ako ih podijelite s korisnicima naše stranice. Koristite dostavljeni obrazac i pošaljite nam svoje podatke o SMF datoteci.