Author Topic: Sound Programmierung  (Read 2673 times)

0 Members and 1 Guest are viewing this topic.

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Sound Programmierung
« on: 11:32, 08 February 15 »
In meinem alten BASIC Spiel taucht folgende Befehlsreihenfolge auf:

ENV 1,100,2,2,1,1,1
ENT 1,100,-2,2
SOUND 1,284,200,1,1,1

Wie setzt man sowas in Assembler um?  :(

Ich hab schon auf dem Wiki geschaut, aber die arbeiten nur mit Byte-Werten. Bei mir gibt es aber den Wert 284, also mehr wie acht Bit.

Werd aus dem englischen Zeuchs nicht schlau draus.  :(   
« Last Edit: 11:36, 08 February 15 by oobdoo »

Offline BSC

  • CPC6128
  • ****
  • Posts: 205
  • Country: de
  • Yay! I became a 6128. Hope it wraps ..
    • my (Android) mobile game
  • Liked: 261
  • Likes Given: 219
Re: Sound Programmierung
« Reply #1 on: 13:41, 08 February 15 »
Hallo oobdoo,

ich weiß ja nicht, in welchem Wiki du nachgesehen hast, aber im CPC Systembuch ist das alles ziemlich gut beschrieben. Schau mal hier:

Das Schneider CPC Systembuch: Die Firmware des Schneider CPC: SOUND MANAGER

Weiter unten steht auch, wie man ENV und ENT umsetzt: Mit SOUND AMPL ENVELOPE pzw SOUND TONE ENVELOPE.

Die Werte >255 werden übrigens als 16-Bit-Worte angegeben (siehe z.b. DEFW Periodenlänge im Parameterblock für den Aufruf von SOUND QUEUE - das ist der Link oben)

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #2 on: 14:02, 08 February 15 »
Ich hatte auf cpcwiki.eu geschaut.
Das Buch kannte ich noch gar nicht. Danke für den Tip.  ;D
Mal schauen ob ich damit weiter komme.

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #3 on: 14:47, 08 February 15 »
Code: [Select]
org &4000
.sque     equ &bcaa
    ld hl,sdata
    call sque
    ret
.sdata     defb 1
    defb 1
    defb 1
    defw 284
    defb 0
    defb 1
    defw 200
   

Macht schonmal das gleiche wie SOUND 1,284,200,1,1,1  :D

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #4 on: 15:31, 08 February 15 »
 ;D ;D ;D ;D ;D ;D ;D ;D

Hat geklappt, froi.

Quote
org &4000
.sque     equ &bcaa

       ld a,1
       ld hl,env
       call &bcbc

       ld a,1
       ld hl,ent
       call &bcbf

    ld hl,sdata
    call sque
    ret
   
.sdata     defb 1
    defb 1
    defb 1
    defw 284
    defb 0
    defb 1
    defw 200
   
.env defb 1,100,2,2,1,1,1

.ent defb 1,100,-2,2

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #5 on: 21:03, 10 February 15 »
Code: [Select]
org &4000
.sque     equ &bcaa
    ld hl,sdata
    call sque
    ret
.sdata     defb 1
    defb 1
    defb 1
    defw 284
    defb 0
    defb 1
    defw 200
   

Macht schonmal das gleiche wie SOUND 1,284,200,1,1,1  :D

Ich versteh die Welt nicht mehr. Oberer Sound wird gemacht BASIC+Z80.

Sound 4,0,1,7,4,0,31 nur in BASIC, nicht Z80 wenn ich die Werte entsprechend einsetze.  :(

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.718
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 952
  • Likes Given: 1676
Re: Sound Programmierung
« Reply #6 on: 08:24, 11 February 15 »
Ich versteh die Welt nicht mehr. Oberer Sound wird gemacht BASIC+Z80.

Sound 4,0,1,7,4,0,31 nur in BASIC, nicht Z80 wenn ich die Werte entsprechend einsetze.  :(


Code: [Select]
.sdata   defb 4,4,0,0,0,31,7,1,0


??
« Last Edit: 08:29, 11 February 15 by AMSDOS »
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #7 on: 12:22, 11 February 15 »
Ich fasse es nicht. Jetzt funktioniert es.  :o

Und ich hatte mich schon totgesucht. Keine Ahnung wo der Fehler lag.

Danke schööööönnn.  ;D

Wobei ich mich frage, warum es mit "nur"DEFB" funktioniert, wenn doch zwei mal DEFW darin auftauchen müßte.
 
« Last Edit: 14:17, 11 February 15 by oobdoo »

Offline Prodatron

  • 6128 Plus
  • ******
  • Posts: 830
  • Country: de
  • Back on the Z80
    • index.php?action=treasury
    • SymbOS SYmbiosis Multitasking Based Operating System
  • Liked: 1059
  • Likes Given: 554
Re: Sound Programmierung
« Reply #8 on: 15:07, 11 February 15 »
Wobei ich mich frage, warum es mit "nur"DEFB" funktioniert, wenn doch zwei mal DEFW darin auftauchen müßte.
Ein DEFW x wird in diesem Falle jeweils durch ein DEFB x,0 ersetzt.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #9 on: 19:57, 11 February 15 »
Ich komme aber weiterhin ins Schleudern mit den Begriffen.

Sound in BASIC hat die Parameter...
01. Kanalstatus
02. Tonperiode
03. Dauer
04. Lautstärke
05. Lautstärkenhüllkurve
06. Tonhüllkurve
07. Geräuschperiode

Sound in Z80 mit &BCAA laut meinem deutschen Firmwarehandbuch...
Byte 0 Kanalangabe und Rendezvouserfordernisse
Byte 1 Amplituden-Hüllkurve
Byte 2 Ton-Hüllkurve
Byte 3..4 Tin-Periode
Byte 5 Geräuschperiode
Byte 6 Anfangsamplitude
Byte 7..8 Dauer oder Hüllkurven-Wiederholungszähler

Byte 0 würde ich 01. zuordnen.
Byte 5 zu 07.
Byte 7..8 zu 03.

Und der Rest? Irgendwie bringe ich den Begriffe nicht zueinander.
« Last Edit: 20:00, 11 February 15 by oobdoo »

Offline Prodatron

  • 6128 Plus
  • ******
  • Posts: 830
  • Country: de
  • Back on the Z80
    • index.php?action=treasury
    • SymbOS SYmbiosis Multitasking Based Operating System
  • Liked: 1059
  • Likes Given: 554
Re: Sound Programmierung
« Reply #10 on: 21:06, 11 February 15 »
Wahrscheinlich so:

Code: [Select]
Byte 0 Kanalangabe und Rendezvouserfordernisse      01. Kanalstatus
Byte 1 Amplituden-Hüllkurve                         05. Lautstärkenhüllkurve
Byte 2 Ton-Hüllkurve                                06. Tonhüllkurve
Byte 3..4 Ton-Periode                               02. Tonperiode
Byte 5 Geräuschperiode                              07. Geräuschperiode
Byte 6 Anfangsamplitude                             04. Lautstärke
Byte 7..8 Dauer oder Hüllkurven-Wiederholungszähler 03. Dauer

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #11 on: 22:39, 11 February 15 »
Danke. Funktioniert.  :D

Hatte wohl immer irgendwo einen Zahlendreher drin.

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #12 on: 21:25, 13 February 15 »
Da die Reihenfolge bei der Parameterübergabe in Assembler eine andere als in BASIC ist, habe ich mal was in Excel gebastelt.
 Vielleicht kann es ja einer auch gebrauchen.
 
 SOUND 2,284,10,2,2,1,10 ergibt

Code: [Select]
defb 2,2,1
defw 284
defb 10,2
defw 10

Funktioniert soweit alles bei mir.  :)


Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.718
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 952
  • Likes Given: 1676
Re: Sound Programmierung
« Reply #13 on: 22:55, 13 February 15 »
Ton-Periode, Gröβe in Bit = 15 (0..4095)
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Offline Shining

  • Supporter
  • CPC6128
  • *
  • Posts: 266
  • Country: de
    • Shinings little CPC page
  • Liked: 369
  • Likes Given: 173
Re: Sound Programmierung
« Reply #14 on: 23:07, 13 February 15 »
Zwar ein bisschen Off-Topic. Aber wie oft ich schon in das oben erwähnte Buch geschaut habe.....
Gerade diese Woche habe ich mich auch mit dem Soundteil im Buch beschäftigt, da ich gerade Musik in mein Game-Projekt einbaue, die für den Speccy komponiert wurde. Und da musste ich Tonhöhe, Hüllkurven und Rauschperiode anpassen....
TGS is back

Download my productions at:
cpc.scifinet.org

Offline oobdoo

  • CPC464
  • **
  • Posts: 30
  • Country: de
  • https://www.thingiverse.com/oobdoo/about
  • Liked: 20
  • Likes Given: 1
Re: Sound Programmierung
« Reply #15 on: 23:33, 13 February 15 »
Ton-Periode, Gröβe in Bit = 15 (0..4095)
Ok. 15 Bit. Aber damit muß es doch trotzdem als DEFW geschrieben werden.