Aliasing voorkomen

Artificial Soul

Stamgast
Lid sinds
19 Maart 2005
Berichten
225
Locatie
Gouda
Aliasing komt vaak voor bij gesamplede instrumenten, met name bij de wat hogere tonen. Vooral bij sawsynth-klanken is het erg storend en er verschijnt dan een lelijke metaalachtige klank.

Ik weet dat hoe hoger de toon is hoe minder boventonen de klank heeft. Dus samples voor het hogere key-bereik bewerk ik met een lowpass-filter, waarmee ik wil voorkomen dat boventonen de Nyquist-rate kunnen overschrijden en aliasing creeren. Bijvoorbeeld voor de keys 96 t/m 108 (het hoogste akkoord van een keyboard met 88 toetsen) bewerk ik de sample met een lowpass-filer die ik instel op bijvoorbeeld 5000 Hz en een roll-off van 48 dB. Ik doe dit een aantal keer om er meer zeker van te zijn dat frequenties boven de 5000 worden weggefilterd. Want als je de betreffende sample 2x zo snel zou afspelen, dan gaan de frequenties nog steeds niet boven de 10000 Hz en zou er geen aliasing moeten optreden.

Maar dat blijkt te simpel gedacht te zijn. Ik had ook iets geprobeerd om noise toe te voegen - hetzelfde principe als dither - maar ook dat verhelpt het verschijnsel niet.

Ik heb wel ontdekt dat als je een loop wilt maken van een saw-wave, de bitdepth van beide looppoints echt exact gelijk moeten zijn. Als je de sample afspeelt met de toonhoogte die gelijk is aan de rootkey, dan klinkt het zoals het moet klinken. Maar als je een key hoger speelt, kan die metaalachtige bijklank alweer prominent verschijnen: dat kan verklaard worden omdat bij up- of downsampling de interpolatie van de samples ook verandert.

Ik hoop dat jullie mij een beetje begrijpen. En als jullie weten wat ik kan doen om aliasing te voorkomen, hoor ik dat graag :)
 
aliasing kun je alleen voorkomen als je iedere toets sampled.
maar goed vaak kun je achteraf nog een low pas toevoegen die je dan de key laat tracken.

Wav2Alchemy.exe by Martin Eastwood doe de filtering toepassen op een single cycle waveform.
Voor iedere sample een andere filter freq.

 
aliasing kun je alleen voorkomen als je iedere toets sampled.
maar goed vaak kun je achteraf nog een low pas toevoegen die je dan de key laat tracken.

Wav2Alchemy.exe by Martin Eastwood doe de filtering toepassen op een single cycle waveform.
Voor iedere sample een andere filter freq.

Thanks man voor de link!

Heb je ook tips voor het upsamplen? Ik bedoel: stel je hebt maar een sample voor bijvoorbeeld een synthsound en bij twee octaven hoger dan de rootkey treedt er aanzienlijke aliasing op. Hoe kan ik dan het bestte een nieuwe sample maken van die originele sample? Vaak hebben langere samples een soort vibrato of tremolo effect wat erg storend gaat worden als je ze 2 octaven hoger afspeelt: is er iets wat ik daartegen kan doen?
 
ik heb echt nog nooit een geupsampled.
gewoon zorgen dat je multisamples gebruikt. idiaal om de 5 semitones, maar al heb je 6 samples voor ieder octaaf dan kan het al goed zijn.
1 sample voor 1 octaaf dan kan het al wat valsig worden maar ook acceptabel.
als je iedere toets sampled hoef je je helemaal niet om aliasing druk te maken.
aliasing kan ook zijn charmes hebben met synth sounds.
dus what ever je doet als het maar goed klinkt.
 
In de bijlage van deze post is een ZIP-file met samples afkomstig van de gratis te downloaden Oscillator Pak van Retrosampling. Ik had een keer van die samples een soundfont gemaakt. Van het origineel zijn de samples allemaal zo'n 1,5 seconde lang. Ik heb de samples veel korter gemaakt: daarbij heb ik wel gekeken of de loop-points exact met elkaar overeenkomen.

Van elke octaaf is een sample gemaakt. Het begint bijvoorbeeld bij C1 (midi-key 36) en dan krijg je C2 t/m C4 (midi-key 72). Of je nou luistert naar de originele samples of naar die van mij, maakt verder niet uit: bij de samples van C4 hoor je meestal die lelijke metaalachtige bijklank. Dat is met name bij de saw-waves: dat is logisch, want een saw-wave heeft de meeste boventonen. Een pure sine-wave heeft geen boventonen, dus van die samples hoor je ook bij de hoogste keys geen aliasing.

Hoe hoger de toon, hoe minder de klankkleur. Je kan met een willekeurig audiobewerkingsprogramma zelf een saw-wave maken door meerdere sine-waves met elkaar te mixen, zoals het principe als additive synthesis. Je begint met de grondfrequentie en als je doorgaat t/m 4 boventonen die elk de helft van de amplitude hebben tov hun voorgangers, dan krijg je iets wat al klinkt als een saw-wave. De grondtoon van C4 is 523,25 Hz. De eerste boventoon is een octaaf hoger: 1046,5 Hz. De tweede boventoon is 1579,75 Hz, de derde 2093 Hz en de vierde 2616,25 Hz.

Het is misschien een idee om deze resultaten te mixen met de samples en dan vervolgens te downsamplen om samples te maken voor de hoogste keys?
 

Attachments

  • Oscillator Pak - Retro Sampling.zip
    2,5 MB · Bekeken: 184
Back
Top