FILTER

Aus C64-Wiki
Zur Navigation springenZur Suche springen
FILTER
Syntax: FILTER [<Grenzfrequenz>] [, [<Tiefpass>] [, [<Bandpass>] [, [<Hochpass>] [, [<Resonanz>] ]]]]
Parameter
<GFWert>: numerischer Ausdruck im Wertebereich von 0 bis 2047
<Tiefpass>: numerischer Ausdruck im Wertebereich von 0 bis 1
<Bandpass>: numerischer Ausdruck im Wertebereich von 0 bis 1
<Hochpass>: numerischer Ausdruck im Wertebereich von 0 bis 1
<Resonanz>: numerischer Ausdruck im Wertebereich von 0 bis 15
Einordnung
Typ: Anweisung
Kontext: Tonerzeugung
Aufgabe: Einstellen von Filterwerten
Abkürzung: fI
Token: $fe $03 (254 3)
Verwandte Befehle
PLAY, SOUND (BASIC 7.0), VOL

Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl FILTER ab Commodore BASIC V7.0 oder höher.


Die Anweisung FILTER dient zur Einstellung des im SID enthaltenen Klangfilters. Die Filterung selbst wird durch die PLAY-Sequenz X1 für die jeweilige Stimme ein- und durch X0 ausgeschaltet.

Die folgenden Parameter können dem Befehl übergeben werden, wobei jeder Parameter für sich optional ist, aber mindestens einer angegeben sein muss. Fehlen alle Parameter, so führt dies zur Ausgabe der Fehlermeldung ?SYNTAX ERROR.

  • <GFWert>: Legt die Grenzfrequenz des Filters fest. Der Parameter muss im Wertebereich von 0 bis 2047 liegen, außerhalb diesen Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben. Mittels Formel Grenzfrequenz=GFwert*5.8 + 30 kann die (ungefähre) tatsächliche Filterfrequenz ermittelt werden.
  • <Tiefpass>, <Bandpass>, <Hochpass>: bestimmt, ob der jeweilige Filterbereich aus (0) oder eingeschaltet (1) ist. Andere Werte führen zur Ausgabe von ?ILLEGAL QUANTITY ERROR. Mindestens ein Filterband muss ausgewählt sein, damit bei aktivem Filter ein Ton zu hören ist.
  • <Resonanz>: Legt die Resonanz, d.h. die Verstärkung von Frequenzen im Bereich der Grenzfrequenz, fest. Erlaubt sind Werte im Bereich von 0 bis 15, außerhalb diesen Bereichs wird ein ?ILLEGAL QUANTITY ERROR ausgegeben.

Die Klangfilterung ist unter BASIC 7.0 primär für die Musikausgabe gedacht, kann aber auch für Toneffekte genutzt werden. Dazu muss nach der SOUND-Anweisung der Filter mittels PLAY "X1" für die jeweilige Stimme aktiviert werden. Für dynamische Filtereffekte während der Tonausgabe müssen nach der Filteranweisung die Einstellungen ebenfalls durch PLAY "X1" aktualisiert werden.

Beispiele[Bearbeiten | Quelltext bearbeiten]

FILTER 1024,1,0,0,7

Aktiviert den Tiefpassfilter mit der Grenzfrequenz von ca. 5.970 Hz und einer Resonanz von 7.

FILTER ,,0,1

Schaltet Bandpass aus und Hochpass ein, die restlichen Werte bleiben unbeeinflusst.

10 FILTER 0,1,0,0,15:SOUND 1,1390,32000,,,2
20 FOR I=1 TO 10
30 FOR J=0 TO 1000 STEP 15:FILTER J:PLAY "V1X1":NEXT
40 FOR J=1000 TO 0 STEP -5:FILTER J:PLAY "V1X1":NEXT
50 NEXT
60 SOUND 1,0,0

Beispiel für einen dynamischen Filtereffekt durch Ändern der Grenzfrequenz.