Faililaiend SMF. SMF-vormingud Avage smf-fail

Kui teil on arvuti installitud viirusetõrjetarkvara saab skannida kõiki arvutis olevaid faile, samuti iga faili eraldi... Saate skannida mis tahes faili, paremklõpsates failil ja valides faili viiruste kontrollimiseks sobiva valiku.

Näiteks sellel joonisel fail minu-fail.smf, siis peate sellel failil paremklõpsama ja valige failimenüüst suvand "Skanni AVG-ga"... Selle valiku valimisel avaneb AVG Antivirus, mis kontrollib seda faili viiruste suhtes.


Mõnikord võib viga tuleneda sellest tarkvara vale installimine, mis võib olla tingitud installiprotsessi käigus ilmnenud probleemist. See võib teie operatsioonisüsteemi häirida linkige oma SMF-fail õige rakendustarkvaraga mõjutades nn "Faililaiendi seosed".

Mõnikord lihtne Apache OpenOffice'i uuesti installimine võib teie probleemi lahendada, ühendades SMF-i õigesti Apache OpenOffice'iga. Muudel juhtudel võivad failiseostega seotud probleemid tuleneda sellest halb tarkvara programmeerimine arendaja ja peate võib-olla edasise abi saamiseks arendajaga ühendust võtma.


Nõuanne: Proovige värskendada Apache OpenOffice'i uusimale versioonile, veendumaks, et uusimad paigad ja värskendused on installitud.


See võib tunduda liiga ilmne, kuid sageli SMF-fail ise võib probleemi põhjustada... Kui saite faili meilimanuse kaudu või laadisite selle veebisaidilt alla ja allalaadimisprotsess katkes (nt elektrikatkestus või muu põhjus), fail võib olla kahjustatud... Võimalusel proovige hankida SMF-failist uus koopia ja proovige see uuesti avada.


Hoolikalt: Kahjustatud fail võib põhjustada täiendavat kahju teie arvuti varasemale või olemasolevale pahavarale, mistõttu on väga oluline, et teie arvutis töötaks pidevalt värskendatud viirusetõrje.


Kui teie SMF-fail mis on seotud teie arvuti riistvaraga vajaliku faili avamiseks värskendage seadme draivereid selle seadmega seotud.

See probleem tavaliselt seotud meediumifailide tüüpidega mis sõltuvad näiteks arvuti sees oleva riistvara edukast avamisest, helikaart või videokaart... Näiteks kui proovite avada helifaili, kuid ei saa seda avada, peate võib-olla seda tegema värskendage helikaardi draivereid.


Nõuanne: Kui proovite SMF-faili avada, saate SYS-failiga seotud veateade, võib probleem tõenäoliselt olla seotud kahjustatud või aegunud seadmete draiveritega mida tuleb uuendada. Seda protsessi saab hõlbustada draiveri värskendustarkvara (nt DriverDoc) abil.


Kui sammud probleemi ei lahendanud ja teil on endiselt probleeme SMF-failide avamisega, põhjuseks võib olla saadaolevate süsteemiressursside puudumine... Mõned SMF-failide versioonid võivad teie arvutis korralikult avamiseks nõuda märkimisväärsel hulgal ressursse (nt mälu / RAM, töötlemisvõimsus). See probleem ilmneb üsna sageli, kui kasutate üsna vana arvuti riistvara ja samal ajal palju uuemat operatsioonisüsteemi.

See probleem võib ilmneda siis, kui arvutil on ülesandega raskusi, kuna operatsioonisüsteem (ja muud taustal töötavad teenused) võivad kulutab SMF-faili avamiseks liiga palju ressursse... Enne StarMath Formula File avamist proovige sulgeda kõik arvutis olevad rakendused. Vabastades arvutis kõik saadaolevad ressursid, loote SMF-faili avamiseks parema keskkonna.


Kui sa täitnud kõik ülaltoodud sammud ja teie SMF-fail ikka ei avane, peate võib-olla käivitama seadmete uuendamine... Enamikul juhtudel, isegi vanemate riistvaraversioonide korral, võib töötlemisvõimsus olla enamiku kohandatud rakenduste jaoks siiski enam kui piisav (välja arvatud juhul, kui teete palju protsessorimahukat tööd, nagu 3D-renderdamine, finants-/teaduslik modelleerimine või raske multimeediatöö). ... Sellel viisil, tõenäoliselt pole teie arvutil piisavalt mälu(sagedamini nimetatakse seda "RAM" või muutmälu), et täita faili avamise ülesannet.

MIDI-protokolli üksikasjalikult kirjeldavate artiklite seeria 5. osa.

Üks MIDI-protokolli kolmest osast on andmesalvestusvormingu spetsifikatsioon (pidage meeles, ülejäänud kaks on sõnumivorming ja riistvaraliidese spetsifikatsioon). Sõnumi vormingust oli juttu sarja esimeses kolmes artiklis, nüüd on käes salvestusvormingu aeg. Selle pakkus välja MMA organisatsioon 1987. aasta lõpus ja see sai nimeks Standard MIDI Files (SMF).

MIDI-failide eesmärk on võimaldada sündmuste (st ajatempliga MIDI-sõnumite) vahetamist erinevate seadmete ja programmide vahel. Enne standardsete MIDI-failide tulekut ei saanud ühes sekventeris koostatud seadet vormingu mitteühilduvuse tõttu teise laadida. See ei tähenda, et SMF-i tulekuga oleksid kõik sekvensserite tootjad sellele vormingule üle läinud. Sellel on mitu põhjust ja neist räägime ka täna.

Kuna teabe salvestamine on otseselt seotud sekvenaatorite seadmega, peatume sellel teemal üksikasjalikumalt, kuid ainult niivõrd, kui see on vajalik SMF-i mõistmiseks. Ja kahtlemata pühendame tsükli ühe järgmistest artiklitest sekvenaatoritele.

Sündmused
Kutsutakse ajatempliga MIDI-sõnum sündmus... Aja näitamiseks võib kasutada erinevaid ühikuid – linnukesed, sisemised impulsid, aeg SMPTE formaadis jne. Oluline on mõista sündmuse ja sõnumi põhimõttelist erinevust. Sõnum "elab" murdosa millisekundist reaalajas – hetkest, mil see allika poolt genereeritakse, kuni hetkeni, mil see saadetakse vastuvõtjale täitmiseks. Seda saab MIDI-kaabli kaudu edastamise käigus püüda impulsside komplektina. Sündmus on seadme mällu salvestatud paaribaidine info, mille alusel edaspidi, määratud ajal, genereeritakse teade.

Näiteks võib sekventser salvestada sündmuse "vali märkus" ajatempliga 100 ms alates taasesituse algusest. Seda sündmust saate redigeerida kahes dimensioonis: esiteks muuta MIDI-sõnumi enda parameetreid (antud juhul noodi kõrgust või dünaamikat) ja teiseks liigutada nooti mööda rada, st muuta täitmisaega. sõnumist.

MIDI-sõnumite salvestamise ajal ilmuvad sekvenseri mällu sündmused. Kui vajutate nuppu Record, lülitab sekvenser sisse riistvaralise impulsi generaatori (tiksud) ja hakkab "kuulama" määratud MIDI sisendit. Näiteks kui vajutate klahvi, saab sisend teade "vali märkus". Sekvenser vaatab - jah, teade saabus 20. linnukese juurde ja kirjutab selle mällu sildiga 20. Paari sekundi pärast vabastasid nad võtme - tuli teade "unmark", sisemine generaator lehvitas rõõmsalt 64 linnukesega. sekveneerija sel hetkel. Sekvenser salvestab sõnumi sildiga 64. Nüüd on meil kaks sündmust - Note On ja Note Off. Taasesituse ajal lülitatakse impulsigeneraator uuesti sisse. Kui ilmub 20. linnuke, saadetakse sekvenseri MIDI väljundisse teade Note On, 64. linnuke on Note Off. Salvestasime ja seejärel esitasime esitaja tegevust!

Ilmselgelt saab sama teha ka võrguühenduseta, st ilma, et oleks vaja live-esinemist. Klõpsates hiirega rajal õiges kohas (ja olles eelnevalt valinud noodi kestuse), ehitame sekvenseri mällu täpselt eelmise pildi.

Mälu tüübid
Nüüd on aeg rakendada kahte hirmuäratavat arvutiterminit: esmane ja sekundaarne mälu. Esmane (või sisemine) mälu on järjestusmälu, kuhu salvestatakse sõnumid ja sündmused kogu seansi jooksul. Mälu sisu kustutatakse toite väljalülitamisel. See tõlgendus sobib rohkem riistvaralise järjestuse jaoks. Tarkvarasekvenaatorites on esmane mälu lihtsalt arvuti RAM. Primaarmälu sisu pikaajaliseks säilitamiseks kasutatakse sekundaarmälu ehk teisisõnu andmekandjaid. See võib olla diskett, kõvaketas, kiipkaart jms.

Riistvaraliste sekvenaatorite ja tööjaamade (pidage meeles, et tööjaam on ühes kastis toonigeneraator ja sekventseerija) esmase mälu mahtu väljendatakse tavaliselt salvestatud nootide arvuna (näiteks 200 tuhat). Mõnikord väljendub helitugevus sündmustes, sellisel juhul tuleb valvel olla – ühe noodi salvestamiseks on vaja kahte sündmust (klahvi vajutamine ja vabastamine) ning helikõrguse ratta pööramine või järelpuudutus võib genereerida kuni 100 või enam sündmust. Juhtub, et sekvenseri mälumahtu väljendatakse natiivsetes arvutiühikutes - kilobaitides. Kuid see pole ka väga mugav - üks sündmus võib hõivata erineva arvu baite (viiest kuni mitme kümneni).

Kaasaegsetes tarkvarajärjestajates hoolivad vähesed inimesed esmase mälu mahust - isegi 128 MB muutmäluga masinas võite MIDI-andmetega töötamisel unustada kõik piirangud. Lisaks on sekvensereid, mis suudavad esitada seadet otse kettalt, ilma seda esmasesse mällu laadimata (ja muide ka salvestada), mis üldiselt kustutab erinevuse kahe mälutüübi vahel.

Sekundaarses mälus kirjutatakse andmed tavaliselt faili. Enamikul sekvenaatoritel on selle faili jaoks oma patenteeritud vorming, mis muudab erinevates seadmetes või programmides loodud korralduste vahetamise keeruliseks. Varem väideti, et see oli SMF-i loomise peamine põhjus.

Aja mõõtmine
Tegelikult ei ole sekvenseri sees ühtegi "puuki". Seal on riistvarataimer, mis genereerib impulsse rangelt konstantse sagedusega (näiteks iga mikrosekundi järel). Muusikute sundimine aega mikrosekundites mõõtma oleks koletu pilkamine, nagu tõepoolest ka muudes reaalaja ühikutes (sekundites, minutites). Muusikud on harjunud mõtlema taktides ja taktides ning väljendama aega suhtelistes ühikutes (noodide kestused), olenevalt hetketempost.

"Pole probleemi," vastasid tootjad, "las mõõdavad nii, nagu neile mugavam on." Ainult minimaalne mõõtühik ei saa olema mingi 32. kestus, vaid tinglikult võetav linnuke (ühik on veelgi väiksem, nii et näiteks üks kolmkümmend sekundit võib sisaldada 48 linnukest). Kuna klassikalisest ajastust on tempot mõõdetud veerandite arvuga minutis (BPM, lööki minutis), siis otsustasid nad võtta peamiseks kestuseks veerandi ja näidata puukide arvu kvartalis - PPQN (Pulse Per). Kvartali märkus). Mida suurem on PPQN, seda parem on sekventseri eraldusvõime ja seda täpsemini ajaliselt suudab see salvestamise ajal sõnumeid püüda ja taasesituse ajal MIDI-väljundisse väljastada. Enamik sekvensereid võimaldab PPQN-i suvaliselt seadistada – näiteks 32–1536 märki kvartalis (kaasaegsed sekvenserid – kuni 15360 PPQN-i).

Puuk on määrast sõltuv ühik: mida kiirem on määr, seda lühem on linnukeste vaheline intervall reaalajas ühikutes. Selle intervalli saab leida joonisel fig. üks.

Näiteks 120 BPM ja 96 PPQN juures järgneb puugid iga 5,208 millisekundi järel. Sama eraldusvõime ja 180 BPM korral väheneb tiksumiste vaheline intervall 3,472 ms-ni. Kuidas sekvenser loeb puuke, kui selle sisemine taimer pulseerib iga mikrosekundi tagant? See on väga lihtne: hetketempo ja eraldusvõime alusel veerandis täpselt etteantud valemi järgi. Kuna üks millisekund sisaldab 1000 mikrosekundit, siis viimases näites genereerib sekventseerija teise linnukese, kui saab taimerilt 3472 impulssi.

Kui kõrgel eraldusvõimel pole mõtet
Kui sekvenser ja toonigeneraator on "ühe katuse all" (tööjaam või arvuti, mille helikaardil on tarkvaraline sekvenser ja süntesaator või siis virtuaalne süntesaator), siis võib sellise süsteemi sisemine eraldusvõime olla meelevaldselt kõrge (15360 PPQN on muljetavaldav). See võimaldab teil MIDI- ja heliandmeid näidistäpsusega sünkroonida. Kuid niipea, kui ühendame sekvenseri ja toonigeneraatori MIDI-kaabliga MIDI-liidese kaudu, muutub kõrge eraldusvõime tähtsusetuks.

Miks? Tuletan meelde, et üks bait edastatakse MIDI-liidese kaudu 320 mikrosekundi jooksul. See tähendab, et näiteks märkmete tegemise teadet (koosneb kolmest baidist) edastatakse 960 μs ehk peaaegu terve millisekundi. Kujutage nüüd ette, et sekventseris kiirusel 120 BPM ja 2048 PPQN on kaks nooti programmeeritud kahe linnukesega. Reaalajas on see 488 mikrosekundit. Niisiis: toonigeneraator ei saa teist nooti vastu võtta 488 mikrosekundit pärast esimest, kuid tegelikkuses - alles 960 mikrosekundi pärast. Nii et ta teeb seda mitte kahe, vaid peaaegu nelja linnukese pärast.

Siit järeldus: MIDI-liidese kaudu töötades (kui sekvenser ja toonigeneraator on eraldatud) ei ole sekventseri eraldusvõimel rohkem kui üks linnuke 960 mikrosekundi kohta mõtet. Et teada saada, kui palju see PPQN-is on, võite kasutada joonisel fig. 2.

Tabel joonisel fig. 3 näitab erinevate tempode PPQN väärtusi, mida on mõttetu ületada.

Sündmuse asukoht ajateljel määratakse sekventseris, tavaliselt vormingus "taktid: taktid: tiksud", näiteks 22: 3: 152. See tähendab: kahekümne teine ​​takt, kolmas löök, 152. linnuke kolmanda löögi algusest. Seda ajastuse põhimõtet (ingliskeelne termin - Timebase) nimetatakse muusikaliseks, kuna see on muusikutele tuttav ja mugav. Pange tähele, et selles vormingus töötamiseks peate teadma praegust kellamõõturit. See tähendab, mitu lööki mõõt sisaldab ja millega iga löök on võrdne.

Nii et 4/4 taktimõõduga võrdub löök veerandiga ja takt sisaldab nelja lööki. Resolutsiooniga 384 PPQN on ühes löögis 384 puuki ja igas puugis on 1536 puuki (384 x 4). 6/8 ja sama resolutsiooniga on üks löök 192 puuki (kaheksandik on veerandist poole pikem) ja mõõt kuus lööki ehk 1152 puuki (192 x 6). Seega tähendab 22: 3: 152 esimesel juhul 35096 puuki loo algusest (22 x 1536 + 3 x 384 + 152) ja teisel juhul 26072 puuki (22 x 1152 + 3 x 192 + 152). .

Seega, et määrata sündmuse asukoht reaalajas ühikutes vormingu "tulbad: lööki: puugid" alusel, peate teadma kolme parameetrit: praegune tempo, taktimõõtur ja eraldusvõime kvartali kohta (PPQN).

On veel üks ajavõtu võimalus, kui sündmuse asukohta rajal väljendatakse absoluutühikutes, mis ei sõltu tempost, kõige sagedamini SMPTE ajavormingus - "tunnid: minutid: sekundid: kaadrid". Seda ajastamise põhimõtet nimetatakse "ajakoodipõhiseks" (timecode-based, absoluutne). Vajadus selle järele tekib siis, kui sekvenser töötab koos magnetofoniga või filmi-/videotehnikaga. Filmi-, video- ja helimaterjaliga montaažioperatsioone, salvestuse alguse ja lõpu positsioonide määramist on mugavam sooritada, olles seotud absoluutskaalaga, mitte mõõtude ja löökidega.

Sel juhul sõltub sündmuse koordinaat ajajoonlaual hetketempost. Nii et 120 BPM-i tempo korral võib teise takti esimese löögi SMPTE aeg olla 00:00:02:00 ja tempoga 60 BPM – 00:00:04:00. Kui sündmus paikneb kaadris (sekundite vahel), erineb selle koordinaat ka erineva kaadrivorminguga (kaadrite arv sekundis). Lisateavet SMPTE ja MIDI ajakoodi kohta saate lugeda sarja eelmisest artiklist.

Muutuva pikkusega kogused
Piisavalt lüürilistest kõrvalepõikest, nüüd on meie ülesandeks mõista andmesalvestusvormingut. Ja esimene väljakutse, millega SMF-i arendajad silmitsi seisid, oli sündmuse ajastuse hoidmine.

Siin on kaks võimalust: salvestada iga sündmuse jaoks aeg loo algusest või viimasest sündmusest enne seda (samal kanalil). Esimene variant ei ole aga ratsionaalne, sest enamasti on sündmuste vahe väike, naabersündmuste täitmise ajad on üksteisele lähedased. Nii et kolmest noodist koosnevas lõigus võib esimeses olla aeg, näiteks 22:3:152, teise - 22:3:244, kolmanda - 22:3:288. Nende numbrite salvestamiseks (loo algusest tõlgituna linnukesteks) tuleb igaühe jaoks varuda vähemalt neli baiti. Kui lähete mööda teist teed, saate kolme suure numbri asemel salvestada ühe suure algusnumbri (22: 3: 152) ja pärast seda - kaks väikest, esimese ja teise ning teise puukide erinevus ja kolmandad noodid (antud juhul 92 ja 44), piisab neile ühest baidist. Kuid ikkagi jääb probleem alles: olenevalt sündmusest peate aja säästmiseks eraldama erineva arvu baite.

Kui SMF-i arendataks praegu (ja isegi Microsofti poolt, kes üldiselt oma failide suurusest ja vajalikust mälust vähe hoolib), jäetaks see probleem silma kinni. Aja säästmiseks eraldasime fikseeritud välja, näiteks 8 baiti sündmuse kohta, ega kannatanud. 1988. aastal oli aga esmane (RAM) mälu väga kallis, iga bait oli üle loetud ja sekundaarne (kettakandja) oli väga tagasihoidliku suurusega. Seetõttu soovisid SMF-i arendajad saada võimalikult kompaktse vormingu.

Otsustati alles jätta delta aeg, ehk selle sündmuse ja eelmise (või laulu alguse) puukide erinevus. Näiteks kui esimene sündmus - noodi löömine esimesele oktaavile - toimus loo algusest 40 tikku ajal, siis on selle deltaaeg 40. Kui pärast nelja linnukest kõlab noot F, siis on selle deltaaeg 4. Kui kaks sündmust toimuvad samaaegselt, siis ühele neist määratakse deltaaeg, mis võrdub nulliga. Kui sündmus leiab aset täpselt loo alguses, on ka selle deltaaeg null. Järgmine sündmus võib aga juhtuda pooleteise tunni pärast (see tähendab mitme miljoni puugiga). Kuidas sel juhul olla? Lõppude lõpuks tuleb mälu säästa ja deltaaja jaoks pole soovitav eraldada mitme baidi fikseeritud välja.

Niinimetatud muutuva pikkusega... Need pakuvad mugavat viisi täisarvude kirjutamiseks, alates väikseimast kuni suurimani, ilma et peaksite numbrile fikseeritud arvu baite eraldama. Algnumbri bitid on pakitud ühte või mitmesse baiti: igal baidil on seitse bitti (paremal bitid 0 kuni 6). Kõige olulisem bitt baidis on teenus; kõik seeria baidid, välja arvatud viimane, peavad sisaldama ühte, viimane - null. Mitmed pakendinäited on näidatud joonisel fig. 4.

Näiteks peate pakkima numbri 64 (hex 0x40) muutuva pikkusega vormingusse. Binaarses vormis on see arv kirjutatud kui 0100 0000. Olulisi bitte on vaid seitse, nii et see arv pakitakse muutmata ühte baiti - 0100 0000 (see on ka seeria viimane bait), kõige olulisem bitt on 0.

Nüüd on number 128 (0x80). Binaarses vormis kirjutatakse see 1000 0000. Olulisi bitte on kaheksa, nii et kõik ei mahu ühte baiti, peate selle kaheks jagama. Esimesel baidil peab kõige olulisemas bitis olema üks, teisel (jada lõpetava baidina) - null. Teise baiti paneme algarvu seitse vähimat tähtsust omavat bitti, selgub 0 000 0000. Ülejäänud ühe biti (üks) paneme esimese baiti paremale poole - saame 1000 0001. Selle tulemusena, arv 0x80 kirjutatakse kahe baidina: 0x81 0x00. Lahtipakkimine on väga lihtne. Me ei tea ette, mitu baiti seerias on. Loeme esimest baiti - 1000 0001. Kõige olulisem teenindusbitt (1) näitab, et see pole seeria viimane bait, baite on rohkem. Loobume teenindusüksusest, jättes alles seitse bitti - 000 0001. Lugege teist baiti - 0000 0000. Kõige olulisem teenindusbitt (0) näitab, et see on seeria viimane bait (see tähendab, et seerias on ainult kaks baiti). seeria). Me loobume teenindusbitist. Jäänud on ka seitse bitti - 000 0000. Lisame neile vasakule esimesest baidist eraldatud seitse bitti, saame 000 0001 000 0000. Esimesed kuus nulli kõrvale heites saame vajaliku arvu 1000 0000 (0x80).

Seega võimaldab muutuva pikkusega meetod eraldada erinevatele numbritele erineva arvu baite: numbrite jaoks vahemikus 0 kuni 127 - üks bait, 128 kuni 16383 - kaks baiti jne. Sel viisil esindatud maksimaalne arv ei ole põhimõtteliselt piiratud. Kuid SMF-is on saristuse pikkus piiratud nelja baidiga (kolm on seatud kõige olulisema bitiga ja üks lõpeb nulliga). Selle tulemusena võib maksimaalne deltaaeg olla 0x0FFFFFFFF (või 268 435 455 puuki), mis kiirusel 500 BPM ja eraldusvõimega 96 PPQN on umbes neli päeva. Rohkem kui küll!

Muutuva pikkusega väärtuste kujul näitab SMF mitte ainult deltaaega, vaid ka mõne sündmuse pikkust.

Failivahetusvorming (IFF)
Standardse MIDI-faili struktuur tuleneb peaaegu täielikult IFF-ist (Interchange File Format), mille töötas välja 1985. aastal Electronic Arts. Tegemist on andmesalvestus- ja andmevahetusvorminguga, mis on ligi paarkümmend aastat nii kasutajate kui ka tarkvaraarendajate elu lihtsamaks teinud. Electronic Arts ei pakkunud mitte ainult avatud lähtekoodiga dokumentatsiooni, vaid ka C-lähtekoodi IFF-failide lugemiseks ja kirjutamiseks.

IFF-vorming on tagasiühilduv ja laiendatav. Esimene tähendab, et programmi uus versioon suudab probleemideta lugeda eelmise versiooniga loodud faile. Teiseks ei pea lisateabe salvestamiseks uut vormingut leiutama, piisab oma laiendi sisestamisest IFF-i. Formaadi ülesehitus võimaldab erinevate tootjate programmidel omavahel vahetada andmeid, millel puuduvad vastavad ärilepingud. Kõik see rõõmustab kasutajaid – olles salvestanud andmed IFF-vormingus, ei ole nad enam aheldatud oma süsteemi suletud vormingusse ning saavad andmeid kasutada igas IFF-iga ühilduvas tarkvara- ja riistvarakeskkonnas.

IFF-fail on andmete kogum, mis on korraldatud nii, et seda saavad lugeda erinevad mitteseotud programmid. Teisest küljest saab programm salvestada IFF-i spetsiifilist teavet, mis on tähenduslik ainult tema enda jaoks. IFF-i struktuur teeb selle lihtsaks. Teised programmid, mis ei tea, kuidas sellist teavet käsitleda, võivad seda ignoreerida, ilma et see kahjustaks põhisisu lugemist.

IFF-faile on mitut tüüpi. Näiteks ILBM- ja GIFF-failid sisaldavad graafilist teavet, SMUS-failid noodimärke ning AIFF- ja WAVE-failid digitaalset heli.

IFF-fail koosneb sarnastest elementidest, mida nimetatakse tükkideks. Plokk on andmestruktuur, mis koosneb tähestikulisest identifikaatorist (neli ASCII märki), ploki suurusest (neli baiti) ja andmetest endast (joonis 5). Mugav on mõelda plokist kui kestast, millesse andmed on "mähitud". Andmed ise võivad sisaldada kõike: graafikat, teksti, animatsiooni, heli, 3D-objektide komplekti jne.

IFF-faili plokke saab pesastada, joon. 6. Tegelikult pole IFF-fail midagi muud kui tipptaseme plokk, mis sisaldab endas üht või mitut muud plokki. Selline andmete salvestamise põhimõte võimaldab faili "pakkida" mitu heterogeenset teavet, sealhulgas mitu IFF-faili, mis juba sarnaneb faili sees oleva failisüsteemiga. Tõsi, pesastatud andmekorraldusel on üks puudus - faili on raske tõlgendada, sellest plokke eraldada.

Enamik IFF-faile sisaldab tipptaseme plokki identifikaatoriga "FORM". See sisaldab muid plokke (joonis 7). Ainsad andmed FORM-i plokis on neli baiti, mis kirjeldavad failitüüpi (nt "ILBM", InterLeaved Bit Map). Kohe nende taga on pesastatud plokid, nagu "BMHD" (pildi päis), "CMAP" (palett) ja "BODY" (pikslid ise). Plokkide nimed ja andmevormingu mõtleb välja konkreetse failitüübi arendaja. Teised programmid, kui nad satuvad võõra nimega plokki, võivad selle ohutult vahele jätta, juhindudes ploki pikkust sisaldavast väljast.

Kõik IFF-failide arvandmed salvestatakse suures järjekorras, see tähendab, et kõigepealt salvestatakse numbri kõige olulisem bait (MSB), seejärel kõige vähem oluline bait. Selle kohta lisateabe saamiseks vaadake külgriba. Failisisesed plokid peavad alati algama paarisbaidiga. Kui eelmine plokk sisaldab paaritu arvu baite, täidetakse see nullbaidiga, et see oleks paaris.

Millisest otsast säästa?
Arvuti mälu koosneb rakkudest, millest igaüks sisaldab täpselt ühte baiti. Lahtrisse pääsemiseks (baidi kirjutamiseks või lugemiseks) kasutab protsessor nn aadress meeles. See on lihtsalt täisarv, mille operatsioonisüsteem on lahtrile määranud (andku arvutieksperdid mulle selle liigse lihtsustuse andeks). Reaalses elus ühest baidist tavaliselt ei piisa. Isegi täisarvude salvestamiseks kasutatakse sõnu, see tähendab kahebaidiseid rühmi, topelt- või neliksõnu (vastavalt neli või kaheksa baiti, vt täpsemalt tsükli esimesest osast). See tähendab, et arv on salvestatud mitmesse kõrvutisse baiti.

Joonisel fig. 8 on toodud kaks võimalikku viisi nende mällu paigutamiseks topeltsõna näitel. Esimene viis - baidid salvestatakse mällu järjestikku, kõige olulisem bait väikseimal aadressil. See tähendab, et kõrge sõna MSB salvestatakse aadressil N, seejärel kõrge sõna LSB (N + 1), madala sõna MSB (N + 2), madala sõna LSB (N + 3) . Seda meetodit nimetatakse tavaliselt suur-endian(või "otsene baitide eraldamine"). Teise meetodi puhul on kõik täpselt vastupidine, kõrge bait salvestatakse kõrgeimale aadressile: madala sõna LSB (N), madala sõna MSB (N + 1), kõrge sõna LSB (N + 2). ), kõrge sõna MSB (N + 3) ... Seda meetodit nimetatakse tavaliselt väike-endian- "vastupidine baitide eraldamine".

See tähendab, et erinevus seisneb selles, et "millest otsast" mitmebaidine väärtus salvestatakse. Mõisted "suur-endian" ja "väike-endian" võeti kasutusele selleteemalises artiklis, viidates Jonathan Swifti raamatule "Gulliveri seiklused". Teatavasti tekkis Lilliputis Big-Endiaanide liikumine, kes ei tahtnud täita keisri käskkirja, mis käskis keedumune murda ainult teravast otsast. Arvutimaailmas näeb suur / väike vastasseis väga sarnane.

Little endian pooldajad väidavad, et ümberkorraldatud baitide järjekord mälus muudab aritmeetiliste toimingute sooritamise lihtsamaks mitmebaidiliste väärtustega, kuna esimesena lisatud kõige vähem olulised baidid salvestatakse kõige vähem olulistesse baitidesse.

Väikest vooluringi kasutatakse Inteliga ühilduvates protsessorites alates Intel 8080-st kuni Intel Pentium IV-ni. Otsene paigutus (suurepärane) – Sun Sparki protsessorites, Motorola 68000 (Apple'i arvutite algsari) ja paljudes RISC-protsessorites. Kuid PowerPC ja Intel Itaniumi protsessorid mõistavad mõlemat andmevormingut korraga (neid nimetatakse mõnikord "bi-endianiks").

Tähtis pole aga niivõrd see, kuidas arvuti andmeid "iseenda sisse" salvestab, vaid see, kuidas ta neid "väljas", failidesse salvestab. See on praktilisest seisukohast palju olulisem. Näiteks kui süsteem salvestab sõna "UNIX" suure lõpuga faili (kahe kahebaidise sõnana), loeb väike süsteem selle nimeks "NUXI". Seda nimetab arvutižargoon "NUXI probleemiks". Sarnased raskused võivad tekkida graafika salvestamisel, kuna värvid on kodeeritud mitmebaidiliste numbritega. Näiteks Adobe Photoshop- ja JPEG-failid kasutavad big-endiani skeemi, GIF- ja BPM-failid aga little-endiani.

"Mitteplatvormiline" standardne MIDI-faili (SMF) vorming kasutab big-endiani meetodit, see tähendab, et kõigepealt salvestatakse sõna kõige olulisem bait (MSB).

SMF struktuur
Standardsed MIDI-failid, nagu IFF-failid, koosnevad tükkidest. Kokku on kahte tüüpi tükke: päise tükk ja rajatükk. SMF-failis võib olla ainult üks päiseplokk ja üks või mitu rajaplokki. Plokil on tüüpiline IFF-struktuur: esimesed neli baiti on identifikaator, järgmised neli baiti on ploki pikkus baitides, välja arvatud kaheksa baiti tüüp/pikkus. Päiseploki identifikaatoris on neli "MThd" märki ja rajaploki identifikaatoris neli "MTrk" märki. See struktuur võimaldab tulevikus defineerida uusi plokitüüpe ja võõrast plokki saab selle pikkuse põhjal kergesti ignoreerida. SMF-i spetsifikatsioon hoiatab: "Programmid peaksid olema valmis ignoreerima tundmatut tüüpi plokke, kui nad nendega kokku puutuvad."

Päiseplokk sisaldab üldist teavet faili kohta, rajaplokk sisaldab ajatemplitega MIDI-teadete voogu. Lisaks salvestab MIDI-fail sekvenaatorite jaoks vajalikku lisainfot: tempo, taktimõõtur, klahv, metronoomi seaded jms. Seda teavet MIDI-liidese kaudu ei edastata ja selle moodustavaid sündmusi nimetatakse metasündmusteks.

MIDI-fail algab alati päiseplokiga, millele järgneb üks või mitu rajaplokki (joonis 9). See tähendab, et iga standardne MIDI-fail algab nelja tähega "M", "T", "h", "d". See tähendab, et MIDI-fail ei vasta IFF-i spetsifikatsioonile (mis nõuab, et iga IFF-iga ühilduv fail algaks tipptaseme plokiga, mis on üks kolmest tüübist - "FORM", "CAT" või "LIST"). Erinevusi on teisigi: SMF-id ei tohi sisaldada pesastatud plokke ja ploki pikkus ei pea olema ühtlane. SMF-i teisendamine IFF-iga ühilduvaks failiks on aga lihtne. Piisab paaritu pikkusega plokkide polsterdamisest nullbaidiga (kui neid on) ja panna kogu sisu FORM-i plokki. Sarnast toimingut kasutatakse Microsofti pakutud RMID-vormingus (vt külgriba).


Olete siin, kuna teil on fail, mille faililaiend lõpeb .smf. Faile laiendiga .smf saab käivitada ainult teatud rakendused. Võimalik, et smf-failid on pigem andmefailid kui dokumendid või meediumid , mis tähendab, et need "ei ole mõeldud üldse vaatamiseks.

mis on & nbsp.smf & nbspfile?

SMF-vormingus failid sisaldavad heliandmeid koos efektidega ning see failivorming on integreeritud sarnaste tehnoloogiate ja funktsioonidega nagu MID-laiendiga failid. Smf-laiendiga heliribasid saab esitada Apple QuickTime rakendusega ja sellel multimeediumiprogrammil on Microsoft Windowsi põhiste süsteemidega ühilduv versioon peale teise Maci kasutajatele välja töötatud versiooni. MIDI Manufacturers Association integreeris selle arendamise käigus MIDI spetsifikatsioonid SMF-failivormingusse. See tähendab, et SMF-failid võivad sisaldada ka erinevaid lugusid, mis on kombineeritud erinevatest heliribadest, mis on salvestatud mitmesse SMF-faili, mis tähendab ka seda, et smf-vormingus faile saab kombineerida ja teisendada üheks heliribaks populaarsemates vormingutes, mida saab vaadata ja kasutada teistega. digitaalse video ja dokumendi esitluse arendustarkvara, multimeediarakendused ja digitaalsed helipleierid. See annab kasutajatele võimaluse lisada igale rajale eraldi efekte ja teha teistes muudatusi enne nende ühendamist ühe helirajana. Mõned neist efektidest ja muudatustest võivad muu hulgas hõlmata helitugevuse ja helikõrguse reguleerimist, moonutusi ja reverbi, panoraamimise ja ajastuse muudatusi. On olemas kolmanda osapoole rakendused, mis suudavad SMF-faile MIDI-vormingusse teisendada, et saada laiemat ristühilduvust rohkemate helitöötlusrakenduste jaoks.

kuidas avada .smf-fail?

Käivitage oma arvutis smf-fail või mõni muu fail, topeltklõpsates sellel. Kui teie failiseosed on õigesti seadistatud, avab teie .smf-faili avamiseks mõeldud rakendus selle. Võimalik, et peate alla laadima või ostma õige rakenduse. Samuti on võimalik, et teie arvutis on õige rakendus, kuid smf-failid pole sellega veel seotud. Sel juhul, kui proovite smf-faili avada, saate Windowsile öelda, milline rakendus on selle faili jaoks õige. Edaspidi avab .smf-faili õige rakenduse.

smf-faili avavad rakendused

Apple QuickTime Player

Apple QuickTime Player

Apple QuickTime Player on multimeediumipleieri tarkvara, mis käsitleb mitmesuguseid erinevas vormingus faile alates digifotodest kuni panoraampiltideni, helidest videoteni ja interaktiivsuseni. See multimeediumipleieri programm on saadaval nii Mac OS X arvutite kui ka Windowsi arvutite hilisemate versioonide jaoks. Sellel Apple'i tarkvaratootel on tarkvaraarenduskomplektid või SDK-d, mis on avalikkusele saadaval seni, kuni olete tellinud Apple'i arendajaühenduse või ADC-ga. Sellel on QuickTime raamistik, mis ühildub teiste tasuta pleierirakendustega, mis pakuvad mitmeid funktsioone. Nende hulka kuuluvad heli ja video kodeerimine, samade failide ümberkodeerimine, dekodeerimine võimalusega saata dekodeeritud voog graafika alamsüsteemi või heli alamsüsteemi ja komponentide pistikprogrammi arhitektuur, mis toetab muid koodekeid (kolmandad osapooled, näiteks DivX). Selle tarkvara uusim versioon on QuickTime Player 7, mis on Maci ja Windowsi arvutite jaoks tasuta allalaaditav.

hoiatussõna

Olge ettevaatlik, et mitte ümber nimetada faili & nbsp.smf & nbspfiles või muude failide laiendit. See ei muuda failitüüpi. Ainult spetsiaalne teisendustarkvara saab muuta faili ühest failitüübist teise.

mis on faililaiend?

Faililaiend on kolmest või neljast märgist koosnev komplekt failinime lõpus; Sel juhul näitavad & nbsp.smf. & nbspFaililaiendid teile, mis tüüpi fail see on, ja ütlevad Windowsile, millised programmid saavad seda avada. Windows seostab sageli iga faililaiendiga vaikeprogrammi, nii et failil topeltklõpsamisel käivitub programm automaatselt. Kui seda programmi teie arvutis enam pole, võite mõnikord saada seotud faili avamisel veateate.


Tavaliselt kasutavad sekveneerijad oma paigutuse salvestusvormingut. See on tingitud asjaolust, et konkreetse programmi võimaluste jaoks loodud andmestruktuur on palju tõhusam, sellega on lihtsalt lihtsam töötada. Saate oma vormingusse kirjutada täiendavaid andmeid, näiteks kasutajaliidese kohandamise kohta (akna asukoht ja suurus, font jne). Lisaks muutub tavaliste MIDI-failide kompaktsus (eriti sündmuste toimumise aja salvestamise muutuv pikkus) ebamugavaks: paigutusega töötamiseks tuleb kõik failis olevad deltaajad "lahti pakkida" ja kui fail salvestatakse, "zipitakse" uuesti.

Teisest küljest on SMF kaasaskantav platvormideülene vorming, milles saate konkreetsete andmete salvestamiseks määratleda täiendavaid plokke. Näiteks võib üks sekveneerija salvestada metronoomi sisse või välja plokki nimega "Mtr". See plokk ei ole takistuseks teisele sekvenaatorile; see võib määratleda mitu konkreetset plokki samas failis. Nii et mõned sekvenaatorid kasutavad SMF-vormingut otse, see on nende jaoks "native". Teised võimaldavad teil MIDI-faile importida ja eksportida vastavalt vajadusele.

Erinevat tüüpi sekvensserite ja muude seadmete toetamiseks liigitatakse standardsed MIDI-failid kolme maitse või vormingusse: 0, 1 ja 2.

Failivorming 0 sisaldab ühte lugu, mis sisaldab sündmusi kõigist kuueteistkümnest MIDI-kanalist. See on andmete vahetamiseks kõige lihtsam vorming, kuna see ei võta arvesse sekvenseris olevate lugude algset struktuuri (milline rada millisele MIDI-kanalile on määratud). 0-vormingus fail sobib paremini andmete edastamiseks seadmetesse, nagu mikserid ja efektiprotsessorid, kui korralduste salvestamiseks. Faili salvestamisel formaadis 0 liidab sekvenser lihtsalt kõik sõnumid kõikidelt MIDI-kanalitelt üheks rajaks. Vastavalt sellele saame faili laadimisel ühe raja, millel on sündmuste redigeerimine problemaatiline, kuna erinevate kanalite sündmused on üksteisega segatud. Enamikul sekvenaatoritel on funktsioon jaotada selline "mix" eraldi lugudeks, millest igaüks sisaldab ühe MIDI-kanali sündmusi.

1. vormingus fail sisaldab iga MIDI-kanali jaoks eraldi lugu, mis peegeldab järjestuse tuttavat struktuuri. Formaat 2 fail sisaldab mitut sõltumatut osa (või täielikku mustrit), iga muster koosneb ühest rajast, mis sisaldab sõnumeid kõigil 16 kanalil. Seda vormingut pidi kasutama nendes sekvenaatorites, mis suudavad töötada sõltumatute mustritega, mida mängib korraga mitu instrumendi. Kuid vormingut 2 on laialdaselt ignoreeritud ja praegu peetakse seda spetsifikatsioonis kui "ei ole mõeldud sekvenaatoritele".

Üks peamisi erinevusi vormingute 0 ja 1 vahel on metasündmuste paigutamise viis. Vormingus 0 segatakse tempo ja taktisignaali metasündmused (nimetatakse tempokaardiks) teiste MIDI-sõnumitega. Lisaks sellele ei salvestata selles vormingus lugude pealkirju. Vormingus 1 on faili esimene lugu reserveeritud eranditult tempokaardi ja muude metasündmuste jaoks, nagu jada/raja nimi, järjestuse number, marker, SMPTE nihe (vt allpool).

Kui failis pole tempokaarti, siis eeldatakse, et tempo on 120 BPM ja taktimõõtur on 4/4.

MMA-organisatsioon võib tulevikus välja töötada muid SMF-vorminguid, et toetada sekvenaatorites uusi andmestruktuure.

Pealkirjaplokk ("MThd")

Päiseplokk sisaldab põhiteavet faili kohta. Ploki struktuur on näidatud joonisel fig. 11. Pikkuse väli sisaldab alati numbrit 6, lähtudes sellele väljale järgnevate päiseandmete baitide arvust. Päise andmed on kolm 16-bitist sõna. Esimene sõna (vorming) - SMF-vorming, võib võtta ühe kolmest väärtusest - 0, 1 ja 2. Teine sõna (ntrks) - failis olevate rajaplokkide (st lugude endi) arv. 0-vormingus faili puhul on see alati võrdne ühega.

Jaotuse päise ploki viimane sõna määrab aja mõõtmise viisi (ajabaas). Nagu varem mainitud, on kaks võimalust: muusikaline (taktid / taktid) ja absoluutne (ajakoodipõhine), mis põhineb absoluutsel ajal SMPTE-vormingus. Igal juhul mõõdetakse deltaaega SMF-failis puukide abil: muusikalise meetodi puhul määratakse puukide arv kvartalis (st PPQN), absoluutse puhul puukide arv ühes SMPTE-kaadris. Kui jagamisvälja kõige olulisem (15.) bitt on seatud nulliks, siis kasutatakse muusikalist meetodit ja ülejäänud 15 bitti sisaldavad PPQN-i (kuni 32767), joonis fig. 12. Kui kõige olulisemaks bitiks on seatud üks, siis kasutatakse absoluutrežiimi. Madal bait (bitid 0 kuni 7) salvestab linnukeste arvu kaadri kohta, kõrge bait (bitid 8 kuni 15) salvestab SMPTE kaadrivormingu, väljendatuna negatiivsete väärtustena (-24, -25, -29, -30). ). Sel juhul vastab arv -29 30 kaadrit sekundis Drop Frame vormingule (vt tsükli eelmist artiklit).

Negatiivsed arvud valitakse seetõttu, et need on kirjutatud kahe täiendusena (vt eelmist artiklit), see tähendab, et need sisaldavad ühte kõige olulisemas bitis. Ja see ühik on vaid märk absoluutsest aja arvestamise viisist. Puukide arv kaadri kohta salvestatakse positiivsena ja tavaliselt on see üks järgmistest väärtustest: 4 (eraldusvõime nagu MIDI-ajakoodis, kui ühe kaadri kohta on neli veerandkaadri sõnumit), 8, 10, 80 (ühe biti eraldusvõime kaadris SMPTE raam) või 100 ...

See süsteem võimaldab teil näidata sündmuse toimumise absoluutset aega 1/128 kaadri täpsusega. Lisaks, kui seate kaadri vorminguks 25 kaadrit sekundis ja eraldusvõimeks 40 linnukest kaadri kohta, vastab iga linnuke ühele millisekundile. Jagamisvälja väärtus on sel juhul 0xE728, bait 0xE7 on kahe komplementarv -25 ja 0x28 on kuueteistkümnendsüsteemis 40.

Raja blokeerimine ("MTrk")

Looplokk salvestab sündmused ise ehk ajatempliga MIDI-teated. Plokk peab sisaldama vähemalt ühte sündmust. Rajaploki struktuur on sama mis tahes vormingus (0, 1 ja 2) MIDI-failide puhul, joon. kolmteist.

Sündmus koosneb deltaajast ja MIDI-teatest endast, joon. 14. Tuletan teile meelde, et deltaaeg salvestatakse muutuva pikkusega.

Loodame, et aitasime teil SMF-faili probleemi lahendada. Kui te ei tea, kust saate meie loendist rakenduse alla laadida, klõpsake lingil (see on programmi nimi) - leiate täpsemat teavet asukoha kohta, kust saate alla laadida vajaliku turvalise installi versiooni. rakendus.

Selle lehe külastamine peaks aitama teil vastata konkreetselt järgmistele või sarnastele küsimustele:

  • Kuidas avada SMF-laiendiga faile?
  • Kuidas ma saan SMF-faili teise vormingusse teisendada?
  • Mis on SMF-failivormingu laiend?
  • Millised programmid toetavad SMF-faili?

Kui te pole pärast sellel saidil olevate asjade vaatamist ikka veel ühelegi ülaltoodud küsimusele rahuldavat vastust saanud, tähendab see, et siin esitatud teave SMF-faili kohta pole täielik. Võtke meiega ühendust kasutades kontaktivormi ja kirjutage, millist teavet te ei leidnud.

Mis veel võib probleemi põhjustada?

Põhjuseid, miks te SMF-faili ei saa avada, võib olla rohkem (mitte ainult vastava rakenduse puudumine).
Esiteks- SMF-fail võib olla valesti lingitud (ühildumatu) selle teenindamiseks installitud rakendusega. Sel juhul peate seda linki ise muutma. Selleks paremklõpsake SMF-faili, mida soovite redigeerida, ja klõpsake valikul "Avamiseks" ja seejärel valige loendist installitud programm. Pärast sellist toimingut peaksid SMF-faili avamisega seotud probleemid täielikult kaduma.
Teiseks- fail, mida soovite avada, võib olla lihtsalt kahjustatud. Seejärel on parim lahendus leida uus versioon või laadida see uuesti samast allikast nagu varem (võib-olla ei olnud eelmisel seansil SMF-faili allalaadimine mingil põhjusel lõppenud ja seda ei saa korralikult avada).

Kas soovite aidata?

Kui teil on SMF-faililaiendi kohta lisateavet, oleme tänulikud, kui jagate seda meie saidi kasutajatega. Kasutage pakutavat vormi ja saatke meile oma teave SMF-faili kohta.