ფაილის გაფართოება 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 ფაილების ზოგიერთ ვერსიას შეიძლება დასჭირდეს რესურსების მნიშვნელოვანი რაოდენობა (მაგ. მეხსიერება / ოპერატიული მეხსიერება, დამუშავების სიმძლავრე) თქვენს კომპიუტერში სწორად გასახსნელად. ეს პრობლემა საკმაოდ ხშირად ჩნდება, თუ იყენებთ საკმაოდ ძველ კომპიუტერულ აპარატურას და ამავე დროს ბევრად უფრო ახალ ოპერაციულ სისტემას.

ეს პრობლემა შეიძლება წარმოიშვას, როდესაც კომპიუტერს უჭირს დავალების შესრულება, რადგან ოპერაციულ სისტემას (და ფონზე გაშვებულ სხვა სერვისებს) შეუძლია. მოიხმარეთ ძალიან ბევრი რესურსი SMF ფაილის გასახსნელად... StarMath Formula ფაილის გახსნამდე სცადეთ დახუროთ ყველა აპლიკაცია თქვენს კომპიუტერში. თქვენს კომპიუტერში არსებული ყველა რესურსის გათავისუფლებით, თქვენ უზრუნველვყოფთ უკეთეს გარემოს SMF ფაილის გასახსნელად.


Თუ შენ დაასრულა ყველა ზემოთ მოყვანილი ნაბიჯიდა თქვენი SMF ფაილი მაინც არ იხსნება, შეიძლება დაგჭირდეთ გაშვება აღჭურვილობის განახლება... უმეტეს შემთხვევაში, ტექნიკის უფრო ძველი ვერსიების შემთხვევაშიც კი, დამუშავების სიმძლავრე შეიძლება მაინც იყოს საკმარისზე მეტი მორგებული აპლიკაციების უმეტესობისთვის (თუ არ აკეთებთ პროცესორის ინტენსიურ მუშაობას, როგორიცაა 3D რენდერი, ფინანსური / სამეცნიერო მოდელირება ან მძიმე მულტიმედიური სამუშაოები) ... Ამგვარად, სავარაუდოა, რომ თქვენს კომპიუტერს არ აქვს საკმარისი მეხსიერება(უფრო ხშირად უწოდებენ "RAM", ან შემთხვევითი წვდომის მეხსიერებას) ფაილის გახსნის დავალების შესასრულებლად.

სტატიების სერიის მე-5 ნაწილი, სადაც დეტალურადაა აღწერილი MIDI პროტოკოლი.

MIDI პროტოკოლის სამი ნაწილიდან ერთი არის მონაცემთა შენახვის ფორმატის სპეციფიკაცია (გახსოვდეთ, დანარჩენი ორი არის შეტყობინების ფორმატი და აპარატურის ინტერფეისის სპეციფიკაცია). შეტყობინების ფორმატი განიხილებოდა სერიის პირველ სამ სტატიაში, ახლა არის შენახვის ფორმატის დრო. იგი შემოთავაზებული იქნა MMA ორგანიზაციის მიერ 1987 წლის ბოლოს და ეწოდა სტანდარტული MIDI ფაილები (SMF).

MIDI ფაილების დანიშნულებაა სხვადასხვა მოწყობილობებსა და პროგრამებს შორის მოვლენის (ანუ დროით დაბეჭდილი MIDI შეტყობინებების) გაცვლა. სტანდარტული MIDI ფაილების მოსვლამდე, ერთ თანმიმდევრობაში მომზადებული წყობა ვერ იტვირთებოდა მეორეში ფორმატის შეუთავსებლობის გამო. ეს არ ნიშნავს იმას, რომ SMF-ის მოსვლასთან ერთად, ყველა სეკვენსერის მწარმოებელი გადავიდა ამ ფორმატზე. ამას რამდენიმე მიზეზი აქვს და მათზე დღესაც ვისაუბრებთ.

ვინაიდან ინფორმაციის შენახვა პირდაპირ კავშირშია სეკვენსერების მოწყობილობასთან, ჩვენ უფრო დეტალურად ვისაუბრებთ ამ საკითხზე, მაგრამ მხოლოდ იმდენად, რამდენადაც საჭიროა SMF-ის გასაგებად. და, უდავოდ, ციკლის ერთ-ერთ მომდევნო სტატიას მივუძღვნით სეკვენსერებს.

Ივენთი
დროში მონიშნული MIDI შეტყობინება ეწოდება ღონისძიება... დროის აღსანიშნავად შეიძლება გამოყენებულ იქნას სხვადასხვა ერთეულები - ტკიპები, შიდა პულსები, დრო SMPTE ფორმატში და ა.შ. მნიშვნელოვანია გვესმოდეს ფუნდამენტური განსხვავება მოვლენასა და შეტყობინებას შორის. მესიჯი „ცოცხლობს“ რეალურ დროში მილიწამის ფრაქციაში - წყაროს მიერ მისი გენერირების მომენტიდან მიმღებში შესასრულებლად გაგზავნის მომენტამდე. მისი დაჭერა შესაძლებელია MIDI კაბელზე გადაცემის პროცესში იმპულსების ნაკრების სახით. მოვლენა არის მოწყობილობის მეხსიერებაში ჩაწერილი რამდენიმე ბაიტი ინფორმაცია, რის საფუძველზეც მომავალში, დანიშნულ დროს წარმოიქმნება შეტყობინება.

მაგალითად, სეკვენსერს შეუძლია შეინახოს "აირჩიე ჩანაწერი" მოვლენა დროის ანაბეჭდით 100 ms დაკვრის დაწყებიდან. თქვენ შეგიძლიათ შეცვალოთ ეს მოვლენა ორ განზომილებაში: პირველ რიგში, შეცვალეთ თავად MIDI შეტყობინების პარამეტრები (ამ შემთხვევაში, ჩანაწერის სიმაღლე ან დინამიკა) და მეორე, გადაიტანეთ ჩანაწერი ტრასის გასწვრივ, ანუ შეცვალეთ შესრულების დრო. მესიჯის.

მოვლენები ჩნდება სეკვენსერის მეხსიერებაში MIDI შეტყობინებების ჩაწერისას. ჩანაწერის ღილაკზე დაჭერისას, სეკვენსერი ჩართავს აპარატურის პულსის გენერატორს (ტიკტიკებს) და იწყებს მითითებული MIDI შეყვანის „მოსმენას“. მაგალითად, როდესაც თქვენ დააჭერთ კლავიშს, შეყვანილი შეტყობინება მიიღებს შეტყობინებას „აირჩიე შენიშვნა“. სეკვენსერი უყურებს - აჰა, მესიჯი მოვიდა მე-20 ნიშანზე და იწერს მეხსიერებაში 20-იანი ეტიკეტით. რამდენიმე წამის შემდეგ გაათავისუფლეს გასაღები - მოვიდა შეტყობინება "ამოშალე შენიშვნა", შიდა გენერატორი სიხარულით ააფრიალა 64. ტიკები იმ მომენტში სეკვენსერს. Sequencer ინახავს შეტყობინებას ლეიბლით 64. ახლა საქმე გვაქვს ორ მოვლენასთან - Note On და Note Off. დაკვრის დროს პულსის გენერატორი კვლავ ჩართულია. როდესაც მე-20 ტიკი გამოჩნდება, შენიშვნის შესახებ შეტყობინება იგზავნება სეკვენსერის MIDI გამოსავალზე, 64-ე ტიკი არის Note Off. ჩვენ ჩავწერეთ და შემდეგ ვუკრავდით შემსრულებლის მოქმედებებს!

ცხადია, იგივე შეიძლება გაკეთდეს ოფლაინში, ანუ ცოცხალი შესრულების გარეშე. ტრასაზე სწორ ადგილას მაუსის დაწკაპუნებით (და ნოტის ხანგრძლივობის წინასწარ არჩევით), სეკვენსერის მეხსიერებაში ზუსტად წინა სურათს ჩავუშვით.

მეხსიერების ტიპები
ახლა დროა გამოვიყენოთ ორი საშინელი კომპიუტერული ტერმინი: პირველადი და მეორადი მეხსიერება. პირველადი (ან შიდა) მეხსიერება არის თანმიმდევრული მეხსიერება, სადაც ხდება შეტყობინებების ჩაწერა და მოვლენების შენახვა მთელი სესიის განმავლობაში. ამ მეხსიერების შიგთავსი იწმინდება დენის გამორთვისას. ეს ინტერპრეტაცია უფრო შესაფერისია ტექნიკის თანმიმდევრობისთვის. პროგრამული უზრუნველყოფის სეკვენსერებში პირველადი მეხსიერება არის უბრალოდ კომპიუტერის ოპერატიული მეხსიერება. პირველადი მეხსიერების შინაარსის დიდი ხნის განმავლობაში შესანახად გამოიყენება მეორადი მეხსიერება, ან სხვა სიტყვებით რომ ვთქვათ, მონაცემთა მატარებლები. ეს შეიძლება იყოს ფლოპი დისკი, მყარი დისკი, სმარტ ბარათი და მსგავსი.

პირველადი მეხსიერების რაოდენობა აპარატურულ თანმიმდევრობებსა და სამუშაო სადგურებში (გახსოვდეთ, სამუშაო სადგური არის ტონების გენერატორი და სეკვენსერი ერთ ყუთში) ჩვეულებრივ გამოიხატება შენახული შენიშვნების რაოდენობაში (მაგალითად, 200 ათასი). ხანდახან ხმა გამოიხატება მოვლენებში, ამ შემთხვევაში თქვენ უნდა იყოთ ფხიზლად - ერთი შენიშვნა საჭიროებს ორ მოვლენას შესანახად (კლავიშის დაჭერა და გაშვება), ხოლო ბორბლის მობრუნება ან შემდგომი შეხება შეიძლება წარმოქმნას 100-მდე ან მეტი მოვლენა. ეს ხდება, რომ სეკვენსერის მეხსიერების ზომა გამოიხატება მშობლიურ კომპიუტერულ ერთეულებში - კილობაიტებში. მაგრამ ეს ასევე არ არის ძალიან მოსახერხებელი - ერთ მოვლენას შეუძლია დაიკავოს ბაიტების განსხვავებული რაოდენობა (ხუთიდან რამდენიმე ათამდე).

თანამედროვე პროგრამულ თანმიმდევრობებში ცოტას აინტერესებს პირველადი მეხსიერების რაოდენობა - 128 მბ ოპერატიული მეხსიერების მქონე მანქანაზეც კი, შეგიძლიათ დაივიწყოთ ნებისმიერი შეზღუდვა MIDI მონაცემებთან მუშაობისას. გარდა ამისა, არის სეკვენსერები, რომლებსაც შეუძლიათ დაკვრა უშუალოდ დისკიდან, პირველადი მეხსიერებაში ჩატვირთვის გარეშე (და, სხვათა შორის, ჩაწერაც), რაც ზოგადად აშორებს განსხვავებას მეხსიერების ორ ტიპს შორის.

მეორად მეხსიერებაში მონაცემები ჩვეულებრივ იწერება ფაილში. სეკვენსერების უმეტესობას აქვს ამ ფაილის საკუთარი ფორმატი, რაც ართულებს სხვადასხვა მოწყობილობებში ან პროგრამებში შექმნილი შეთანხმებების გაცვლას. ადრე ითქვა, რომ ეს იყო SMF-ის შექმნის მთავარი მიზეზი.

დროის გაზომვა
ფაქტობრივად, სეკვენსერის შიგნით არ არის „ტკიპები“. არსებობს აპარატურის ტაიმერი, რომელიც წარმოქმნის იმპულსებს მკაცრად მუდმივი სიხშირით (მაგალითად, ყოველ მიკროწამში). მუსიკოსების იძულება, გაზომონ დრო მიკროწამებში, იქნება ამაზრზენი დაცინვა, ისევე როგორც რეალურ დროში სხვა ერთეულებში (წამები, წუთები). მუსიკოსები მიჩვეულნი არიან აზროვნებას ზოლებითა და ბითებით და დროის შედარებითი ერთეულებით (ნოტების ხანგრძლივობა) გამოხატვას მიმდინარე ტემპიდან გამომდინარე.

- არაა პრობლემა, - უპასუხეს მწარმოებლებმა, - გაზომონ, როგორც ეს უფრო მოსახერხებელია მათთვის. გაზომვის მხოლოდ მინიმალური ერთეული იქნება არა 32-ე ხანგრძლივობის, არამედ პირობითად აღებული ტკიპა (ერთეული კიდევ უფრო მცირეა, ასე რომ, მაგალითად, ოცდაათი წამი შეიძლება შეიცავდეს 48 ტკიპს). ვინაიდან კლასიკური ეპოქიდან მოყოლებული, ტემპი იზომება წუთში მეოთხედების რაოდენობით (BPM, დარტყმები წუთში), შემდეგ მათ გადაწყვიტეს აეღოთ მეოთხედი, როგორც ძირითადი ხანგრძლივობა და მიუთითონ ტკიპების რაოდენობა მეოთხედში - PPQN (პულსი კვარტალში). Შენიშვნა). რაც უფრო დიდია PPQN, მით უკეთესია სეკვენსერის გარჩევადობა და მით უფრო ზუსტი იქნება მას დროში შეტყობინებების გადაღება ჩაწერის დროს და მათი გამოტანა MIDI გამოსავალზე დაკვრის დროს. სეკვენსერების უმეტესობა საშუალებას გაძლევთ თვითნებურად მიუთითოთ PPQN - მაგალითად, 32-დან 1536 ტკიპამდე კვარტალში (თანამედროვე სეკვენსერები - 15360 PPQN-მდე).

ტიკი არის სიჩქარეზე დამოკიდებული ერთეული: რაც უფრო სწრაფია მაჩვენებელი, მით უფრო მოკლეა ინტერვალი ტკიპებს შორის რეალურ დროში ერთეულებში. ეს ინტერვალი შეგიძლიათ იხილოთ ფორმულით ნახ. ერთი.

მაგალითად, 120 BPM და 96 PPQN, ტკიპები მოჰყვება ყოველ 5,208 მილიწამში. იმავე გარჩევადობით და 180 BPM-ით, ტკიპებს შორის ინტერვალი შემცირდება 3,472 ms-მდე. როგორ ითვლის სეკვენსერი ტკიპებს, თუ მისი შიდა ტაიმერი ყოველ მიკროწამში იმპულსებს? ეს ძალიან მარტივია: მიმდინარე ტემპზე და გარჩევადობაზე დაყრდნობით კვარტალში, ზუსტად მითითებული ფორმულის მიხედვით. ვინაიდან ერთი მილიწამი შეიცავს 1000 მიკროწამს, ბოლო მაგალითში სეკვენსერი გამოიმუშავებს სხვა ტკიპს, როდესაც მიიღებს 3472 იმპულსს ტაიმერიდან.

როცა მაღალ გარჩევადობას აზრი არ აქვს
თუ სეკვენსერი და ტონების გენერატორი არის „ერთი სახურავის ქვეშ“ (სამუშაო სადგური ან კომპიუტერი პროგრამული სეკვენსერით და სინთეზატორით ხმის ბარათზე, ან ვირტუალური სინთეზატორი), მაშინ ასეთი სისტემის შიდა გარჩევადობა შეიძლება იყოს თვითნებურად მაღალი (15360 PPQN შთამბეჭდავია). ეს საშუალებას გაძლევთ სინქრონიზდეს MIDI და აუდიო მონაცემები ნიმუშის სიზუსტით. მაგრამ როგორც კი სეკვენსერს და ტონების გენერატორს MIDI კაბელთან MIDI ინტერფეისის საშუალებით ვუკავშირდებით, მაღალი გარჩევადობა ხდება შეუსაბამო.

რატომ? შეგახსენებთ, რომ ერთი ბაიტი MIDI ინტერფეისით 320 მიკროწამში გადაიცემა. ეს ნიშნავს, რომ, მაგალითად, ჩანაწერის აღების შეტყობინება (შედგება სამი ბაიტისაგან) გადაიცემა 960 μs, ანუ თითქმის მთელი მილიწამის განმავლობაში. ახლა წარმოიდგინეთ, რომ სეკვენსერში 120 BPM და 2048 PPQN, ორი ჩანაწერი დაპროგრამებულია ორი ტიკით ერთმანეთისგან. რეალურ დროში ერთეულებში ეს არის 488 მიკროწამი. ასე რომ: ტონების გენერატორი ვერ მიიღებს მეორე ნოტს პირველიდან 488 მიკროწამში, მაგრამ სინამდვილეში - მხოლოდ 960 მიკროწამის შემდეგ. ასე რომ, ის შეასრულებს მას არა ორი ტკიპის, არამედ თითქმის ოთხის შემდეგ.

აქედან გამომდინარეობს დასკვნა: MIDI ინტერფეისით მუშაობისას (როდესაც სეკვენსერი და ტონების გენერატორი განცალკევებულია), სეკვენსერის გარჩევადობას 960 მიკროწამში ერთზე მეტი ტიკი არ აქვს აზრი. იმის გასარკვევად, თუ რამდენი იქნება PPQN-ში, შეგიძლიათ გამოიყენოთ ფორმულა ნახ. 2.

ცხრილი ნახ. 3 აჩვენებს PPQN მნიშვნელობებს სხვადასხვა ტემპისთვის, რომლის გადაჭარბებაც აზრი არ აქვს.

ღონისძიების პოზიცია ვადებში მითითებულია თანმიმდევრობით, ჩვეულებრივ ფორმატში "ზოლები: beats: ticks", მაგალითად, 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). ).

ასე რომ, მოვლენის პოზიციის დასადგენად რეალურ დროში ერთეულებში "ზოლები: beats: ticks" ფორმატზე დაყრდნობით, თქვენ უნდა იცოდეთ სამი პარამეტრი: მიმდინარე ტემპი, დროის ხელმოწერა და გარჩევადობა ტკიპებში კვარტალში (PPQN).

არსებობს დროის სხვა შესაძლებლობა, როდესაც ტრასაზე მოვლენის პოზიცია გამოიხატება აბსოლუტურ ერთეულებში, რომლებიც არ არის დამოკიდებული ტემპზე, ყველაზე ხშირად დროის SMPTE ფორმატში - "საათები: წუთი: წამები: ჩარჩოები". დროის ამ პრინციპს ეწოდება „დროის კოდზე დაფუძნებული“ (timecode-based, აბსოლუტური). ამის საჭიროება ჩნდება მაშინ, როდესაც სეკვენსერი მუშაობს მაგნიტოფონთან ან კინო/ვიდეო მოწყობილობასთან ერთად. ფილმის, ვიდეო და აუდიო მასალით ოპერაციების მონტაჟი, ჩანაწერის დასაწყისისა და დასასრულის პოზიციების დაზუსტება უფრო მოსახერხებელია შესასრულებლად, აბსოლუტურ მასშტაბზე მიბმული და არა ზომებისა და ბიტებზე.

ამ შემთხვევაში მოვლენის კოორდინატი დროის მმართველზე დამოკიდებულია მიმდინარე ტემპზე. ასე რომ, 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 შემუშავებული იყო ამჟამად (და თუნდაც მაიკროსოფტის მიერ, რომელიც ზოგადად ნაკლებად ზრუნავს მისი ფაილების ზომაზე და საჭირო მეხსიერებაზე), ამ პრობლემას თვალს ხუჭავს. ჩვენ გამოვყავით ფიქსირებული ველი დროის დაზოგვისთვის, ვთქვათ, 8 ბაიტი თითო მოვლენაზე და არ დაზარალდა. თუმცა, 1988 წელს პირველადი (RAM) მეხსიერება ძალიან ძვირი ღირდა, ყოველი ბაიტი იყო დათვლილი, ხოლო მეორადს (დისკის მედია) ჰქონდა ძალიან მოკრძალებული ზომა. ამიტომ, SMF დეველოპერებს სურდათ მიეღოთ ყველაზე კომპაქტური ფორმატი.

გადაწყდა შენარჩუნება დელტას დრო, ანუ ტკიპების განსხვავება ამ მოვლენასა და წინა (ან სიმღერის დასაწყისს) შორის. მაგალითად, თუ პირველი მოვლენა - ნოტის დარტყმა პირველ ოქტავაზე - მოხდა სიმღერის დასაწყისიდან 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 ფაილი შედგება მსგავსი ელემენტებისაგან, რომელსაც ეწოდება chunks. ბლოკი არის მონაცემთა სტრუქტურა, რომელიც შედგება ანბანური იდენტიფიკატორისგან (ოთხი 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 ფაილები იყენებენ პატარა-ენდიანს.

"არაპლატფორმული" სტანდარტული 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 ფაილები იყოს მონაცემთა ფაილები და არა დოკუმენტები ან მედია. , რაც ნიშნავს, რომ ისინი "საერთოდ არ არის განკუთვნილი სანახავად.

რა არის & nbsp.smf & nbspfile?

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 Framework, რომელიც თავსებადია სხვა უფასო მოთამაშის აპლიკაციებთან, რომლებიც უზრუნველყოფენ რამდენიმე ფუნქციას. ეს მოიცავს აუდიოსა და ვიდეოების დაშიფვრას, იმავე ფაილების ტრანსკოდირებას, დეკოდირებას დეკოდირებული ნაკადის გრაფიკულ ქვესისტემაში ან აუდიო ქვესისტემაში გაგზავნის ოფციით და კომპონენტის დანამატის არქიტექტურა სხვა კოდეკების მხარდასაჭერად (მესამე მხარე, როგორიცაა DivX). ამ პროგრამული უზრუნველყოფის უახლესი ვერსია არის QuickTime Player 7, რომლის ჩამოტვირთვა უფასოა Mac და Windows კომპიუტერებისთვის.

გაფრთხილების სიტყვა

ფრთხილად იყავით, რომ არ გადარქმევა გაფართოება & nbsp.smf & nbspfiles ან სხვა ფაილებზე. ეს არ შეცვლის ფაილის ტიპს. მხოლოდ სპეციალურ კონვერტაციის პროგრამას შეუძლია ფაილის შეცვლა ერთი ფაილის ტიპიდან მეორეზე.

რა არის ფაილის გაფართოება?

ფაილის გაფართოება არის სამი ან ოთხი სიმბოლოს ნაკრები ფაილის სახელის ბოლოს; ამ შემთხვევაში, & nbsp.smf. & nbspFile გაფართოებები გეტყვით, რა ტიპის ფაილია და უთხარით Windows-ს რა პროგრამებს შეუძლიათ მისი გახსნა. Windows ხშირად აკავშირებს ნაგულისხმევ პროგრამას თითოეული ფაილის გაფართოებასთან, ასე რომ, როდესაც ფაილზე ორჯერ დააწკაპუნებთ, პროგრამა ავტომატურად ამოქმედდება. როდესაც ეს პროგრამა აღარ არის თქვენს კომპიუტერში, ზოგჯერ შეიძლება მიიღოთ შეცდომა, როდესაც ცდილობთ გახსნათ ასოცირებული ფაილი.


როგორც წესი, სეკვენსერები იყენებენ საკუთარი მოწყობის შენახვის ფორმატს. ეს გამოწვეულია იმით, რომ მონაცემთა სტრუქტურა, რომელიც შექმნილია კონკრეტული პროგრამის შესაძლებლობებისთვის, ბევრად უფრო ეფექტურია, მასთან მუშაობა უბრალოდ უფრო ადვილია. თქვენ შეგიძლიათ ჩაწეროთ დამატებითი მონაცემები თქვენს ფორმატში, მაგალითად, მომხმარებლის ინტერფეისის მორგებაზე (ფანჯრის პოზიცია და ზომა, შრიფტი და ა.შ.). გარდა ამისა, სტანდარტული MIDI ფაილების კომპაქტურობა (კერძოდ, ცვლადი სიგრძე მოვლენების დადგომის დროის შესანახად) უხერხულობად იქცევა: მოწყობასთან მუშაობისთვის, ფაილში ყველა დელტა დრო უნდა იყოს "გახსნილი" და როდესაც ფაილი შენახულია, ისევ "zipped".

მეორეს მხრივ, SMF არის პორტატული, კროს-პლატფორმული ფორმატი, რომელშიც შეგიძლიათ განსაზღვროთ ნებისმიერი დამატებითი ბლოკი კონკრეტული მონაცემების შესანახად. მაგალითად, ერთ სეკვენსერს შეუძლია ჩართოს ან გამორთოს მეტრონომი ბლოკში სახელად "Mtr". ეს ბლოკი არ წარმოადგენს დაბრკოლებას სხვა თანმიმდევრობისთვის; მას შეუძლია განსაზღვროს მისი რამდენიმე კონკრეტული ბლოკი იმავე ფაილში. ასე რომ, ზოგიერთი sequencer იყენებს SMF ფორმატს პირდაპირ, ის მათთვის "მშობლიურია". სხვები საშუალებას გაძლევთ შემოიტანოთ და გაიტანოთ MIDI ფაილები საჭიროებისამებრ.

სხვადასხვა ტიპის სეკვენსერებისა და სხვა აღჭურვილობის მხარდასაჭერად, სტანდარტული MIDI ფაილები კლასიფიცირებულია სამ გემოვნებად ან ფორმატად: 0, 1 და 2.

ფაილის ფორმატი 0 შეიცავს ერთ ტრეკს, რომელიც შეიცავს მოვლენებს თექვსმეტივე MIDI არხიდან. ეს არის უმარტივესი ფორმატი მონაცემთა გაცვლისთვის, რადგან არ ითვალისწინებს ტრეკის ორიგინალურ სტრუქტურას სეკვენსერში (რომელი ტრეკი რომელ MIDI არხს ენიჭება). ფორმატი 0 ფაილი უფრო შესაფერისია მონაცემების გადასაცემად მოწყობილობებზე, როგორიცაა მიქსერები და ეფექტების პროცესორები, ვიდრე შეთანხმებების შესანახად. ფაილის 0 ფორმატში ჩაწერისას, სეკვენსერი უბრალოდ აერთიანებს ყველა შეტყობინებას ყველა MIDI არხიდან ერთ ტრეკში. შესაბამისად, ფაილის ჩატვირთვისას ვიღებთ ერთ ტრეკს, რომელზედაც პრობლემურია მოვლენების რედაქტირება, ვინაიდან სხვადასხვა არხის მოვლენები ერთმანეთში ირევა. სეკვენსერების უმეტესობას აქვს ასეთი „მიქსის“ ცალკეულ ტრეკებად დაყოფის ფუნქცია, რომელთაგან თითოეული შეიცავს მოვლენებს ერთი MIDI არხისთვის.

ფორმატი 1 ფაილი შეიცავს ცალკეულ ტრეკს თითოეული MIDI არხისთვის, რომელიც ასახავს სეკვენსერში განლაგების ნაცნობ სტრუქტურას. ფორმატი 2 ფაილი შეიცავს რამდენიმე დამოუკიდებელ ნაწილს (ან სრულ შაბლონს), თითოეული ნიმუში შედგება ერთი ტრეკისაგან, რომელიც შეიცავს შეტყობინებებს 16-ვე არხზე. ეს ფორმატი უნდა გამოეყენებინათ იმ თანმიმდევრობებში, რომლებსაც შეუძლიათ იმუშაონ დამოუკიდებელ შაბლონებთან, რომლებსაც ერთდროულად რამდენიმე ინსტრუმენტი უკრავს. თუმცა, ფორმატი 2 ფართოდ იქნა იგნორირებული და ამჟამად განიხილება სპეციფიკაციაში, როგორც "არ არის განკუთვნილი თანმიმდევრობისთვის".

0 და 1 ფორმატებს შორის ერთ-ერთი მთავარი განსხვავებაა მეტა მოვლენების განთავსება. ფორმატში 0, ტემპი და დროის ხელმოწერის მეტა მოვლენები (ე.წ. ტემპის რუკა) შერეულია სხვა MIDI შეტყობინებებთან. გარდა ამისა, სიმღერების სათაურები არ არის შენახული ამ ფორმატში. ფორმატში 1, პირველი ჩანაწერი ფაილში დაცულია ექსკლუზიურად ტემპის რუქისთვის და სხვა მეტა-მოვლენებისთვის, როგორიცაა Sequence/Track Name, Sequence Number, Marker, SMPTE Offset (იხ. ქვემოთ).

თუ ფაილში არ არის ტემპის რუკა, ტემპი ჩაითვლება 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 ფაილის შესახებ.