Kuinka avata .SMF-tiedosto? Kuinka muuntaa SMF-tiedosto PDF-tiedostoksi Smf kuinka avata

Toivomme, että auttoimme sinua ratkaisemaan SMF-tiedoston ongelman. Jos et tiedä, mistä voit ladata sovelluksen luettelostamme, napsauta linkkiä (tämä on ohjelman nimi) - löydät tarkempia tietoja paikasta, josta voit ladata vaaditun sovelluksen turvallisen asennusversion .

Tällä sivulla käymisen pitäisi auttaa sinua vastaamaan erityisesti näihin tai vastaaviin kysymyksiin:

  • Kuinka avata tiedosto SMF-laajennuksella?
  • Kuinka muuntaa SMF-tiedosto toiseen muotoon?
  • Mikä on SMF-tiedostomuotopääte?
  • Mitkä ohjelmat tukevat SMF-tiedostoa?

Jos et ole vieläkään saanut tyydyttävää vastausta yhteenkään yllä olevista kysymyksistä tarkasteltuasi tämän sivuston sisältöä, tämä tarkoittaa, että tässä esitetyt SMF-tiedostoa koskevat tiedot eivät ole täydellisiä. Ota yhteyttä yhteydenottolomakkeella ja kerro meille, mitä tietoja et löytänyt.

Mikä muu voi aiheuttaa ongelmia?

Syitä siihen, miksi et voi avata SMF-tiedostoa, voi olla muitakin syitä (ei pelkästään sopivan sovelluksen puute).
Ensinnäkin- SMF-tiedosto voi olla linkitetty väärin (ei yhteensopiva) sitä tukemaan asennetun sovelluksen kanssa. Tässä tapauksessa sinun on muutettava tämä yhteys itse. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella muokattavaa SMF-tiedostoa ja napsauttamalla vaihtoehtoa "Avaa kanssa" ja valitse sitten asentamasi ohjelma luettelosta. Tällaisen toimenpiteen jälkeen SMF-tiedoston avaamisongelmien pitäisi hävitä kokonaan.
toiseksi- tiedosto, jonka haluat avata, voi olla yksinkertaisesti vioittunut. Sitten paras ratkaisu on etsiä uusi versio tai ladata se uudelleen samasta lähteestä kuin ennenkin (ehkä jostain syystä edellisessä istunnossa SMF-tiedoston lataus ei ole päättynyt eikä sitä voida avata kunnolla).

Haluatko auttaa?

Jos sinulla on lisätietoja SMF-tiedostopäätteestä, olemme kiitollisia, jos jaat sen sivustomme käyttäjien kanssa. Käytä annettua lomaketta ja lähetä meille tietosi SMF-tiedostosta.

Jos tietokoneessasi on virustorjuntaohjelma voi skannaa kaikki tietokoneella olevat tiedostot sekä jokainen tiedosto erikseen. Voit tarkistaa minkä tahansa tiedoston napsauttamalla tiedostoa hiiren kakkospainikkeella ja valitsemalla sopivan vaihtoehdon tiedoston virusten varalta.

Esimerkiksi tässä kuvassa tiedosto my-file.smf, napsauta tätä tiedostoa hiiren kakkospainikkeella ja valitse tiedostovalikosta vaihtoehto "skannaa AVG:llä". Tämän vaihtoehdon valitseminen avaa AVG Antivirus -ohjelman ja tarkistaa tiedoston virusten varalta.


Joskus virhe voi johtua virheellinen ohjelmiston asennus, joka saattaa johtua asennuksen aikana ilmenneestä ongelmasta. Se voi häiritä käyttöjärjestelmääsi yhdistä SMF-tiedostosi oikeaan ohjelmistosovellukseen, jotka vaikuttavat ns "tiedostopääteyhteydet".

Joskus yksinkertaista apache openoffice uudelleenasennus voi ratkaista ongelmasi yhdistämällä SMF:n oikein Apache OpenOfficeen. Muissa tapauksissa tiedostojen yhdistämisongelmia voi johtua huono ohjelmisto ohjelmointi kehittäjä, ja saatat joutua ottamaan yhteyttä kehittäjään lisäapua varten.


Neuvoja: Yritä päivittää Apache OpenOffice uusimpaan versioon varmistaaksesi, että sinulla on uusimmat korjaukset ja päivitykset.


Tämä saattaa tuntua liian ilmeiseltä, mutta usein SMF-tiedosto itse saattaa aiheuttaa ongelman. Jos sait tiedoston sähköpostin liitteenä tai latasit sen verkkosivustolta ja latausprosessi keskeytyy (esimerkiksi sähkökatkon tai muun syyn vuoksi), tiedosto saattaa olla vioittunut. Jos mahdollista, yritä hankkia uusi kopio SMF-tiedostosta ja yritä avata se uudelleen.


Huolellisesti: Vioittunut tiedosto voi aiheuttaa lisävaurioita tietokoneellasi oleville tai olemassa oleville haittaohjelmille, joten on tärkeää pitää tietokoneesi ajan tasalla ajan tasalla olevalla virustorjuntaohjelmalla.


Jos SMF-tiedostosi liittyvät tietokoneesi laitteistoon avataksesi mahdollisesti tarvitsemasi tiedoston päivitä laiteohjaimet liittyvät tähän laitteeseen.

Tämä ongelma yleensä liittyy mediatiedostotyyppeihin, jotka riippuvat tietokoneen sisällä olevan laitteiston onnistuneesta avaamisesta, esimerkiksi äänikortti tai videokortti. Jos esimerkiksi yrität avata äänitiedostoa, mutta et voi avata sitä, sinun on ehkä avattava se päivitä äänikortin ajurit.


Neuvoja: Jos kun yrität avata SMF-tiedoston, saat .SYS-tiedostoon liittyvä virheilmoitus, ongelma saattaa olla liittyvät vioittuneisiin tai vanhentuneisiin laiteajureihin jotka pitää päivittää. Tätä prosessia voidaan helpottaa käyttämällä ohjainpäivitysohjelmistoa, kuten DriverDoc.


Jos vaiheet eivät ratkaisseet ongelmaa ja sinulla on edelleen ongelmia SMF-tiedostojen avaamisessa, tämä voi johtua siitä käytettävissä olevien järjestelmäresurssien puute. Jotkin SMF-tiedostojen versiot voivat vaatia huomattavan määrän resursseja (esim. muistia/RAM-muistia, prosessointitehoa) avautuakseen oikein tietokoneellasi. Tämä ongelma on melko yleinen, jos käytät melko vanhaa tietokonelaitteistoa ja paljon uudempaa käyttöjärjestelmää samanaikaisesti.

Tämä ongelma voi ilmetä, kun tietokoneella on vaikeuksia suorittaa tehtävää, koska käyttöjärjestelmä (ja muut taustalla toimivat palvelut) kuluttaa liikaa resursseja SMF-tiedoston avaamiseen. Yritä sulkea kaikki sovellukset tietokoneellasi ennen kuin avaat StarMath Formula File. Vapauttamalla kaikki saatavilla olevat resurssit tietokoneellasi varmistat parhaat olosuhteet SMF-tiedoston avaamiselle.


Jos sinä suorittanut kaikki yllä olevat vaiheet ja SMF -tiedostosi ei vieläkään avaudu, sinun on ehkä suoritettava laitteistopäivitys. Useimmissa tapauksissa jopa vanhemmissa laitteistoversioissa prosessointiteho voi silti olla enemmän kuin tarpeeksi useimmille käyttäjäsovelluksille (ellet tee paljon prosessoriintensiivistä työtä, kuten 3D-renderöintiä, talous-/tiedemallinnusta tai mediaintensiivistä työtä ) . Täten, on todennäköistä, että tietokoneessasi ei ole tarpeeksi muistia(jota kutsutaan yleisemmin nimellä "RAM" tai RAM) suorittaakseen tiedoston avaamisen.

Otsikko (englanniksi): Normaali MIDI-tiedosto

Otsikko (venäjäksi): SMF MIDI tiedosto

Kehittäjä: tuntematon

Kuvaus: SMF, joka tunnetaan myös nimellä StarMath Formula File, on StarMath-kaavamuoto. SMF-formaatin on kehittänyt tunnettu ohjelmistoyritys Oracle. Käytetään matemaattisten kaavojen tallentamiseen säilyttäen samalla lausekkeiden muotoilu ja syntaksi. SMF-muotoiset tiedostot on luotu OpenOffice-toimistosovelluksen vanhoilla versioilla, editorin uusissa versioissa SMF on korvattu ODF-muodolla. Vanha SMF-muoto on kuitenkin myös tuettu. OpenOfficen lisäksi toista ilmaista toimistopakettia, LibreOfficea, voidaan käyttää StarMath Formula -asiakirjojen katseluun.

Muoto 2

Otsikko (englanniksi): StarMath-kaavatiedosto

Otsikko (venäjäksi): StarMath-kaava

Kehittäjä: Oraakkeli

Kuvaus: SMF tai tavallinen MIDI-tiedosto on SMF-midi-tiedostomuoto. Tämä muoto on erityisesti luotu tallentamaan ääni, joka on tallennettu sekvensserillä, joka on erityinen laitteisto, joka on suunniteltu tallentamaan ja toistamaan musiikkisävellyksiä. Tällainen tallenne ei sisällä varsinaista äänidataa, se on kokoelma nuotteja ja niiden soittoominaisuuksia. Myös sekvensseri voi olla ohjelma, jolla on sama tarkoitus kuin laitteistomoduulilla. SMF-tiedosto sisältää vihjeitä, merkkejä, tempotietoja, musiikillisia vihjeitä, MIDI-viestejä ja muuta tietoa. Käytä Apple QuickTime Playeria toistaaksesi SMF-muotoa.

Voit avata (muokkaa) tämän muotoisen tiedoston käyttämällä seuraavia ohjelmia:

Muoto 3

Otsikko (englanniksi): Serif Metafile

Otsikko (venäjäksi): Serif vektorikuva

Kehittäjä: Serif

Kuvaus: SMF eli Serif Metafile on Serifin oma vektorikuvatiedostomuoto. Formaatin on kehittänyt englantilainen Serif, joka valmistaa sellaisia ​​tunnettuja ohjelmistotuotteita kuten PagePlus, DrawPlus, MoviePlus, PhotoPlus ja WebPlus. Serif-tuotteita käytetään rasteri- ja vektorigrafiikassa, videoissa sekä web-suunnittelussa ja ulkoasussa. SMF-tiedosto on vektorikuva, joka sisältää täyttöjä, viivoja ja tekstitietoja, joita käytetään tiedonvaihtoon muiden Serif-ohjelmien välillä.

- Tunniste (muoto) on merkkejä tiedoston lopussa viimeisen pisteen jälkeen.
- Tietokone määrittää tiedostotyypin tarkasti tunnisteen mukaan.
- Oletuksena Windows ei näytä tiedostonimien tunnisteita.
- Joitakin merkkejä ei voi käyttää tiedoston nimessä ja tunnisteessa.
- Kaikki muodot eivät liity samaan ohjelmaan.
- Alla on kaikki ohjelmat, joilla voit avata SMF-tiedoston.

WavePad Audio Editor on hyödyllinen äänieditori, jossa on monia hyödyllisiä ominaisuuksia. Apuohjelman avulla voit tallentaa, muokata ääniraitoja, ääni- ja muita äänitallenteita. Kun käsittelet äänitiedostoja, voit leikata, kopioida tai liittää osia musiikkikappaleesta tai äänitallenteesta. Voit lisätä tehosteita (kaiku, kohinanvaimennus, kohinanvahvistus). WavePad Audio Editor sopii ammattimaisille äänisuunnittelijoille. Apuohjelman avulla voit helposti tallentaa oman kappaleesi. Tukee näytteenottotaajuuksia 6 - 96 kHz, myös stereo- ja monoääniä. Pääominaisuuksien lisäksi sovellus pystyy tallentamaan tietueita, siirtämään ne valittuihin ...

Viides osa artikkelisarjasta, jossa käsitellään MIDI-protokollaa.

Yksi MIDI-protokollan kolmesta osasta on tietojen tallennusmuodon määrittely (muista, että kaksi muuta komponenttia ovat viestin muoto ja laitteistorajapinnan määrittely). Viestimuotoa käsiteltiin syklin kolmessa ensimmäisessä artikkelissa, nyt on tallennusmuodon vuoro. MMA-organisaatio ehdotti sitä vuoden 1987 lopulla, ja sen nimi oli "Standard MIDI Files" (Standard MIDI Files, SMF).

MIDI-tiedostojen tarkoitus on mahdollistaa tapahtumien (eli MIDI-viestien, joissa on aikaleima) vaihto eri laitteiden ja ohjelmien välillä. Ennen tavallisten MIDI-tiedostojen syntymistä yhdessä sekvensserin kanssa valmistettua järjestelyä ei voitu ladata toiseen muotojen yhteensopimattomuuden vuoksi. Ei voida sanoa, että SMF:n myötä kaikki sekvensserivalmistajat siirtyivät tähän muotoon. Tähän on useita syitä, ja puhumme niistä myös tänään.

Koska tiedon tallentaminen liittyy suoraan sekvenssereiden rakenteeseen, käsittelemme asiaa tarkemmin, mutta vain siinä määrin kuin on tarpeen SMF:n ymmärtämiseksi. Ja sekvensserit, tietenkin, omistamme yhden syklin seuraavista artikkeleista.

Tapahtumat
Kutsutaan aikaleimalla varustettu MIDI-viesti tapahtuma. Ajan ilmaisemiseen voidaan käyttää erilaisia ​​yksiköitä - tikkuja, sisäisiä pulsseja, aika SMPTE-muodossa jne. On tärkeää ymmärtää tapahtuman ja viestin välinen perustavanlaatuinen ero. Viesti "elää" millisekunnin murto-osan tosiajasta - hetkestä, kun lähde on luonut sen, siihen hetkeen, kun se saapuu suoritettavaksi vastaanottajalle. Se voidaan saada kiinni lähetyksen aikana MIDI-kaapelilla pulssisarjana. Tapahtuma on muutaman tavun verran laitteen muistiin tallennettua tietoa, jonka perusteella muodostetaan jatkossa sanoma sovittuna aikana.

Esimerkiksi sekvensserin muisti voi tallentaa "play note" -tapahtuman, jonka aikaleima on 100 ms toiston alusta. Voit muokata tätä tapahtumaa kahdessa ulottuvuudessa: ensinnäkin muuttaa itse MIDI-viestin parametreja (tässä tapauksessa sävelkorkeutta tai nuotin dynamiikkaa) ja toiseksi siirtää nuottia kappaletta pitkin, eli muuttaa viesti.

Tapahtumat näkyvät sekvensserin muistissa MIDI-viestejä tallennettaessa. Kun painat Record-painiketta, sekvensseri käynnistää laitteiston pulssigeneraattorin (tikit) ja alkaa "kuunnella" määritettyä MIDI-tuloa. Esimerkiksi kun näppäintä painetaan, tulo vastaanottaa viestin "ota muistiin". Sekvensseri näyttää - joo, viesti tuli 20. rastilla, ja kirjoittaa sen muistiin merkillä 20. Muutaman sekunnin kuluttua avain vapautettiin - tuli viesti "remove note", sisäinen generaattori sillä hetkellä iloisesti heilutti 64 rastia sekvensseriin. Sekvensseri tallentaa viestin tunnisteella 64. Nyt käsittelemme kahta tapahtumaa - Note On ja Note Off. Toiston aikana pulssigeneraattori kytkeytyy uudelleen päälle. Kun 20. rasti lähestyy, Note On -viesti lähetetään sekvensserin MIDI-lähtöön, 64. rasti - Note Off. Nauhoitimme ja toistimme esiintyjän toimet!

Ilmeisesti sama asia voidaan tehdä "offline-tilassa", eli ilman live-esitystä. Klikkaamalla hiirtä oikeaan kohtaan kappaleessa (ja valitsemalla nuotin keston etukäteen), rakennamme sekvensserin muistiin täsmälleen edellisen kuvan.

Muistityypit
Nyt on aika soveltaa kahta pelottavaa tietokonetermiä: ensisijainen ja toissijainen muisti. Ensisijainen (tai sisäinen) muisti on sekvensserin muisti, johon kirjoitetaan viestejä ja johon tallennetaan tapahtumia koko istunnon ajan. Tämän muistin sisältö nollautuu, kun virta katkaistaan. Tämä tulkinta sopii paremmin laitteistosekvenssereille. Ohjelmistosekvenssereissä ensisijainen muisti on yksinkertaisesti tietokoneen päämuisti. Ensisijaisen muistin sisällön säilyttämiseksi pitkäksi aikaa käytetään toissijaista muistia tai toisin sanoen tallennusvälinettä. Se voi olla levyke, kiintolevy, älykortti ja vastaava.

Ensisijaisen muistin määrä laitteistosekvenssereissä ja työasemissa (muista, työasema on äänigeneraattori ja sekvensseri samassa laatikossa) ilmaistaan ​​yleensä tallennettujen nuottien määränä (esim. 200 tuhatta). Joskus äänenvoimakkuus ilmaistaan ​​tapahtumissa, jolloin sinun on oltava varuillaan – yhden nuotin tallentamiseen tarvitaan kaksi tapahtumaa (näppäimen painaminen ja vapauttaminen), ja säätöpyörän kääntäminen tai jälkikosketus voi tuottaa jopa 100 tapahtumaa tai enemmän. Se tapahtuu, että sekvensserin muistin määrä ilmaistaan ​​alkuperäisinä tietokoneyksiköinä - kilotavuina. Mutta tämä ei myöskään ole kovin kätevää - yksi tapahtuma voi viedä eri määrän tavuja (viidestä useisiin tusinoihin).

Nykyaikaisissa ohjelmistosekvenssereissä harvat ihmiset välittävät ensisijaisen muistin määrästä - jopa koneessa, jossa on 128 Mt RAM-muistia, voit unohtaa kaikki rajoitukset työskennellessäsi MIDI-tietojen kanssa. Lisäksi on olemassa sekvenssereitä, jotka voivat toistaa järjestelyn suoraan levyltä lataamatta sitä ensisijaiseen muistiin (ja muuten myös tallentamiseen), mikä yleensä hämärtää kahden muistityypin välistä eroa.

Toissijaisessa tallennustilassa tiedot kirjoitetaan yleensä tiedostoon. Useimmilla sekvenssereillä on oma muotonsa tästä tiedostosta, suljettuna, mikä vaikeuttaa eri laitteissa tai ohjelmissa luotujen järjestelyjen vaihtamista. Aiemmin sanottiin, että tämä oli tärkein syy SMF:n luomiseen.

Ajan mittaus
Itse asiassa sekvensserin sisällä ei ole "pukkeja". On laitteistoajastin, joka tuottaa pulsseja tiukasti vakiotaajuudella (esimerkiksi joka mikrosekunti). Muusikoiden pakottaminen mittaamaan aikaa mikrosekunteina olisi hirvittävää pilkkaa, kuten todellakin muilla reaaliajan yksiköillä (sekunnit, minuutit). Muusikot ovat tottuneet ajattelemaan taktisesti ja lyönnissä sekä ilmaisemaan aikaa suhteellisissa yksiköissä (sävelten kestoissa) kulloisenkin tempon mukaan.

"Ei hätää", valmistajat vastasivat, "anna heidän mitata heille parhaiten sopivalla tavalla." Vain minimimittayksikkö ei tule olemaan jokin 32. kesto, vaan ehdollisesti otettu rasti (yksikkö on vielä pienempi, joten esim. yksi 30 sekunti voi sisältää 48 rastia). Koska klassisesta aikakaudesta lähtien vauhtia on mitattu neljännesten lukumäärällä minuutissa (BPM, lyöntejä minuutissa), päätettiin käyttää neljäsosaa pääkestolle ja ilmoittaa tikkujen määrä neljännestä kohti - PPQN (Pulse Per). Neljäsosanuotti). Mitä suurempi PPQN, sitä parempi on sekvensserin resoluutio ja sitä tarkemmin ajassa se pystyy kaappaamaan viestejä tallennuksen aikana ja tulostamaan ne MIDI-lähtöön toiston aikana. Useimmat sekvensserit mahdollistavat PPQN:n asettamisen mielivaltaisesti - esimerkiksi 32:sta 1536:een tikkua neljännesvuosittain (nykyaikaiset sekvensserit - jopa 15360 PPQN).

Tikki on temposta riippuva yksikkö: mitä nopeampi tempo, sitä lyhyempi aikaväli tikkien välillä reaaliaikaisissa yksiköissä. Tämä intervalli voidaan löytää käyttämällä kuvan 1 kaavaa. yksi.

Esimerkiksi 120 BPM:n tempolla ja 96 PPQN:n resoluutiolla tikkejä tulee 5,208 millisekunnin välein. Samalla resoluutiolla ja nopeudella 180 BPM, tikkujen välinen aika lyhenee 3,472 ms:iin. Kuinka sekvensseri laskee, jos sen sisäinen ajastin pulssii joka mikrosekunti? Kyllä, hyvin yksinkertaisesti: perustuen nykyiseen tempoon ja resoluutioon neljänneksellä, täsmälleen määritellyn kaavan mukaan. Koska yhdessä millisekunnissa on 1000 mikrosekuntia, viimeisessä esimerkissä sekvensseri generoi toisen tikityksen, kun se vastaanottaa ajastimelta 3472 pulssia.

Kun korkealla resoluutiolla ei ole järkeä
Jos sekvensseri ja äänigeneraattori ovat "saman katon alla" (työasema tai tietokone, jossa on ohjelmistosekvensseri ja syntetisaattori äänikortilla tai virtuaalinen syntetisaattori), niin tällaisen järjestelmän sisäinen resoluutio voi olla mielivaltaisen suuri ( numero 15360 PPQN on vaikuttava). Tämä mahdollistaa MIDI- ja äänidatan synkronoinnin näytetarkkuudella. Mutta heti kun yhdistämme sekvensserin ja sävelgeneraattorin MIDI-kaapelilla MIDI-liitännän kautta, korkealla resoluutiolla ei ole enää merkitystä.

Miksi? Muistutan, että yksi tavu lähetetään MIDI-liitännän kautta 320 mikrosekunnissa. Ja tämä tarkoittaa, että esimerkiksi viesti muistiinpanosta (joka koostuu kolmesta tavusta) lähetetään 960 μs tai melkein koko millisekunnin ajan. Kuvitellaan nyt, että sekvensseriin on ohjelmoitu kaksi nuottia nopeudella 120 BPM ja 2048 PPQN kahden tikun välein. Reaaliaikaisissa yksiköissä tämä on 488 mikrosekuntia. Joten: äänigeneraattori ei pysty vastaanottamaan toista nuottia 488 mikrosekuntia ensimmäisen jälkeen, mutta todellisuudessa - vasta 960 mikrosekunnin jälkeen. Joten hän suorittaa sen ei kahden, vaan melkein neljän tikun jälkeen.

Tästä päätelmä: MIDI-liitännän kautta työskennellessä (kun sekvensseri ja sävelgeneraattori ovat erillään toisistaan), sekvensserin resoluutiolla, joka on enemmän kuin yksi rasti 960 mikrosekunnissa, ei ole järkeä. Voit selvittää, kuinka paljon se on PPQN:ssä, käyttämällä kuvan 1 kaavaa. 2.

Kuvan taulukossa 3 eri nopeuksille näyttää PPQN-arvot, joita on turha ylittää.

Tapahtuman paikka aikaviivaimella asetetaan sekvensseriin, yleensä muodossa "bars: beats: ticks", esimerkiksi 22:3:152. Eli: 22. askel, kolmas lyönti, 152. rasti kolmannen tahdin alusta. Samanlaista ajoitusperiaatetta (englanninkielinen termi - Timebase) kutsutaan musikaaliseksi (musikaaliseksi), koska se on muusikoille tuttu ja kätevä. Huomaa, että työskennelläksesi tässä muodossa sinun on tiedettävä nykyinen kellonaika. Eli kuinka monta lyöntiä tanko sisältää ja mitä kukin lyönti on yhtä suuri.

Joten 4/4-ajassa lyönti on yhtä suuri kuin neljännes, ja mitta sisältää neljä lyöntiä. Kun resoluutio on 384 PPQN, yhdellä lyönnillä on 384 tikkua ja vastaavasti 1536 tikkua kussakin palkissa (384 x 4). Aikasignatuurilla 6/8 ja samalla resoluutiolla on 192 tikkua per lyönti (kahdeksas nuotti on puolet kvartaalin pituudesta) ja kuusi lyöntiä per bar eli 1152 tikkua (192 x 6). Näin ollen merkintä 22:3:152 ensimmäisessä tapauksessa tarkoittaa 35096 tikkua kappaleen alusta (22 x 1536 + 3 x 384 + 152) ja toisessa - 26072 tikkua (22 x 1152 + 3 x 192 + 152).

Joten, jotta voit määrittää tapahtuman sijainnin reaaliaikaisissa yksiköissä "barit: beats: ticks" -muodon perusteella, sinun on tiedettävä kolme parametria: nykyinen tempo, aika-allekirjoitus ja resoluutio ticks per neljännes (PPQN).

On toinenkin mahdollisuus ajan laskentaan, kun tapahtuman sijainti radalla ilmaistaan ​​absoluuttisissa yksiköissä, jotka eivät riipu temposta, useimmiten SMPTE-aikamuodossa - "tunnit: minuutit: sekuntit: kehykset". Tätä ajoitusperiaatetta kutsutaan "aikakoodipohjaiseksi" (perustuu aikakoodiin, absoluuttinen). Sen tarve syntyy, kun sekvensseri toimii yhdessä nauhurin tai elokuva-/videolaitteiston kanssa. Elokuva-, video- ja äänimateriaalin editointitoiminnot, jotka osoittavat tallenteen alun ja lopun sijainnit, on helpompi suorittaa, kun ne on sidottu absoluuttiseen mittakaavaan, ei mittauksiin ja lyönteihin.

Tässä tapauksessa tapahtuman koordinaatti aikaviivaimella riippuu sen hetkisestä temposta. Joten 120 lyöntiä minuutissa toisen askeleen ensimmäisen lyönnin SMPTE-aika voi olla 00:00:02:00 ja 60 BPM:llä se voi olla 00:00:04:00. Jos tapahtuma sijaitsee kehyksen sisällä (sekuntien välillä), sen koordinaatti vaihtelee myös eri kehysformaateissa (kehysten määrä sekunnissa). Voit lukea lisää SMPTE:stä ja MIDI-aikakoodista sarjan edellisestä artikkelista.

Vaihtelevat pituudet
Lyyrisiä poikkeamia riittää, nyt meidän tehtävämme on selvittää tiedon tallennusmuoto. Ja ensimmäinen vaikeus, jonka SMF:n kehittäjät kohtasivat, oli kuinka säästää tapahtuman aikaa.

Tässä on kaksi vaihtoehtoa: tallenna kullekin tapahtumalle aika kappaleen alusta tai viimeisestä sitä edeltävästä tapahtumasta (samalla kanavalla). Ensimmäinen vaihtoehto ei kuitenkaan ole rationaalinen, koska useimmiten tapahtumien välinen aika on pieni, naapuritapahtumien suoritusajat ovat lähellä toisiaan. Joten kolmen sävelen jaksossa ensimmäisen aika voi olla esimerkiksi 22:3:152, toisen 22:3:244 ja kolmannen 22:3:288. Jotta voit tallentaa nämä numerot (muunnettu rastiiksi kappaleen alusta), sinun on varattava vähintään neljä tavua kutakin. Jos menet toisella tavalla, voit tallentaa kolmen suuren numeron sijasta yhden suuren aloitusnumeron (22:3:152), jota seuraa kaksi pientä, ensimmäisen ja toisen sekä toisen ja kolmannen välinen ero. muistiinpanoja (tässä tapauksessa 92 ja 44), yksi tavu riittää niille. Mutta silti ongelma on edelleen olemassa: tapahtumasta riippuen sinun on varattava eri määrä tavuja säästääksesi aikaa.

Jos SMF:ää kehitettäisiin tällä hetkellä (ja jopa Microsoftin toimesta, joka ei yleensä välitä tiedostojen koosta ja tarvittavasta muistista), tämä ongelma suljettaisiin. Varasimme kiinteän kentän ajan säästämiseksi, esimerkiksi 8 tavua tapahtumaa kohden, emmekä kärsineet. Kuitenkin vuonna 1988 ensisijainen muisti (RAM) oli erittäin kallista, jokainen tavu laskettiin ja toissijaista (levymediaa) oli hyvin vaatimaton määrä. Siksi SMF:n kehittäjät halusivat saada mahdollisimman kompaktin muodon.

Päätettiin pitää delta-aika, eli tämän tapahtuman ja edellisen (tai kappaleen alun) välinen ero. Esimerkiksi, jos ensimmäinen tapahtuma - nuotin C osuminen ensimmäiseen oktaaviin - tapahtui tällä hetkellä 40 tikkua kappaleen alusta, niin sen delta-aika on 40. Jos nuotti F soitetaan neljän tikityksen jälkeen, sen Delta-aika on 4. Jos kaksi tapahtumaa tapahtuu samanaikaisesti, yhdelle niistä määritetään delta-aika, joka on yhtä suuri kuin nolla. Jos tapahtuma tapahtuu täsmälleen kappaleen alussa, sillä on myös nolladelta-aika. Seuraava tapahtuma voi kuitenkin tapahtua puolentoista tunnin kuluttua (eli usean miljoonan tikkun jälkeen). Kuinka olla tässä tapauksessa? Loppujen lopuksi muistia on tallennettava, eikä delta-ajalle ole toivottavaa varata useiden tavujen kiinteää kenttää.

Niin kutsuttu vaihtelevat pituudet. Ne tarjoavat kätevän tavan kirjoittaa kokonaislukuja pienimmästä suurimpaan ilman, että numerolle tarvitsee varata kiinteää määrää tavuja. Alkuperäisen luvun bitit on pakattu yhteen tai useampaan tavuun: jokaisessa tavussa on seitsemän bittiä (oikealla bitit 0 - 6). Merkittävin bitti tavussa on palvelu; sarjan kaikkien tavujen, paitsi viimeistä, tulee sisältää yksi, viimeisen - nolla. Kuvassa on useita pakkausesimerkkejä. 4.

Haluat esimerkiksi pakata luvun 64 (heksadesimaali 0x40) muuttuvapituiseen muotoon. Binäärimuodossa tämä luku kirjoitetaan 0100 0000. Merkitseviä bittejä on vain seitsemän, joten tämä luku pakataan yhdeksi tavuksi muuttumattomana - 0100 0000 (se on myös sarjan viimeinen tavu), merkitsevin bitti on 0.

Nyt numero on 128 (0x80). Binäärimuodossa se kirjoitetaan 1000 0000. Merkittäviä bittejä on kahdeksan, joten kaikki ei mahdu yhteen tavuun, se on jaettava kahteen osaan. Ensimmäisen tavun on oltava ykkönen korkeassa bitissä, toisessa (sarjan viimeisenä tavuna) on oltava nolla. Laitamme alkuperäisen luvun seitsemän vähiten merkitsevää bittiä toiseen tavuun, siitä tulee 0 000 0000. Jäljellä oleva yksi bitti (yksi) sijoitetaan ensimmäisen tavun oikealle puolelle - siitä tulee 1000 0001. , numero 0x80 kirjoitetaan kahtena tavuna: 0x81 0x00. Purkaminen on erittäin helppoa. Emme tiedä etukäteen, kuinka monta tavua sarjassa on. Luemme ensimmäisen tavun - 1000 0001. Korkea palvelubitti (1) osoittaa, että tämä ei ole sarjan viimeinen tavu, tavuja on enemmän. Hylkäämme palveluyksikön, seitsemän bittiä jäljellä - 000 0001. Luemme toisen tavun - 0000 0000. Korkea palvelubitti (0) osoittaa, että tämä on sarjan viimeinen tavu (eli sarjassa on vain kaksi tavua sarja). Hylkäämme palvelubitin pois. Jäljellä on myös seitsemän bittiä - 000 0000. Lisäämme niihin vasemmalla ensimmäisestä tavusta varatut seitsemän bittiä, saamme 000 0001 000 0000. Kun kuusi ensimmäistä nollaa on hylätty, saadaan haluttu luku 1000 0000 (0x80) .

Joten muuttuvan pituuden arvojen menetelmä antaa sinun varata eri määrän tavuja eri numeroille: numeroille välillä 0 - 127 - yksi tavu, 128 - 16383 - kaksi tavua ja niin edelleen. Tällä tavalla esitettävää enimmäismäärää ei periaatteessa ole rajoitettu. SMF:ssä ajon pituus on kuitenkin rajoitettu neljään tavuun (kolmessa on eniten merkitsevä bitti asetettu ja yksi päättyy yksi nollalla). Tämän seurauksena maksimidelta-aika voi olla 0x0FFFFFFFF (tai 268 435 455 tikkua), mikä nopeudella 500 BPM ja 96 PPQN on noin neljä päivää. Enemmän kuin tarpeeksi!

Muuttuvan pituisten arvojen muodossa SMF määrittelee delta-ajan lisäksi myös joidenkin tapahtumien pituuden.

Interchange File Format (IFF)
Tavallisen MIDI-tiedoston rakenne on lähes kokonaan lainattu Electronic Artsin vuonna 1985 kehittämästä IFF-formaatista (Interchange File Format). Tämä on tietojen tallennus- ja vaihtomuoto, joka on helpottanut sekä käyttäjien että ohjelmistokehittäjien elämää lähes kahdenkymmenen vuoden ajan. Electronic Arts ei toimittanut vain avoimen lähdekoodin dokumentaatiota, vaan myös C-lähdekoodia IFF-tiedostojen lukemiseen ja kirjoittamiseen.

IFF-muoto on taaksepäin yhteensopiva ja laajennettavissa. Ensimmäinen tarkoittaa, että ohjelman uusi versio voi helposti lukea edellisen version luomia tiedostoja. Toiseksi lisätietojen tallentamiseksi sinun ei tarvitse keksiä uutta muotoa, riittää, että esität oman laajennuksen IFF:ssä. Formaatin rakenne mahdollistaa eri valmistajien ohjelmien välisen tiedonvaihdon, jolla ei ole asiaankuuluvia liikesopimuksia keskenään. Kaikki tämä myös miellyttää käyttäjiä - tallentamalla tiedot IFF-muotoon, he eivät ole enää ketjutettuja järjestelmänsä suljettuun muotoon ja voivat käyttää tietoja missä tahansa IFF-yhteensopivassa laitteisto- ja ohjelmistoympäristössä.

IFF-tiedosto on kokoelma tietoja, jotka on järjestetty siten, että eri asiaankuulumattomat ohjelmat voivat lukea sen. Toisaalta ohjelma voi tallentaa IFF:ään tiettyä tietoa, joka on järkevää vain itselleen. IFF-rakenne tekee tämän helpoksi. Muut ohjelmat, jotka eivät osaa käsitellä tällaisia ​​tietoja, voivat jättää ne huomioimatta vaikuttamatta pääsisällön lukemiseen.

IFF-tiedostoja on useita tyyppejä. Esimerkiksi ILBM- ja GIFF-tiedostot sisältävät graafista tietoa, SMUS-tiedostot nuotteja, AIFF- ja WAVE-tiedostot digitaalista ääntä.

IFF-tiedosto koostuu samantyyppisistä elementeistä, joita kutsutaan lohkoiksi (lohkoiksi). Lohko on tietorakenne, joka koostuu kirjaintunnisteesta (neljä ASCII-merkkiä), lohkon koosta (neljä tavua) ja itse tiedosta (kuva 5). On kätevää ajatella lohkoa kuorena, johon tiedot "kääritään". Itse data voi sisältää mitä tahansa: grafiikkaa, tekstiä, animaatioita, ääntä, 3D-objektien sarjaa ja niin edelleen.

IFF-tiedoston lohkot voidaan upottaa sisäkkäin, kuva 10. 6. Itse asiassa IFF-tiedosto ei ole muuta kuin huipputason lohko, joka sisältää yhden tai useamman muun lohkon sisällään. Tämä tiedontallennusperiaate mahdollistaa useiden heterogeenisten tietojen "käärimisen" tiedostoon, mukaan lukien useita IFF-tiedostoja, jotka muistuttavat jo tiedoston sisällä olevaa tiedostojärjestelmää. Totta, sisäkkäisillä tietojen järjestämisellä on yksi haittapuoli - tiedostosta tulee vaikea tulkita, lohkojen eristäminen siitä.

Useimmat IFF-tiedostot sisältävät huipputason lohkon, jonka tunniste on "FORM". Se sisältää muita lohkoja (kuva 7). FORM-lohkon ainoa data on neljä tiedostotyyppiä kuvaavaa tavua (esim. "ILBM", InterLeaved Bit Map). Sisäkkäiset lohkot sijoitetaan suoraan niiden taakse, esimerkiksi "BMHD" (kuvan otsikko), "CMAP" (paletti) ja "BODY" (itse pikselit). Lohkojen nimet ja tietomuoto keksivät tietyn tiedostotyypin kehittäjä. Muut ohjelmat voivat ohittaa sen turvallisesti, jos ne kohtaavat tuntemattoman nimisen lohkon lohkon pituuden sisältävän kentän ohjaamana.

Kaikki IFF-tiedostojen numeeriset tiedot tallennetaan suuressa järjestyksessä, eli numeron merkittävin tavu (MSB) tallennetaan ensin, sitten vähiten merkitsevä. Tästä lisää sivupalkissa. Tiedoston sisällä olevien lohkojen tulee aina alkaa parillisella tavulla. Jos edellinen lohko sisältää parittoman määrän tavuja, se täytetään nollatavulla, jotta se olisi parillinen.

Kummasta päästä säästää?
Tietokoneen muisti koostuu soluista, joista jokainen mahtuu täsmälleen yhdelle tavulle. Päästäkseen soluun (kirjoittaakseen tai lukeakseen tavun) prosessori käyttää ns osoite mielessä. Se on vain käyttöjärjestelmän solulle osoittama kokonaisluku (antakoon tietotekniikan tutkijat anteeksi tämän yksinkertaistamisen). Tosielämässä yksi tavu ei yleensä riitä. Jopa kokonaislukujen tallentamiseen käytetään sanoja, eli kahden tavun ryhmiä, kaksois- tai nelinkertaisia ​​sanoja (vastaavasti neljä tai kahdeksan tavua, katso tarkemmin jakson ensimmäinen osa). Eli numero on tallennettu useisiin vierekkäisiin tavuihin.

Kuvassa Kuva 8 esittää kaksi mahdollista tapaa sijoittaa ne muistiin kaksoissanan esimerkin avulla. Ensimmäinen tapa - tavut tallennetaan muistiin peräkkäin, korkein tavu alimmassa osoitteessa. Toisin sanoen korkean sanan MSB tallennetaan osoitteeseen N, sitten korkean sanan LSB (N + 1), matalan sanan MSB (N + 2), matalan sanan LSB (N + 3). Tällaista menetelmää kutsutaan isopäämies(tai "suora tavuvaraus"). Toisessa menetelmässä kaikki on täsmälleen päinvastoin, korkea tavu tallennetaan korkeimpaan osoitteeseen: matalan sanan LSB (N), matalan sanan MSB (N + 1), korkean sanan LSB (N + 2). ), korkean sanan MSB (N + 3) . Tätä menetelmää kutsutaan pikku-endian- "käänteinen tavujen varaus".

Eli ero on "mistä päästä" (päästä) monitavuinen arvo tallennetaan. Termit "big-endian" ja "little-endian" ehdotettiin yhdessä aihetta käsittelevistä artikkeleista viitaten Jonathan Swiftin Gulliverin seikkailuihin. Kuten tiedät, Lilliputissa syntyi Big-Endians-liike, joka ei halunnut noudattaa keisarin asetusta, joka käski rikottaa keitetyt munat vain terävästä päästä. Tietokonemaailmassa iso/little-endian vastakkainasettelu näyttää hyvin samanlaiselta.

Little endian kannattajat väittävät, että muistin endianness helpottaa monitavuisten arvojen aritmetiikkaa, koska ensin lisätyt vähiten merkitsevät tavut tallennetaan alhaisiin osoitteisiin.

Pieniä käytäntöjä käytetään Intel-yhteensopivissa prosessoreissa Intel 8080:sta Intel Pentium IV:hen. Suora sijoitus (big-endian) - Sun Spark -prosessoreihin, Motorola 68000:een (Applen tietokoneiden varhainen sarja) ja moniin RISC-prosessoreihin. Mutta PowerPC- ja Intel Itanium -prosessorit ymmärtävät molemmat tietomuodot kerralla (niitä kutsutaan joskus "bi-endianiksi").

Ratkaisevaa ei kuitenkaan ole niinkään se, kuinka tietokone tallentaa tiedot "sisälleen", vaan sillä, miten se tallentaa ne "ulkopuolelle" tiedostoihin. Tämä on paljon tärkeämpää käytännön näkökulmasta. Esimerkiksi, jos big-endian-järjestelmä tallentaa sanan "UNIX" tiedostoon (kahdeksi kaksitavuiseksi sanaksi), little-endian-järjestelmä lukee sen nimellä "NUXI". Tietokonekielessä tätä kutsutaan "NUXI-ongelmaksi". Samanlaisia ​​vaikeuksia voi syntyä graafisia kuvia tallennettaessa, koska värit koodataan monitavuisina numeroina. Esimerkiksi Adobe Photoshop- ja JPEG-tiedostot käyttävät big-endiania, kun taas GIF- ja BPM-tiedostot käyttävät little-endiania.

"Off-platform" Standard MIDI File Format (SMF) käyttää big-endian-menetelmää, eli sanan merkittävin tavu (MSB) tallennetaan ensin.

SMF-rakenne
Tavalliset MIDI-tiedostot, kuten IFF-tiedostot, koostuvat lohkoista (Chunks). Lohkoja on kahden tyyppisiä: Header Chunk ja Track Chunk. SMF-tiedostossa voi olla vain yksi otsikkolohko ja yksi tai useampi raitalohko. Lohkolla on tyypillinen IFF-rakenne: ensimmäiset neljä tavua ovat tunniste, seuraavat neljä tavua ovat lohkon pituus tavuina, pois lukien kahdeksan tyyppi/pituustavua. Otsikkolohkon tunniste on neljä "MThd"-merkkiä, raitalohkon tunniste on neljä "MTrk"-merkkiä. Tämä rakenne mahdollistaa uusien lohkotyyppien määrittämisen tulevaisuudessa, ja tuntematon lohko voidaan helposti jättää huomiotta sen pituuden perusteella. SMF-spesifikaatio varoittaa: "Ohjelmien tulee olla valmiita jättämään huomiotta tyypit, joita he eivät tunne."

Otsikkolohko sisältää yleistä tietoa tiedostosta, raitalohko sisältää MIDI-viestivirran aikaleimoineen. Lisäksi MIDI-tiedostoon tallennetaan sekvenssereiden tarvitsemat lisätiedot: tempo, aika-allekirjoitus, näppäin, metronomiasetukset ja vastaavat. Tätä tietoa ei välitetä MIDI-rajapinnan kautta, ja sen muodostavia tapahtumia kutsutaan metatapahtumiksi.

MIDI-tiedosto alkaa aina otsikkolohkolla, jota seuraa yksi tai useampi raitalohko (Kuva 9). Eli mikä tahansa tavallinen MIDI-tiedosto alkaa neljällä kirjaimella "M", "T", "h", "d". Tämä tarkoittaa, että MIDI-tiedosto ei ole IFF-spesifikaatioiden mukainen (joka edellyttää, että jokainen IFF-yhteensopiva tiedosto alkaa ylätason lohkolla, joka on yksi kolmesta tyypistä - "FORM", "CAT" tai "LIST"). Muitakin eroja on: SMF ei voi sisältää sisäkkäisiä lohkoja, eikä lohkon pituuden tarvitse olla parillinen. SMF:n muuntaminen IFF-yhteensopivaksi tiedostoksi on kuitenkin yksinkertaista. Riittää, kun täytetään nollatavuisilla parittomilla lohkoilla (jos sellaisia ​​on) ja sijoitetaan kaikki sisältö FORM-lohkoon. Samanlaista toimintoa käytetään Microsoftin ehdottamassa RMID-muodossa (katso sivupalkki).