Werken met Amos deel 121 """""""""""""""""""""""" Een driehoeks golf """""""""""""""""" kracht Elk nummer vertegenwoordigt de sterkte van een individueel deel van de golfvorm. Dat komt overeen met de hoogte van juist een punt in de boven staande grafiek. Mogelijke waarden voor de sterkte gaan van -128 tot 127. Omdat AMOS strings slechts positieve getallen kunnen bevatten is het nodig dat je de negatieve waarden omrekent in een speciaal intern formaat. De verlangde waarde kan berekend worden door eenvoudigweg 256 aan de negatieve waarden toe te voegen. Dus -50 wordt dan ingevoerd als -50+256=206 Hier een programma wat demonsteert hoe een driehoeksgolf in de bovenstaande grafiek met AMOS gemaakt kan worden. S$="":Rem Maak de golfvorm string schoon For i=-128 To 127 X=i : If X<0 Then Add X,256 S$=S$+Chr$(X) Next i Set wave 2,S$ Voordat je de golfvorm (waveform) speelt moet je AMOS Basic vertellen welke kanalen er aan je waveform toegewezeen wordt. Dat kan gedaan worden met het WAVE kommando. Voeg de volgende regel aan de voorgaande routine toe. Wave 2 To 15 : For S=10 To 60 : Play S,10 : Next S De beste manier om een effekt van een echt instrument te produceren is om verschillende SINE golven samen te kombineren. Een voorbeeld van een van de sine golven kan in het volgende diagram gezien worden. Een Sine golf """"""""""""" Sterkte +128 -128 Het samenvoegen van deze golven met verschillende maten en verschillende begin punten, produceert golven volgens het onderstaande patroon Samengevoegde golven """""""""""""""""""" Sterkte +128 -128 Dit genereert de gelijkmatige harmonie die voor je noten nodig zijn. Hier een voorbeeld: SHAPE$="":Degree For S=0 To 255 V=Int((Sin(S)/2+Sin*2+45)/4)*128)+127 SHAPE$=SHAPE$+Chr$(V) Next S Set Wave 2, SHAPE$ : Wave 2 To 15 For N=10 To 60 : Plat N,10 : Next N WAVE """" WAVE x To v WAVE verwijst een golf nummer w naar een of meer geluid kanalen. v bevat een bitmap in standaard vorm. Als een bit op waarde 1 gezet wordt dan worden de bijbehorende voices door PLAY gebruikt, anders worden ze niet gebruikt. Standaard is golfvorm nul gereserveerd voor het NOISE kommando en bevat golf 1 een sine golf. Hier wat voorbeelden: Wave 0 To %0001 : Rem Verwijst golf 0 naar voice nul Play 1,40,0 Wave 0 To %1100 : Rem Gebruikt voices 3,2 voor noise Play 1 To %1111 : Rem Speelt een pure toon via alle vier voices Play 60,0 NOISE (Verwijst een noise golf naar een kanaal) """"""""""""""""""""""""""""""""""""""""""""""" NOISE To voices NOISE veroorzaakt een breed noise effekt (wave 0) bij de gekozen voices. Dit vorm de basis van een hele reeks ontploffingseffekten en slag effekten. Voices is een standaard bit patroon. De eerste vier bits vertegenwoordigen de vier mogelijke Amiga voices, beginnend bij 0. Als een bit op nul staat wordt dat kanaal gespeeld, anders wordt deze voice ongebruikt door dat kommando. NOISE komt overeen met het kommando: Wave 0 To voice Voorbeelden: Noise To 15 Play 60.0 Play 30,0 DEL WAVE (Wist een golf) """""""""""""""""""""""" DEL WAVE n Wist een golf die eerder door het SET WAVE kommando bepaald was. n is het nummer van de golf en begint bij 2. Het is mogelijk om de ingebouwde NOISE en SINE golven met deze instruktie te wissen. Nadat de golf gewist is worden alle voices getest op de standaard SINE golf (Standaard). SAMPLE n To voices Dit is de meest krachtige versie van de golf komando's. Het verwijst naar een geluid in de geluiden bank van de huidige golf. Play pakt nu een instrument rechtstreeks van de geluiden bank. Load"AMOS_DATA:SAMPLES/samples.abk Sample 1 To 15 For i=20 To 50 Paly i,50 Next Als gebruikelijk staat voice je toe om een reeks voices te kiezen die door deze instruktie bepaald zijn. Dat is een standaard bit-map: Bit0->Voice0 Bit1->Voice1 Bit2->Voice2 Bit3->Voice3 Elke voice kan gekozen worden door het zetten van de bijbehorende bit 1. N.B. Het bereik van noten dat met een sample gespeeld kan worden hangt af van de oorspronkelijk opname snelheid. Als een noot te hoog is, kan AMOS hem helemaal niet spelen. Het toelaatbare bereik varieert van sample tot sample, maar ligt in het algemeen tussen de 10 en de 50.