How do I control Max with messages?

Styr Max med beskeder: En dybdegående guide

02/02/2025

Rating: 4.46 (16279 votes)

Styr Max med beskeder: En dybdegående guide

Max, et kraftfuldt visuelt programmeringssprog til musik, lyd, video og interaktive medier, tilbyder en utrolig fleksibilitet, når det kommer til styring og automatisering. En af de mest effektive måder at interagere med Max-applikationen på er gennem beskedsystemet, som tillader dig at sende kommandoer direkte til selve Max-programmet. Dette åbner op for en verden af muligheder for at strømline din arbejdsgang, skabe komplekse automatiseringer og endda integrere Max med andre applikationer på et dybere niveau.

How do I control Max with messages?
Controlling Max with Messages You can control Max, MSP, and Jitter using the message box object. Normally, the message box contains an object, and you click on

Normalt interagerer du med Max ved at placere objekter i din patcher og forbinde dem med patch-kabler. Hvert objekt modtager og sender beskeder, som styrer dets adfærd. Men hvad nu hvis du ønsker at sende en besked direkte til Max-applikationen, som om du klikkede på en menu eller brugte en systemkommando? Det er her, beskeder, der starter med ;max, kommer ind i billedet. Ved at præfikse din besked med ;max, instruerer du Max til at behandle den efterfølgende tekst som en kommando til selve applikationen, ligesom hvis du havde brugt et [receive max] objekt.

Indholdsfortegnelse

Sådan sender du beskeder til Max-applikationen

For at sende en besked direkte til Max-applikationen skal du blot tilføje en beskedboks til din Patcher. I denne beskedboks skal du skrive ;max efterfulgt af den kommando, du ønsker at sende. Du kan endda inkludere variabler, for eksempel ;max pupdate $1 $2. Når du enten klikker på beskedboksen eller sender den en bang eller en værdi, vil beskeden blive sendt til Max-applikationen.

Denne metode er utroligt kraftfuld og giver adgang til en bred vifte af funktioner. Lad os dykke ned i nogle af de mest anvendelige kommandoer:

Fil- og projektstyring

Max tilbyder flere kommandoer til at håndtere filer og projekter:

  • buildcollective "" "": Bygger en collective baseret på den patcher, der er associeret med reference-symbolet. Collective'en navngives efter output-filnavnet.
  • closefile "": Lukker en patcher-fil, der tidligere blev åbnet med openfile-beskeden til Max, og som er associeret med det angivne reference-symbol.
  • openfile "" "": Forsøger at åbne en patcher med det angivne navn. Hvis det lykkes, associeres patchen med reference-symbolet, som kan bruges i andre kommandoer som buildcollective.
  • fileformat "" "": Fortæller Max at associere en filendelse med en bestemt filtype. For eksempel max fileformat .tx TEXT forbinder filendelsen .tx med tekstfiler.
  • externaleditor "": Sætter den tekst-editor, der bruges til at redigere tekstfiler som coll-filer, tekstfiler og Javascript-kode.
  • useexternaleditor 1: Aktiverer brugen af en ekstern editor til tekst.
  • useexternaleditor 0: Deaktiverer brugen af en ekstern editor.

Generel applikationskontrol

Du kan også styre selve Max-applikationens opførsel:

  • clean: Forhindrer Max i at vise en "Gem ændringer"-dialog, når du lukker et vindue eller afslutter programmet, selvom der er ulige gemte ændringer. Dette er især nyttigt i kombination med quit-beskeden.
  • quit: Afslutter Max-applikationen. Hvis der er ulige gemte ændringer, og du ikke har sendt clean-beskeden, vil Max spørge, om du vil gemme ændringerne.
  • relaunchmax: Lukker og genstarter Max-applikationen.
  • maxwindow: Viser Max Console. Hvis den ikke er åben, åbnes den. Hvis den er åben, bringes den i forgrunden.
  • clearmaxwindow: Rydder Max Console for alt indhold.
  • debug 1: Aktiverer afsendelse af Max' interne debugging-output til Max Console.
  • debug 0: Deaktiverer afsendelse af debugging-output.
  • hidecursor: Skjuler markøren, hvis den er synlig.
  • showcursor: Viser markøren, hvis den er skjult.
  • hidemenubar: Skjuler menulinjen. Genvejstaster fungerer stadig.
  • showmenubar: Viser menulinjen igen efter at være blevet skjult.
  • htmlref "": Finder og åbner filen <objekt_navn>.html i browseren, hvis den findes i søgestien.
  • launchbrowser "": Åbner en webbrowser og navigerer til den angivne URL.
  • system "" "": Udfører en besked, hvis Max kører på det specificerede operativsystem (f.eks. max system macintosh "quit").

Ydelses- og indstillingskontrol

Du kan finjustere Max' indre mekanismer for at optimere ydelse og tilpasse adfærd:

Vigtige Ydelsesindstillinger
BeskedBeskrivelse
interval <antal>Indstiller intervallet for Max' interne scheduler i millisekunder (1-20). Påvirker kun scheduleren, når Overdrive er slået til, og scheduler i audio interrupt er slået fra. Større intervaller kan forbedre CPU-effektiviteten på langsommere maskiner på bekostning af timing-nøjagtighed.
refreshrate <antal>Sætter begrænsningen for opdateringshastigheden for brugergrænsefladeobjekter i billeder pr. sekund (fps). En højere opdateringshastighed kan give bedre visuel ydelse i Jitter, men kan have en lille indvirkning på CPU'en.
setpollthrottle <antal>Indstiller det maksimale antal begivenheder, scheduleren udfører hver gang den kaldes (standard er 20). Et lavere tal kan mindske nøjagtigheden, men øge effektiviteten.
setqueuethrottle <antal>Indstiller det maksimale antal begivenheder, der håndteres ved lav prioritet, når den lavprioriterede køhåndterer kaldes (standard er 2). Ændring af denne værdi kan påvirke brugergrænsefladens responsivitet.
setslop <værdi>Indstiller schedulerens 'slop'-værdi, som er den tid, en planlagt begivenhed kan være tidligere end den aktuelle tid, før tiden justeres (standard er 25 ms).
setsysqelemthrottle <antal>Indstiller det maksimale antal patcher UI-opdateringsbegivenheder, der skal behandles ad gangen. Lavere værdier frigør mere CPU til andre processer, mens højere værdier gør brugergrænsefladen mere responsiv.

Håndtering af virtuelle MIDI-enheder

Max giver også mulighed for at styre virtuelle MIDI-porte, især på macOS:

  • disablevirtualmididestinations 1: Forhindrer Core MIDI-driveren i at oprette virtuelle destinationer.
  • disablevirtualmididestinations 0: Tillader oprettelse af virtuelle MIDI-destinationer.
  • disablevirtualmidisources 1: Forhindrer Core MIDI-driveren i at oprette virtuelle kilder.
  • disablevirtualmidisources 0: Tillader oprettelse af virtuelle MIDI-kilder.
  • ;#SM createoutport "" "" (Mac): Opretter en ny udgangsport for en specificeret driver.
  • ;#SM deleteoutport "" "" (Mac): Sletter en tidligere oprettet udgangsport.
  • ;#SM createinport "" "" (Mac): Tilføjer en virtuel MIDI-indgangsport, som andre MIDI-applikationer kan sende beskeder til Max via.
  • ;#SM deleteinport "" "" (Mac): Sletter en tidligere oprettet indgangsport.
  • ;#SM driver loadbank "" "" (Mac): Indlæser en DLS Bank-fil til en specificeret MIDI-port.
  • ;#SM driver loadbank 0 "" (Mac): Indlæser DLS standard GM Bank.
  • ;#SM driver reverb <1/0> "" <1/0> (Mac): Tænder eller slukker for reverb.
  • ;#SM driver latency <tid> "" (midi_mme): Sætter MIDI-udgangens latency i millisekunder.
  • ;#SM inportinfo "" "": Sender information om en indgangsport til et [receive] objekt.
  • ;#SM outportinfo "" "": Sender information om en udgangsport til et [receive] objekt.
  • midilist: Udskriver navnene på alle aktuelle MIDI-enheder i Max Console.
  • purgemididevices: Rydder cachen for manglende MIDI-enheder.

Systeminformation og debugging

Få indsigt i Max' interne tilstand og diagnosticer problemer:

  • getarch "": Sender den aktuelle Max-arkitektur (altid 'x64') til et specificeret [receive] objekt.
  • getdefaultpatcherheight "": Rapporterer den aktuelle standard patcherhøjde til et [receive] objekt.
  • getdefaultpatcherwidth "": Rapporterer den aktuelle standard patcherbredde til et [receive] objekt.
  • getenablepathcache "": Rapporterer, om sticachen er aktiveret, til et [receive] objekt.
  • geteventinterval "": Rapporterer event-intervallet til et [receive] objekt.
  • getfixwidthratio "": Rapporterer den aktuelle fix-width-ratio til et [receive] objekt.
  • getpollthrottle "": Rapporterer den aktuelle poll-throttle-værdi til et [receive] objekt.
  • getqueuethrottle "": Rapporterer den aktuelle kø-throttle-værdi til et [receive] objekt.
  • getrefreshrate "": Rapporterer den aktuelle opdateringshastighed (fps) til et [receive] objekt.
  • getruntime "": Sender 1, hvis det er en runtime-version af Max, ellers 0.
  • getslop "": Rapporterer schedulerens slop-værdi til et [receive] objekt.
  • getsysqelemthrottle "": Rapporterer det maksimale antal UI-opdateringsbegivenheder, der behandles ad gangen, til et [receive] objekt.
  • getsystem "": Rapporterer systemnavnet (macintosh eller windows) til et [receive] objekt.
  • getversion "": Rapporterer Max-versionsnummeret som en decimalværdi.
  • externs: Lister alle eksterne objekter, der i øjeblikket er indlæst i Max Console.
  • paths: Lister de aktuelle søgestier i Max Console.
  • size: Udskriver antallet af symboler i symboltabellen i Max Console.
  • setmirrortoconsole 1: Tænder for spejling af Max Console-poster til systemkonsollen.
  • setmirrortoconsole 0: Slukker for spejling af Max Console-poster.
  • nativetextrendering 1: Bruger platform-specifik tekstgengivelse.
  • nativetextrendering 0: Bruger JUCE font rendering.
  • maxcharheightforsubpixelantialiasing <størrelse>: Indstiller en tærskelværdi for skriftstørrelse (i punkter) for native subpixel anti-aliasing.

Integration med eksterne værktøjer

Max' evne til at interagere med eksterne værktøjer udvider dets anvendelsesmuligheder markant:

  • externaleditor "": Gør det muligt at definere en foretrukken ekstern teksteditor til redigering af filer som .js, .txt og .gendsp.
  • useexternaleditor 1: Aktiverer brugen af den definerede eksterne editor automatisk, når det er relevant.

Avancerede indstillinger

For dem, der ønsker at dykke dybere ned i Max' konfiguration, er her nogle mere specifikke kommandoer:

  • checkpreempt "": Sender den aktuelle Overdrive-tilstand til et [receive] objekt.
  • enablepathcache 1: Aktiverer Max' søgesti-cache.
  • enablepathcache 0: Deaktiverer søgesti-cachen.
  • getenablepathcache "": Spørger, om sticachen er aktiveret.
  • notypeinfo 1 (Mac): Gemmer filer med traditionel Mac OS fire-tegns typeinformation.
  • notypeinfo 0 (Mac): Gemmer filer uden denne information.
  • objectfile "" "": Opretter en mapping mellem et eksternt objekt og dets filnavn.
  • preempt 1: Aktiverer Overdrive-tilstand.
  • preempt 0: Deaktiverer Overdrive-tilstand.
  • runtime 1 "": Udfører en besked, hvis Max kører i runtime-tilstand.
  • runtime 0 "": Udfører en besked, hvis Max kører i fuld tilstand.
  • sendinterval "": Sender den aktuelle scheduler-intervalværdi til et [receive] objekt.
  • sendapppath "": Sender applikationens sti til et [receive] objekt.
  • setdefaultpatcherheight <værdi>: Indstiller standardhøjden for patchers.
  • setdefaultpatcherwidth <værdi>: Indstiller standardbredden for patchers.
  • seteventinterval <værdi>: Indstiller tiden mellem kald til event-level-timeren (standard er 2 ms).
  • setmixerparallel 1: Aktiverer parallel behandling i mixeren.
  • setmixerparallel 0: Deaktiverer parallel behandling i mixeren.
  • setmixerramptime <værdi>: Indstiller mixer crossfade ramp time.
  • setsleep <værdi>: Indstiller tiden mellem kald for at hente den næste systembegivenhed (i 60-dele af et sekund).
  • useslowbutcompletesearching 1: Aktiverer komplet fil-søgning, hvilket kan være nødvendigt i sjældne tilfælde, hvor fil-cachen ikke opdateres korrekt. Kan gøre filindlæsning langsommere.
  • useslowbutcompletesearching 0: Deaktiverer komplet fil-søgning.

Ofte stillede spørgsmål

Hvad er den grundlæggende syntaks for at sende en besked til Max?
Den grundlæggende syntaks er ;max <kommando>, hvor <kommando> er den specifikke instruktion, du vil sende.

Kan jeg bruge variabler i disse beskeder?
Ja, du kan bruge variabler som $1, $2 osv. i dine beskeder, for eksempel ;max pupdate $1 $2.

Hvordan kan jeg se resultatet af en kommando?
Mange kommandoer, især dem der bruger "<receive_navn>", sender deres output til et specifikt [receive] objekt. Andre kommandoer, som externs eller paths, udskriver deres output direkte i Max Console.

Hvilke kommandoer er specifikke for macOS?
Kommandoer relateret til oprettelse og sletning af virtuelle MIDI-porte (createoutport, deleteoutport, createinport, deleteinport) samt visse filhåndteringsindstillinger (notypeinfo) er primært for macOS.

Hvordan kan jeg automatisere oprettelsen af collectives?
Du kan bruge openfile til at åbne en patcher og derefter buildcollective til at kompilere den til en collective, hvilket er ideelt til batch-processering af mange patchers.

At mestre styringen af Max via beskeder åbner for en dybere kontrol og mere effektiv arbejdsgang. Ved at udnytte disse kommandoer kan du automatisere gentagne opgaver, finjustere applikationens ydeevne og integrere Max problemfrit i mere komplekse systemer.

Hvis du vil læse andre artikler, der ligner Styr Max med beskeder: En dybdegående guide, kan du besøge kategorien Software.

Go up