3 tane wav dosyayı 1 dosya içine yığmak ve burdan okutmak!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

3 tane wav dosyayı 1 dosya içine yığmak ve burdan okutmak!

Mesaj gönderen sertkayasalih »

Herkese Merhaba,


- Projemde kullandığım 3 tane wav uzantılı ses dosyası var.

Aaa.wav (550Kb)
Bbb.wav (450Kb)
Ccc.wav (500Kb)


Yukardaki ses dosyalarını projemde TMediaPlayer ile farklı zamanlarda yükleyerek çaldırabiliyorum.

- Yapmak istediğim.
* - Bu 3 tane ses dosyasını, boyutları ve özelliği değişmeden 1 dosya içinde bulundurmak(örnek: abc.ses).
* - Projemde TMediaPlayer ile Aaa.wav dosyasını çaldırmak istediğimde abc.ses dosyasının içinden yükleyerek kullanmak istiyorum.


- Nasıl yapabilirim?
1- 3 tane ses dosyasını 1 tane (abc.ses) dosya içine nasıl yığabilirim veya gömebilirim?
2- Projede çalışırken, abc.ses dosyasının içinden Aaa.wav veya Ccc.wav dosyasını TMediaPlayer a nasıl yükleyebilirim?

Not: Projemi Delphi 6 ile derleyip, veritabanı bileşeni kullanmıyorum.
Tek dosya olarak adlandırdığım abc.ses dosyasının uzantısı *.ses olma zorunluluğu olmayıp, başka bir uzantı da olabilir.



Yardımcı olan herkese şimdiden çok teşekkür ederim :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

BlockRead BlockWrite. Bu iki komutla dosyalarınızı birleştirin.
Program ihtiyaç duyduğunda dosyaları/dosyayı geçici olarak oluşturun.
Help'den bu komutların nasıl kullanıldığını öğrenebilirsiniz.
Daha fazla yardım isterseniz belirtmeniz yeterli :wink:
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

Merhaba ulu coder hocam,

- İlginiz ve cevabınız için çok teşekkür ederim :)

- Hocam, Delphi'de acemi sayılırım. Delphi'de 3 dosyayı 1 dosya haline dönüştürmenin ve dönüşen 1 dosyadan 3 tane dosyayı okumanın mümkün olabilmesine çok sevindim :)

- Belirttiğiniz gibi, BlockRead ve BlockWrite hakkında Help'de açıklamayı ve örneği inceledim.

Bir hayli deneme yaptım fakat, daha birinci aşamayı yani 3 dosyayı 1 dosya olarak birleştirmeyi beceremedim :oops:

Dolayısıyla, ikinci aşama yani birleşmiş olan 1 dosya içinden ayrı ayrı okutmayada geçemedim :oops:

ulu coder hocam,
ilk defa karşılaştığım bu konuda sizin bildiğiniz bir kaynak kodlu örnek çalışma var mı? Varsa nasıl ulaşabilirim?

Tekrar yardımlarınız için çok teşekkür ederim :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

@cemarik'in dediği gibi exe'nin içine gömebilirsin. Wav dosyası olduğu için mediaplayer'a da ihtiyacın yok ayrıca.
örnek ve açıklama :viewtopic.php?t=11908
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

Merhaba,
cemarik yazdı:resource olarak kullanabilirsin.
http://www.swissdelphicenter.ch/en/showcode.php?id=169
hdayi yazdı:@cemarik'in dediği gibi exe'nin içine gömebilirsin. Wav dosyası olduğu için mediaplayer'a da ihtiyacın yok ayrıca.
örnek ve açıklama :viewtopic.php?t=11908
@cemarik ve @hdayi, ilgi ve yanıtınız için çok teşekkür ederim :)


- Değerli hocalarım,
Konu başlığını açarken, yapmak istediğimi daha kolay ifade edebilirim düşüncesiyle fazla detay yazmadım.

- İnşallah, yapmak istediğimi bu defa doğru ifade edebilirim ve uygun bir çözüm bulunabilir ümidiyle, projemin detaylarını yazıyorum:

Üstünde 1 yıldır uğraşıp son aşamasında olduğum projem, uluslararası Müzik Teknolojileri alanında Made In Turkiye imzasını taşıyacak, VSTi(Virtual Studio Technology Instruments) standardına sahip, 24bit 96000 Hz. kapasiteli bir ses modülü(Sound Sampler) Plug-in olup ve uzantısı dll dir.

Birlikte kullanıldığı programlar:
ASIO(Audio Stream Input Output) ve VSTi standardlarını destekleyen programlar içinde çalışabilir. (Örnek: CubaseSX, Cakewalk SONAR ve benzeri diğer programlar )

Bu ses modulunde her bir wav(24bit-96000Hz) dosyasını veya aynı anda birden fazla wav dosyalarını çaldırmayı(Play) Midi komutları tetikliyor.

Çalışma prensibine bir örnek:
MidiInput dan,
36 nolu mesaj gelirse Aaa.wav,
37 nolu mesaj gelirse Bbb.wav,
38 nolu mesaj gelirse Ccc.wav,
< ....>
83 nolu mesaj gelirse Xxx.wav
dosyalarını pointer ile pbuffer kullanarak çaldırıyorum, işi bittikten sonra hafızadan siliyorum ki çalışma esnasında hafıza dolu hata mesajı almamamak için.

- Bu aşamaya kadar problemsiz yapabiliyorum.

- Benzer başka projelerde, bu wav dosyalarının hepsini(örnek: 1400 tane 24bit-96000Hz wav dosyası) 1 dosya(örnek dosya boyutu 1.2 Gb) haline dönüştürüp, (exe ye gömmeden) bu 1 tane dosyanın içinden çağırarak çaldırıyorlar.
Bu yöntem ise binlerce wav dosyasının dağınıklığını önlediği gibi, kullanım esnasında da büyük kolaylık sağlıyor.

Şayet, resource haline dönüştürme yöntemine benzer (exe içine gömmeden) bir yöntem olursa çözülebilir diye düşünüyorum :?:

İşte projemin son aşaması olan bu yöntemi nasıl yapacağımı bilemiyorum :!:

- Yardımlarını esirgemeyen herkese şimdiden teşekkürler :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

o zaman sende çalacağın wavları gruplandır ve bu grupları DLL ler içerisine resource olarak koy.
cemarik
Üye
Mesajlar: 45
Kayıt: 30 Ağu 2003 11:05
Konum: İzmir

Mesaj gönderen cemarik »

elimde şu anda hazır kod olarak yok ama bu bahsettiğim dll e resource olarak gömme işi hakkında pek çok bilgi bulabilirsin.
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

audiere kütüphanesini kullan
b-yaz
Üye
Mesajlar: 5
Kayıt: 04 May 2005 12:51

Mesaj gönderen b-yaz »

Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

bk yazdı:audiere kütüphanesini kullan
- cevabınız için teşekkür ederim :)

audiere kütüphanesini inceledim. Birden fazla wav dosyayı birleştiren veya içinde bireden fazla wav dosyası olan 1 dosyanın içinden wav dosyayı çıkarıp okuyabilecek bir özelliğe rastlayamadım.

Ya da ben bulamadım :oops:

Tam olarak neresinde yapılabiliyor. Belirtebilirseniz çok sevinirim :)

- Yardımınız için tekrar teşekkür ederim.
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

audiere kütüphanesini inceledim. Birden fazla wav dosyayı birleştiren veya içinde bireden fazla wav dosyası olan 1 dosyanın içinden wav dosyayı çıkarıp okuyabilecek bir özelliğe rastlayamadım.
kusyra bakma ben yanlış anlamışım :oops:
lakin problem sadece wav dosyalarını tek dosyada tutmaksa veritabanı kullanabilirsin blob alana dosyayı aktarırsın sonra buradan kullnacağın zaman tekrar dosyaya aktarır çaırırsın. sanırım blob ile ilgili örneklerin formda olması lazım
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

midijor yazdı:Instruments[/color]) standardına sahip, 24bit 96000 Hz. kapasiteli bir ses modülü(Sound Sampler) Plug-in olup ve uzantısı dll dir.
Selamlar. Bu türden pluginlerin nasıl yazılması gerektiğini açıklayan bir link biliyor musunuz?
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

Merhaba,
- Birleştirme için güzel bir örnek. Daha önce rastlayıp denemiştim. Fakat ayrıma işlemini yapan örnek olmayınca sonraya bıraktım!
@b-yaz yardım için teşekkür ederim :)
bk yazdı:lakin problem sadece wav dosyalarını tek dosyada tutmaksa veritabanı kullanabilirsin blob alana dosyayı aktarırsın sonra buradan kullnacağın zaman tekrar dosyaya aktarır çağırırsın.
- Hocam veritabanı kullanmak, milisaniye bazından gecikmeye(Latency) sebep olduğundan, TFileStream ile ilgili bir örnek buldum. Netice olumlu olursa buraya çözümüyle birlikte yazacağım.
@bk
tekrar yardımınız için teşekkür ederim :)
coderlord yazdı:Selamlar. Bu türden pluginlerin nasıl yazılması gerektiğini açıklayan bir link biliyor musunuz?
@coderlord,

- Ülkemizde çok bakir bir alan olan, Müzik Teknolojileri konusunda, Plug-in yazmayla ilgilenmenize çok sevindim :)

Steinberg in ASIO ve VST/VSTi SDK C++ dan Delphi ye adapte eden Tobybear-Christian ın bileşeni için : buradan,

Kaynak kodlu MiniHost örneği için : buradan,
Kaynak kodlu VST örnek çalışmalar için : buradan indirip nasıl çalıştıklarıyla ilgili bilgi edinebilirsin.

VST/VSTi konularında dünyadaki bütün DSP plug-in yazarlarının bilgi paylaşım için
Delphi forumu, C++ ve diğer diller için forum

- Şayet C++ biliyorsanız, ASIO ve plug-in konusunda, ülkemizdeki bir çok açığı kapatabilecek binlerce kaynak bilgi ve kodlar var. Böylece daha hızlı yol katedebilirsiniz. Delphi için bu alan çok az.

- 30 yıla yakın profesyonel müzik, 20 yıla yakın dijital müzik ve 3 yıla yakın orta seviye Delphi tecrübemle, bildiğim konularda yardımcı olabilirim.

Faydalı olması ümidiyle...
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

@midijor, kardeşim de işi gereği bu yazılımlar ile ilgilendiğinden bilgi almak istemiştim. Bu kaynakları bizimle paylaştığın için teşekkürler. :)
Cevapla