Taula de continguts:

Mòdul de sintetitzador Raspberry Pi Stompbox: 6 passos (amb imatges)
Mòdul de sintetitzador Raspberry Pi Stompbox: 6 passos (amb imatges)

Vídeo: Mòdul de sintetitzador Raspberry Pi Stompbox: 6 passos (amb imatges)

Vídeo: Mòdul de sintetitzador Raspberry Pi Stompbox: 6 passos (amb imatges)
Vídeo: Electronics Bash - Arduino #1 - Getting Started 2024, Desembre
Anonim
Mòdul de sintetitzador Raspberry Pi Stompbox
Mòdul de sintetitzador Raspberry Pi Stompbox
Mòdul de sintetitzador Raspberry Pi Stompbox
Mòdul de sintetitzador Raspberry Pi Stompbox

L’objectiu d’aquest projecte és posar un mòdul de so basat en Fluidsynth en un stompbox. El terme tècnic de so "mòdul de so" en aquest cas significa un dispositiu que agafa missatges MIDI (és a dir, valor de nota, volum, pitch bend, etc.) i sintetitza sons musicals reals. Ajusteu-ho amb un controlador MIDI (que és legió, barat i sovint molt divertit (com ara les tecles de teclat)) i teniu un sintetitzador que podeu modificar i ajustar sense parar i dissenyar-lo de manera que s’adapti al vostre estil de joc.

Una visió general d’aquest projecte és que prenem un petit ordinador Linux de placa única (un Raspberry Pi 3 en aquest cas), hi adjuntem un LCD de caràcters, un parell de botons i una targeta de so USB (ja que el so incorporat del Pi no és molt bo), i emboliqueu-ho tot en un stompbox Hammond 1590bb (com els que s’utilitzen per a efectes de guitarra) amb algunes connexions exteriors per a USB MIDI, alimentació i sortides d’àudio. A continuació, configurem el programari intern per executar un programa a l’inici que executa FluidSynth (un sintetitzador de programari gratuït, multiplataforma i excel·lent), que controla la pantalla LCD i ens permet canviar parches i paràmetres mitjançant els botons.

No entraré en detalls detallats pas a pas sobre aquesta compilació (hi ha un munt de tutorials hey-i-made-a-cool-raspberry-pi-case), sinó que intentaré centrar-me en el perquè diverses opcions en la construcció i el disseny a mesura que anava. D’aquesta manera, amb sort, podeu fer modificacions perquè s’adaptin als vostres propis propis sense quedar atrapats fent coses que després resultin que no funcionen.

ACTUALITZACIÓ (maig 2020): tot i que aquest instructiu segueix sent un bon lloc per començar per a un projecte com aquest, he fet moltes millores tant en el maquinari com en el programari. El programari més recent és FluidPatcher, disponible a GitHub. Consulteu la wiki per obtenir molts detalls sobre la configuració del Raspberry Pi. Consulteu el meu lloc Geek Funk Labs per obtenir notícies i actualitzacions contínues a SquishBox.

Subministraments

Aquesta és una breu llista (i explicació) dels components més crucials:

  • Ordinador Raspberry Pi 3: qualsevol ordinador Linux de placa única podria funcionar, però el Pi 3 té prou potència de processament per executar Fluidsynth sense latència i memòria suficient per carregar grans fonts de so. L’inconvenient és que té un so a bord deficient, de manera que necessiteu una targeta de so USB. El CHIP és una alternativa que estic explorant (petjada més petita, millor so, però menys memòria / processador)
  • Tancament Hammond 1590BB: us suggereixo comprar-ne un de precapat si voleu color, tret que pinteu capses de pedestals. Vaig navegar per molts taulers de missatges, però crec que no tinc la paciència ni el tipus de pintura adequat, perquè després de dos intents els meus resultats són bastant així.
  • Targeta de so USB: en podeu trobar una adequada bastant barata. Segons aquest preciós tutorial d'Adafruit (un dels molts), hauríeu de quedar-vos amb un que utilitzi el chipset CM109 per obtenir la màxima compatibilitat.
  • LCD de caràcters: hi ha molts llocs diferents per obtenir-los, però els pinouts semblen ser bastant estàndard. Assegureu-vos que obtingueu llum de fons perquè pugueu veure els vostres presets quan es juga als clubs fumadors.
  • Interruptors estomacals momentanis (2): una mica més difícils d’obtenir, però em vaig posar momentàniament en lloc d’activar per poder tenir més versatilitat. Puc simular la commutació en el programari si vull aquest comportament, però d’aquesta manera també puc tenir diferents funcions per tocar curt, prémer llarg, etc.
  • Barret Adafruit Perma-Proto per a Pi: això em va ajudar a connectar la pantalla LCD i altres components al port d’expansió del Pi sense ocupar gaire espai. Si hagués provat d'utilitzar perfboard normal, hauria hagut de sortir dels costats del Pi per connectar-me a tots els pins GPIO necessaris. El revestiment de doble cara i els forats de muntatge coincidents també van ser molt útils. A la llum de tot això, era realment l'opció més barata.
  • Connectors USB: 1 femella de tipus B per alimentar i dos de tipus A masculí i femení de tipus A amb els quals es fabriquen uns cables extensors prims i flexibles per a connexions internes.
  • Preses d'àudio de 1/4 ": he utilitzat un estèreo i un mono. D'aquesta manera, l'estèreo pot ser un jack per a auriculars / mono o simplement portar el senyal esquerre si l'altra presa està connectada.

Pas 1: electrònica interna

Electrònica interna
Electrònica interna
Electrònica interna
Electrònica interna
Electrònica interna
Electrònica interna

Connectarem la pantalla LCD i els seus components associats i els polsadors al Pi Hat. A més, afegirem una presa USB-B i USB-A per connectar l’alimentació i un dispositiu MIDI, respectivament. Portem el port USB-A perquè hem d’utilitzar un dels ports USB del Pi per connectar la targeta de so, que volem tenir dins del recinte, de manera que no podem tenir els ports USB al mateix nivell que el lateral de la caixa. Vaig utilitzar un port USB-B per alimentar-me perquè em semblava que podia agafar més càstig que el connector d'alimentació micro-USB del Pi, a més de que no trobava una bona orientació on el connector pogués estar al costat de la caixa de totes maneres.

Haureu d’utilitzar un ganivet per tallar els rastres entre els forats on soldareu els passadors de les preses USB. Tingueu cura de no tallar cap rastre intern del tauler que connecta els altres pins, o si accidentalment (com jo) els torneu a connectar mitjançant un cable de pont. Els pins Vcc i GND de la presa USB-B passen a 5V i GND al port d’expansió del Pi, respectivament. D'aquesta manera, podeu alimentar el vostre Stompbox amb un carregador de telèfon (suposant que té prou amperatge; 700 mA sembla que funcionen per a mi, però és possible que vulgueu més per assegurar-vos que el port USB tingui prou suc per alimentar el controlador) i un cable USB A-B.

Trobo que les longituds de cables de cinta funcionen molt bé per connectar coses amb molts pins sense tenir massa espaguetis de filferro. Vaig fer això en lloc de soldar capçaleres masculines a la pantalla LCD i després soldar-la al barret perquè sentia que necessitava una mica de llibertat per col·locar la pantalla LCD per poder centrar-la molt bé. La pantalla LCD hauria de venir amb un potenciòmetre que utilitzeu per ajustar el contrast; assegureu-vos de col·locar-la en un lloc on no estigui cobert per la pantalla LCD, de manera que pugueu fer un forat a la caixa per arribar-hi i ajustar el contrast una vegada. tot està muntat.

Consulteu l’esquema per obtenir detalls sobre què es connecta on. Tingueu en compte que els polsadors estan connectats a 3,3 V, no a 5 V. Els pins GPIO només es classifiquen en 3,3 V - 5 V perjudicaran la vostra CPU. La presa USB-A es connecta a una altra tira de cable de cinta, que podeu soldar a un endoll USB que connectareu a un dels ports USB del Pi per al vostre controlador MIDI. Talleu qualsevol metall addicional de l’endoll perquè en surti menys i utilitzeu cola calenta per alleujar la tensió; no ha de ser bonic, ja que quedarà amagat dins de la caixa.

Pas 2: cablejat de sortida d'àudio

Cablejat de sortida d'àudio
Cablejat de sortida d'àudio
Cablejat de sortida d'àudio
Cablejat de sortida d'àudio
Cablejat de sortida d'àudio
Cablejat de sortida d'àudio

Per molt petita que sigui la targeta de so USB que trobeu, probablement aquesta o el seu endoll quedaran massa lluny dels ports USB del Pi perquè hi pugui quedar tot. Per tant, soldeu un altre connector USB curt d’un cable de cinta, endolls USB i cola calenta com es mostra a la imatge superior. La meva targeta de so encara era una mica massa grossa per cabre al recinte amb tota la resta, de manera que vaig treure el plàstic i el vaig embolicar en una cinta adhesiva per evitar que s’allunyés de les coses.

Per obtenir àudio de la targeta de so a les preses de 1/4 ", talleu l'extrem d'un auricular de 3,5 mm o d'un cable AUX. Assegureu-vos que tingui 3 connectors: punta, anell i màniga (TRS), en comptes de 2 o 4 La màniga ha d’estar a terra, la punta sol ser el canal correcte i l’anell (el connector central) sol deixar-se. Només es pot connectar la punta i l’anell a dos preses mono (TS - punta, màniga) de 1/4 "i acabar amb ell, però podeu obtenir una mica més de versatilitat amb una mica de cablejat addicional. Cerqueu un jack TS que tingui un tercer contacte momentani, tal com es mostra esquemàticament al diagrama anterior. La inserció d’un endoll trenca aquest contacte, de manera que, tal i com s’espera, es pot observar a partir del diagrama, el senyal esquerre es dirigirà a la presa TS si s’insereix un endoll i a l’anell de la presa TRS si no hi ha endollat. D’aquesta manera, podeu connectar els auriculars a la presa estèreo, un cable mono a la presa estèreo per obtenir un senyal combinat dret / esquerre (mono) o un cable a cada presa per a sortides separades dreta i esquerra (estèreo).

Vaig connectar els passadors de terra dels connectors a la del cable que prové de la targeta de so, de manera que tot el que hi ha a la caixa comparteixi la mateixa terra i eviti el desagradable brunzit dels bucles de terra. Tanmateix, en funció del que estigueu endollat, això pot tenir l’efecte contrari, de manera que és possible que vulgueu incloure un commutador que us permeti connectar o “aixecar” el sòl de les preses de 1/4.

Pas 3: Preparació del recinte

Preparació del recinte
Preparació del recinte
Preparació del recinte
Preparació del recinte
Preparació del recinte
Preparació del recinte

Aquest pas cobreix els forats de tall de la caixa de la pantalla, botons, connectors, etc.

Comenceu col·locant tots els components al recinte per assegurar-vos que tot s’adapti i estigui orientat de la manera correcta. A continuació, mesureu acuradament i marqueu on aneu a fer forats. Quan talleu forats rodons, us recomano començar amb una mica i treballar fins a la mida que necessiteu: és més fàcil centrar el forat i és menys probable que el trepant es quedi encallat. Els forats rectangulars es poden tallar perforant un forat a les cantonades oposades de l'obertura prevista i, a continuació, tallant amb una serra a les altres dues cantonades. Aquest gruix d’alumini talla molt bé amb una serra trencaclosques sempre que vagi suaument. Un fitxer quadrat és molt útil per reduir les cantonades de les obertures. Feu que les obertures dels endolls USB siguin una mica generoses per si teniu cables greixos.

Un epoxi de dues etapes (com el Gorilla Glue de la imatge) funciona bé per fixar els separadors del barret al recinte metàl·lic. Rasqueu una mica la superfície del recinte i la part inferior dels separadors amb llana d’acer o un tornavís perquè l’epoxi aconsegueixi una millor adherència. Recomano fixar els seus separadors al barret Pi abans d’enganxar-los perquè sàpiguen que estan posicionats correctament; aquí no hi ha molt espai per moure’s. Només he fet servir tres enfrontaments perquè la meva pantalla LCD s’interposa en la quarta. Barregeu els dos components de l’epoxi, enganxeu-ne alguns als separadors i fixeu-los al seu lloc. Eviteu moviments o recol·locacions de les peces després de més de 10-15 segons, ja que la unió serà trencadissa. Doneu-li 24 hores per configurar-lo perquè pugueu continuar treballant. Es triga uns quants dies a curar-se completament, de manera que no estresseu el vincle innecessàriament.

Tret que vulgueu fer una altra afició amb la pintura de caixes de pedestals, us suggereixo deixar l'alumini nu (en realitat no té mal aspecte) o comprar un recinte pintat prèviament. La pintura no vol unir-se al metall. Si voleu provar-lo, llisqueu-lo a tot arreu on vulgueu que s’enganxi la pintura, primer utilitzeu una bona pintura corporal per a autoimprimació, apliqueu diverses capes del color que vulgueu i deixeu-la assecar el major temps possible. De debò: els maniàtics dels taulers de missatges suggereixen coses com deixar-ho al sol directe durant tres mesos o en un forn de torradora que estigui baix durant una setmana. Després d’esborrar les restes arrugades i pelades del meu primer treball de pintura, el meu segon intent segueix aconseguint estelles i gorgs de coses com bolígrafs a la meva bossa de concerts, i l’acabat es pot fer amb una ungla. Vaig decidir cedir i vaig apostar per l'estil punk, fent servir el marcador blanc per a les lletres.

Pas 4: Configuració del programari

Configuració del programari
Configuració del programari
Configuració del programari
Configuració del programari

Abans d’introduir-ho tot a la caixa de pedres i fixar-lo bé, heu de configurar el programari al Raspberry Pi. Us suggereixo començar amb una nova instal·lació del sistema operatiu Raspbian, així que obteniu una còpia recent del lloc de la Fundació Raspberry Pi i seguiu les instruccions que hi apareixen per crear-les en una targeta SD. Agafeu un teclat i una pantalla o utilitzeu un cable de consola per iniciar sessió al Pi per primera vegada i accediu a una línia d’ordres. Per assegurar-vos que teniu les actualitzacions de programari i firmware més recents, introduïu

sudo apt-get update && sudo apt-get upgrade

sudo rpi-update

A continuació, voleu assegurar-vos que pugueu utilitzar el wifi per connectar-vos al Pi i fer modificacions un cop es faci botó dins del recinte. En primer lloc, activeu el servidor ssh escrivint

sudo raspi-config

i aneu a "Opcions d'interfície" i habiliteu el servidor ssh. Ara, afegiu una xarxa sense fils al pi editant el fitxer wpa_supplicant.conf:

sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

i afegint les línies següents al final:

xarxa = {

ssid = "la vostra xarxa" psk = "la vostra contrasenya"}

Substituïu la vostra xarxa i la vostra contrasenya per valors per a qualsevol xarxa a la qual vulgueu que el Pi es connecti de manera predeterminada: és probable que el vostre router wifi a casa o potser el punt d'accés del telèfon o un ordinador portàtil que funcioni en mode de punt d'accés. Una altra alternativa per connectar-vos al vostre Pi és configurar-lo com a punt d’accés wifi, de manera que pugueu connectar-vos-hi independentment d’on sigueu. La interfície que he escrit a continuació també us permet vincular un altre dispositiu bluetooth amb el Pi, després podreu connectar-vos-hi mitjançant serial-over-bluetooth.

Per instal·lar FluidSynth, escriviu

sudo apt-get install fluidsynth

Els fitxers adjunts a aquest pas proporcionen una interfície entre els controls stompbox i FluidSynth i s’han de copiar al directori / home / pi. Aquí teniu una breu explicació del que fa cada fitxer:

  • squishbox.py: un script python que s'inicia i es comunica amb una instància de FluidSynth, llegeix l'entrada dels botons stompbox i escriu informació a la pantalla LCD
  • config_squishbox.yaml: un fitxer de configuració en format YAML (majoritàriament) llegible per humans que emmagatzema la configuració i la informació de pegats per al programa squishbox
  • fluidsynth.py: un embolcall de python que proporciona enllaços a les funcions C de la biblioteca FluidSynth, amb molts enllaços addicionals que he afegit per accedir a més funcions de FluidSynth
  • ModWaves.sf2: una font de so molt petita que he proporcionat per demostrar l’ús i la potència dels moduladors en format Soundfont

Disposar d’un script Python per configurar el procés FluidSynth i gestionar totes les coses del botó / LCD funciona força bé: els missatges MIDI van directament a FluidSynth i l’script només hi interacciona quan ho necessita.

L'escriptura Python necessita un parell de biblioteques Python que no estan instal·lades per defecte. Podeu instal·lar-les directament des de l’índex de paquets Python mitjançant l’eina de pip útil:

sudo pip instal·la RPLCD pyyaml

Finalment, voleu que el Pi executi l’escriptura python a l’arrencada. Per fer-ho, editeu el fitxer rc.local:

sudo vi /etc/rc.local

Inseriu la línia següent just abans de la línia final "sortida 0" al fitxer:

python /home/pi/squishbox.py &

Pas 5: Assemblea final

Assemblea final
Assemblea final
Assemblea final
Assemblea final
Assemblea final
Assemblea final

Abans de posar totes les peces a la caixa, és molt bona idea connectar-ho tot i assegurar-se que el programari funciona, tal com es demostra a les imatges anteriors. Les imatges 3-6 mostren totes les parts individuals i progressivament com s’adapten a la meva caixa. La pantalla LCD es manté al seu lloc mitjançant els cables que hi pressionen, però podeu utilitzar una mica de cola calenta o afegir-hi cargols de muntatge més si no us agrada. La cinta adhesiva de color taronja a la tapa de la caixa és per evitar que el Pi es faci curt contra el metall.

És possible que hàgiu d’experimentar i reconfigurar-vos perquè les coses s’adaptin. Snug és bo: com menys parts es movin al quadre, millor. Sembla que la calor no és un problema i no he tingut cap problema amb el bloqueig del senyal wifi al recinte. No es mostren uns peus adhesius de goma (els podeu trobar a una ferreteria) a la part inferior de la caixa per evitar que rellisqui quan feu una sessió de cops.

Vigileu si hi ha cops / aixafaments / flexions imprevistos quan es cargolen les coses. Una cosa que s’ha de comprovar és que hi ha prou espai per a les preses de 1/4 quan s’insereixen els cables; les puntes sobresurten una mica més lluny que els contactes de la presa. A més, a la meva construcció vaig muntar el Pi una mica massa a prop de la vora de la caixa i el llavi de la tapa pressionat cap a l'extrem de la targeta SD i la van trencar; vaig haver de llimar una osca al llavi perquè això no passés.

Pas 6: Ús

Image
Image
Ús
Ús
Ús
Ús

El mòdul de so que he descrit en aquests passos i que executa el programari proporcionat anteriorment és bastant útil i extensible, però hi ha moltes modificacions / variacions possibles. Ací descriuré breument la interfície aquí: penso actualitzar-la contínuament en un dipòsit de github, on espero que també mantingui una wiki actualitzada. Per últim, parlaré de com podeu ajustar la configuració, afegir nous sons i fer les vostres pròpies modificacions.

Per començar, connecteu un controlador MIDI USB a la presa USB-A de la caixa, una font d’alimentació de 5 V a la presa USB-B i connecteu uns auriculars o un amplificador. Després d'una mica, la pantalla LCD mostrarà un missatge "squishbox v xx.x". Un cop aparegui el número i el número de pedaç, hauríeu de poder tocar notes. Si toqueu breument qualsevol dels botons, canvieu el pegat, manteniu premut un botó durant un parell de segons per accedir al menú de configuració i, si manteniu premut qualsevol dels botons durant aproximadament cinc segons, podreu reiniciar el programa, reiniciar el Pi o apagar el Pi (Tingueu en compte que el Pi no talla els pins GPIO quan s'atura, de manera que la pantalla LCD mai no s'apagarà. Espereu uns 30 segons abans de desconnectar-la).

Les opcions del menú de configuració són:

  • Patch d'actualització: desa tots els canvis que heu fet al pedaç actual
  • Desa un nou pegat: desa el pegat actual i tots els canvis com a nou pegat
  • Trieu Banc: el fitxer de configuració pot tenir diversos conjunts de pegats, cosa que us permet canviar entre ells
  • Establir guany: estableix el volum de sortida global (l'opció "guany" de fluidsynth), massa elevada dóna una sortida distorsionada
  • Chorus / Reverb: modifiqueu la configuració de reverb i chorus del conjunt actual
  • MIDI Connect: intenteu connectar un dispositiu MIDI nou si el canvieu mentre s’executa el programa
  • Parell Bluetooth: poseu el Pi en mode de descobriment perquè pugueu aparellar un altre dispositiu bluetooth amb ell
  • Estat Wifi: informeu de l'adreça IP actual del Pi perquè pugueu utilitzar-la

El fitxer config_squishbox.yaml conté informació que descriu cada pedaç, així com coses com l’encaminament MIDI, els paràmetres d’efectes, etc. Està escrit en format YAML, que és una forma entre llenguatges de representar dades que els ordinadors poden analitzar, però també és humana. -legible. Pot resultar força complex, però aquí només l’utilitzo com a forma de representar una estructura de diccionaris Python imbricats (matrius associatius / hash en altres idiomes) i seqüències (llistes / matrius). Vaig posar molts comentaris al fitxer de configuració de mostra i vaig intentar estructurar-lo de manera que es pugui veure progressivament què fa cada característica. Mireu i experimenteu si teniu curiositat i no dubteu a fer preguntes als comentaris. Podeu fer molt per canviar els sons i la funcionalitat del mòdul només editant aquest fitxer. Podeu iniciar la sessió i editar-lo de manera remota, o FTP un fitxer de configuració modificat al Pi, i després reiniciar-lo mitjançant la interfície o escrivint

sudo python /home/pi/squishbox.py &

a la línia d'ordres. El guió està escrit per matar altres instàncies en execució de si mateix quan s'inicia, de manera que no hi haurà conflictes. L'escriptura escopirà uns quants avisos a la línia d'ordres quan s'executa mentre busca els dispositius MIDI per connectar-se i busca en diversos llocs les vostres fonts de so. No està trencat, és una programació mandrosa per la meva part: els podria agafar, però afirmo que són diagnòstics.

Quan instal·leu FluidSynth, també obtindreu la font de so FluidR3_GM.sf2 gratuïta. El GM significa MIDI general, el que significa que conté "tots" els instruments, assignats a números predefinits i bancs acordats de manera que els reproductors MIDI que reprodueixen fitxers amb aquest font de so podran trobar aproximadament el so adequat per a piano, trompeta., cornamusa, etc. Si voleu sons més / diferents, podeu trobar molts sons gratuïts a Internet. El més important és que l’especificació de fonts de so està àmpliament disponible, en realitat és força potent i hi ha un meravellós editor de codi obert per a fonts de so anomenat Polyphone. Amb això, podeu crear els vostres propis fonts de so a partir de fitxers WAV en brut, a més podeu afegir moduladors a les vostres fonts. Els moduladors us permeten controlar molts dels elements de síntesi (per exemple, embolcall ADSR, embolcall de modulació, LFO, etc.) en temps real. El fitxer ModWaves.sf2 que he inclòs anteriorment proporciona un exemple d’utilitzar moduladors per permetre assignar la ressonància del filtre i la freqüència de tall a un missatge MIDI de canvi de control (que es pot enviar mitjançant un botó / control lliscant del controlador). Aquí hi ha molt de potencial: vaja a jugar!

Espero que aquest tutorial generi moltes idees i proporcioni als altres un bon marc per construir les seves pròpies creacions de sintetitzadors únics, a més de donar suport a la disponibilitat i desenvolupament continus de bones fonts de so, les especificacions de fonts de so i un gran programari lliure com FluidSynth i Polyphone.. La versió que he esbossat aquí no és ni la millor ni l’única manera de reunir una cosa així. Pel que fa al maquinari, les possibles modificacions poden ser una caixa més gran amb més botons, entrada / sortida MIDI heretada (de 5 pins) i / o entrades d'àudio. L'escriptura Python es pot modificar (disculpeu els meus comentaris escassos) per proporcionar altres comportaments que us puguin adaptar millor. Estic pensant en afegir un mode "efectes" a cada pegat on actuarà com una caixa de canvis d'efectes reals, canviant la configuració de i fora. També es podria afegir algun programari addicional per proporcionar efectes d'àudio digital. També crec que funcionaria millor que el Pi s'executés en mode AP wifi tal com s'ha descrit anteriorment, i fins i tot podria proporcionar una interfície web amigable per editar el fitxer de configuració. No dubteu a publicar les vostres pròpies idees / preguntes / debats al feed de comentaris.

Vull donar enormes mega accessoris als creadors de FluidSynth i Polyphone perquè proporcionin programari gratuït de codi obert que tots puguem utilitzar per fer una gran música. M'encanta fer servir aquesta cosa i ho heu fet possible.

Recomanat: