SMF ֆայլի ընդլայնում: SMF ձևաչափեր Բացեք smf ֆայլը

Եթե ​​ձեր համակարգիչը ունի հակավիրուսային ծրագիրկարող է սկանավորել համակարգչի բոլոր ֆայլերը, ինչպես նաև յուրաքանչյուր ֆայլ առանձին. Դուք կարող եք սկանավորել ցանկացած ֆայլ՝ աջ սեղմելով ֆայլի վրա և ընտրելով ֆայլը վիրուսների համար սկանավորելու համապատասխան տարբերակը:

Օրինակ, այս նկարում. ֆայլ my-file.smf, ապա պետք է աջ սեղմել այս ֆայլի վրա և ֆայլի ընտրացանկում ընտրել տարբերակը «Սկան AVG-ով». Ընտրելով այս տարբերակը՝ կբացվի AVG Antivirus-ը և կսկսի ֆայլը վիրուսների համար:


Երբեմն կարող է առաջանալ սխալ ծրագրաշարի սխալ տեղադրում, որը կարող է պայմանավորված լինել տեղադրման գործընթացում առաջացած խնդրի պատճառով: Դա կարող է խանգարել ձեր օպերացիոն համակարգին կապեք ձեր SMF ֆայլը ճիշտ ծրագրային հավելվածի հետ, ազդելով այսպես կոչված «Ֆայլերի ընդլայնման ասոցիացիաներ».

Երբեմն պարզ apache openoffice-ի վերատեղադրումկարող է լուծել ձեր խնդիրը՝ ճիշտ կապելով SMF-ը Apache OpenOffice-ին: Այլ դեպքերում, ֆայլերի հետ կապված խնդիրներ կարող են առաջանալ վատ ծրագրային ապահովումծրագրավորողին, և գուցե անհրաժեշտ լինի կապ հաստատել մշակողի հետ հետագա օգնության համար:


Խորհուրդ.Փորձեք թարմացնել Apache OpenOffice-ը վերջին տարբերակին՝ համոզվելու համար, որ ունեք վերջին շտկումներն ու թարմացումները:


Սա կարող է թվալ չափազանց ակնհայտ, բայց հաճախ SMF ֆայլն ինքնին կարող է խնդիր առաջացնել. Եթե ​​ֆայլ եք ստացել էլ.փոստի հավելվածի միջոցով կամ ներբեռնել եք այն վեբկայքից, և ներբեռնման գործընթացը ընդհատվել է (օրինակ՝ հոսանքազրկման կամ այլ պատճառով), ֆայլը կարող է վնասված լինել. Հնարավորության դեպքում փորձեք ստանալ SMF ֆայլի թարմ պատճեն և փորձեք նորից բացել այն:


Զգուշորեն.Վնասված ֆայլը կարող է լրացուցիչ վնաս պատճառել ձեր համակարգչի նախկին կամ նախկինում գոյություն ունեցող չարամիտ ծրագրերին, ուստի կարևոր է ձեր համակարգիչը թարմացնել արդի հակավիրուսով:


Եթե ​​ձեր SMF ֆայլը կապված ձեր համակարգչի սարքավորման հետՁեզ անհրաժեշտ ֆայլը բացելու համար թարմացնել սարքի դրայվերներըկապված այս սարքավորման հետ:

Այս խնդիրը սովորաբար կապված է մեդիա ֆայլերի տեսակների հետ, որոնք կախված են համակարգչի ներսում սարքաշարի հաջող բացումից, օրինակ. ձայնային քարտ կամ վիդեո քարտ. Օրինակ, եթե դուք փորձում եք բացել աուդիո ֆայլ, բայց չեք կարող բացել այն, ձեզ կարող է անհրաժեշտ լինել թարմացնել ձայնային քարտի դրայվերները.


Խորհուրդ.Եթե ​​երբ փորձում եք բացել SMF ֆայլ, դուք ստանում եք .SYS ֆայլի հետ կապված սխալի հաղորդագրություն, խնդիրը հավանաբար կարող է լինել կապված է կոռումպացված կամ հնացած սարքի վարորդների հետորոնք պետք է թարմացվեն: Այս գործընթացը կարող է հեշտացվել՝ օգտագործելով վարորդների թարմացման ծրագրակազմը, ինչպիսին է DriverDoc-ը:


Եթե ​​քայլերը չլուծեցին խնդիրըև դուք դեռևս խնդիրներ ունեք SMF ֆայլեր բացելու համար, դա կարող է պայմանավորված լինել առկա համակարգի ռեսուրսների բացակայություն. SMF ֆայլերի որոշ տարբերակներ կարող են պահանջել զգալի քանակությամբ ռեսուրսներ (օրինակ՝ հիշողություն/RAM, մշակող հզորություն)՝ ձեր համակարգչում ճիշտ բացելու համար: Այս խնդիրը բավականին տարածված է, եթե դուք օգտագործում եք բավականին հին համակարգչային սարքավորում և միևնույն ժամանակ շատ ավելի նոր օպերացիոն համակարգ:

Այս խնդիրը կարող է առաջանալ, երբ համակարգիչը դժվարանում է կատարել առաջադրանքը, քանի որ օպերացիոն համակարգը (և հետին պլանում աշխատող այլ ծառայությունները) կարող են. սպառել չափազանց շատ ռեսուրսներ SMF ֆայլը բացելու համար. Փորձեք փակել ձեր համակարգչի բոլոր հավելվածները՝ նախքան StarMath Formula File-ը բացելը: Ազատելով ձեր համակարգչում առկա բոլոր ռեսուրսները՝ դուք կապահովեք լավագույն պայմանները SMF ֆայլը բացելու փորձի համար:


Եթե ​​դու ավարտեց վերը նշված բոլոր քայլերըև ձեր SMF ֆայլը դեռ չի բացվի, գուցե անհրաժեշտ լինի գործարկել ապարատային արդիականացում. Շատ դեպքերում, նույնիսկ ավելի հին ապարատային տարբերակներն օգտագործելիս, վերամշակման հզորությունը դեռ կարող է լինել ավելի քան բավարար օգտատերերի հավելվածների մեծ մասի համար (եթե դուք շատ պրոցեսորային աշխատանք չեք կատարում, ինչպիսիք են 3D-արտադրումը, ֆինանսական/գիտական ​​մոդելավորումը կամ ինտենսիվ մուլտիմեդիա աշխատանքը: ) . Այս կերպ, հավանական է, որ ձեր համակարգիչը բավարար հիշողություն չունի(ավելի հաճախ կոչվում է «RAM» կամ RAM) ֆայլ բացելու առաջադրանքը կատարելու համար:

MIDI արձանագրությունը մանրամասնող հոդվածաշարի հինգերորդ մասը։

MIDI արձանագրության երեք բաղադրիչներից մեկը տվյալների պահպանման ձևաչափի ճշգրտումն է (հիշենք, որ մյուս երկու բաղադրիչներն են հաղորդագրության ձևաչափը և ապարատային միջերեսի ճշգրտումը): Հաղորդագրության ձևաչափը քննարկվել է ցիկլի առաջին երեք հոդվածներում, հիմա եկել է պահման ձևաչափի ժամանակը: Այն առաջարկվել է MMA կազմակերպության կողմից 1987 թվականի վերջին և կոչվում է «Ստանդարտ MIDI Ֆայլեր» (Standard MIDI Files, SMF):

MIDI ֆայլերի նպատակն է հնարավորություն ընձեռել իրադարձությունների (այսինքն՝ MIDI հաղորդագրությունների, որոնք ունեն ժամանակի դրոշմակնիք) փոխանակումը տարբեր սարքերի և ծրագրերի միջև: Մինչև ստանդարտ MIDI ֆայլերի հայտնվելը, մի հաջորդականությամբ պատրաստված դասավորությունը չէր կարող բեռնվել մյուսի մեջ՝ ձևաչափերի անհամատեղելիության պատճառով: Չի կարելի ասել, որ SMF-ի ի հայտ գալուց հետո բոլոր հաջորդական արտադրողներն անցան այս ձևաչափին: Դրա համար կան մի քանի պատճառներ, որոնց մասին կխոսենք նաև այսօր։

Քանի որ տեղեկատվության պահպանումն ուղղակիորեն կապված է հաջորդականիչների կառուցվածքի հետ, մենք կանդրադառնանք այս խնդրին ավելի մանրամասն, բայց միայն այնքանով, որքանով անհրաժեշտ է SMF-ը հասկանալու համար: Իսկ հաջորդականներին, իհարկե, մենք կնվիրենք ցիկլի հաջորդ հոդվածներից մեկը։

Իրադարձություններ
Ժամային դրոշմով MIDI հաղորդագրություն է կոչվում իրադարձություն. Ժամանակը ցույց տալու համար կարող են օգտագործվել տարբեր միավորներ՝ տիզեր, ներքին իմպուլսներ, ժամանակը SMPTE ձևաչափով և այլն: Կարևոր է հասկանալ իրադարձության և հաղորդագրության միջև հիմնարար տարբերությունը: Հաղորդագրությունը «ապրում է» իրական ժամանակի միլիվայրկյանների մի մասը՝ սկզբնաղբյուրի կողմից գեներացվելու պահից մինչև ստացողի կատարման հասնելու պահը: Այն կարող է բռնվել MIDI մալուխի միջոցով փոխանցման ժամանակ՝ որպես իմպուլսների մի շարք: Իրադարձությունը սարքի հիշողության մեջ գրանցված մի քանի բայթ տեղեկատվություն է, որի հիման վրա ապագայում՝ սահմանված ժամին, կստեղծվի հաղորդագրություն։

Օրինակ, հաջորդականացնողի հիշողության մեջ կարող է պահվել «play note» իրադարձություն՝ նվագարկման սկզբից 100ms ժամանակի նշանով: Դուք կարող եք խմբագրել այս իրադարձությունը երկու հարթության մեջ. նախ՝ փոխել MIDI հաղորդագրության պարամետրերը (այս դեպքում՝ նոտայի բարձրությունը կամ դինամիկան), և երկրորդը՝ տեղափոխել գրառումը ուղու երկայնքով, այսինքն՝ փոխել ժամանակի ժամանակը։ Հաղորդագրություն.

MIDI հաղորդագրությունները ձայնագրելիս իրադարձությունները հայտնվում են հաջորդականության հիշողության մեջ: Երբ սեղմում եք Record կոճակը, հաջորդականիչը միացնում է ապարատային իմպուլս գեներատորը (տիզ) և սկսում «լսել» նշված MIDI մուտքագրումը: Օրինակ, երբ սեղմվում է ստեղնը, մուտքագրումը ստանում է «նշել» հաղորդագրությունը: Սեկվենսերը նայում է. այո, հաղորդագրությունը եկել է 20-րդ նշանով և այն գրում է հիշողության մեջ 20 նշանով: Մի քանի վայրկյան հետո բանալին բաց է թողնվել. «հեռացնել գրառումը» հաղորդագրությունը եկավ, ներքին գեներատորն այդ պահին ուրախությամբ: 64 տիզ թափահարեց հաջորդականության վրա: Sequencer-ը պահպանում է հաղորդագրությունը 64 պիտակով: Այժմ մենք գործ ունենք երկու իրադարձությունների հետ՝ Note On և Note Off: Նվագարկման ընթացքում զարկերակային գեներատորը կրկին միացված է: Երբ մոտենում է 20-րդ նշանը, Note On հաղորդագրությունն ուղարկվում է հաջորդականության MIDI ելքին, 64-րդ նշումը՝ Note Off: Մենք ձայնագրեցինք, այնուհետև վերարտադրեցինք կատարողի գործողությունները:

Ակնհայտորեն, նույնը կարելի է անել «օֆլայն», այսինքն՝ առանց կենդանի կատարման անհրաժեշտության։ Սեղմելով մկնիկը ուղու ճիշտ տեղում (և նախապես ընտրելով նոտայի տևողությունը), մենք կկառուցենք հենց նախորդ նկարը հաջորդականության հիշողության մեջ:

Հիշողության տեսակները
Հիմա ժամանակն է կիրառել երկու վախեցնող համակարգչային տերմիններ՝ առաջնային և երկրորդային հիշողություն: Առաջնային (կամ ներքին) հիշողությունը հաջորդականության հիշողությունն է, որտեղ գրվում են հաղորդագրությունները և որտեղ իրադարձությունները պահվում են ամբողջ նիստի ընթացքում: Այս հիշողության բովանդակությունը զրոյացվում է, երբ հոսանքն անջատված է: Այս մեկնաբանությունն ավելի հարմար է ապարատային հաջորդականիչների համար: Ծրագրային հաջորդականիչներում առաջնային հիշողությունը պարզապես համակարգչի հիմնական հիշողությունն է: Առաջնային հիշողության բովանդակությունը երկար ժամանակ պահելու համար օգտագործվում է երկրորդական հիշողություն կամ այլ կերպ ասած՝ պահեստային կրիչ։ Դա կարող է լինել ճկուն սկավառակ, կոշտ սկավառակ, խելացի քարտ և այլն:

Սարքավորումների հաջորդականության և աշխատակայանների առաջնային հիշողության քանակը (հիշեցնենք, որ աշխատանքային կայանը ազդանշանային գեներատոր է և հաջորդականիչը մեկ տուփում) սովորաբար արտահայտվում է պահված նշումների քանակով (օրինակ՝ 200 հազար): Երբեմն ձայնը արտահայտվում է իրադարձություններով, այդ դեպքում դուք պետք է զգույշ լինեք. մեկ նշումը պահելու համար անհրաժեշտ է երկու իրադարձություն (ստեղնը սեղմել և բաց թողնել), իսկ պտտվող անիվը կամ հետհպումը կարող է առաջացնել մինչև 100 կամ ավելի իրադարձություն: Պատահում է, որ հաջորդականության հիշողության ծավալն արտահայտվում է բնիկ համակարգչային միավորներով՝ կիլոբայթներով: Բայց սա նույնպես շատ հարմար չէ. մեկ իրադարձությունը կարող է տարբեր քանակությամբ բայթեր վերցնել (հինգից մինչև մի քանի տասնյակ):

Ժամանակակից ծրագրային հաջորդականիչներում քչերին է հետաքրքրում առաջնային հիշողության ծավալը. նույնիսկ 128 ՄԲ օպերատիվ հիշողությամբ մեքենայի վրա դուք կարող եք մոռանալ ցանկացած սահմանափակումի մասին MIDI տվյալների հետ աշխատելիս: Բացի այդ, կան հաջորդականիչներ, որոնք կարող են նվագարկել դասավորությունը անմիջապես սկավառակից՝ առանց այն առաջնային հիշողության մեջ բեռնելու (և, ի դեպ, նաև ձայնագրելու), ինչը, ընդհանուր առմամբ, խաթարում է հիշողության երկու տեսակների միջև տարբերությունը։

Երկրորդային պահեստում տվյալները սովորաբար գրվում են ֆայլում: Sequencers-ի մեծ մասն ունի այս ֆայլի սեփական ձևաչափը՝ փակ, ինչը դժվարացնում է տարբեր սարքերում կամ ծրագրերում ստեղծված պայմանավորվածությունների փոխանակումը: Ավելի վաղ ասվում էր, որ դա է եղել SMF-ի ստեղծման հիմնական պատճառը։

Ժամանակի չափում
Իրականում սեկվենսերի ներսում «տիզեր» չկան։ Կա ապարատային ժմչփ, որը առաջացնում է իմպուլսներ խիստ հաստատուն հաճախականությամբ (օրինակ՝ յուրաքանչյուր միկրովայրկյան): Երաժիշտներին ստիպելը չափել ժամանակը միկրովայրկյաններով, հրեշավոր ծաղր կլիներ, ինչպես իրական ժամանակի այլ միավորներում (վայրկյաններ, րոպեներ): Երաժիշտները սովոր են մտածել չափումների և հարվածների մեջ, իսկ ժամանակը արտահայտել հարաբերական միավորներով (նոտայի տևողությունը)՝ կախված ընթացիկ տեմպից։

«Խնդիր չկա,- պատասխանեցին արտադրողները,- թող չափեն այնպես, ինչպես իրենց է հարմար»: Միայն չափման նվազագույն միավորը կլինի ոչ թե ինչ-որ 32-րդ տևողություն, այլ պայմանականորեն վերցված տիզ (միավորն էլ ավելի փոքր է, այնպես որ, օրինակ, երեսուն վայրկյանը կարող է պարունակել 48 տիզ): Քանի որ դասական դարաշրջանից ի վեր տեմպը չափվում էր րոպեում քառորդների քանակով (BPM, զարկեր մեկ րոպեում), որոշվեց վերցնել մեկ քառորդը հիմնական տևողության համար և նշել եռամսյակում տիզերի քանակը՝ PPQN (Pulse Per): Եռամսյակային նշում): Որքան մեծ է PPQN-ն, այնքան ավելի լավ է հաջորդականության լուծաչափը և այնքան ավելի ճշգրիտ ժամանակի ընթացքում այն ​​կարող է ձայնագրել հաղորդագրությունները ձայնագրման ընթացքում և դրանք ուղարկել MIDI ելքի վրա նվագարկման ընթացքում: Հերթափոխիչներից շատերը թույլ են տալիս կամայականորեն սահմանել PPQN, օրինակ՝ եռամսյակում 32-ից 1536 տիզ (ժամանակակից հաջորդականիչներ՝ մինչև 15360 PPQN):

Տիզը տեմպից կախված միավոր է. որքան արագ է տեմպը, այնքան ավելի կարճ է տիզերի միջև ընդմիջումը իրական ժամանակի միավորներով: Այս միջակայքը կարելի է գտնել՝ օգտագործելով Նկ. մեկ.

Օրինակ, 120 BPM տեմպերով և 96 PPQN լուծաչափով, յուրաքանչյուր 5,208 միլիվայրկյան մեկ տիզ կլինի: Նույն թույլատրելիությամբ և 180 BPM տեմպերով, տիզերի միջև ընդմիջումը կնվազի մինչև 3,472 մվ: Ինչպե՞ս է հաջորդականիչը հաշվում տիզերը, եթե նրա ներքին ժամանակաչափը իմպուլսներ է անում յուրաքանչյուր միկրովայրկյանում: Այո, շատ պարզ. ելնելով ընթացիկ տեմպից և լուծաչափից մեկ եռամսյակում, ճիշտ ըստ նշված բանաձևի: Քանի որ մեկ միլիվայրկյանում կա 1000 միկրովայրկյան, վերջին օրինակում հաջորդականիչը կստեղծի ևս մեկ տիզ, երբ ժմչփից ստանա 3472 իմպուլս:

Երբ բարձր լուծաչափը իմաստ չունի
Եթե ​​հաջորդականացուցիչը և ձայնային գեներատորը գտնվում են «նույն տանիքի տակ» (աշխատանքային կայան կամ համակարգիչ՝ ծրագրային հաջորդականությամբ և ձայնային քարտի վրա սինթեզատորով կամ վիրտուալ սինթեզատորով), ապա նման համակարգի ներքին լուծումը կարող է կամայականորեն մեծ լինել ( 15360 PPQN համարը տպավորիչ է): Սա թույլ է տալիս MIDI-ի և աուդիո տվյալների համաժամացմանը նմուշային ճշգրիտ լինել: Բայց հենց որ մենք միացնում ենք հաջորդականացուցիչը և ձայնի գեներատորը MIDI մալուխով MIDI ինտերֆեյսի միջոցով, բարձր լուծաչափն այլևս տեղին չէ:

Ինչո՞ւ։ Հիշեցնեմ, որ մեկ բայթը փոխանցվում է MIDI ինտերֆեյսի միջոցով 320 միկրովայրկյանում։ Իսկ սա նշանակում է, որ, օրինակ, գրառում կատարելու մասին հաղորդագրությունը (կազմված երեք բայթից) կփոխանցվի 960 մկվ կամ գրեթե ամբողջ միլիվայրկյանով։ Հիմա եկեք պատկերացնենք, որ երկու նոտա ծրագրավորվում են հաջորդականության մեջ 120 BPM և 2048 PPQN, միմյանց միջև երկու տիզերի ընդմիջումով: Իրական ժամանակի միավորներում սա 488 միկրովայրկյան է: Այսպիսով, ձայնի գեներատորը չի կարողանա երկրորդ նոտան ստանալ առաջինից 488 մկվ, բայց իրականում միայն 960 միկրովայրկյան հետո: Այսպիսով, նա դա կիրականացնի ոչ թե երկու տիզից հետո, այլ գրեթե չորս:

Հետևաբար եզրակացությունը. MIDI ինտերֆեյսի միջոցով աշխատելիս (երբ հաջորդականիչը և տոնային գեներատորը միմյանցից հեռու են), հաջորդականացնողի 960 միկրովայրկյանում մեկից ավելի տիզ լուծումը իմաստ չունի: Պարզելու համար, թե որքան կլինի այն PPQN-ում, կարող եք օգտագործել նկ. 2.

Աղյուսակում նկ. 3-ը տարբեր դրույքաչափերի համար ցույց է տալիս PPQN-ի արժեքները, որն անիմաստ է գերազանցել:

Իրադարձության դիրքը ժամանակի քանոնի վրա դրվում է հաջորդականության մեջ, սովորաբար «շետեր՝ հարվածներ՝ տիզ» ձևաչափով, օրինակ՝ 22:3:152: Այսինքն՝ քսաներկրորդ չափը, երրորդ զարկը, 152-րդ տիզը երրորդ զարկի սկզբից։ Ժամանակի համանման սկզբունքը (անգլերեն տերմինը՝ Timebase) կոչվում է երաժշտական ​​(երաժշտական), քանի որ այն ծանոթ և հարմար է երաժիշտների համար։ Խնդրում ենք նկատի ունենալ, որ այս ձևաչափով աշխատելու համար անհրաժեշտ է իմանալ ընթացիկ ժամանակի ստորագրությունը: Այսինքն՝ քանի զարկ է պարունակում շտրիխը և ինչի է հավասար յուրաքանչյուր հարվածը։

Այսպիսով, 4/4 ժամանակում հարվածը հավասար է քառորդի, իսկ չափումը պարունակում է չորս զարկ։ 384 PPQN լուծաչափով մեկ հարվածում կլինի 384 տիզ, իսկ յուրաքանչյուր բարում՝ համապատասխանաբար 1536 տիկ (384 x 4): 6/8 ժամանակի ստորագրությամբ և նույն թույլատրելիությամբ, կլինի 192 տիզ մեկ հարվածի համար (ութերորդ նոտան քառորդ նոտայի երկարության կեսն է) և վեց հարված մեկ բարում կամ 1152 տիկ (192 x 6): Այսպիսով, 22:3:152 մուտքն առաջին դեպքում նշանակում է 35096 տիզ երգի սկզբից (22 x 1536 + 3 x 384 + 152), իսկ երկրորդում՝ 26072 տիկ (22 x 1152 + 3 x 192 +: 152):

Այսպիսով, իրական ժամանակի միավորներում իրադարձության դիրքը որոշելու համար՝ հիմնվելով «շերտեր. հարվածներ: տիզ» ձևաչափի վրա, դուք պետք է իմանաք երեք պարամետր՝ ընթացիկ տեմպը, ժամանակի ստորագրությունը և լուծաչափը եռամսյակի կտրվածքով (PPQN):

Ժամանակը հաշվելու ևս մեկ հնարավորություն կա, երբ իրադարձության դիրքը ուղու վրա արտահայտվում է բացարձակ միավորներով, որոնք կախված չեն տեմպից, ամենից հաճախ SMPTE ժամանակի ձևաչափով՝ «ժամեր: րոպեներ: վայրկյաններ: շրջանակներ»: Ժամկետների այս սկզբունքը կոչվում է «ժամանակի վրա հիմնված կոդ» (հիմնված ժամանակային կոդի վրա, բացարձակ): Դրա անհրաժեշտությունն առաջանում է, երբ սեկվենսերը աշխատում է մագնիտոֆոնի կամ կինո/վիդեո սարքավորումների հետ միասին: Ֆիլմի, վիդեո և աուդիո նյութերով մոնտաժային գործողությունները, նշելով ձայնագրության սկզբի և վերջի դիրքերը, ավելի հարմար է կատարել՝ կապված լինելով բացարձակ մասշտաբի, այլ ոչ թե չափումների ու հարվածների հետ։

Այս դեպքում ժամանակի քանոնի վրա իրադարձության կոորդինատը կախված է ընթացիկ տեմպից։ Այսպիսով, 120 BPM-ին երկրորդ գծի առաջին հարվածը կարող է ունենալ SMPTE ժամանակ 00:00:02:00, իսկ 60 BPM-ին կարող է լինել 00:00:04:00: Եթե ​​իրադարձությունը գտնվում է կադրի ներսում (վայրկյանների միջև), ապա դրա կոորդինատը նույնպես կտարբերվի տարբեր կադրերի ձևաչափերի համար (կադրերի քանակը վայրկյանում): SMPTE-ի և MIDI Time Code-ի մասին ավելին կարող եք կարդալ շարքի նախորդ հոդվածում:

Փոփոխական երկարություններ
Բավական լիրիկական շեղումներ, այժմ մեր խնդիրն է պարզել տվյալների պահպանման ձևաչափը: Եվ առաջին դժվարությունը, որին հանդիպեցին SMF-ի մշակողները, այն էր, թե ինչպես խնայել միջոցառման ժամանակը:

Այստեղ երկու տարբերակ կա՝ յուրաքանչյուր իրադարձության համար պահել երգի սկզբից սկսած ժամանակը կամ դրանից առաջ վերջին իրադարձությունից (նույն ալիքով): Այնուամենայնիվ, առաջին տարբերակը ռացիոնալ չէ, քանի որ ամենից հաճախ իրադարձությունների միջև ընդմիջումը փոքր է, հարևան իրադարձությունները ունեն միմյանց մոտ կատարման ժամանակներ: Այսպիսով, երեք նշումներից բաղկացած հատվածում առաջինը կարող է ունենալ ժամանակ, ասենք, 22:3:152, երկրորդը 22:3:244, երրորդը 22:3:288: Այս թվերը պահելու համար (երգի սկզբից վերածված տիզերի), դուք պետք է յուրաքանչյուրը պահեք առնվազն չորս բայթ: Եթե ​​դուք գնում եք երկրորդ ճանապարհով, ապա երեք մեծ թվերի փոխարեն կարող եք պահպանել մեկ մեծ մեկնարկային համար (22:3:152), որին հաջորդում են երկու փոքրերը՝ առաջինի և երկրորդի, երկրորդի և երրորդի միջև տիզերի տարբերությունը: նշումներ (այս դեպքում՝ 92 և 44), դրանց մեկ բայթը բավական է։ Բայց, այնուամենայնիվ, խնդիրը մնում է. կախված իրադարձությունից՝ ժամանակ խնայելու համար հարկավոր է բայթերի այլ քանակ հատկացնել։

Եթե ​​SMF-ը մշակվեր ներկա պահին (և նույնիսկ Microsoft-ի կողմից, որն ընդհանուր առմամբ քիչ է մտածում իր ֆայլերի չափի և անհրաժեշտ հիշողության մասին), այս խնդիրը կփակեր աչքը: Մենք հատկացրել ենք ֆիքսված դաշտ ժամանակ խնայելու համար, ասենք, 8 բայթ մեկ իրադարձության համար, ու չենք տուժել։ Այնուամենայնիվ, 1988 թվականին առաջնային (RAM) հիշողությունը շատ թանկ էր, յուրաքանչյուր բայթը հաշվված էր, իսկ երկրորդականը (սկավառակի մեդիա) ուներ շատ համեստ քանակություն: Հետևաբար, SMF-ի մշակողները ցանկանում էին ստանալ հնարավորինս կոմպակտ ձևաչափ:

Որոշվել է պահպանել դելտայի ժամանակ, այսինքն՝ տիզերի տարբերությունը այս իրադարձության և նախորդի (կամ երգի սկզբի) միջև։ Օրինակ, եթե առաջին իրադարձությունը` C նոտին առաջին օկտավայի հարվածը, տեղի է ունեցել երգի սկզբից 40 տիկ պահին, ապա դրա դելտայի ժամանակը կլինի 40: Եթե F նոտան հնչում է չորս տիկից հետո, ապա դրա դելտայի ժամանակը կլինի 4: Եթե երկու իրադարձություն տեղի են ունենում միաժամանակ, ապա դրանցից մեկին նշանակվում է դելտայի ժամանակ, որը հավասար է զրոյի: Եթե ​​իրադարձությունը տեղի է ունենում հենց երգի սկզբում, այն ունի նաև զրոյական դելտա ժամանակ։ Այնուամենայնիվ, հաջորդ իրադարձությունը կարող է տեղի ունենալ մեկուկես ժամից (այսինքն, մի քանի միլիոն տիզից հետո): Ինչպե՞ս լինել այս դեպքում: Ի վերջո, հիշողությունը պետք է պահպանվի, և անցանկալի է մի քանի բայթից ֆիքսված դաշտ հատկացնել դելտա ժամանակի համար:

Այսպես կոչված փոփոխական երկարության մեծություններ. Նրանք ապահովում են ամբողջ թվեր գրելու հարմար եղանակ՝ ամենափոքրից մինչև ամենամեծը, առանց թվի համար ֆիքսված թվով բայթեր առանձնացնելու։ Բնօրինակ թվի բիթերը փաթեթավորված են մեկ կամ մի քանի բայթերի մեջ. յուրաքանչյուր բայթ ունի յոթ բիթ (աջ կողմում, բիթ 0-ից 6-ը): Բայթի ամենակարևոր բիթը ծառայությունն է. շարքի բոլոր բայթերը, բացի վերջինից, պետք է պարունակեն մեկ բայթ, վերջինը` զրո: Փաթեթավորման մի քանի օրինակներ ներկայացված են Նկ. 4.

Օրինակ, դուք ցանկանում եք փաթեթավորել 64 թիվը (վեցանկյուն 0x40) փոփոխական երկարության ձևաչափի մեջ: Երկուական ձևով այս թիվը գրված է որպես 0100 0000: Կան ընդամենը յոթ նշանակալի բիթ, ուստի այս թիվը փաթեթավորվում է մեկ բայթում անփոփոխ՝ 0100 0000 (դա նաև շարքի վերջին բայթն է), ամենակարևոր բիթը 0 է:

Այժմ թիվը 128 է (0x80): Երկուական ձևով այն գրված է որպես 1000 0000: Կան ութ կարևոր բիթ, այնպես որ ամեն ինչ չի տեղավորվի մեկ բայթի մեջ, դուք պետք է այն բաժանեք երկուսի: Առաջին բայթը պետք է ունենա մեկ բարձր բիթ, երկրորդը (որպես շարքի վերջնական բայթ) պետք է ունենա զրո: Երկրորդ բայթի մեջ դնում ենք սկզբնական թվի յոթ ամենանվազ նշանակալի բիթերը, ստացվում է 0 000 0000: Մնացած մեկ բիթը (մեկը) դրվում է առաջին բայթի աջ կողմում` ստացվում է 1000 0001: Արդյունքում: , 0x80 թիվը գրվում է երկու բայթով՝ 0x81 0x00։ Փաթեթավորումը շատ հեշտ է։ Մենք նախապես չգիտենք, թե քանի բայթ կա մի շարքում: Մենք կարդում ենք առաջին բայթը՝ 1000 0001։ Բարձր սպասարկման բիթը (1) ցույց է տալիս, որ սա շարքի վերջին բայթը չէ, բայթերն ավելի շատ են։ Մենք հրաժարվում ենք սպասարկման միավորից, մնում է յոթ բիթ՝ 000 0001: Մենք կարդում ենք երկրորդ բայթը՝ 0000 0000: Բարձր սպասարկման բիթը (0) ցույց է տալիս, որ սա շարքի վերջին բայթն է (այսինքն՝ կա ընդամենը երկու բայթ: շարք): Մենք հրաժարվում ենք ծառայության բիթից: Մնացել է նաև յոթ բիթ՝ 000 0000: Ձախ կողմում ավելացնում ենք առաջին բայթից հատկացված յոթ բիթերը, ստանում ենք 000 0001 000 0000: Առաջին վեց զրոները դեն նետելով՝ ստանում ենք ցանկալի թիվը 1000 0000 (0x80) .

Այսպիսով, փոփոխական երկարության արժեքների մեթոդը թույլ է տալիս տարբեր թվերի համար բայթերի տարբեր քանակ հատկացնել՝ 0-ից 127 միջակայքում գտնվող թվերի համար՝ մեկ բայթ, 128-ից մինչև 16383՝ երկու բայթ և այլն: Առավելագույն թիվը, որը կարելի է ներկայացնել այս կերպ, սկզբունքորեն սահմանափակված չէ: Այնուամենայնիվ, SMF-ում գործարկման երկարությունը սահմանափակվում է չորս բայթով (երեքը ամենակարևոր բիթով և մեկը ավարտող մեկը զրոյով): Արդյունքում, դելտայի առավելագույն ժամանակը կարող է լինել 0x0FFFFFFF (կամ 268,435,455 տիզ), որը 500 BPM և 96 PPQN մոտ չորս օր է: Ավելին քան պետք է!

Փոփոխական երկարության արժեքների տեսքով SMF-ը սահմանում է ոչ միայն դելտայի ժամանակը, այլև որոշ իրադարձությունների երկարությունը:

Փոխանակման ֆայլի ձևաչափ (IFF)
Ստանդարտ MIDI ֆայլի կառուցվածքը գրեթե ամբողջությամբ փոխառված է IFF (Interchange File Format) ձևաչափից, որը մշակվել է 1985 թվականին Electronic Arts-ի կողմից: Սա տվյալների պահպանման և փոխանակման ձևաչափ է, որը հեշտացրել է կյանքը և՛ օգտատերերի, և՛ ծրագրային ապահովման մշակողների համար գրեթե քսան տարի: Electronic Arts-ը ոչ միայն տրամադրել է բաց կոդով փաստաթղթեր, այլ նաև C կոդ՝ IFF ֆայլեր կարդալու և գրելու համար:

IFF ձևաչափը հետընթաց համատեղելի է և ընդարձակելի: Առաջինը նշանակում է, որ ծրագրի նոր տարբերակը հեշտությամբ կարող է կարդալ նախորդ տարբերակով ստեղծված ֆայլերը։ Երկրորդ, լրացուցիչ տեղեկատվություն պահելու համար ձեզ հարկավոր չէ նոր ձևաչափ հորինել, բավական է IFF-ում ձեր սեփական ընդլայնումը ներմուծել: Ձևաչափի կառուցվածքը թույլ է տալիս տարբեր արտադրողների ծրագրերին փոխանակել տվյալներ, որոնք չունեն համապատասխան բիզնես պայմանագրեր միմյանց հետ։ Այս ամենը ուրախացնում է նաև օգտատերերին. տվյալները պահպանելով IFF ձևաչափով, նրանք այլևս կապված չեն իրենց համակարգի փակ ձևաչափին և կարող են օգտագործել տվյալները IFF-ի հետ համատեղելի ապարատային և ծրագրային միջավայրում:

IFF ֆայլը տվյալների հավաքածու է, որը կազմակերպված է այնպես, որ տարբեր անկապ ծրագրեր կարող են կարդալ այն: Մյուս կողմից, ծրագիրը կարող է հատուկ տեղեկատվություն պահել IFF-ում, որը իմաստ ունի միայն իր համար: IFF կառուցվածքը հեշտացնում է դա: Այլ ծրագրեր, որոնք չգիտեն, թե ինչպես վարվել նման տեղեկատվության հետ, կարող են անտեսել այն՝ չազդելով հիմնական բովանդակության ընթերցման վրա:

Կան մի քանի տեսակի IFF ֆայլեր: Օրինակ, ILBM և GIFF ֆայլերը պարունակում են գրաֆիկական տեղեկատվություն, SMUS ֆայլերը պարունակում են երաժշտական ​​նշում, AIFF և WAVE ֆայլերը պարունակում են թվային ձայն:

IFF ֆայլը բաղկացած է նույն տեսակի տարրերից, որոնք կոչվում են բլոկներ (կտորներ): Բլոկը տվյալների կառուցվածք է, որը բաղկացած է տառի նույնացուցիչից (չորս ASCII նիշ), բլոկի չափից (չորս բայթ) և ինքնին տվյալներից (Նկար 5): Հարմար է բլոկը պատկերացնել որպես կեղև, որի մեջ տվյալները «փաթաթված» են։ Տվյալներն ինքնին կարող են պարունակել ցանկացած բան՝ գրաֆիկա, տեքստ, անիմացիա, ձայն, 3D օբյեկտների հավաքածու և այլն:

IFF ֆայլում բլոկները կարող են տեղադրվել, նկ. 6. Փաստորեն, IFF ֆայլը ոչ այլ ինչ է, քան վերին մակարդակի բլոկ, որը պարունակում է մեկ կամ մի քանի այլ բլոկներ իր ներսում: Տվյալների պահպանման այս սկզբունքը թույլ է տալիս մի քանի տարասեռ տվյալներ «փաթաթել» ֆայլի մեջ, ներառյալ մի քանի IFF ֆայլեր, որոնք արդեն ֆայլի ներսում ֆայլային համակարգ են հիշեցնում: Ճիշտ է, ներկառուցված տվյալների կազմակերպման դեպքում կա մեկ թերություն՝ ֆայլը դժվարանում է մեկնաբանել, բլոկներ առանձնացնել դրանից:

IFF ֆայլերի մեծ մասը պարունակում է վերին մակարդակի բլոկ «FORM» նույնացուցիչով: Այն ներառում է այլ բլոկներ (նկ. 7): FORM բլոկի միակ տվյալները չորս բայթ են, որոնք նկարագրում են ֆայլի տեսակը (օրինակ՝ «ILBM», InterLeaved Bit Map): Ներդրված բլոկները տեղադրվում են անմիջապես դրանց հետևում, օրինակ՝ «BMHD» (պատկերի վերնագիր), «CMAP» (պալիտրա) և «BODY» (ինքնին՝ պիքսելները): Բլոկների անունները և տվյալների ձևաչափը գալիս են որոշակի ֆայլի տեսակի մշակողի հետ: Մյուս ծրագրերը, եթե հանդիպեն անծանոթ անունով բլոկի, կարող են ապահով բաց թողնել այն՝ առաջնորդվելով բլոկի երկարությունը պարունակող դաշտով:

IFF ֆայլերի բոլոր թվային տվյալները պահվում են մեծ-էնդիական կարգով, այսինքն՝ սկզբում պահվում է թվի ամենակարևոր բայթը (MSB), այնուհետև ամենաքիչ նշանակալիցը: Այս մասին ավելին կողային տողում: Ֆայլի բլոկները միշտ պետք է սկսվեն հավասար բայթով: Եթե ​​նախորդ բլոկը պարունակում է կենտ թվով բայթ, այն լրացվում է զրոյական բայթով՝ այն զույգ դարձնելու համար:

Ո՞ր վերջն է փրկել:
Համակարգչային հիշողությունը կազմված է բջիջներից, որոնցից յուրաքանչյուրը համապատասխանում է ուղիղ մեկ բայթ: Բջջ մուտք գործելու համար (բայթ գրելու կամ կարդալու համար) պրոցեսորն օգտագործում է այսպես կոչված հասցենմտքում. Դա պարզապես օպերացիոն համակարգի կողմից բջջին հատկացված ամբողջ թիվ է (կարո՞ղ են համակարգչային գիտնականները ներեն ինձ այս պարզեցման համար): Իրական կյանքում մեկ բայթը սովորաբար բավարար չէ: Նույնիսկ ամբողջ թվերը պահելու համար օգտագործվում են բառեր, այսինքն՝ երկու բայթից բաղկացած խմբեր, կրկնակի կամ քառապատիկ բառեր (համապատասխանաբար՝ չորս կամ ութ բայթ, ավելի մանրամասն տե՛ս ցիկլի առաջին մասը)։ Այսինքն՝ թիվը պահվում է մի քանի հարակից բայթերով։

Նկ. 8-ը ցույց է տալիս դրանք հիշողության մեջ տեղադրելու երկու հնարավոր եղանակ՝ օգտագործելով կրկնակի բառի օրինակը: Առաջին ճանապարհը՝ բայթերը պահվում են հիշողության մեջ հաջորդաբար, ամենաբարձր բայթը՝ ամենացածր հասցեում: Այսինքն՝ բարձր բառի MSB-ը պահվում է N հասցեում, այնուհետև՝ բարձր բառի LSB (N + 1), ցածր բառի MSB (N + 2), ցածր բառի LSB (N + 3): Նման մեթոդը կոչվում է մեծ-էնդիան(կամ «ուղիղ բայթերի տեղաբաշխում»): Երկրորդ մեթոդում ամեն ինչ ճիշտ հակառակն է, բարձր բայթը պահվում է ամենաբարձր հասցեում՝ ցածր բառի LSB (N), ցածր բառի MSB (N + 1), բարձր բառի LSB (N + 2): ), բարձր բառի MSB (N + 3) . Այս մեթոդը կոչվում է քիչ-էնդիան- «հակադարձ բայթ բաշխում»:

Այսինքն, տարբերությունն այն է, թե «որ ծայրից» (վերջից) պահվում է բազմաբայթ արժեքը։ «Մեծ էնդիան» և «փոքր էնդիան» տերմիններն առաջարկվել են թեմայի վերաբերյալ հոդվածներից մեկում՝ Ջոնաթան Սվիֆթի Գուլիվերի արկածները հղումով։ Ինչպես գիտեք, Լիլիպուտում առաջացավ բիգ-ենդիացիների շարժում, որոնք չէին ցանկանում կատարել կայսեր հրամանը, որը հրամայում էր խաշած ձվերը կոտրել միայն սուր ծայրից։ Համակարգչային աշխարհում մեծ/փոքր էնդյան առճակատումը շատ նման է:

Փոքր էնդի կողմնակիցները պնդում են, որ հիշողության մեջ էնդիանականությունը հեշտացնում է թվաբանությունը բազմաբայթ արժեքների վրա, քանի որ սկզբում ավելացված ամենաքիչ կարևոր բայթերը պահվում են ցածր հասցեներում:

Փոքրիկ էնդյան սխեման օգտագործվում է Intel-ի հետ համատեղելի պրոցեսորներում՝ Intel 8080-ից մինչև Intel Pentium IV: Ուղղակի տեղադրում (big-endian) - Sun Spark պրոցեսորներում, Motorola 68000-ում (Apple-ի համակարգիչների վաղ շարքը) և շատ RISC պրոցեսորներում: Սակայն PowerPC և Intel Itanium պրոցեսորները հասկանում են տվյալների երկու ձևաչափերը միանգամից (դրանք երբեմն կոչվում են «bi-endian»):

Այնուամենայնիվ, կարևոր է ոչ այնքան այն, թե ինչպես է համակարգիչը պահում տվյալները «իր ներսում», որքան այն, թե ինչպես է այն պահում դրանք «դրսում» ֆայլերում: Սա շատ ավելի կարևոր է գործնական տեսանկյունից։ Օրինակ, եթե «UNIX» բառը ֆայլում պահվում է big-endian համակարգի կողմից (որպես երկու կրկնակի բայթ բառ), ապա փոքր-էնդիան համակարգը այն կկարդա որպես «NUXI»: Համակարգչային ժարգոնում սա կոչվում է «NUXI խնդիր»: Նմանատիպ դժվարություններ կարող են առաջանալ գրաֆիկական պատկերների պահպանման ժամանակ, քանի որ գույները կոդավորված են որպես բազմաբայթ թվեր: Օրինակ, Adobe Photoshop և JPEG ֆայլերը օգտագործում են big-endian, մինչդեռ GIF և BPM ֆայլերը օգտագործում են little-endian:

Ստանդարտ MIDI ֆայլի ձևաչափը (SMF) օգտագործում է «big-endian» մեթոդը, այսինքն՝ բառի ամենակարևոր բայթը (MSB) պահվում է առաջինը:

SMF կառուցվածքը
Ստանդարտ MIDI ֆայլերը, ինչպես IFF ֆայլերը, բաղկացած են բլոկներից (Chunks): Գոյություն ունեն երկու տեսակի բլոկներ՝ Header Chunk և Track Chunk: SMF ֆայլում կարող է լինել միայն մեկ վերնագրի բլոկ և մեկ կամ ավելի հետքերի բլոկ: Բլոկն ունի տիպիկ IFF կառուցվածք. առաջին չորս բայթերը նույնացուցիչն են, հաջորդ չորս բայթերը բայթերի երկարությունն են՝ բացառելով ութ տեսակի/երկարության բայթերը: Վերնագրի բլոկի նույնացուցիչը չորս «MThd» նիշ է, ուղու բլոկի նույնացուցիչը չորս «MTrk» նիշ է: Այս կառուցվածքը թույլ կտա ապագայում սահմանել նոր բլոկների տեսակներ, և անծանոթ բլոկը հեշտությամբ կարելի է անտեսել՝ ելնելով դրա երկարությունից: SMF-ի հստակեցումը զգուշացնում է. «Ծրագրերը պետք է պատրաստ լինեն անտեսելու այն տեսակների բլոկները, որոնք նրանք չգիտեն»:

Վերնագրի բլոկը պարունակում է ընդհանուր տեղեկություններ ֆայլի մասին, ուղու բլոկը պարունակում է MIDI հաղորդագրությունների հոսք՝ ժամանակի դրոշմակնիքներով: Բացի այդ, հաջորդականության համար անհրաժեշտ լրացուցիչ տեղեկատվությունը պահվում է MIDI ֆայլում՝ տեմպ, ժամանակի ստորագրություն, ստեղն, մետրոնոմի կարգավորումներ և այլն: Այս տեղեկատվությունը չի փոխանցվում MIDI ինտերֆեյսի միջոցով, և այն ձևավորող իրադարձությունները կոչվում են մետա-իրադարձություններ:

MIDI ֆայլը միշտ սկսվում է վերնագրի բլոկով, որին հաջորդում է մեկ կամ մի քանի հետքերի բլոկներ (Նկար 9): Այսինքն՝ ցանկացած ստանդարտ MIDI ֆայլ սկսվում է «M», «T», «h», «d» չորս տառերով։ Սա նշանակում է, որ MIDI ֆայլը չի ​​համապատասխանում IFF բնութագրին (որը պահանջում է, որ IFF-ին համապատասխանող յուրաքանչյուր ֆայլ սկսվի երեք տեսակներից մեկի՝ «FORM», «CAT» կամ «LIST» վերին մակարդակի բլոկով): Կան նաև այլ տարբերություններ. SMF-ը չի կարող պարունակել տեղադրված բլոկներ, և բլոկի երկարությունը պարտադիր չէ, որ հավասար լինի: Այնուամենայնիվ, SMF-ը IFF-ի հետ համատեղելի ֆայլի փոխակերպելը պարզ է: Բավական է լրացնել զրոյական բայթ կենտ երկարության բլոկներով (եթե այդպիսիք կան) և ամբողջ բովանդակությունը տեղադրել FORM բլոկի մեջ: Նմանատիպ գործողություն օգտագործվում է Microsoft-ի առաջարկած RMID ձևաչափում (տես կողագոտին):


Դուք այստեղ եք, քանի որ ունեք ֆայլ, որն ունի ֆայլի ընդլայնում, որն ավարտվում է .smf-ով: .smf ընդլայնմամբ ֆայլերը կարող են գործարկվել միայն որոշ հավելվածների կողմից: Հնարավոր է, որ .smf ֆայլերը տվյալների ֆայլեր են, այլ ոչ թե փաստաթղթեր կամ մեդիա: , ինչը նշանակում է, որ դրանք «բոլորովին նախատեսված չեն դիտվելու համար:

ինչ է .smf ֆայլը:

SMF ձևաչափով ֆայլերը պարունակում են աուդիո տվյալներ էֆեկտներով, և այս ֆայլի ձևաչափը ինտեգրված է նմանատիպ տեխնոլոգիաների և գործառույթների հետ, ինչպես MID ընդլայնում ունեցող ֆայլերը: .smf ընդլայնմամբ աուդիո հետքերը կարող են նվագարկվել Apple QuickTime հավելվածի միջոցով, և այս մուլտիմեդիա ծրագիրն ունի Microsoft Windows-ի վրա հիմնված համակարգերի հետ համատեղելի տարբերակ, բացի Mac-ի օգտագործողների համար մշակված մեկ այլ տարբերակից: MIDI արտադրողների ասոցիացիան իր մշակման ընթացքում ինտեգրել է MIDI բնութագրերը SMF ֆայլի ձևաչափի մեջ: Սա նշանակում է, որ SMF ֆայլերը կարող են նաև պարունակել տարբեր հետքեր՝ համակցված տարբեր աուդիո հետքերից, որոնք պահվում են մի քանի SMF ֆայլերում, ինչը նաև նշանակում է, որ .smf ձևաչափի ֆայլերը կարող են համակցվել և փոխարկվել մեկ աուդիո ուղու ավելի հայտնի ձևաչափերով, որոնք կարող են դիտվել և օգտագործվել ավելի շատ ձևաչափերով: թվային վիդեո և փաստաթղթերի ներկայացման մշակման ծրագրակազմ, մուլտիմեդիա հավելվածներ և թվային աուդիո նվագարկիչներ: Սա հնարավորություն է տալիս օգտվողներին առանձին-առանձին էֆեկտներ ավելացնել յուրաքանչյուր ուղու վրա և փոփոխություններ մտցնել մյուսների վրա՝ նախքան դրանք համատեղելը որպես մեկ աուդիո երգ: Այս էֆեկտներից և փոփոխություններից մի քանիսը կարող են ներառել ձայնի և ձայնի բարձրության ճշգրտումներ, աղավաղումներ և արձագանք, շրջադարձ և ժամանակի խմբագրումներ, ի թիվս այլոց: Կան երրորդ կողմի հավելվածներ, որոնք կարող են փոխակերպել SMF ֆայլերը MIDI ձևաչափի ավելի լայն խաչաձև համատեղելիության աջակցության համար ավելի շատ աուդիո խմբագրման հավելվածների համար:

ինչպես բացել .smf ֆայլ:

Գործարկեք .smf ֆայլ կամ որևէ այլ ֆայլ ձեր համակարգչի վրա՝ կրկնակի սեղմելով դրա վրա: Եթե ​​ձեր ֆայլերի ասոցիացիաները ճիշտ են կարգավորվել, հավելվածը, որը նախատեսված է ձեր .smf ֆայլը բացելու համար, այն կբացի: Հնարավոր է, որ ձեզ անհրաժեշտ լինի ներբեռնել կամ գնել ճիշտ հավելվածը: Հնարավոր է նաև, որ ձեր համակարգչի վրա ունեք ճիշտ հավելված, բայց .smf ֆայլերը դեռ կապված չեն դրա հետ: Այս դեպքում, երբ փորձում եք բացել .smf ֆայլը, կարող եք Windows-ին ասել, թե որ հավելվածն է ճիշտ այդ ֆայլի համար։ Այսուհետ .smf ֆայլը բացելը կբացի ճիշտ հավելվածը:

հավելվածներ, որոնք բացում են .smf ֆայլ

Apple QuickTime Player

Apple QuickTime Player

Apple QuickTime Player-ը մուլտիմեդիա նվագարկիչ ծրագիր է, որը մշակում է տարբեր ձևաչափերի մի շարք ֆայլեր՝ թվային լուսանկարներից մինչև համայնապատկերներ, աուդիոներ մինչև տեսանյութեր, ինչպես նաև ինտերակտիվություն: Այս մուլտիմեդիա նվագարկիչ ծրագիրը հասանելի է Mac OS X համակարգիչների, ինչպես նաև Windows համակարգիչների հետագա տարբերակների համար: Apple-ի այս ծրագրային արտադրանքն ունի Ծրագրային ապահովման մշակման փաթեթներ կամ SDK-ներ, որոնք հասանելի են հանրությանը, քանի դեռ բաժանորդագրված են Apple Developer Connection-ով կամ ADC-ով: Այն ունի QuickTime շրջանակ, որը համատեղելի է այլ անվճար նվագարկչի հավելվածների հետ, որոնք ապահովում են մի քանի գործառույթ: Դրանք ներառում են աուդիոների և տեսանյութերի կոդավորումը, նույն ֆայլերի տրանսկոդավորումը, ապակոդավորումը՝ վերծանված հոսքը գրաֆիկական ենթահամակարգ կամ աուդիո ենթահամակարգ ուղարկելու տարբերակով, և բաղադրիչ հավելումների ճարտարապետություն՝ այլ կոդեկներին աջակցելու համար (երրորդ կողմ, օրինակ՝ DivX): Այս ծրագրաշարի վերջին տարբերակը QuickTime Player 7-ն է, որը ներբեռնվում է անվճար Mac և Windows համակարգիչների համար:

նախազգուշական խոսք

Զգույշ եղեք, որպեսզի չվերանվանեք ընդլայնումը .smf ֆայլերում կամ որևէ այլ ֆայլի վրա: Սա չի փոխի ֆայլի տեսակը: Միայն փոխակերպման հատուկ ծրագրաշարը կարող է փոխել ֆայլը մի ֆայլի տեսակից մյուսը:

ինչ է ֆայլի ընդլայնումը:

Ֆայլի ընդլայնումը ֆայլի անվան վերջում երեք կամ չորս նիշերի հավաքածու է. այս դեպքում, .smf. Ֆայլի ընդլայնումները ցույց են տալիս, թե ինչ տեսակի ֆայլ է դա, և Windows-ին ասում են, թե ինչ ծրագրեր կարող են բացել այն: Windows-ը հաճախ կապում է լռելյայն ծրագիր յուրաքանչյուր ֆայլի ընդլայնման հետ, այնպես որ, երբ դուք կրկնակի սեղմում եք ֆայլի վրա, ծրագիրն ինքնաբերաբար գործարկվում է: Երբ այդ ծրագիրն այլևս ձեր համակարգչում չէ, երբեմն կարող եք սխալ ստանալ, երբ փորձում եք բացել հարակից ֆայլը:


Սովորաբար sequencers-ն օգտագործում է իրենց սեփական պահպանման ձևաչափը պայմանավորվածությունների համար: Դա պայմանավորված է նրանով, որ տվյալների կառուցվածքը, որը նախատեսված է որոշակի ծրագրի հնարավորությունների համար, շատ ավելի արդյունավետ է և պարզապես ավելի հեշտ է աշխատել դրա հետ: Դուք կարող եք լրացուցիչ տվյալներ գրել ձեր ձևաչափին, օրինակ՝ օգտատիրոջ միջերեսը հարմարեցնելու համար (պատուհանի դիրքը և չափը, տառատեսակը և այլն): Բացի այդ, ստանդարտ MIDI ֆայլերի կոմպակտությունը (մասնավորապես, իրադարձությունների առաջացման ժամանակը պահելու համար փոփոխական երկարության արժեքները) վերածվում է անհարմարության. դասավորության հետ աշխատելու համար ֆայլի բոլոր դելտա ժամանակները պետք է «բացվեն»: , և երբ ֆայլը պահպանվի, նորից «փաթեթավորվի»:

Մյուս կողմից, SMF-ը շարժական միջպլատֆորմային ձևաչափ է, այն կարող է սահմանել ցանկացած լրացուցիչ բլոկ հատուկ տվյալներ պահելու համար: Օրինակ, մեկ հաջորդականիչը կարող է միացված կամ անջատված պահել մետրոնոմը «Mtr» անունով բլոկում: Այս բլոկը խոչընդոտ չէ մեկ այլ հաջորդականության համար, այն կարող է սահմանել մի քանի իր հատուկ բլոկները նույն ֆայլում: Այսպիսով, որոշ հաջորդականիչներ ուղղակիորեն օգտագործում են SMF ձևաչափը, այն «հայրենի» է նրանց համար: Մյուսները թույլ են տալիս անհրաժեշտության դեպքում ներմուծել և արտահանել MIDI ֆայլեր:

Տարբեր տեսակի հաջորդականիչների և այլ սարքավորումների աջակցման համար ստանդարտ MIDI ֆայլերը բաժանվում են երեք տեսակի կամ ձևաչափերի՝ 0, 1 և 2:

0 ձևաչափի ֆայլը պարունակում է մեկ հետք, որը պարունակում է իրադարձություններ բոլոր տասնվեց MIDI ալիքներից: Սա տվյալների փոխանակման ամենապարզ ձևաչափն է, քանի որ այն հաշվի չի առնում հաջորդականության հետքերի սկզբնական կառուցվածքը (որ հետքը որ MIDI ալիքին է հատկացված): 0 ֆորմատի ֆայլն ավելի հարմար է տվյալների փոխանցման համար այնպիսի սարքեր, ինչպիսիք են խառնիչները և էֆեկտների պրոցեսորները, քան պայմանավորվածությունները պահելու համար: 0 ձևաչափով ֆայլ գրելիս հաջորդականիչը պարզապես միացնում է բոլոր MIDI ալիքների բոլոր հաղորդագրությունները մեկ ուղու մեջ: Համապատասխանաբար, ֆայլը բեռնելիս մենք ստանում ենք մեկ հետք, որտեղ խնդրահարույց է իրադարձությունները խմբագրելը, քանի որ տարբեր ալիքների իրադարձությունները խառնվում են միմյանց: Սեկվենսերներից շատերը հնարավորություն ունեն այս «խառնուրդը» բաժանել առանձին հետքերով, որոնցից յուրաքանչյուրը պարունակում է իրադարձություններ մեկ MIDI ալիքի համար:

Ֆորմատ 1 ֆայլը պարունակում է առանձին հետքեր յուրաքանչյուր MIDI ալիքի համար, որն արտացոլում է հաջորդականության ծանոթ դասավորության կառուցվածքը: 2-րդ ձևաչափի ֆայլը պարունակում է մի քանի անկախ աշխատանքներ (կամ ամբողջական օրինաչափություններ), յուրաքանչյուր օրինակ բաղկացած է մեկ ուղուց, որը պարունակում է հաղորդագրություններ բոլոր 16 ալիքների վրա: Ենթադրվում էր, որ այս ձևաչափը պետք է օգտագործվեր այն հաջորդական սարքերում, որոնք կարող են աշխատել անկախ նախշերով, որոնք միաժամանակ նվագում են մի քանի գործիքներ: Այնուամենայնիվ, ձևաչափ 2-ը համընդհանուր անտեսվել է և այժմ համարվում է «նախատեսված չէ հաջորդականության համար» ճշգրտման մեջ:

0 և 1 ձևաչափերի հիմնական տարբերություններից մեկը մետա իրադարձությունների տեղադրման եղանակն է: 0 ձևաչափով տեմպը և ժամանակի ստորագրման մետա-իրադարձությունները (կոչվում են տեմպի քարտեզ) խառնվում են այլ MIDI հաղորդագրությունների հետ: Նաև երգերի անունները չեն պահպանվում այս ձևաչափով: Ձևաչափ 1-ում ֆայլի առաջին հետքը վերապահված է բացառապես տեմպերի քարտեզի և այլ մետա իրադարձությունների համար, ինչպիսիք են հաջորդականությունը/հետքի անվանումը, հաջորդականության համարը, նշիչը, SMPTE օֆսեթը (տես ստորև):

Եթե ​​ֆայլում չկա տեմպերի քարտեզ, ապա ենթադրվում է, որ տեմպը 120 BPM է, իսկ ժամանակի ստորագրությունը՝ 4/4:

MMA-ն կարող է ապագայում մշակել այլ SMF ձևաչափեր՝ հաջորդականիչների մեջ տվյալների նոր կառուցվածքներին աջակցելու համար:

Վերնագրի բլոկ («MThd»)

Վերնագրի բլոկը պարունակում է հիմնական տեղեկատվություն ֆայլի մասին: Բլոկի կառուցվածքը ներկայացված է նկ. 11. Երկարության դաշտը միշտ պարունակում է 6 թիվը՝ այս դաշտին հաջորդող վերնագրի տվյալների բայթերի քանակը։ Վերնագրի տվյալները երեք 16-բիթանոց բառ են: Առաջին բառը (ձևաչափը) SMF ձևաչափն է, այն կարող է վերցնել երեք արժեքներից մեկը՝ 0, 1 և 2: Երկրորդ բառը (ntrks) ֆայլում ուղու բլոկների (այսինքն՝ հենց իրենք հետքերը) քանակն է։ . 0 ֆորմատի ֆայլի համար այն միշտ հավասար կլինի մեկի:

Վերնագրի բլոկի վերջին բառը (բաժանումը) նշում է, թե ինչպես է չափվում ժամանակը (ժամանակային բազա): Ինչպես նշվեց ավելի վաղ, կան երկու մեթոդ՝ երաժշտական ​​(շետեր/բիթ) և բացարձակ (ժամանակային կոդերի վրա հիմնված)՝ հիմնված բացարձակ ժամանակի վրա SMPTE ձևաչափով: Ամեն դեպքում, SMF ֆայլում դելտայի ժամանակը չափվում է տիզերով. երաժշտական ​​մեթոդով նշվում է եռամսյակի տիզերի քանակը (այսինքն՝ PPQN), բացարձակով՝ մեկ SMPTE կադրում տիզերի քանակը։ Եթե ​​բաժանման դաշտի ամենակարևոր (15-րդ) բիթը զրոյացված է, ապա օգտագործվում է երաժշտական ​​մեթոդը, իսկ մնացած 15 բիթը պարունակում է PPQN (մինչև 32767), նկ. 12. Եթե ամենանշանակալի բիթը դրված է մեկ, ապա կիրառվում է բացարձակ մեթոդը։ Ցածր բայթը (0-ից 7 բիթ) պահպանում է մեկ կադրի տիզերի քանակը, բարձր բայթը (8-ից 15 բիթ) պահպանում է SMPTE շրջանակի ձևաչափը, որն արտահայտված է որպես բացասական արժեքներ (-24, -25, -29, -30) . Այս դեպքում -29 թիվը համապատասխանում է 30 fps Drop Frame ձևաչափին (տե՛ս շարքի նախորդ հոդվածը):

Բացասական թվերն ընտրվում են, քանի որ դրանք գրված են երկուական լրացման տեսքով (տե՛ս նախորդ հոդվածը), այսինքն՝ պարունակում են մեկը ամենակարևոր բիթում։ Իսկ այս միավորը ընդամենը ժամանակի հաշվման բացարձակ եղանակի նշան է։ Մեկ կադրի համար տիզերի քանակը պահպանվում է դրականորեն և սովորաբար ընդունում է հետևյալ արժեքներից մեկը՝ 4 (լուծաչափը, ինչպես MIDI Time Code-ում, երբ յուրաքանչյուր կադրում կա չորս քառորդ շրջանակի հաղորդագրություն), 8, 10, 80 (մեկ բիթ լուծում SMPTE կադրում։ ), կամ 100։

Նման համակարգը թույլ է տալիս նշել իրադարձության բացարձակ ժամանակը` կադրի 1/128 ճշգրտությամբ: Բացի այդ, եթե կադրի ձևաչափը սահմանեք 25 կադր/վրկ, իսկ լուծաչափը՝ 40 տիկ մեկ կադրում, ապա յուրաքանչյուր նշան կհամապատասխանի մեկ միլիվայրկյան: Բաժանման դաշտն այս դեպքում կունենա 0xE728 արժեքը, 0xE7 բայթը երկուսի լրացման ներկայացումն է -25, իսկ 0x28-ը 40 թիվն է տասնվեցական նշումով:

Հետևման բլոկ («MTrk»)

Երկաթուղային բլոկը պահում է իրադարձություններն իրենք, այսինքն՝ MIDI հաղորդագրությունները, որոնք տրամադրվում են ժամանակի կնիքով: Բլոկը պետք է պարունակի առնվազն մեկ իրադարձություն: Հետևման բլոկի կառուցվածքը նույնն է ցանկացած ձևաչափի MIDI ֆայլերի համար (0, 1 և 2), նկ. տասներեք.

Իրադարձությունը բաղկացած է դելտա ժամանակից և հենց MIDI հաղորդագրությունից, նկ. 14. Հիշեցնենք, որ դելտայի ժամանակը պահվում է որպես փոփոխական երկարության արժեք:

Հուսով ենք, որ օգնեցինք ձեզ լուծել SMF ֆայլի հետ կապված խնդիրը: Եթե ​​չգիտեք, թե որտեղից կարող եք ներբեռնել հավելված մեր ցուցակից, սեղմեք հղման վրա (սա ծրագրի անունն է) - դուք կգտնեք ավելի մանրամասն տեղեկատվություն այն վայրի վերաբերյալ, որտեղից ներբեռնեք անհրաժեշտ հավելվածի անվտանգ տեղադրման տարբերակը: .

Այս էջն այցելելը կօգնի ձեզ պատասխանել այս կամ նմանատիպ հարցերին.

  • Ինչպե՞ս բացել ֆայլը SMF ընդլայնմամբ:
  • Ինչպե՞ս փոխարկել SMF ֆայլը այլ ձևաչափի:
  • Ի՞նչ է SMF ֆայլի ձևաչափի ընդլայնումը:
  • Ո՞ր ծրագրերն են աջակցում SMF ֆայլին:

Եթե ​​այս կայքի նյութերը դիտելուց հետո դուք դեռ չեք ստացել վերը նշված հարցերից որևէ մեկի բավարար պատասխանը, դա նշանակում է, որ այստեղ ներկայացված SMF ֆայլի վերաբերյալ տեղեկատվությունը ամբողջական չէ: Կապվեք մեզ հետ՝ օգտագործելով կոնտակտային ձևը և տեղեկացրեք մեզ, թե ինչ տեղեկատվություն չեք գտել:

Էլ ի՞նչը կարող է խնդիրներ առաջացնել:

Կարող են լինել ավելի շատ պատճառներ, որ դուք չեք կարող բացել SMF ֆայլը (ոչ միայն համապատասխան հավելվածի բացակայությունը):
Նախ- SMF ֆայլը կարող է սխալ կապված լինել (անհամատեղելի) այն աջակցելու համար տեղադրված հավելվածի հետ: Այս դեպքում դուք պետք է ինքներդ փոխեք այս կապը: Դա անելու համար սեղմեք մկնիկի աջ կոճակը SMF ֆայլի վրա, որը ցանկանում եք խմբագրել, սեղմեք տարբերակը «Բացելով»այնուհետև ցանկից ընտրեք ձեր տեղադրած ծրագիրը: Նման գործողությունից հետո SMF ֆայլը բացելու հետ կապված խնդիրները պետք է ամբողջությամբ անհետանան:
Երկրորդ- ֆայլը, որը ցանկանում եք բացել, կարող է պարզապես վնասված լինել: Այնուհետև լավագույն լուծումը նոր տարբերակ գտնելն է կամ նորից ներբեռնել այն նույն աղբյուրից, ինչ նախկինում (գուցե նախորդ նիստում ինչ-ինչ պատճառներով SMF ֆայլի ներբեռնումը չի ավարտվել, և այն չի կարող ճիշտ բացվել):

Ցանկանու՞մ եք օգնել։

Եթե ​​դուք ունեք լրացուցիչ տեղեկություններ SMF ֆայլի ընդլայնման մասին, մենք երախտապարտ կլինենք, եթե այն կիսեք մեր կայքի օգտատերերի հետ: Օգտագործեք տրամադրված ձևը և ուղարկեք մեզ SMF ֆայլի մասին ձեր տեղեկությունները: