Přípona souboru SMF. Formáty SMF Otevřete soubor smf

Pokud máte nainstalovaný počítač antivirový software umět skenovat všechny soubory v počítači a také každý soubor samostatně... Libovolný soubor můžete zkontrolovat kliknutím pravým tlačítkem myši na soubor a výběrem příslušné možnosti pro kontrolu souboru na přítomnost virů.

Například na tomto obrázku soubor můj-soubor.smf, pak musíte kliknout pravým tlačítkem na tento soubor a vybrat možnost z nabídky souboru "Skenovat pomocí AVG"... Výběrem této možnosti se otevře AVG Antivirus, který zkontroluje tento soubor na přítomnost virů.


Někdy může dojít k chybě nesprávná instalace softwaru, což může být způsobeno problémem, ke kterému došlo během procesu instalace. Mohlo by to narušit váš operační systém propojte svůj soubor SMF se správným aplikačním softwarem ovlivňování tzv "Přidružení přípony souboru".

Někdy jednoduché přeinstalování Apache OpenOffice může vyřešit váš problém správným propojením SMF s Apache OpenOffice. V jiných případech mohou nastat problémy s přidružením souborů špatné programování softwaru vývojáře a možná budete muset vývojáře kontaktovat s žádostí o další pomoc.


Rada: Zkuste aktualizovat Apache OpenOffice na nejnovější verzi, abyste se ujistili, že jsou nainstalovány nejnovější opravy a aktualizace.


Může se to zdát příliš zřejmé, ale často problém může způsobovat samotný soubor SMF... Pokud jste obdrželi soubor prostřednictvím přílohy e-mailu nebo jej stáhli z webové stránky a proces stahování byl přerušen (například výpadek proudu nebo jiný důvod), soubor může být poškozen... Pokud je to možné, zkuste získat novou kopii souboru SMF a zkuste jej znovu otevřít.


Opatrně: Poškozený soubor může způsobit vedlejší poškození předchozího nebo již existujícího malwaru na vašem PC, takže je velmi důležité, abyste měli na počítači neustále spuštěný aktualizovaný antivirus.


Pokud váš soubor SMF související s hardwarem vašeho počítače k otevření souboru, který možná budete potřebovat aktualizovat ovladače zařízení související s tímto zařízením.

Tento problém obvykle spojené s typy mediálních souborů které závisí na úspěšném otevření hardwaru uvnitř počítače, např. zvuková karta nebo grafická karta... Pokud se například pokoušíte otevřít zvukový soubor, ale nemůžete jej otevřít, možná to bude nutné aktualizovat ovladače zvukové karty.


Rada: Pokud se při pokusu o otevření souboru SMF dostanete Chybová zpráva související se souborem SYS, problém by asi mohl být související s poškozenými nebo zastaralými ovladači zařízení které je třeba aktualizovat. Tento proces lze usnadnit použitím softwaru pro aktualizaci ovladače, jako je DriverDoc.


Pokud kroky problém nevyřešily a stále máte problémy s otevřením souborů SMF, to může být způsobeno nedostatek dostupných systémových prostředků... Některé verze souborů SMF mohou vyžadovat značné množství zdrojů (např. paměť / RAM, výpočetní výkon), aby se v počítači správně otevřely. K tomuto problému dochází poměrně často, pokud používáte poměrně starý počítačový hardware a zároveň mnohem novější operační systém.

K tomuto problému může dojít, když má počítač potíže s dokončením úkolu, protože operační systém (a další služby běžící na pozadí) spotřebovávat příliš mnoho zdrojů k otevření souboru SMF... Před otevřením StarMath Formula File zkuste zavřít všechny aplikace na vašem PC. Uvolněním všech dostupných zdrojů na vašem počítači poskytnete lepší prostředí pro pokus o otevření souboru SMF.


jestli ty dokončil všechny výše uvedené kroky a váš soubor SMF se stále neotevře, možná budete muset spustit upgrade vybavení... Ve většině případů, dokonce i se staršími hardwarovými verzemi, může být výpočetní výkon stále více než dostatečný pro většinu vlastních aplikací (pokud nevykonáváte mnoho práce náročné na CPU, jako je 3D vykreslování, finanční / vědecké modelování nebo náročná multimediální práce) ... Tím pádem, je pravděpodobné, že váš počítač nemá dostatek paměti(běžněji nazývané "RAM" nebo paměť s náhodným přístupem) k provedení úlohy otevření souboru.

Část 5 ze série článků popisujících protokol MIDI.

Jednou ze tří částí protokolu MIDI je specifikace formátu datového úložiště (nezapomeňte, že další dvě jsou formát zprávy a specifikace hardwarového rozhraní). Formát zpráv byl probrán v prvních třech článcích série, nyní je čas na formát úložiště. Byl navržen organizací MMA na konci roku 1987 a byl pojmenován Standard MIDI Files (SMF).

Účelem souborů MIDI je umožnit výměnu událostí (tj. zpráv MIDI s časovým razítkem) mezi různými zařízeními a programy. Před příchodem standardních MIDI souborů nebylo možné uspořádání připravené v jednom sekvenceru načíst do jiného kvůli nekompatibilitě formátů. Tím nechci říct, že s příchodem SMF na tento formát přešli všichni výrobci sekvencerů. Důvodů je více a dnes si o nich také povíme.

Vzhledem k tomu, že ukládání informací přímo souvisí se zařízením sekvenátorů, zastavíme se u této záležitosti podrobněji, ale pouze v rozsahu nezbytném pro pochopení SMF. A nepochybně sekvencerům budeme věnovat jeden z příštích článků cyklu.

Vývoj
Je volána MIDI zpráva s časovým razítkem událost... K indikaci času lze použít různé jednotky - ticks, interní impulsy, čas ve formátu SMPTE atd. Je důležité pochopit základní rozdíl mezi událostí a zprávou. Zpráva „žije“ zlomek milisekundy reálného času – od okamžiku, kdy je vygenerována zdrojem, do okamžiku, kdy je odeslána příjemci k provedení. Může být zachycen v procesu přenosu přes MIDI kabel ve formě sady impulsů. Událost je několik bajtů informace zaznamenané v paměti zařízení, na základě které bude v budoucnu, v určený čas, vygenerována zpráva.

Sekvencer může například uložit událost „pick a note“ s časovou značkou 100 ms od začátku přehrávání. Tuto událost můžete upravit ve dvou rozměrech: za prvé, změnit parametry samotné MIDI zprávy (v tomto případě výšku nebo dynamiku noty) a za druhé, posouvat notu po stopě, to znamená změnit dobu provedení. zprávy.

Události se objevují v paměti sekvenceru během nahrávání MIDI zpráv. Když stisknete tlačítko Record, sekvencer zapne hardwarový pulzní generátor (ticky) a začne „poslouchat“ určený MIDI vstup. Když například stisknete klávesu, vstup obdrží zprávu „vyberte poznámku“. Sekvencer vypadá - aha, zpráva dorazila při 20. tiknutí a zapíše ji do paměti štítkem 20. Po pár sekundách klávesu pustili - přišla zpráva "odstraň poznámku", vnitřní generátor vesele zamával 64 v tu chvíli tiká do sekvenceru. Sekvencer uloží zprávu s označením 64. Nyní máme co do činění se dvěma událostmi - Note On a Note Off. Během přehrávání se pulzní generátor znovu zapne. Když se objeví 20. tik, je do MIDI výstupu sekvenceru odeslána zpráva Note On, 64. tik je Note Off. Nahráli jsme a poté přehrávali akce interpreta!

Je zřejmé, že totéž lze provést offline, tedy bez nutnosti živého hraní. Kliknutím myši na správné místo na stopě (a předem zvolenou dobu trvání noty) zabudujeme do paměti sekvenceru přesně předchozí obrázek.

Typy paměti
Nyní je čas použít dva skličující počítačové termíny: primární a sekundární paměť. Primární (neboli interní) paměť je paměť sekvenceru, kde se zaznamenávají zprávy a ukládají události během celé relace. Obsah této paměti se vymaže po vypnutí napájení. Tato interpretace je vhodnější pro hardwarové sekvencery. V softwarových sekvencerech je primární pamětí jednoduše RAM počítače. K dlouhodobému uložení obsahu primární paměti slouží sekundární paměť, jinak řečeno datové nosiče. Může to být disketa, pevný disk, čipová karta a podobně.

Velikost primární paměti v hardwarových sekvencerech a pracovních stanicích (nezapomeňte, že pracovní stanice je tónový generátor a sekvencer v jedné krabici) se obvykle vyjadřuje počtem uložených not (například 200 tisíc). Někdy je hlasitost vyjádřena v událostech, v tomto případě je třeba být ve střehu – jedna nota vyžaduje k uložení dvě události (stisknutí a uvolnění klávesy) a otočení kolečka pitch nebo aftertouch může vygenerovat až 100 nebo více událostí. Stává se, že velikost paměti sekvenceru je vyjádřena v nativních počítačových jednotkách – kilobajtech. To však také není příliš pohodlné - jedna událost může zabírat různý počet bajtů (od pěti do několika desítek).

V moderních softwarových sekvencerech málokoho zajímá množství primární paměti – i na stroji se 128 MB RAM můžete na jakákoliv omezení při práci s MIDI daty zapomenout. Navíc existují sekvencery, které dokážou přehrát aranžmá přímo z disku, aniž by je načítaly do primární paměti (a mimochodem i nahrávaly), což obecně smazává rozdíl mezi těmito dvěma typy pamětí.

V sekundární paměti se data obvykle zapisují do souboru. Většina sekvencerů má svůj vlastní proprietární formát tohoto souboru, což ztěžuje výměnu uspořádání vytvořených v různých zařízeních nebo programech. Již dříve bylo uvedeno, že to byl hlavní důvod pro vytvoření SMF.

Měření času
Ve skutečnosti nejsou uvnitř sekvenceru žádná „tikátka“. Existuje hardwarový časovač, který generuje pulzy s přísně konstantní frekvencí (například každou mikrosekundu). Nutit hudebníky měřit čas v mikrosekundách by byl monstrózní výsměch, stejně jako v jiných jednotkách reálného času (sekundy, minuty). Hudebníci jsou zvyklí přemýšlet v taktech a taktech a vyjadřovat čas v relativních jednotkách (doba trvání not), v závislosti na aktuálním tempu.

"Žádný problém," odpověděli výrobci, "nechte je změřit, jak je to pro ně pohodlnější." Jen minimální měrnou jednotkou nebude nějaká 32. doba trvání, ale konvenčně odebraný tik (jednotka je ještě menší, takže např. jedna třicetisekunda může obsahovat 48 ticků). Vzhledem k tomu, že od klasické éry se tempo měřilo počtem čtvrtin za minutu (BPM, tepy za minutu), rozhodli se jako hlavní trvání vzít čtvrtinu a uvést počet tiků za čtvrtletí - PPQN (Pulse Per Čtvrtletní poznámka). Čím větší je PPQN, tím lepší je rozlišení sekvenceru a tím přesnější v čase dokáže zachytit zprávy během nahrávání a vyvést je na MIDI výstup během přehrávání. Většina sekvencerů umožňuje libovolně nastavit PPQN - například od 32 do 1536 tiků za čtvrtletí (moderní sekvencery - až 15360 PPQN).

Tick ​​je jednotka závislá na rychlosti: čím rychlejší je rychlost, tím kratší je interval mezi tiky v jednotkách v reálném čase. Tento interval lze zjistit vzorcem na obr. 1.

Například při 120 BPM a 96 PPQN budou tiky následovat každých 5,208 milisekund. Při stejném rozlišení a 180 BPM se interval mezi tikáním zkrátí na 3,472 ms. Jak tiká počet sekvenceru, pokud jeho vnitřní časovač pulzuje každou mikrosekundu? Je to velmi jednoduché: na základě aktuálního tempa a rozlišení ve čtvrtině, přesně podle zadaného vzorce. Protože jedna milisekunda obsahuje 1000 mikrosekund, v posledním příkladu sekvencer vygeneruje další tik, když obdrží 3472 pulzů z časovače.

Když vysoké rozlišení nedává smysl
Pokud jsou sekvencer a tónový generátor „pod jednou střechou“ (pracovní stanice nebo počítač se softwarovým sekvencerem a syntezátorem na zvukové kartě, případně virtuální syntezátor), pak může být vnitřní rozlišení takového systému libovolně vysoké (15360 PPQN je působivé). To vám umožní synchronizovat MIDI a audio data s přesností vzorku. Jakmile ale sekvencer a tónový generátor propojíme MIDI kabelem přes MIDI rozhraní, přestává být vysoké rozlišení relevantní.

Proč? Připomínám, že jeden byte je přenesen přes MIDI rozhraní během 320 mikrosekund. To znamená, že například zpráva s poznámkou (skládající se ze tří bajtů) bude přenášena po dobu 960 μs, tedy téměř celou milisekundu. Nyní si představte, že v sekvenceru při 120 BPM a 2048 PPQN jsou naprogramovány dvě noty se dvěma tiky od sebe. V jednotkách reálného času je to 488 mikrosekund. Takže: Tónový generátor nebude schopen přijmout druhou notu 488 mikrosekund po první, ale ve skutečnosti - až po 960 mikrosekundách. Provede to tedy ne po dvou, ale téměř po čtyřech.

Z toho tedy závěr: při práci přes MIDI rozhraní (když jsou sekvencer a tónový generátor odděleny) nedává rozlišení sekvenceru více než jeden tick za 960 mikrosekund smysl. Chcete-li zjistit, kolik to bude v PPQN, můžete použít vzorec na obr. 2.

Tabulka na Obr. 3 ukazuje hodnoty PPQN pro různé tempo, které nemá smysl překračovat.

Pozice události na časové ose se nastavuje v sekvenceru, obvykle ve formátu „takty: doby: ticks“, například 22: 3: 152. Tedy: dvacátý druhý takt, třetí takt, 152. takt od začátku třetího taktu. Tento princip časování (anglický termín - Timebase) se nazývá hudební, protože je pro hudebníky známý a pohodlný. Vezměte prosím na vědomí, že pro práci v tomto formátu potřebujete znát aktuální takt. To znamená, kolik taktů obsahuje takt a čemu se každý takt rovná.

Takže u 4/4 taktu se takt rovná čtvrtině a takt obsahuje čtyři doby. Při rozlišení 384 PPQN to bude 384 tiků v jednom taktu a 1536 tiků v každém tiku (384 x 4). Při 6/8 a stejném rozlišení bude jeden takt 192 taktů (osmný je poloviční než čtvrtina) a takt bude mít šest taktů nebo 1152 taktů (192 x 6). 22: 3: 152 tedy v prvním případě znamená 35096 tiků od začátku skladby (22 x 1536 + 3 x 384 + 152) a ve druhém - 26072 tiků (22 x 1152 + 3 x 192 + 152) .

Chcete-li tedy určit polohu události v jednotkách reálného času na základě formátu „takty: doby: ticks“, potřebujete znát tři parametry: aktuální tempo, takt a rozlišení v ticích za čtvrtletí (PPQN).

Existuje další možnost časování, kdy je poloha události na stopě vyjádřena v absolutních jednotkách nezávislých na tempu, nejčastěji ve formátu času SMPTE - "hodiny: minuty: sekundy: snímky". Tento princip časování se nazývá „time-code-based“ (založený na časovém kódu, absolutní). Potřeba vyvstává, když sekvencer spolupracuje s magnetofonem nebo filmovým/video zařízením. Editační operace s filmem, videem a zvukovým materiálem, upřesnění pozic začátku a konce nahrávky je pohodlnější provádět, protože jsou vázány na absolutní měřítko a ne na takty a doby.

V tomto případě závisí souřadnice události na časovém pravítku na aktuálním tempu. Takže při tempu 120 BPM může mít první takt druhého taktu SMPTE čas 00: 00: 02: 00 a při tempu 60 BPM - 00: 00: 04: 00. Když je událost umístěna v rámci snímku (mezi sekundami), její souřadnice se budou lišit také v jiném formátu snímku (počet snímků za sekundu). Více o SMPTE a MIDI Time Code si můžete přečíst v předchozím článku ze série.

Variabilní délkové množství
Dost lyrických odboček, nyní je naším úkolem porozumět formátu ukládání dat. A první výzvou, které vývojáři SMF čelili, bylo, jak dodržet načasování události.

Zde jsou dvě možnosti: uložit pro každou událost čas od začátku skladby nebo od poslední události před ní (na stejném kanálu). První možnost však není racionální, protože nejčastěji je interval mezi událostmi malý, sousední události mají časy provedení blízko sebe. Takže v pasáži o třech tónech může mít první čas řekněme 22: 3: 152, druhý - 22: 3: 244, třetí - 22: 3: 288. Chcete-li uložit tato čísla (přeložená do ticků od začátku skladby), musíte pro každé vyhradit alespoň čtyři bajty. Pokud půjdete po druhé cestě, můžete místo tří velkých čísel uložit jedno velké počáteční (22: 3: 152) a po něm - dvě malá, rozdíl v tikátech mezi prvním a druhým a druhým a třetí noty (v tomto případě 92 a 44), stačí jim jeden bajt. Problém však stále zůstává: v závislosti na události musíte alokovat jiný počet bajtů, abyste ušetřili čas.

Pokud by v současné době vyvíjel SMF (a dokonce i Microsoft, který se obecně málo stará o velikost svých souborů a potřebnou paměť), nad tímto problémem by se zavíralo oko. Přidělili jsme pevné pole pro úsporu času, řekněme 8 bajtů na událost, a neutrpěli jsme. V roce 1988 však byla primární (RAM) paměť velmi drahá, každý bajt se počítal a sekundární (disková média) měla velmi skromnou velikost. Vývojáři SMF proto chtěli získat co nejkompaktnější formát.

Bylo rozhodnuto zachovat delta čas, tedy rozdíl v tikáních mezi touto událostí a předchozí (nebo začátkem skladby). Pokud například k první události – úderu noty do první oktávy – došlo v čase 40 ticků od začátku písně, pak její delta čas bude 40. Jestliže po čtyřech tiklech zazní tón F, pak jeho delta čas bude 4. Pokud nastanou dvě události současně, pak jedné z nich je přiřazen delta čas rovný nule. Pokud událost nastane přesně na začátku skladby, má také delta čas nula. K další události však může dojít za hodinu a půl (to znamená za několik milionů tiků). Jak být v tomto případě? Koneckonců, paměť je třeba šetřit a je nežádoucí přidělovat pevné pole několika bajtů pro delta čas.

Takzvaný variabilní délky... Poskytují pohodlný způsob zápisu celých čísel, od nejmenších po největší, aniž by bylo nutné číslu přidělovat pevný počet bajtů. Bity původního čísla jsou zabaleny do jednoho nebo více bajtů: každý bajt má sedm bitů (vpravo bity 0 až 6). Nejvýznamnějším bitem v bajtu je služba; všechny bajty v řadě, kromě posledního, musí obsahovat jedničku, poslední - nulu. Několik příkladů balení je znázorněno na obr. 4.

Například musíte zabalit číslo 64 (hex 0x40) do formátu s proměnnou délkou. V binární podobě je toto číslo zapsáno jako 0100 0000. Existuje pouze sedm platných bitů, takže toto číslo je zabaleno do jednoho bajtu beze změny - 0100 0000 (je to také poslední bajt řady), nejvýznamnější bit je 0.

Nyní je číslo 128 (0x80). V binární podobě se zapisuje jako 1000 0000. Významných bitů je osm, takže se vše nevejde do jednoho bajtu, je potřeba ho rozdělit na dva. První bajt musí mít jedničku v nejvýznamnějším bitu, druhý (jako koncový bajt řady) - nulu. Do druhého bajtu vložíme sedm nejméně významných bitů původního čísla, vyjde nám 0 000 0000. Zbývající jeden bit (jeden) dáme na pravou stranu prvního bajtu – dostaneme 1 000 0001. Výsledkem je, číslo 0x80 se zapisuje jako dva bajty: 0x81 0x00. Rozbalení je velmi jednoduché. Předem nevíme, kolik bajtů je v řadě. Přečteme první bajt - 1000 0001. Nejvýznamnější servisní bit (1) udává, že toto není poslední bajt řady, bajtů je více. Zahodíme servisní jednotku a ponecháme sedm bitů - 000 0001. Přečtěte si druhý bajt - 0000 0000. Nejvýznamnější servisní bit (0) udává, že se jedná o poslední bajt série (to znamená, že v řadě jsou pouze dva bajty série). Vyhazujeme servisní bit. Zbývá také sedm bitů - 000 0000. Přičteme k nim vlevo sedm bitů přidělených z prvního bajtu, dostaneme 000 0001 000 0000. Vyřazením prvních šesti nul dostaneme požadované číslo 1000 0000 (0x80).

Metoda proměnných délek tedy umožňuje alokovat různé počty bajtů pro různá čísla: pro čísla v rozsahu od 0 do 127 - jeden bajt, od 128 do 16383 - dva bajty a tak dále. Maximální počet zastoupený tímto způsobem není v zásadě omezen. V SMF je však délka shluku omezena na čtyři bajty (tři s nastaveným nejvýznamnějším bitem a jeden končící nulou). V důsledku toho může být maximální delta čas 0x0FFFFFFF (nebo 268 435 455 tiků), což je při rychlosti 500 BPM a rozlišení 96 PPQN asi čtyři dny. Víc než dost!

Ve formě hodnot proměnné délky udává SMF nejen delta čas, ale i délku některých událostí.

Interchange File Format (IFF)
Struktura standardního MIDI souboru je téměř zcela odvozena od IFF (Interchange File Format), vyvinutého v roce 1985 společností Electronic Arts. Jedná se o formát pro ukládání a výměnu dat, který již téměř dvacet let usnadňuje život uživatelům i vývojářům softwaru. Electronic Arts neposkytlo pouze dokumentaci s otevřeným zdrojovým kódem, ale také zdrojový kód C pro čtení a zápis souborů IFF.

Formát IFF je zpětně kompatibilní a rozšiřitelný. První znamená, že nová verze programu dokáže bez problémů číst soubory vytvořené předchozí verzí. Za druhé, nemusíte vymýšlet nový formát pro ukládání dalších informací, stačí zadat do IFF vlastní rozšíření. Struktura formátu umožňuje programům od různých výrobců vyměňovat si data, která mezi sebou nemají odpovídající obchodní dohody. To vše potěší uživatele - po uložení dat ve formátu IFF již nejsou připoutáni k uzavřenému formátu svého systému a mohou data používat v jakémkoli softwarovém a hardwarovém prostředí kompatibilním s IFF.

Soubor IFF je sbírka dat organizovaná takovým způsobem, že je mohou číst různé nesouvisející programy. Na druhou stranu může program do IFF ukládat specifické informace, které mají význam pouze pro něj samotného. Struktura IFF to usnadňuje. Jiné programy, které nevědí, jak s takovými informacemi zacházet, je mohou ignorovat, aniž by ohrozily čtení hlavního obsahu.

Existuje několik typů souborů IFF. Například soubory ILBM a GIFF obsahují grafické informace, soubory SMUS obsahují hudební notaci a soubory AIFF a WAVE obsahují digitální zvuk.

Soubor IFF se skládá z podobných prvků, které se nazývají chunks. Blok je datová struktura skládající se z abecedního identifikátoru (čtyři znaky ASCII), velikosti bloku (čtyři bajty) a samotných dat (obrázek 5). Je vhodné si představit blok jako shell, ve kterém jsou data „zabalena“. Samotná data mohou obsahovat cokoli: grafiku, text, animaci, zvuk, sadu 3D objektů a tak dále.

Bloky v souboru IFF lze vnořovat, obr. 6. Soubor IFF ve skutečnosti není nic jiného než blok nejvyšší úrovně obsahující jeden nebo více dalších bloků uvnitř. Tento princip ukládání dat umožňuje „zabalit“ několik heterogenních dat do souboru, včetně několika souborů IFF, který již připomíná systém souborů uvnitř souboru. Pravda, organizace vnořených dat má jednu nevýhodu – soubor se obtížně interpretuje, izoluje z něj bloky.

Většina souborů IFF obsahuje blok nejvyšší úrovně s identifikátorem „FORM“. Jeho součástí jsou další bloky (obr. 7). Jedinými daty v bloku FORM jsou čtyři bajty popisující typ souboru (např. "ILBM", InterLeaved Bit Map). Bezprostředně za nimi jsou vnořené bloky jako „BMHD“ (záhlaví obrázku), „CMAP“ (paleta) a „BODY“ (samotné pixely). Názvy bloků a formát dat jsou vynalezeny vývojářem konkrétního typu souboru. Jiné programy, pokud narazí na blok s neznámým názvem, jej mohou bezpečně přeskočit, vedené polem obsahujícím délku bloku.

Všechna číselná data v souborech IFF jsou uložena v pořadí big-endian, to znamená, že jako první je uložen nejvýznamnější bajt čísla (MSB) a poté bajt s nejnižší hodnotou. Více o tom najdete na postranním panelu. Bloky v souboru musí vždy začínat sudým bajtem. Pokud předchozí blok obsahuje lichý počet bajtů, je doplněn prázdným bajtem, aby byl sudý.

Z jakého konce šetřit?
Paměť počítače se skládá z buněk, z nichž každá obsahuje přesně jeden bajt. Pro přístup k buňce (zápis nebo čtení bajtu) používá procesor tzv adresa na mysli. Je to prostě celé číslo přiřazené buňce operačním systémem (mohou mi počítačoví experti prominout toto přílišné zjednodušení). V reálném životě jeden bajt obvykle nestačí. I pro ukládání celých čísel se používají slova, tedy skupiny dvoubytů, dvou nebo čtyřbytových slov (respektive čtyř nebo osmi bytů, podrobněji viz první část cyklu). To znamená, že číslo je uloženo v několika sousedních bajtech.

Na Obr. 8 ukazuje dva možné způsoby jejich uložení do paměti na příkladu dvojitého slova. První způsob - bajty se ukládají do paměti postupně, nejvýznamnější bajt na nejmenší adrese. To znamená, že MSB vysokého slova je uloženo na adrese N, poté LSB vysokého slova (N + 1), MSB nízkého slova (N + 2), LSB nízkého slova (N + 3) . Tato metoda se obvykle nazývá big-endian(nebo "přímé přidělení bajtů"). U druhého způsobu je vše přesně naopak, horní bajt je uložen na nejvyšší adrese: LSB dolního slova (N), MSB dolního slova (N + 1), LSB vysokého slova (N + 2 ), MSB vysokého slova (N + 3) ... Tato metoda se obvykle nazývá malý Endian- "reverzní přidělování bajtů".

To znamená, že rozdíl je v tom, "z jakého konce" je vícebajtová hodnota uložena. Termíny „big-endian“ a „little-endian“ byly vytvořeny v článku na toto téma s odkazem na knihu Jonathana Swifta The Adventures of Gulliver. Jak víte, v Liliputu vzniklo hnutí Big-Endiánů, kteří nechtěli provést císařův výnos nařizující rozbíjet vařená vejce pouze z ostrého konce. V počítačovém světě vypadá konfrontace velkého a malého endianu velmi podobně.

Zastánci little-endian argumentují, že přeskupené pořadí bajtů v paměti usnadňuje provádění aritmetických operací s vícebajtovými hodnotami, protože nejméně významné bajty přidané jako první jsou uloženy v nejméně významných bajtech.

Obvod little-endian se používá v procesorech kompatibilních s Intelem od Intel 8080 po Intel Pentium IV. Přímé umístění (big-endian) - v procesorech Sun Spark, Motorola 68000 (raná řada počítačů Apple) a mnoha procesorech RISC. Ale procesory PowerPC a Intel Itanium rozumí oběma formátům dat najednou (někdy se jim říká „bi-endian“).

Důležité však není ani tak to, jak počítač ukládá data „uvnitř sebe“, ale jak je ukládá „venku“, do souborů. To je z praktického hlediska mnohem důležitější. Pokud je například slovo „UNIX“ systémem uloženo do souboru big-endian (jako dvě dvoubajtová slova), systém little-endian jej přečte jako „NUXI“. To je to, co počítačový žargon nazývá „problém NUXI“. Podobné potíže mohou nastat při ukládání grafiky, protože barvy jsou kódovány vícebajtovými čísly. Například soubory Adobe Photoshop a JPEG používají schéma big-endian, zatímco soubory GIF a BPM používají little-endian.

"Neplatformní" formát standardního souboru MIDI (SMF) používá metodu big-endian, to znamená, že nejvýznamnější bajt slova (MSB) je uložen jako první.

SMF struktura
Standardní soubory MIDI, jako soubory IFF, se skládají z bloků. Celkem existují dva typy bloků: Header Chunk a Track Chunk. V souboru SMF může být pouze jeden blok záhlaví a jeden nebo více bloků stop. Blok má typickou strukturu IFF: první čtyři bajty jsou identifikátor, další čtyři bajty jsou délka bloku v bajtech, s výjimkou typu / délky osmi bajtů. Identifikátor bloku záhlaví jsou čtyři znaky "MThd" a identifikátor bloku stopy jsou čtyři znaky "MTrk". Tato struktura umožní v budoucnu definovat nové typy bloků a neznámý blok lze snadno ignorovat na základě jeho délky. Specifikace SMF varuje: "Programy by měly být připraveny ignorovat bloky neznámých typů, když na ně narazí."

Blok záhlaví obsahuje obecné informace o souboru, blok stopy obsahuje proud MIDI zpráv s časovými razítky. MIDI soubor navíc ukládá další informace nezbytné pro sekvencery: tempo, takt, tóninu, nastavení metronomu a podobně. Tyto informace nejsou přenášeny přes MIDI rozhraní a události, které je tvoří, se nazývají meta-události.

MIDI soubor vždy začíná blokem záhlaví následovaným jedním nebo více bloky stopy (obrázek 9). To znamená, že jakýkoli standardní MIDI soubor začíná čtyřmi písmeny „M“, „T“, „h“, „d“. To znamená, že soubor MIDI nevyhovuje specifikaci IFF (která vyžaduje, aby každý soubor vyhovující IFF začínal blokem nejvyšší úrovně jednoho ze tří typů – „FORM“, „CAT“ nebo „LIST“). Existují další rozdíly: SMF nemohou obsahovat vnořené bloky a délka bloku nemusí být sudá. Převod SMF na soubor vyhovující IFF je však jednoduchý. Bloky liché délky stačí vycpat nulovým bytem (pokud existuje) a veškerý obsah vložit do bloku FORM. Podobná operace se používá ve formátu RMID navrženém společností Microsoft (viz postranní panel).


Jste tady, protože máte soubor, který má příponu souboru končí v .smf. Soubory s příponou .smf může být spouštěn pouze některými aplikacemi. Je možné, že soubory .smf jsou datové soubory, spíše než dokumenty nebo média. , což znamená, že „nejsou vůbec určeny k prohlížení.

co je & nbsp.smf & nbspfile?

Soubory ve formátu SMF obsahují zvuková data s efekty a tento formát souboru je integrován s podobnými technologiemi a funkcemi jako soubory s příponou MID. Zvukové stopy s příponou .smf lze přehrávat pomocí aplikace Apple QuickTime a tento multimediální program má verzi kompatibilní se systémy založenými na Microsoft Windows kromě jiné verze vyvinuté pro uživatele Mac. Sdružení výrobců MIDI integrovalo specifikace MIDI do formátu souboru SMF během svého vývoje. To znamená, že soubory SMF mohou také obsahovat různé stopy kombinované z různých zvukových stop uložených v několika souborech SMF, což také znamená, že soubory ve formátu .smf lze kombinovat a převádět do jedné zvukové stopy v populárnějších formátech, které lze prohlížet a používat s více Software pro vývoj digitálního videa a prezentací dokumentů, multimediální aplikace a digitální audio přehrávače. To uživatelům poskytuje prostředky k samostatnému přidávání efektů ke každé stopě a provádění úprav na ostatních, než je zkombinují a přehrají jako jednu zvukovou stopu. Některé z těchto efektů a modifikací mohou mimo jiné zahrnovat úpravy hlasitosti a výšky tónu, zkreslení a reverb, panning a úpravy časování. Existují aplikace třetích stran, které dokážou převést soubory SMF do formátu MIDI pro širší podporu křížové kompatibility pro více aplikací pro úpravu zvuku.

jak otevřít soubor .smf?

Spusťte soubor .smf, nebo jakýkoli jiný soubor na vašem PC, poklepáním na něj. Pokud jsou vaše asociace souborů nastaveny správně, aplikace, která „má otevřít váš .smf soubor, ji otevře. Je možné, že si budete muset stáhnout nebo zakoupit správnou aplikaci. Je také možné, že máte na počítači správnou aplikaci, ale soubory .smf se s ní dosud nepřidružily. V tomto případě, když se pokusíte otevřít .smf souboru, můžete říct, Windows, která aplikace je pro daný soubor ta správná. Od té doby, otevření .smf Soubor se otevře správnou aplikaci.

aplikace, které otevírají soubor .smf

Apple QuickTime Player

Apple QuickTime Player

Apple QuickTime Player je software pro multimediální přehrávač, který si poradí s řadou souborů různých formátů od digitálních fotografií po panoramatické obrázky, audio až po videa a také interaktivitu. Tento program multimediálního přehrávače je k dispozici pro počítače Mac OS X i pro novější verze počítačů se systémem Windows. Tento softwarový produkt od společnosti Apple má sady pro vývoj softwaru nebo sady SDK, které jsou k dispozici veřejnosti, pokud jsou předplaceny prostřednictvím připojení Apple Developer Connection nebo ADC. Má rámec QuickTime, který je kompatibilní s dalšími aplikacemi pro bezplatné přehrávače, které poskytují několik funkcí. Patří mezi ně kódování audia a videa, překódování stejných souborů, dekódování s možností poslat dekódovaný proud do grafického subsystému nebo audio subsystému a architektura komponentního pluginu pro podporu dalších kodeků (třetí strany jako DivX). Nejnovější verzí tohoto softwaru je QuickTime Player 7, který je zdarma ke stažení pro počítače Mac a Windows.

slovo varování

Dávejte pozor, abyste nepřejmenovali příponu na & nbsp.smf & nbspfiles ani žádné jiné soubory. Tím se nezmění typ souboru. Pouze speciální konverzní software může změnit soubor z jednoho typu souboru na jiný.

co je přípona souboru?

Přípona souboru je sada tří nebo čtyř znaků na konci názvu souboru; v tomto případě & nbsp.smf. & nbsp Přípony souborů vám řeknou, o jaký typ souboru se jedná, a řeknou systému Windows, jaké programy jej mohou otevřít. Systém Windows často ke každé příponě souboru přiřadí výchozí program, takže po poklepání na soubor se program automaticky spustí. Když tento program již není na vašem počítači, může se někdy při pokusu o otevření souvisejícího souboru zobrazit chyba.


Sekvencery obvykle používají svůj vlastní formát ukládání aranžmá. Je to dáno tím, že datová struktura navržená pro možnosti konkrétního programu je mnohem efektivnější, jednoduše se s ní lépe pracuje. Do svého formátu můžete zapisovat další data, například přizpůsobení uživatelského rozhraní (pozice a velikost okna, písmo atd.). Kompaktnost standardních MIDI souborů (zejména proměnlivé délky pro ukládání času výskytu událostí) se navíc stává nepříjemností: pro práci s uspořádáním je nutné „rozbalit“ všechny delta časy v souboru a když soubor je uložen, znovu "zazipován".

Na druhou stranu, SMF je přenosný multiplatformní formát, ve kterém můžete definovat jakékoli další bloky pro ukládání konkrétních dat. Jeden sekvencer může například uložit zapnutý nebo vypnutý metronom do bloku s názvem „Mtr“. Tento blok není překážkou pro jiný sekvencer, může definovat několik jeho specifických bloků ve stejném souboru. Některé sekvencery tedy používají přímo formát SMF, je pro ně „nativní“. Jiné umožňují importovat a exportovat soubory MIDI podle potřeby.

Pro podporu různých typů sekvencerů a dalšího vybavení jsou standardní MIDI soubory rozděleny do tří variant nebo formátů: 0, 1 a 2.

Formát souboru 0 obsahuje jednu stopu, která obsahuje události ze všech šestnácti MIDI kanálů. Toto je nejjednodušší formát pro výměnu dat, protože nebere v úvahu původní strukturu stop v sekvenceru (která stopa je přiřazena ke kterému MIDI kanálu). Soubor formátu 0 je vhodnější pro přenos dat do zařízení, jako jsou mixéry a efektové procesory, než pro ukládání aranžmá. Při nahrávání souboru ve formátu 0 sekvencer jednoduše sloučí všechny zprávy ze všech MIDI kanálů do jedné stopy. Podle toho při načítání souboru získáme jednu stopu, na které je problematické editovat události, protože události pro různé kanály jsou vzájemně proloženy. Většina sekvencerů má funkci rozdělení takového "mixu" do samostatných stop, z nichž každá obsahuje události pro jeden MIDI kanál.

Soubor formátu 1 obsahuje samostatnou stopu pro každý MIDI kanál, což odráží známou strukturu uspořádání v sekvenceru. Soubor formátu 2 obsahuje několik nezávislých kusů (nebo celých vzorů), každý vzor se skládá z jedné stopy obsahující zprávy na všech 16 kanálech. Tento formát měl být použit v těch sekvencerech, které umí pracovat s nezávislými patterny hranými několika nástroji současně. Formát 2 byl však široce ignorován a v současné době je ve specifikaci považován za „není určen pro sekvencery“.

Jedním z hlavních rozdílů mezi formáty 0 a 1 je způsob umístění meta událostí. Ve formátu 0 jsou meta události tempa a taktu (nazývané mapa tempa) smíchány s jinými MIDI zprávami. V tomto formátu se navíc neukládají názvy skladeb. Ve formátu 1 je první stopa v souboru vyhrazena výhradně pro mapu tempa a další meta-události, jako je sekvence / název stopy, číslo sekvence, značka, posun SMPTE (viz níže).

Pokud v souboru není žádná mapa tempa, předpokládá se tempo 120 BPM a takt je 4/4.

Organizace MMA může v budoucnu vyvinout další formáty SMF na podporu nových datových struktur v sekvencerech.

Razítko ("MThd")

Blok záhlaví obsahuje základní informace o souboru. Struktura bloku je znázorněna na obr. 11. Pole délka vždy obsahuje číslo 6, založené na počtu bajtů dat hlavičky za tímto polem. Data záhlaví jsou tři 16bitová slova. První slovo (formát) - formát SMF, může nabývat jedné ze tří hodnot - 0, 1 a 2. Druhé slovo (ntrks) - počet bloků stop (tj. samotných stop) v souboru. U souboru formátu 0 bude vždy roven jedné.

Poslední slovo bloku záhlaví dělení určuje, jak se měří čas (časová základna). Jak již bylo zmíněno dříve, existují dva způsoby: hudební (takty / doby) a absolutní (založené na časovém kódu), založené na absolutním čase ve formátu SMPTE. Delta čas v SMF souboru se každopádně měří tiky: u hudební metody se nastavuje počet tiků za čtvrtletí (tedy PPQN), u absolutního počet tiků v jednom snímku SMPTE. Pokud je nejvýznamnější (15.) bit pole dělení nastaven na nulu, pak se použije hudební metoda a zbývajících 15 bitů obsahuje PPQN (až 32767), Obr. 12. Pokud je nejvýznamnější bit nastaven na jedničku, použije se absolutní režim. Dolní bajt (bity 0 až 7) ukládá počet tiků na snímek, horní bajt (bity 8 až 15) ukládá formát rámce SMPTE, vyjádřený jako záporné hodnoty (-24, -25, -29, -30 ). V tomto případě číslo -29 odpovídá formátu Drop Frame 30 fps (viz předchozí článek v cyklu).

Záporná čísla se volí proto, že se zapisují jako dvojkový doplněk (viz předchozí článek), to znamená, že obsahují jedničku v nejvýznamnějším bitu. A tato jednotka je jen znakem absolutního způsobu počítání času. Počet tiků na snímek je uložen kladně a obvykle nabývá jedné z následujících hodnot: 4 (rozlišení jako v časovém kódu MIDI, když jsou na snímek čtyři zprávy Quarter Frame), 8, 10, 80 (rozlišení jednoho bitu v SMPTE rám), nebo 100 ...

Tento systém umožňuje indikovat absolutní čas výskytu události s přesností 1/128 snímku. Pokud navíc nastavíte formát snímku na 25 snímků za sekundu a rozlišení na 40 tiků na snímek, pak bude každý tik odpovídat jedné milisekundě. Pole dělení bude mít v tomto případě hodnotu 0xE728, byte 0xE7 je položka čísla doplňku 2 a 0x28 je hexadecimální číslo 40.

Blok stopy ("MTrk")

V bloku stop jsou uloženy samotné události, tedy MIDI zprávy s časovou značkou. Blok musí obsahovat alespoň jednu událost. Struktura bloku stopy je stejná pro MIDI soubory libovolného formátu (0, 1 a 2), Obr. 13.

Událost se skládá z delta času a samotné MIDI zprávy, Obr. 14. Dovolte mi připomenout, že delta čas je uložen jako proměnná délka.

Doufáme, že jsme vám pomohli vyřešit problém se souborem SMF. Pokud nevíte, kde si můžete aplikaci z našeho seznamu stáhnout, klikněte na odkaz (toto je název programu) - najdete podrobnější informace o umístění, odkud si můžete stáhnout zabezpečenou instalační verzi požadované aplikace.

Návštěva této stránky by vám měla pomoci odpovědět konkrétně na tyto nebo podobné otázky:

  • Jak otevírat soubory s příponou SMF?
  • Jak mohu převést soubor SMF do jiného formátu?
  • Jaká je přípona formátu souboru SMF?
  • Jaké programy podporují soubor SMF?

Pokud jste po zhlédnutí věcí na této stránce stále neobdrželi uspokojivou odpověď na některou z výše uvedených otázek, znamená to, že zde uvedené informace týkající se souboru SMF nejsou úplné. Kontaktujte nás pomocí kontaktního formuláře a napište jaké informace jste nenašli.

Co jiného by mohlo způsobovat problém?

Důvodů, proč nemůžete otevřít soubor SMF, může být více (nejen absence odpovídající aplikace).
Nejprve- Soubor SMF může být nesprávně propojen (nekompatibilní) s nainstalovanou aplikací, která jej má obsluhovat. V tomto případě musíte tento odkaz změnit sami. Za tímto účelem klikněte pravým tlačítkem myši na soubor SMF, který chcete upravit, a klikněte na možnost "Otevřít pomocí" a poté ze seznamu vyberte program, který jste nainstalovali. Po takové akci by měly problémy s otevřením SMF souboru zcela zmizet.
Za druhé- soubor, který chcete otevřít, může být jednoduše poškozen. Poté je nejlepším řešením najít novou verzi nebo ji znovu stáhnout ze stejného zdroje jako dříve (možná z nějakého důvodu v předchozí relaci nebylo stahování souboru SMF dokončeno a nelze jej správně otevřít).

Chcete pomoci?

Pokud máte další informace o příponu souboru SMF, budeme vděční, když je budete sdílet s uživateli našeho webu. Použijte uvedený formulář a zašlete nám své informace o souboru SMF.