NJSZT-WFSZ
Kiemelt támogatók
Axelero Adatpark Craftcore G'Roby Élelmiszerdiszkont-hálózat Kiskapu LAAZ Szolgáltató Betéti Társaság International PHP Magazine Trans-Europe Kft. Weblabor WEB-SERVER
phpHOST Wish Internet Consulting webthiNgs LevitatorMedia
Jó volt, szép volt.

2005 5+5k PHP 5 compo kiírás barkochba galéria top10

5K Polyphonic Ringtone COMPOser

5K Polyphonic Ringtone COMPOser
elkövette:
Ajtai Veronika
tesztfok:
A szerveren érvényben levő erőforrás-korlátozás miatt csak otthon tudod kipróbálni! (összes contrib letöltése)
licenc:
GNU GPL 2.0

Leírás

PHP alapú csengőhang/MIDI generáló program, néhány előre beállított 
példával. Teljes forráskód jó sok kommenttel és használati utasítás 
mellékelve... =)

Indítás: index.htm

Jó szórakozást! =)


-------------------------------
5K Polyphonic Ringtone COMPOser
-------------------------------

------
Mi ez?
------
Egy PHP alapú MIDI generáló program, elsősorban polifónikus, azaz többszólamú csengőhangok 
készítéséhez. Azért elsősorban, mert minden alapvető dolgot tud, ami ezekhez kell, viszont 
hely hiányában a MIDI sok lehetőségét (főleg olyasmiket, amiről egy "hétköznapi" ember nem 
is tudja, hogy a MIDI tud ilyet =)) nem használja ki. Amúgy MIDI-1 formátumú file-okat 
generál.

-----------
Mire képes?
-----------
A program 8 csatornát használ (ez nem azt jelenti, hogy egyszerre max. 8 hang, lehet több). 
Mindhez külön meg lehet adni, hogy milyen hangszert használjon, illetve a hangerősséget. 
És természetesen minden csatornánál meg lehet adni, hogy abban milyen hangok is szerepeljenek. 
Ezen kívül még meg lehet adni a tempót, "bpm", azaz "beats per minute" (ütés/perc) formában. 
Az alapértelmezett tempó 120 bpm.

----------------------
Hogyan kell használni?
----------------------
Azt hiszem, a hangszeren és a hangerőn nincs sok magyarázni való. A hangszert ki kell 
választani a listáról (nagy nehezen sikerült bepasszírozni mind a 128-at), a hangerő pedig 
egy 1 és 127 közötti szám, minél nagyobb, annál hangosabb. A hangok szerkezete azonban 
ennél bonyolultabb: [hossz][hang][#/b][oktáv]. Ez azt jelenti, hogy először meg kell adni 
a hosszúságot (lásd. következő mondat), a hangot, ami lehet C, D, E, F, G, A, vagy B 
(ami nálunk H-ként elterjedt, ki tudja miért...), ezután szükség esetén egy # vagy b
(de például a D# és az Eb ugyanazt jelenti), és végül az oktávnak a száma, ami egy 0 és 9 
közötti szám, minél nagyobb, annál magasabb - a közép C oktávja 4 (az érvénes hangskála 
C#0-tól G9-ig terjed). A hosszúság formátuma 1/hossz, azaz negyedeknél 4, nyolcadoknál 8, 
tizenhatodoknál 16, stb. (de max 2 számjegy). Az összes ilyen eseményt szimpla szóközökkel 
kell egymástól elválasztani. Erre figyeljünk oda, mert hely hiányában a program elvárja, 
hogy helyes "szintaxist" kapjon. Meg lehet adni egyszerre több hangot is, ilyenkor szóköz 
helyett kötőjellel kell a hangokat elválasztani, hossz nélkül. Ennyit a hangokról. A "kódunkba" 
még lehet szüneteket is tenni, ezek formátuma: [hossz][.]. A hosszúság ugyanúgy működik, 
mint a hangoknál, csak ezek mögé még kell egy pont is.  

Ha eddig figyeltél, akkor tudni fogod, hogy ez a Boci boci tarka eleje:
8c4 8e4 8c4 8e4 4g4 4g4 (a program a kis- és nagybetűk között nem tesz különbséget)

Ez pedig ugyanaz, csak két oktávon játszva:
8c4-c3 8e4-e3 8c4-c3 8e4-e3 4g4-g3 4g4-g3

Összefoglalva:

	Hangok:
		[hossz][hang][#/b][oktáv](-[hang][#/b][oktáv]-[hang][#/b][oktáv] stb.)

	Szünetek:
		[hossz][.]

	Az összes esemény szóközökkel elválasztva.

Be van építve három példa "kód" is, egyszerűbbek és bonyolultabbak egyaránt, azokban
lehet a szintaxist nézegetni... =) Miután készen vagy a hangokkal is, nincs más hátra,
mint előre, generáld le! Ilyenkor ha minden jól sikerült, kapsz egy párbeszédablakot,
ami arról érdeklődik, hogy szerzeményedet menteni szeretnéd, vagy megnyitni.

------------------------
Hiányosságok és hasonlók
------------------------
Nincs dob. Egyrészt, mert a MIDI-ben a dobok nem egy hangszerként működnek, hanem egy
csatornaként, és úgyis csak az tudná őket használni, aki ért ehhez, másrészt megint
csak a helyhiány... ;)

A generált MIDI file-ok mérete nincs optimalizálva. Ugyanis amikor azonos események
követik egymást (itt meg csak hangok vannak), kb. 2/3 annyi byte-ban is lehetne őket 
tárolni. De ezt a mobiltelefonok nem tudom mennyire támogatják, ezért kihagytam.

------------------------
Felhasználási feltételek
------------------------
Ez a program a GNU GPL licensz 2.0-s vagy újabb verziója által 
meghatározott keretek között szabadon felhasználható és módosítható. 
A licensz elérhető a www.gnu.org/licenses/gpl.html címen. 

-----------------------------------------------------
Készítette: Ajtai Veronika (fatalfanatic(a)hotmail.com)