Sisällysluettelo:

Max MSP Ambient Loop Generator: 19 vaihetta
Max MSP Ambient Loop Generator: 19 vaihetta

Video: Max MSP Ambient Loop Generator: 19 vaihetta

Video: Max MSP Ambient Loop Generator: 19 vaihetta
Video: Max/Msp Random Stuff #1: Simple Ambient Pad Generator 2024, Heinäkuu
Anonim

Tämä on opetusohjelma siitä, miten voit aloittaa ympäristösilmukkageneraattorin tekemisen Max MSP: ssä.

Tämä opetusohjelma edellyttää, että sinulla on perustiedot Max MSP: stä, DAW -rajapinnoista ja signaalinkäsittelystä. Jos haluat käyttää tässä opetusohjelmassa suunniteltua ohjelmaa, lataa se ja käytä sitä ilmaiseksi (mutta ei myydä tai julkaista uudelleen)!

Suunnittelemassamme ohjelmassa on KAKSI pääosaa:

1) Monisignaaliprosessori

2) Puolisatunnaistettu muistiinpanojen generaattori

Muistiinpanojen generaattori kulkee hitaasti avainta/asteikkoa pitkin satunnaisesti, syöttäen MIDI-tiedot DAW: hen, joka puolestaan lähettää äänen takaisin Maxiin käsiteltäväksi.

Tässä on linkki lopulliseen korjaustiedostoon:

Tarvikkeet:

  • Max MSP- ja MIDI -perustiedot
  • Suurin MSP
  • Ääniliitäntä (käytämme Logic Pro X: tä)
  • Soundflower
  • (Valinnainen) Hyviä ohjelmisto -instrumenttilaajennuksia DAW -laitteellesi

Vaihe 1: Soundflowerin määrittäminen Maxin ja DAW: n avulla

Soundflowerin määrittäminen Maxin ja DAW: n avulla
Soundflowerin määrittäminen Maxin ja DAW: n avulla
Soundflowerin määrittäminen Maxin ja DAW: n avulla
Soundflowerin määrittäminen Maxin ja DAW: n avulla

Soundflower on ohjelma, joka auttaa lähettämään ääntä Macin ohjelmien välillä. Käytämme tätä saadaksemme ääntä DAW: stä Max.

Soundflowerin käyttö DAW: n kanssa ei voisi olla helpompaa! Lataa vain Soundflower, niin se on käytettävissä käytettäväksi äänilähtönä ja tulona. Jos luomme adc ~ (äänitulo) ja dac ~ (audio output) -objektit, voimme nähdä, että Soundflower 2ch ja Soundflower 64ch tulevat käyttökelpoisiksi äänireiteiksi. Käytämme tässä ohjelmassa Soundflower 2ch -kanavaa (2 -kanavainen).

Lisää Maxissa valitsin kytkeäksesi tulosi päälle ja pois päältä ja vahvistusliukusäädin äänenvoimakkuudelle, niin olet matkalla.

DAW: n kohdassa Asetukset> ääni näet äänitulon ja äänilähdön. Äänilähtönä käytämme Soundflower 2ch -kanavaa.

Vaihe 2: Päätä signaalinkäsittelypolku

Päätä signaalinkäsittelypolku
Päätä signaalinkäsittelypolku

Yksinkertaisesti sanottuna, vääristyykö äänesi useilla eri kanavilla vai kaikki yhdellä suoralla linjalla?

Päätimme käyttää rinnakkaista äänenkäsittelyä - signaalimme vääristyy useilla eri kanavilla. Tämä antaa meille mahdollisuuden saada selkeämpi ääni ja hallita signaalia paremmin, mutta työntää paljon äänenvoimakkuutta päävahvistukseen, mikä johtaa leikkaamiseen. Päätimme, että enemmän hallintaa kannatti vääristynyt ääni, koska tämä luo joka tapauksessa ympäristösilmukoita!

Lisäksi sinun on päätettävä, mitä tehosteita haluat luoda. Esittelemme tässä joitakin vaikutustyyppejä, jos haluat ideoita.

Vaihe 3: Kuivan seoksen lisääminen

Kuivan seoksen lisääminen
Kuivan seoksen lisääminen
Kuivan seoksen lisääminen
Kuivan seoksen lisääminen

Lisäsimme ensin "kuivaseoksen", jotta meillä olisi erillinen, vaikuttamaton äänisignaali. Tämä tehtiin suorittamalla adc ~ -lähtö vahvistuksen liukusäätimelle (valitsimella, jotta sitä on helppo tarkastella), svf ~ -suodattimeen, jossa on valitsin alipäästösuodatuksen säätämiseksi, ja sitten master -vahvistukseen ja ulos dac ~: een. Kuivan sekoituksen ottaminen voi olla melko kätevää, joten suosittelemme sitä, jos haluat pitää asiat hieman selkeältä ja helpolta testata!

Olemme saattaneet kiinnittää huomiosi vähän siellä - suoritamme kaikki tehosteet erillisiin svf ~ -suodattimiin, jotta meillä on äänivalinnat kullekin signaalikanavalle. Tämä helpottaa äänitilan tyhjentämistä, kun tietty tehoste on liian korkea taajuus. Teimme kaikki svf ~ alipäästösuodattimemme (kytkemällä alipäästösignaalin), joten ne katkaisevat asteittain korkeat taajuudet kääntämällä valitsinta alas. Svf ~: llä on kuitenkin myös kaistanpäästö (valikoiva taajuus), ylipäästö (poista matalat) ja muut hyödylliset suodattimet. Kokeile nähdäksesi mitä pidät ja tarvitset tai käytä jopa useita suodattimia!

Vaihe 4: Pitchin vaihtaminen Pitchshifterillä

Vaihdeväli Pitchshifterillä
Vaihdeväli Pitchshifterillä
Vaihdeväli Pitchshifterillä
Vaihdeväli Pitchshifterillä

Jos haluat yksinkertaisen ja helppokäyttöisen pikakytkimen, kopioi pikakytkimen koodi pikakytkimen ohjeesta Max. Koodimme on hyvin samanlainen, mutta poistaa ominaisuuksia, kuten liukumisen ja useita äänenlaatuasetuksia sotkun vähentämiseksi. Kun käytät tätä ääntä (rinnakkaisääntä varten adc ~ tai sarjaäänen kuivaseoksesta), voit säätää äänenvoimakkuuden siirtymisen tasoa valitsimella.

Kuten kuivaseoksessa, lisäsimme vahvistuksen liukusäätimen ja svf ~ -objektin äänenvoimakkuuden säätöön ja taajuuskorjaimen muotoiluun.

Vaihe 5: VÄÄRÄ

VÄÄRISTYMÄ!
VÄÄRISTYMÄ!
VÄÄRISTYMÄ!
VÄÄRISTYMÄ!
VÄÄRISTYMÄ!
VÄÄRISTYMÄ!

Overdrive ~ -objektin käyttö on yksinkertaisin tapa lisätä vääristymiä. Voit käyttää sitä vahvistusliukusäätimessä ja suodattimessa ja kutsua sitä päiväksi. Otimme kuitenkin muutaman askeleen pidemmälle. Ensinnäkin juoksimme vasemman ja oikean äänireitin erillisiksi vaihesiirto -objekteiksi - nämä asettavat vasemman ja oikean äänireitin pois vaiheesta ja "sakeuttavat" ääntä, kuten kuoropedaali saattaa.

Lisäksi lähetimme tuloksena olevan äänen kaskadiobjektiin, johon oli liitetty suodatinkuvaaja. Tämän avulla voit vääristää ääntä enemmän tai vähemmän tietyillä taajuuksilla ja niin monella suodatinkaistalla kuin haluat. Vääristymissuodatin otettiin malliksi 1980-luvun Boss HM-2 Heavy Metal -polkimen vääristymän jälkeen.

Tässä vaiheessa aloitimme myös omx.peaklim ~ -objektien lisäämisen erityisen meluisten tehosteiden jälkeen - tämä objekti rajoittaa sen kautta tulevaa äänisignaalia kuten kompressori, mikä helpottaa lopullisen äänireitin leikkaamista.

Vaihe 6: Dronin voima

Dronin voima
Dronin voima
Dronin voima
Dronin voima

Tunsimme myös tarpeelliseksi lisätä "droning" -taajuuden laastariin. Vaikka tämä olisi voitu saavuttaa sykliobjektilla yksinkertaisen oskillaattorin luomiseksi, se ei olisi ollut kovin mukautuva alkuperäisen äänen äänenvoimakkuuden tai taajuuden muutoksiin. Siksi käytimme svf ~ -suodatinta luodaksemme erittäin kaikuva äänipolun. Suorittamalla ääni svf ~ -suodattimeen ja asettamalla resonanssiksi 1, luomme droning -taajuuden, joka liikkuu sisään ja ulos äänireittimme tavoin ja jota voidaan sitten säätää äänenvoimakkuuden, äänen ja taajuuden mukaan. Liitetyn valitsimen säätäminen säätää droning -taajuutta.

Vaihe 7: Bizarre: Ring Modulationin syöttäminen

Siirtyminen Bizarre: Ring Modulation -sovellukseen
Siirtyminen Bizarre: Ring Modulation -sovellukseen
Siirtyminen Bizarre: Ring Modulation -sovellukseen
Siirtyminen Bizarre: Ring Modulation -sovellukseen

Nyt siirrytään lisäämällä rengasmodulaatiota! Tämä hauska ja viileä vaikutus on äärimmäisen helppo tehdä, ja ymmärretään hyvin väärin, koska se kuulostaa… hieman hassulta. Tämä saavutetaan liittämällä valitsin *~ -objektiin oikeassa sisääntulossa ja vasemmassa sisääntulossa kiinnittämällä valitsimemme. Otimme tämän askeleen pidemmälle - kun rengasmodulaattorimme on kokonaan alas, portti sulkee numerosignaalinsa, joten rengasmoduulin signaali katkeaa kokonaan. Lisäksi sen voi myös vaihtaa toiseksi * -objektiksi, mikä vähentää taajuutta määrätyllä määrällä. Tällä tavoin voimme saada "hienon", tremolo-tyyppisen rengasmoodin ja nopeamman, oudon kuuloisen rengasmodulaation. Kuten muutkin tehosteet, tämä ajettiin vahvistusliukusäätimeen ja svf ~ -suodattimeen.

Vaihe 8: Viive ja signaalin heikentäminen… Degrad… Deg… D…

Viive ja signaalin heikentäminen… Degrad… Deg… D…
Viive ja signaalin heikentäminen… Degrad… Deg… D…
Viive ja signaalin heikentäminen… Degrad… Deg… D…
Viive ja signaalin heikentäminen… Degrad… Deg… D…

Tässä luomme viiveen ajanohjauksella, palautevalitsimella, äänivalinnalla ja näytteen huonontumisella. Tämän avulla voimme jäljitellä analogista viivettä tekemällä signaalista vähitellen hiljaisempaa ja vääristyneempää. Tätä varten käytämme yhdistettyjä tapin ~ ja tapout ~ -objekteja. Kirjoitamme 5000 tapin ~: n jälkeen varmistaaksemme, että sillä on 5000 ms muistiaikaa. Lisäämällä heikkenevä objekti voimme tuhota signaalin asteittain. Sitten suoritamme äänen adc ~: sta hajoamisobjektiimme, tapin ~: iin, tapout ~: ksi ja samanaikaisesti takaisin hajoamiseen ~ a *~: sta ja pois *~: sta vahvistuksemme hallintaan. Tämän avulla voimme liittää valitsimen säätääkseen itselleen palaavan viiveen äänenvoimakkuutta ja saadaksemme *~ -objektista tulevan viivästetyn signaalin lähtöihimme. Lisäksi heikentävän objektin asettaminen ennen tapin ~ antaa meille mahdollisuuden lisätä yhä enemmän näytteen pienentämistä signaalin viivästyessä. Tarkista kuva ja koodi saadaksesi selkeän kuvan siitä, miten tämä kaikki tehtiin.

Vaihe 9: Belton Brick Style Reverb

Beltonin tiilityylinen kaiku
Beltonin tiilityylinen kaiku
Beltonin tiilityylinen kaiku
Beltonin tiilityylinen kaiku

Belton-tiilikaiku tarkoittaa kaiku, joka on varustettu Accu-Bell BTDR Digi-log-sirulla, jonka on suunnitellut Brian Neunaber Neunaber Effectsistä. Tämä siru mahdollistaa yksinkertaiset jousikaistat käyttämällä porrastettuja viivaviivoja. Tämän jäljittelemiseksi olemme koodanneet uuden viiveen yhdellä valitsimella ajan ja palautteen säätämiseksi. Aika ei koskaan ylitä 100 ms, ja palaute on rajoitettu 80%: iin. Tämä yksinkertainen viive antaa helpon jousikaikuäänen! Vahvistuksen ja sävyn hallintaan uudelleen.

Vaihe 10: Satunnainen stereoremolo

Satunnainen stereo vibra
Satunnainen stereo vibra
Satunnainen stereo vibra
Satunnainen stereo vibra

Viimeinen signaalivaikutuksemme! Täällä olemme luoneet saman koodin, jota käytettiin aiemmin rengasmodulaattorilla, muutamalla käänteellä: tremolon syvyys on satunnaistettu ja vasemmalla ja oikealla kanavalla on tremolo. Lisäksi asetamme tämän yksikön sarjaan, jotta kaikki tehosteet tulevat nyt sen eteen, joten tremolot tuottavat jokaisen signaalin.

Tätä varten jäljittelemme aikaisempaa soitto -mod -koodia ja joitakin muutoksia: signaali kulkee nyt kahteen porttiin, jotka avautuvat, kun toinen suljetaan. Tämä sallii signaalin joko vaikuttaa tai olla tarttumatta sen sijaan, että se vaikuttaisi tai olisi vain pois päältä. Tämä tehtiin!- objektilla. Valintamme osuu rand ~ -objektiin, sitten *~ ja +~, ja alas toiseen *~ oikeaan tuloon ja ääni vasempaan. Täällä on satunnaistettu tremolo, joka syttyy, kun valitsin on ylös ja alas, kun se on pois päältä!

Tämä ei tarvitse vahvistuksen tai sävyn säätöä, joten se menee vain suoraan dac ~ -objektiin.

Vaihe 11: Oskilloskooppi

Oskilloskooppi!
Oskilloskooppi!
Oskilloskooppi!
Oskilloskooppi!

Lopuksi lisäämme laajuusobjektin, joka on liitetty päävahvistuksen ohjauksen äänilähtöön. Lisäsimme myös valitsimen sen herkkyyden säätämiseksi!

Vaihe 12: Signaalinkäsittelymoduulin esittely

Esittelyssä signaalinkäsittelymoduuli
Esittelyssä signaalinkäsittelymoduuli

Lopetamme tämän osion antamalla koodillemme jonkin verran hohtoa esitystilassa. Lisää vain yksittäiset soittimet ja kommenttikentät esitystilaan, ja olet hyvä mennä! Annoimme ylimääräistä hohtoa värillisillä laatikoilla ja erilaisilla kirjasin- ja taiteellisilla suunnittelupäätöksillä. Lisäksi suunnittelu perustui kitarapedaalimalleihin: soittaa merkityillä riveillä ja osissa, jotta signaalireitti olisi helppo ymmärtää. Pidä hauskaa tämän osan kanssa!

Vaihe 13: Osa 2: Sointugeneraattori

Meillä on nyt täysin toimiva signaaliprosessori Maxissa, tarvitsemme vain ääntä syötettäväksi siihen. Soundflowerin avulla voimme ohjata kaiken lähetettävän äänen signaaliprosessorin kautta, kunhan lähde on tietokoneesi!

Jotta voimme luoda omat ympäristösilmukat, meidän on kuitenkin tehtävä toinen Max -korjaustiedosto. MIDI -tehon ansiosta valmis korjaustiedosto toimii tehokkaasti uutena MIDI -ohjaimena DAW -laitteellesi lähettäen muistiinpanoja suoraan siihen, jolloin voit käyttää mitä tahansa valitsemasi tai suunnittelemasi instrumenttia! Toisin kuin ulkoinen MIDI -ohjain, max -teholla voimme luoda MIDI -ohjaimen, joka voi toistaa kaiken yksinään, jolloin voit muokata sitä helposti signaaliprosessorilla.

Ainutlaatuisen nuotin luomiseksi käytämme arpeggiaattoria kolmioiden muodostamiseen, ja myöhemmin tarkastelemme kuinka koota algoritmi, jonka avulla arpeggiator voi hypätä sointujen välillä.

Vaihe 14: Muistiinpanojen syöttäminen Arpeggiatoriin

Muistiinpanojen syöttäminen Arpeggiatoriin
Muistiinpanojen syöttäminen Arpeggiatoriin
Muistiinpanojen syöttäminen Arpeggiatoriin
Muistiinpanojen syöttäminen Arpeggiatoriin

Ennen kuin voimme koota arpeggiaattorin yhteen, meidän on kyettävä luomaan soinnut sen sekvensoimiseksi. MIDI: ssä jokainen näppäimistön nuotti vastaa numeroa, ja keskimmäinen C on 60. Onneksi numerot ovat peräkkäisiä, joten soveltamalla jotakin musiikkiteoriaa voimme luoda oikeat aikaväliä, jotka vastaavat eri näppäinmerkintöjä.

Käyttämäsi avainallekirjoitukset ovat sinun valintasi, mutta voit myös seurata valitsemiasi 4 avainallekirjoitusta. Myöhemmin lisäämme tähän koodin osaan, jotta se voi selata avainmerkintöjä yksinään, joten valitsimme suuren, pienen, suuren seitsemännen ja pienen seitsemännen, jotta säilytämme tonaalisuuden, kun ohjelma kiertää sointuja.

Ensimmäiseen kuvaan viitaten suurin osa tästä osiosta on vain matematiikkaa, joka vastaa näiden näppäinten aikavälejä. Alkaen vasemmasta laatikosta, jossa on merkintä '60', se on juuri. Aina kun juuri muuttuu, välit muuttuvat vastaavasti nykyisen avaimen mukaan. Esimerkiksi, jos pääavain on valittuna, vastaavat välit ovat 4 ja 7. Ne kulkevat sitten +0 -ruutujen läpi, jotka lisäävät kyseisen välin juuriin ja antavat sinulle kolme nuottia, joilla voit tehdä suuren soinun, alkaen mikä tahansa juuri!

Vaihe 15: Muokkaa niitä sointuja

Arpeggiating niitä sointuja
Arpeggiating niitä sointuja
Arpeggiating niitä sointuja
Arpeggiating niitä sointuja
Arpeggiating niitä sointuja
Arpeggiating niitä sointuja

Katso Arpeggiaattorin koodi yllä olevasta kuvasta. Laskuriobjektin ja siihen liitettyjen 0, 1 ja 2 objektilaatikoiden avulla voit hallita muuntajan suuntaa ylös, alas ja ylös alas.

Kuten yllä on esitetty, juuri luomamme intervalligeneraattori reititetään 'int' -laatikoihin, joten laskurin ja valintalaatikoiden toimiessa se kulkee sointu toisesta koodiosasta. Tämä kulkee sitten "makenote" - ja "noteout" -ruudun läpi, jotta nämä MIDI -numerot muuttuvat lopulta ääniksi!

Huomaa Max 1 -objektin "portti", joka on liitetty "huomautus" -laatikkoon, koska tämän avulla voit lähettää MIDI -tiedot Maxista DAW -laitteeseesi.

'Metro' -objekti määrittää millisekunteina kuinka kauan kunkin välin välillä on aikaa. Minulla on oletuksena 500 ms, ja jos noudatat liitteenä olevaa koodia, voit säätää liukusäätimen avulla, kuinka monta millisekuntia on kunkin välin välillä

Vaihe 16: Avaimen sekoittaja

Avainhämppäri
Avainhämppäri

Yllä olevassa kuvassa on koodinpätkä, jonka avulla ohjelma voi automaattisesti selata avainmerkintöjä, jolloin voit luoda spontaaneja sointuja, kun valitset erilaisia juurimuistioita.

"Valitse" -objekti toimii hyvin samalla tavalla kuin arpeggiator -osion objekti, mutta tietyn sekvenssin sijaan käytämme "urn" -ruutua selaamaan avaimet satunnaisesti. Uurnilaatikko eroaa satunnaisesta siitä, että se ei toista numeroa ennen kuin se on käynyt läpi koko alueen, mikä puolestaan antaa meille tasaisen jakauman eri näppäinten välillä.

Vaihe 17: Taikuuden toteuttaminen itsenäisen muistiinpanon luomisen avulla

Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla
Taikuuden tapahtuminen itsenäisen muistiinpanon luomisen avulla

Tämä koodinpala saa tämän korjaustiedoston toimimaan itsenäisesti. Jos palaamme sointugeneraattoriin tämän jakson alusta, juuren vaihtaminen täyttää automaattisesti seuraavat välit, joten voimme käyttää sitä ainutlaatuisten sointujen etenemiseen!

Tärkein kohde tässä on 'itable' eli suuri neliö, jossa on pieniä sinisiä suorakulmioita. Liittämällä tämän metroparametriin muuntajasta (laatikko asetettu 500: een) voimme hallita tarkkaa pistettä muuntajan sekvenssissä, jota sointu muuttaa. Koska Arpeggiator toimii 3: n sarjassa, itable -koko on asetettu 12: ksi, jotta voidaan suorittaa 4 sykliä, ja alue on asetettu 2: ksi, joista 2 toimii "ei" ja 1 "kyllä", onko ei muuta sointua. Kun järjestys on pääkoodissa, muuntaja siirtyisi yhden triadin läpi, sitten syntyisi uusi sointu ja se kulkisi kyseisen kolmikon läpi ja niin edelleen.

"Satunnaiset" laatikot määrittävät, kuinka kaukana uusi juuri on alkuperäisestä. Tällä hetkellä olen määrittänyt sen niin, että se voi nousta jopa puoli oktaavia ylös tai alas.

Koodin kokonaiskuvassa, vasemmalla puolella, pohjassa oleva 67 -numerolaatikko on kiinnitetty sointugeneraattorin juurenumerolaatikkoon, joten mikä tahansa numero syntyy itableista ja siihen liitetty algoritmi menee sointuun generaattoriin ja sitten arpeggiatoriin, jossa se soittaa juuri valitun soinun. Sen yläpuolella oleva 67 -numeroinen laatikko, joka juoksee +0 -laatikkoon, on kiinnitetty yllä olevaan piano -esineeseen, joka on myös kiinnitetty sointigeneraattorin juuresta. Tämä johtuu siitä, että kun tämän koodinpalan algoritmi luo numeron, se valitaan myös pianolla, joten se laukaisee kyseisen nuotin soiton.

Lopullisessa koodissa tämä osa näkyy kahdesti, ainoa ero on itable. Katso erillisestä liitetiedostosta, miten se tehdään niin, että uusi sointu syntyy sen jälkeen, kun muuntaja toistaa jakson 4 kertaa.

Vaihe 18: Viimeistely

Viimeistelyt
Viimeistelyt

Sinulla pitäisi nyt olla täysin toimiva itsepelaava arpeggiator! Jos kuitenkin haluat lisätä hieman enemmän valvontaa, yllä olevan kuviokoodin avulla voit hallita soitettavien nuottien kestoa, joten voit saada pitkälle vedetyt nuotit, jotka sopivat täydellisesti hitaaseen, kuiskaavaan, ympäröivään silmukkaan.

Liitteenä on myös pysäytysobjekti, joka on erityisen hyödyllinen, kun käytät Maxia DAW: n läpi. Jos Maxilla on ongelmia MIDI -tietojen välittämisessä, voit ohittaa sen ja lopettaa sen sulkematta Maxia tai DAW: ta kokonaan.

Vaihe 19: Kääriminen kaikki ylös

Kääriminen kaikki ylös
Kääriminen kaikki ylös

Ohjelma on nyt toiminnallisesti valmis, kaikki mitä on tehtävä, on järjestää kaikki esitystilaan. Tähän ei ole yhtä ratkaisua, se riippuu täysin siitä, mitä haluat hallita pintatasolta.

Valikoimani kattaa kaiken olennaisen, mitä haluan pystyä helposti moduloimaan, joten voit lisätä siihen tai ottaa pois sen kuin parhaaksi näet.

Nyt on vain tutustuttava näihin kahteen laastariin ja aloitettava musiikin luominen!

Nauttia!

Suositeltava: