Jó volt, szép volt.
2005 5+5k PHP 5 compo
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)