ENTERPRISE KLUB
2021. október 2., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Belépés kizárólag klubtagok részére! (Klubkártyával vagy előfizetéssel!)
Welcome, Guest. Please login or register.


Author Topic: Zeneprogramozás (Read 274775 times)

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 47.0.2526.73 Chrome 47.0.2526.73
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #645 on: 2016.January.09. 13:23:38 »
amúgy az jutott eszembe, hogy annak idején próbáltam egy olyan programot csinálni, ami a magnó bemeneten érkező jelből zenei hangokat csinált. azaz a hangmagasságokat próbálta kiszámolni.
persze nem sikerült. mondjuk amikor már jól tudtam asm-ban programozni, lehet hogy meg tudtam volna csinálni.
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 43.0 Firefox 43.0
    • View Profile
    • http://lgb.hu/
Re: Zeneprogramozás
« Reply #646 on: 2016.January.09. 13:58:42 »
amúgy az jutott eszembe, hogy annak idején próbáltam egy olyan programot csinálni, ami a magnó bemeneten érkező jelből zenei hangokat csinált. azaz a hangmagasságokat próbálta kiszámolni.
persze nem sikerült. mondjuk amikor már jól tudtam asm-ban programozni, lehet hogy meg tudtam volna csinálni.

Lazan :) kapcsolodik, a C64 streaming audio server otlete :) Itt nemi ethernet interface-szel ellatott C64-rol lehetett halozaton at zenet hallgatni. A lenyege az volt, hogy a C64 magnojabal sima audio kazettat tettel (celszeruen rajta pl zenevel ...), az arrol erkezo jel lett kvazi igy tehat 1 biten "digitalizalva" es azt stream-elte ethernet halozaton at aztan a kliensek fele :)

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 47.0.2526.111 Chrome 47.0.2526.111
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #647 on: 2016.January.24. 16:39:25 »
milyen kár hogy nincs valami loop lehetőség ep-n akár envelope, akár több hang loop-olására...
egyszerűbb lett volna háttér zenéket berakni játékokba
Vigyázat! Szektás vagyok! :)

Offline Povi

  • EP addict
  • *
  • Posts: 2094
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 43.0 Firefox 43.0
    • View Profile
    • http://povi.fw.hu
Re: Zeneprogramozás
« Reply #648 on: 2016.January.27. 15:16:50 »
Ebben az a jó, hogy a papírt akár fordítva is bele lehet tenni a lejátszóba, visszafele is le lehet így játszani a dallamot. Biztos voltak már pályázatok olyan zenére, ami visszafele lejátszva is "értelmes".
Van ilyen:
Bach Crab Canon
https://www.youtube.com/watch?v=xUHQ2ybTejU
*** Speicherplatz zu klein

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 47.0.2526.111 Chrome 47.0.2526.111
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #649 on: 2016.January.27. 15:51:57 »
Van ilyen:
Bach Crab Canon
https://www.youtube.com/watch?v=xUHQ2ybTejU

hát ilyen típusú zenénél azért nem nagy szám hogy visszafelé is értelmes valamilyen szinten :)
ez a bach sok ilyen fraktálszerű zenét csinált amiben én főleg rideg és száraz matematikát érzek csak. a zene sokkal több ennél, ahogy egy fraktál képnél is jóval több az amit a világban látunk
Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 47.0.2526.111 Chrome 47.0.2526.111
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #650 on: 2016.February.03. 20:06:31 »
van ez a sound buffer

SOUND BUFFER
SET SOUND BUFFER kif
A legközelebb a "SOUND:" eszközre megnyitandó csatorna hangtárának a méretét adja meg hangfázisokban mérve (1-255). Az alapérték 20. Használható az ASK.

na most ezzel lehet nagyobb envelope-knek memóriát lefoglalni, de vajon azt mi vezérli hogy egy hangcsatornán hány hang tud bufferelődni mielőtt megakasztja a rendszert?
Vigyázat! Szektás vagyok! :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1056
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 44.0 Firefox 44.0
    • View Profile
Re: Zeneprogramozás
« Reply #651 on: 2016.February.05. 19:22:11 »
Miután észrevettem, hogy a másik témában rákérdeztél a 0. szegmens visszafejtésre, belelapoztam a könyvbe. Szerintem a 191. oldal elején van a kérdésedre a válasz egy darabja. Gondolom ha összeveted az adatokat az EXOS könyvben leírt Escape szekvenciákkal, akkor közelebb jutsz a megoldáshoz.

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 48.0.2564.82 Chrome 48.0.2564.82
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #652 on: 2016.February.07. 12:42:03 »
Miután észrevettem, hogy a másik témában rákérdeztél a 0. szegmens visszafejtésre, belelapoztam a könyvbe. Szerintem a 191. oldal elején van a kérdésedre a válasz egy darabja. Gondolom ha összeveted az adatokat az EXOS könyvben leírt Escape szekvenciákkal, akkor közelebb jutsz a megoldáshoz.

de ha jól értem ezt nem lehet átírni basic-ból vagy exos-ból, azaz sehogy
most lemértem, 26 hangot tud tárolni a buffer, de hangcsatornánként (tehát nem összesen).
ez elég kevés zenéhez...
magyarul nem lehet azt csinálni hogy egy játék elején elindítok egy zenét sok sound utasítással, és az majd szépen szól percekig :) (kivéve ha marha hosszú duration-okkal, de hát az ügye nem zene)

nagy kár ez... persze az igazi megoldás valamiféle loop lenne
Vigyázat! Szektás vagyok! :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1056
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 44.0 Firefox 44.0
    • View Profile
Re: Zeneprogramozás
« Reply #653 on: 2016.February.07. 13:53:16 »
Nem értek az IS BASIC-hez (szóval csak halkan kérdezem), nem lehetne valamilyen WHEN-es HANDLER-es konstrukcióval ezt megoldani?

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 48.0.2564.82 Chrome 48.0.2564.82
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #654 on: 2016.February.07. 15:29:50 »
Nem értek az IS BASIC-hez (szóval csak halkan kérdezem), nem lehetne valamilyen WHEN-es HANDLER-es konstrukcióval ezt megoldani?

nem, sajnos
egyáltalán nem lehet lekérdezni a hangok állapotát
azaz csak annyit lehet hogy az ember belerakja a game loop-ba, ami ügye basic esetén nem épp stabil idő tekintetében...
ez esetben a sound utasításban használni kell az interrupt paramétert, ami megakadályozza hogy betelljen a sound buffer, de persze a zene precíz időzítésének annyi

a megoldás az lenne hogyha a rendszer tudna loop-ot, azaz x hangot lejátszva amikor a végére ér, újrakezdené.

vagy ha más nem, az envelope-ban meg lehetne ilyet adni, így envelope-be lehetne programozni kisebb dallamokat

kár hogy kihagyták ezeket a ziccereket a fejlesztők...
Vigyázat! Szektás vagyok! :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1056
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 6.2 Windows NT 6.2
  • Browser:
  • Firefox 44.0 Firefox 44.0
    • View Profile
Re: Zeneprogramozás
« Reply #655 on: 2016.February.07. 18:14:27 »
Hát, lehet hogy tökre félreértem a dolgot, de elvileg van lehetőség IS BASIC-ben időzítőt létrehozni és megszakításból kezelni. Vagy nincsen ilyen?

Ha jól olvastam, a legrövidebb időzítő 1 másodperces lehet. Ez azt jelenti, hogy 50 hang-időegységenként váltódik ki. A hangfeldolgozó várakozósor csatornánként 9 hangparancsot tud befogadni. Egy másodpercre vetítve a kilenc hangot, az jön ki hogy átlagosan kicsit kevesebb mint 6 időegységig (0,12 s – pontosabban 1/9 s) szólhatnak az egyes hangok ahhoz hogy teljesen kihasználd a puffert és ne maradjon benne hang a következő megszakítás bekövetkezésének idején.

Az összes általad megadott hangnak ismered az időtartamát. A pufferelt hangok idejét és számát összegezve nyilvántartható, hogy a megszakítás bekövetkeztekor az adott szólamból mennyi hang várakozik még, illetve a szólam melyik hangjától mennyi hangot lehet és kell sorba állítani, hogy a következő megszakításig el legyen foglalva a gép a zenéléssel. Csak annyi a megszorítás, hogy a zene bármely pontján egy másodpercbe ne essen több mint kilenc hang.

Vagy rosszul értelmezek valamit?

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 48.0.2564.82 Chrome 48.0.2564.82
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #656 on: 2016.February.07. 18:43:24 »
basic-ben megszakítást? nem tudok róla hogy ilyen lehetséges lenne
Vigyázat! Szektás vagyok! :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14015
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 43.0 Firefox 43.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Zeneprogramozás
« Reply #657 on: 2016.February.07. 18:52:54 »
basic-ben megszakítást? nem tudok róla hogy ilyen lehetséges lenne
Hogyne lehetne!

Quote
SET TIMER kif
Olyan órát indít el visszafelé, amely a nullát elérve szoftver megszakítást generál. A kifejezés a beállítandó időt adja meg másodpercben, maximuma 255. A 0 érték beállításakor az óra kikapcsol. A nullát elérve az óra mindig automatikusan megáll és újra el kell indítanunk.
Az ilyen megszakításkor az EXTYPE értéke 9229, az INTERRUPT CODE 64 lesz.

Quote
HANDLER
HANDLER handler-név
handler utasításook
END HANDLER
A handler blokkok -továbbiakban megszakításkezelők- az olyan különleges problémákat kezelik a program futása során, mint a hibák, a CAUSE EXCEPTION utasítások által, ill. a gép által generált megszakítások. Az ilyen eseményekkor használandó megszakításkezelő nevét a WHEN blokk fejlécében adhatjuk meg. (L. még: CONTINUE, RETRY, EXIT HANDLER utasítások és az EXLINE, ill. EXTYPE függvények.) A megszakításkezelők nem hívhatók meg GOSUB vagy GOTO utasítással, csak a CAUSE EXCEPTION-nal.
Ha a blokk végrehajtása közben újabb megszakítás következik be, akkor a következő külső megszakításkezelőé a vezérlés - hasonlóan az EXIT HANDLER utasítás hatásához -, de az EXLINE és az EXTYPE értéke természetesen megváltozik. Külső megszakításkezelő az, amelyiket a jelenlegi WHEN blokkot tartalmazó WHEN blokkban jelöltünk ki.

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 48.0.2564.82 Chrome 48.0.2564.82
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #658 on: 2016.February.07. 18:59:40 »
nocsak nocsak! ez nem semmi!
valszeg amikor én megszakításokkal kezdem foglalkozni, akkor már asmban dolgoztam
na ezt ki fogom próbálni, bár ha jól értem max 1 másodpercest lehet, ami persze nem csoda, hiszen basic-ből nem lenne sok értelme finomabbnak
de egy-egy zene részletet elindítani bőven elég x másodpercenként is
Vigyázat! Szektás vagyok! :)

Offline endi

  • EP addict
  • *
  • Posts: 7305
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 48.0.2564.82 Chrome 48.0.2564.82
    • View Profile
    • Honlapom
Re: Zeneprogramozás
« Reply #659 on: 2016.February.07. 19:00:54 »
na várjunk csak, de ha jól értem ez a megszakítás rutin nem tér oda vissza ahonnan indult
azaz kb semmire se lehet használni...?
Vigyázat! Szektás vagyok! :)