Bezier-synthese ?

CraZ

..
Lid sinds
4 juli 2001
Berichten
2.749
Naar aanleiding van deze thread https://www.synthforum.nl/forums/showthread.php?s=&threadid=15674 heb ik eens na lopen denken over een ander concept.. namelijk Bezier-synthese

Voor diegenen die écht niet weten waar ik het over heb.. meer info over Bezier en zijn curves alhier http://www.moshplant.com/direct-or/bezier/

In het kort is de methode die Bezier gebruikt ideaal om door middel van heel weinig informatie, heel precies een bepaalde curve te definiëren. De meest bekende toepassing van Bezier-curves is in tekenprogramma's als CorelDraw en Adobe Illustrator.

Maar goed.. een prachtige manier om curves te beschrijven.. dus waarom niet voor WaveForms? Bouw een 'array' van een stuk of 10 van die bezier-punten.. en je hebt een ideale beschrijving van welke waveform dan ook.

Het probleem is natuurlijk dat je zo'n curve op de een of andere manier in spanning om moet zetten. Dat kan door die curves te berekenen.. met een bepaalde digitale resolutie op te slaan.. en ze weer uit te lezen. Een fijn stuk geheugen moet dit toch kunnen vasthouden. Je scant dat geheugen met een bepaalde frequentie.. en hoppakee.

Modulaties kun je in realtime loslaten op de bezier-definities zelf.. of op de digitale representatie daarvan in het geheugen.

Hmm.. misschien is het wel iets.. maar aan de andere kant.. misschien ook niet.
 
Laatst gewijzigd:
Klinkt wel interessant Craz. Lijkt me een leuke basis. Maar... ik kan me ook voorstellen dat programmeurs van bv softsynths allang dit soort curves (of soortgelijke) toepassen om hun synth te bouwen. Het is namelijk een manier om geheugen te besparen want dan hoeft niet bitje voor bitje de waveform in het geheugen te stoppen, maar enkel een rekensommetje (formule) toe te passen. Ik weet er het fijne niet van, daar zou een programmeur wat meer inzicht in moeten geven.
Maar wel cool idee hoor!

Arv
 
dan wel met realtime controles op die bezier punten?

lijkt me wel gaaf :D
 
nah waar ik zelf over zat na te denken is een soort van manier om via sysex samples te kunnen laden en golfvormen voor samplers. Met iets wat hier aardig op lijkt zeg maar. Dat je heximale waardes gebruikt om alles weer te geven. Je zegt dus dat je een grafiek hebt van 0 tot 10 volt waarbij 5 dus het midden is van de golf. (horizontaal gezien) en dat je dus per sample eenheid een waarde hebt en zo dus alles kan verzenden naar je sampler. Dat hij de tussenliggende punten berekend.

btw, kon die yamaha TX sampler geen sysex samples laden?
 
Origineel geplaatst door Slipperman
Je zegt dus dat je een grafiek hebt van 0 tot 10 volt waarbij 5 dus het midden is van de golf. (horizontaal gezien) en dat je dus per sample eenheid een waarde hebt en zo dus alles kan verzenden naar je sampler. Dat hij de tussenliggende punten berekend.
Realtime of stuur je het er naar toe, vervolgens processed ie en vervolgens kun je de golf gebruiken...

Realtime lijkt me met het huidige midi protocol onmogelijk...
De tweede optie lijkt me geen voordelen leveren boven echte samples sturen

Of zie ik het fout?
 
Realtime

Realtime

Realtime controle maakt een hoop leuke ideeen onmogelijk.. want het mag eigenlijk nergens gaan lijken op een "batch-achtige" berekening..

Enigszins oplossen kun je dit door met een hele hoge frequentie te blijven her-berekenen.. iets wat bijvoorbeeld een Neuron intern ook zal moeten doen.
 
tja ik ben niet zo technisch op dit gebied etc. dus heb niet zoveel idee ervan. Ben tot dit idee gekomen zeg maar maar ook niet verder.
Maar bedoel als je de data in heximalen zou omzetten en dan dus de punten die tussen de sample eenheden ligt laat berekenen. Krijg je ongeveer iets als het bezier systeem...
 
ik snap je idee maar is het niet een beetje omslachtige manier om golfvormen te maken(overigens de softsynth z3ta+ werkt wel met een aantal parameters om de golf te veranderen in realtime). en zijn dat geen vectoren waar je mee werkt(kijk nu de animatie mensen aan.) net zoals je in flash met vectorren werkt?

is het dan niet handiger dat je als uitgangs punt gewoon de sinus neemt en deze op allerlei manieren kan tweaken en daarna de standaard synthesizer dingen er op los laat.
in pricipe lees je dan een wavetable uit met steeds een andere waarde per samplepunt, hele hoge resolutie is dan wel vereist lijkt me dan


en slipperman wat jij zegt dat is ongeveer het idee achter wavetable. bij de korg wavestations is het ook mogelijk om je eigen golfjes in te laden. en er zijn wel meer bakken die dat kunnen
 
Je zou dit ook met vectors kunnen doen... Vector-synthese...

En dan denk ik niet aan de Prophet VS, want dat is geen "echte"
vector synthese maar meer een soort van vector-oscillator-modulatie.

Ik dacht meer aan de manier waarop Flash graphics "gevectorized"
zijn. Dit zou je ook met waveforms kunnen doen. Als je dan de
vectorwaarden begint te moduleren... mmm... heel dicht bij de
Bezier-synthesis...

Misschien eens een idee om samen met een aantal mensen een module
te programmeren voor PD of Max? Ik zou wel geinteresseerd zijn.

Mvg.

CoolRunning
 
Origineel geplaatst door CoolRunning
Je zou dit ook met vectors kunnen doen... Vector-synthese...

En dan denk ik niet aan de Prophet VS, want dat is geen "echte"
vector synthese maar meer een soort van vector-oscillator-modulatie.

Ik dacht meer aan de manier waarop Flash graphics "gevectorized"
zijn. Dit zou je ook met waveforms kunnen doen. Als je dan de
vectorwaarden begint te moduleren... mmm... heel dicht bij de
Bezier-synthesis...

Misschien eens een idee om samen met een aantal mensen een module
te programmeren voor PD of Max? Ik zou wel geinteresseerd zijn.

Mvg.

CoolRunning

ja dat bedoelde ik dus ook
 
Eigenlijk is het net zoiets als realtime een golfvorm uitrekenen wat dmv parameters gevormd wordt en dit als oscillator gebruiken. Alleen was dat berekenen vroeger veels te duur en zijn ze met vaste gesample wavevormen gaan werken. (ala DW8000 bijv) En daaruit is ook de wavetable synthese van Waldorf(PPG) onstaan omdat ze daarmee die stukjes samples aan elkaar gingen plakken.

Of anders is met wat slimme algebra die Bezier curves om te vormen naar een Fourrier beschrijving en daarmee verder te gaan.
 
Origineel geplaatst door fuse

Of anders is met wat slimme algebra die Bezier curves om te vormen naar een Fourrier beschrijving en daarmee verder te gaan.

ja maar wat heb je daar aan klinkt interresant maar ik zie niet in waarom als je je curves al klaar zou hebben liggen nog met fourrier zou gaan werken. lijkt mee ook heel erg moeilijk te implenmenteren en erg gebruiks vriendelijk is het ook niet
 
Het is wel een interessant idee!!!
Dat je de bezier-parameters onder je knoppen krijgt, ipv
filter parameters zoals je ze normaal gesproken hebt...

Ik denk wel dat er een fundamenteel probleem kan zijn met deze curves:
je kunt moeilijk hele harde overgangen maken (die curves verlopen altijd
erg gladjes) en harde overgangen heb je nodig om genoeg boventonen
te kunnen maken... Het resultaat zal dus wel altijd een beetje
'dof' klinken ben ik bang...
 
Origineel geplaatst door DJB
Het is wel een interessant idee!!!
Dat je de bezier-parameters onder je knoppen krijgt, ipv
filter parameters zoals je ze normaal gesproken hebt...

Ik denk wel dat er een fundamenteel probleem kan zijn met deze curves:
je kunt moeilijk hele harde overgangen maken (die curves verlopen altijd
erg gladjes) en harde overgangen heb je nodig om genoeg boventonen
te kunnen maken... Het resultaat zal dus wel altijd een beetje
'dof' klinken ben ik bang...

ik denk wel dat je daar gelijk in hebt... misschien iets van een noise source om wat hoog erin te krijgen?

Of de mogelijkheid deze bezier golfvormen te mixen met de klassieke golfvormen al zaagtand, blokgolf ed...
Als dan niet analoog :{
 
Was nog ff aan het denken...

Een Bezier-curve is gedfinieerd door z'n handles...
deze handles zijn in principe vectors.

Als je nu de curve als de waveform ziet... is het
dan nog wel Bezier-synthese... of is het inderdaad
Vector-synthese.

Betreffende de scherpe hoek: Het is heel gemakkelijk
om een scherpe hoek met een bezier curve te maken,
je hebt maar 2 handles nodig: Kruis de twee handles
met elkaar... there you go!
De hoek kan precies 90 graden zijn, maar dat is alleen
op het preciese punt waar de hoek is... daarbuiten
zal het van de 90 graden afwijken.
Je kan zelfs negatieve hoeken maken op deze manier
(of zelfs een lus)... maar dat levert problemen op met
het gegenereerde control voltage...

Dus, de physica van geluid zal een protocol bepalen dat
limieten stelt aan hoe je de Bezier-curves gebruikt om
waveforms mee te construeren...


Mvg.

CoolRunning
 
Origineel geplaatst door STicKX
ik denk wel dat je daar gelijk in hebt... misschien iets van een noise source om wat hoog erin te krijgen?

Of de mogelijkheid deze bezier golfvormen te mixen met de klassieke golfvormen al zaagtand, blokgolf ed...
Als dan niet analoog :{


Hmm... Het is natuurlijk wel zo dat je toch harde overgangen kunt maken als je
niet eist dat begin en eindpunt van het stukje golfvorm per se op elkaar aan moeten sluiten....
Dan kan je daar gewoon sprongen in maken...
 
Sorry... dubbele post.
 
Kijk eens naar de Ixalance Player. Deze player is in staat om uit zeer kleine bestanden volledige muziekstukken te halen. Golfvormen worden door middel van schatting en patroonherkenning gevormd. Het resultaat mag er absoluut zijn.
De player is nogal 'vuil' geprogrammeerd en is eigenlijk niet meer dan een demo.

http://www.gizmozone.com/other.php?Page=0
(de player staat op pagina 4)

Mocht een nummer beginnen te zeuren over 'blablabla.wav' not found, leeg dan even je TEMP directory in Windows. ('C:\Documents and Settings\[username]\Local Settings\TEMP' in Windows 2000/XP)

(Met dank aan Maarten van Strien voor de achtergrondinfo)
 
Back
Top