Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

AudioEffectDistortion

Eredita: AudioEffect < Resource < RefCounted < Object

Aggiunge un effetto audio di distorsione a un bus audio.

Rimappa i campioni audio attraversa una funzione non lineare per ottenere un suono distorto.

Descrizione

Un effetto "distorsione" modifica la forma d'onda tramite una funzione matematica non lineare (vedi quelle disponibili in Mode), basata sull'ampiezza dei campioni della forma d'onda.

Nota: In una funzione non lineare, un campione in ingresso con un valore di ampiezza x avrà la sua ampiezza aumentata o diminuita a un valore y, in base al valore della funzione in x, motivo per cui, anche con lo stesso drive, il suono in uscita varierà a seconda del volume in ingresso. Per modificare il volume mantenendo la forma d'onda in uscita, usa post_gain.

In questo effetto, ogni tipo corrisponde a una diversa funzione non lineare. I diversi tipi disponibili sono: clip, atan, lofi (bitcrush), overdrive e waveshape. Ogni tipo di distorsione disponibile è simmetrico: i valori di ampiezza negativi sono influenzati allo stesso modo di quelli positivi.

Sebbene la distorsione modifichi sempre il contenuto in una frequenza, solitamente introducendo armoniche acute, i diversi tipi di distorsione offrono una gamma di qualità sonore: da "soffice" e "accogliente" a "croccante" e "abrasivo".

Nei videogiochi, può essere utile per simulare, in modo molto efficace, il suono proveniente da un dispositivo o un altoparlante saturo. Può anche aiutare a far risaltare l'audio in un mix, introducendo frequenze più alte e aumentandone il volume.

Nota: Sebbene solitamente impercettibile, un effetto di distorsione abilitato modifica comunque il suono anche quando drive è impostato su 0. Questo non è un bug. Se questo comportamento non è desiderato, si consiglia di disabilitare l'effetto usando AudioServer.set_bus_effect_enabled().

Tutorial

Proprietà

float

drive

0.0

float

keep_hf_hz

16000.0

Mode

mode

0

float

post_gain

0.0

float

pre_gain

0.0


Enumerazioni

enum Mode: 🔗

Mode MODE_CLIP = 0

Appiattisce la forma d'onda a 0 dB in maniera netta. drive aumenta l'ampiezza dei campioni esponenzialmente. Questa modalità funge da hard clipper se drive è impostato su 0 ed è l'unica modalità che tronca i segnali audio a 0 dB.

Mode MODE_ATAN = 1

Appiattisce la forma d'onda in maniera graduale, seguendo una curva arcotangente. Il volume dell'audio diminuisce prima di appiattire i picchi a PI * 4.0 (valore lineare), se è stato normalizzato in precedenza.

Mode MODE_LOFI = 2

Riduce la profondità di bit dell'audio per ottenere un segnale audio a bassa risoluzione, passando da 16 bit a 2 bit. È possibile utilizzarlo per emulare il suono di vecchi dispositivi audio digitali.

Mode MODE_OVERDRIVE = 3

Emula l'accogliente distorsione prodotta da un transistor a effetto di campo, che è comunemente usato negli amplificatori per strumenti musicali a stato solido. La proprietà drive non ha effetto in questa modalità.

Mode MODE_WAVESHAPE = 4

Appiattisce la forma d'onda in maniera graduale, fino a raggiungere un picco netto a drive = 1, seguendo una generica funzione sigmoide assoluta.


Descrizioni delle proprietà

float drive = 0.0 🔗

Intensità della distorsione. Controlla quanto il segnale audio in ingresso è influenzato dalla curva di distorsione, passando da una funzione lineare a una non lineare. Il valore può variare da 0 a 1.


float keep_hf_hz = 16000.0 🔗

  • void set_keep_hf_hz(value: float)

  • float get_keep_hf_hz()

Filtro a passa-alto, in Hz. Le frequenze superiori a questo valore non saranno influenzate dalla distorsione. Il valore può variare da 1 a 20000.


Mode mode = 0 🔗

  • void set_mode(value: Mode)

  • Mode get_mode()

Tipo di distorsione. Cambia la funzione non lineare utilizzata per distorcere la forma d'onda. Vedi Mode.


float post_gain = 0.0 🔗

  • void set_post_gain(value: float)

  • float get_post_gain()

Guadagno dopo l'effetto, in dB. Il valore può variare da -80 a 24.


float pre_gain = 0.0 🔗

  • void set_pre_gain(value: float)

  • float get_pre_gain()

Guadagno prima dell'effetto, in dB. Il valore può variare da -60 a 60.