Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
?HTML-ben a Flash átméretezés torzul
Eredeti mezőnevek lekérdezése
?Input mezőből visszakapott adat probléma
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Wave fájlok kirajzolása

»

Wave fájlok kirajzolása

nyitotta: aDaM, idő: 2010.03.14., moderátor: Árnyék
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » Visual Basic

Sorrend:
Időzóna:
Blokkméret:
Még régen próbálkoztam VB-s formra kirajzolni egy sztereó, CD minőségű hanghullám (wave) fájl tartalmát, ám nem sok sikerrel. Olyan megoldást keresnék, ami közvetlen, tehát mindenféle API-k és/vagy DLL hívásokat mellőz.

Köszönettel!

L. Ádám
VB.Net/VB6/VBA?
Ez ugyan C#-os, de szvsz konvertálható..(Drawing wave line in C#)
Példa forráskódja letölthető.
VB5/6
Üdv VB5 vagy VB6 lenne. Ez a példa csak szinusz hullámot rajzol ki, én azonban be szeretnék olvasni egy .wav fájlt és annak a hullámformáját akarnám kirajzoltatni. (A beolvasás nem ment).

aDaM
Mi az eddigi elképzelésed? Meddig jutottál el?
Ismered a Pascal-t vagy az Assembly-t?

Ha .wav file-ot akarsz kirajzolni, előszöris kell tudnod, hogy kell a programból file-ot megnyitni, olvasgatni belőle, és ismerned kell a .wav fejlécét is. Ezután a hangmintákat egyenként olvasgatni kell, ebből kiszámítani a koordinátáát, és végig kell putpixelezni. Tehát kell választani egy videó felbontást.
Egy egyszerű DOS-os kis progival meg lehet csinálni. Mi nem világos?
Az az igazság, hogy ezt a projektet olyan 7-8 éve felfüggesztettem. Akkor addig jutottam, hogy CoolEdit PRO-ból szövegfájlba exportáltam a wave fájlt. Így egy szöveges listát kaptam (.txt formátumban), ahol egy listaelem felelt meg egy mintának. Azt be tudtam olvasni és ki is tudtam rajzolni.
A gond ott kezdődött, hogy Binary és Random (már ha jól emlékszem) módban akartam megnyitni a fájlt és sehogy sem tudtam olvasgatni.
Ennél jobban már nem nagyon tudom részletezni.

Pascalt érintőlegesen, az Object Pascal kapcsán ismerem a Delphiből, de csak érintőlegesen.
Amit kirajzoltam azt egy formra rajzoltam, így nem kellett felbontást választani, hanem a form méretei domináltak.

aDaM
Még annyit akarok hozzátenni, hogy a Project meg van VB5/6 formátumban (már nem tudom pontosan melyik). Elküldöm akárkinek, ha az segít megválaszolni ezt a komplex kérdést.
Valaki, aki VB-hez ért nézzen már be ide!
Hello,
ez az eljárás kirajzolja a formra a .wav fájlodat
ha átméretezed újra rajzolja.
Csak wav, 16bit Stereo
Üdv.

Private Sub Kirajzol()
Dim kod As String
Dim adat As Byte
Dim hossz As Long
Dim hangL As Integer
Dim hangR As Integer
Dim aranyW As Integer
Dim aranyH As Double

Cls
Open "c:\General Blues.wav" For Binary Access Read As #1
  kod = "    "
  Get #1, 1, kod
  If kod = "RIFF" Then
    Get #1, 41, hossz
    aranyW = hossz / ScaleWidth
    aranyW = aranyW / 4
    aranyW = aranyW * 4
    aranyH = 0.9 * ScaleHeight / (2 * 65536)
    Get #1, 44 + aranyW * 1, hangL
      Line (i, ScaleHeight / 4 + hangL * aranyH)-(i, ScaleHeight / 4 + hangL * aranyH)
    For i = 1 To ScaleWidth
      Get #1, 44 + aranyW * i, hangL
      Line -(i, ScaleHeight / 4 + hangL * aranyH)
    Next i
    Get #1, 46 + aranyW * 1, hangR
    Line (i, 3 * ScaleHeight / 4 + hangR * aranyH)-(i, 3 * ScaleHeight / 4 + hangR * aranyH)
    For i = 1 To ScaleWidth
      Get #1, 46 + aranyW * i, hangR
      Line -(i, 3 * ScaleHeight / 4 + hangR * aranyH)
    Next i
  End If
  Close #1
End Sub

Private Sub Form_Paint()
Kirajzol
End Sub
Üdv, köszi a választ. Bár nem néztem meg, de látatlanban elfogadtam.

aDaM
Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Hack100
»Riha60
»Akhiles50
»mrchandra50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen