Eğlence için basit bir müzik kompozisyon sistemi inşa ederek etraftayım. Müziği hafızada temsil edebilirim, ama gerçek sesleri çıkarabilmeyi isterdim (tabii ki)! Biçimin ne olduğu umrumda değil (MIDI, mp3, ogg, neyse). Sadece örnekleri programa yükleyebilmek ve bunları mümkün olan en basit şekilde oynamak istiyorum. Bir çözüm için etrafta arama yaptım, ancak gördüğüm her şey ya a) ihtiyaçlarım için çok karmaşık (baş üstü), b) aktif olarak desteklenmiyor, ya da c) iyi belgelenmemiş. Bir ses çıktısı örneği veya başka bir şekilde, bunu yapmanın en basit yolunun bazı yönlerini görmeyi çok isterim.Haskell'de ses örneği çalmanın en kolay yolu nedir?
cevap
MIDI kullanarak ve Mac OSX'te SimpleSynth'e olayları göndererek sona erdim. Bu, hmidi paketi ve the bindings to OSX's CoreMIDI by bkomuves kullanılarak sağlandı. En son GHC ile çalışmak için here'dan hmidi paketinin bir çatalını takmak zorunda kaldım. Daha sonra SimpleSynth'u yükledim ve OSX'deki Audio MIDI Setup yardımcı programını kullanarak bir IAC Sürücüsünü etkinleştirdim. Daha sonra kurduğum IAC sürücüsünü dinlemek için SimpleSynth'i ayarladıktan sonra Destination
'u Destination
'u kapmak ve 'u send
kullanarak MidiEvents
'a göndermek için enumerateDestinations
işlevini bkomuvres 'bindings'ten CoreMIDI'ye kullanabiliyordum. Bir çekicilik gibi çalışır!
Haskell ile, kodunuzdaki diğer kütüphaneleri/uygulamaları kullanarak dil üzerinde bir tutamaç elde etmek isteyebilirsiniz, ancak aşağıdaki link, müzik ve ses kütüphaneleri için bir linktir.
http://www.haskell.org/haskellwiki/Applications_and_libraries/Music_and_sound
başka bir fikir C/C++ ile OpenAL'le yakınlık kazanmak ve daha sonra oradan (aslında OpenAL'in DLL/SO aramaları OpenAL'in bağlanması Haskell'e) HOpenAL yapısı konusunda biraz bilgi sahip olacaktır.
OpenAL için basit bir eğitici ile bağlantıya geçin! umarım bu yardımcı olur
Sen Hackage üzerinde değil Euterpea, ister fakat yüklemek için bir esinti oldu ve oldukça ayrıntılı belgeleri (buna bir tanıtım Haskell çekirdeğini oluşturan görünüyor sahiptir olabilir Yale dersi. Daha fazla bağlantı/talimat bulmak için üstteki menüde "Euterpea" kelimesinin üzerine gelin.
Kullandığım çözüm bu değildi, ama bana onu yönlendirdi, teşekkürler! –
@BenjaminKovach çözümünüzün ne olduğunu hatırlıyor musunuz? Dokümanlara bir göz attım ancak ses çalmanın herhangi bir yolunu, sadece bir wav dosyasına işleyebilme yeteneğini bulamıyorum. –
@Chris Aşağıda yazdığı cevaplara bir göz atın! –
- 1. WPF'de bir MP3 çalmanın en kolay yolu nedir?
- 2. Python'da bir ses dosyasını çalmanın çapraz platform yolu nedir?
- 3. mnesia şemasını güncellemenin en kolay yolu nedir?
- 4. Bir çizgiyi canlandırmanın en kolay yolu nedir?
- 5. Tetikleyicilerde olumsuzlama yapmanın en kolay yolu nedir?
- 6. En Kolay Muhtemel Performans Sayacı Örneği
- 7. Android'de ses dosyası süresinin en iyi yolu nedir?
- 8. Blob'u bayt dizisine dönüştürmenin en kolay yolu
- 9. Angular JS'de modals işlemek için en kolay yolu nedir?
- 10. Bu verileri bir Pandas Dataframe'e aktarmanın en kolay yolu nedir?
- 11. Bir iPhone uygulamasında verileri sürdürmenin en kolay yolu nedir?
- 12. Yerel bir subversion sunucusunu kurmanın en kolay yolu nedir?
- 13. Başlıkları Ruby'deki bir CSV dosyasından almanın en kolay yolu nedir?
- 14. JSON'u .net dünyasında BSON'a dönüştürmenin en kolay yolu nedir?
- 15. Android'de küçük miktarlarda veri (nesneler) kaydetmenin en kolay yolu nedir?
- 16. Sayıların bir listesindeki boşlukları doldurmanın en kolay yolu nedir?
- 17. Python'da bir bilgisayar mikrofonuna erişmenin en kolay yolu nedir?
- 18. İlişkisel diziyi C# ile işlemenin en kolay yolu nedir?
- 19. İnternette bir telgraf botunu dağıtmanın en kolay yolu nedir?
- 20. Değişken bir AST'yi güncellemenin en kolay yolu nedir?
- 21. Java'da özel ikili veri iletileri ayarlamanın en kolay yolu nedir?
- 22. Coffeescript'te sınıf üyeliğini test etmenin en kolay yolu nedir?
- 23. Bu XML belgesini nesneme dönüştürmenin en kolay yolu nedir?
- 24. İkili modda stdout'a yazmanın en kolay yolu nedir?
- 25. OpenCV: Bir Mat'ı bir Scalar'a bölmenin en kolay yolu nedir?
- 26. Bir .NET uzak sunucu nesnesine bağlanmanın en kolay yolu nedir?
- 27. Bir haritanın alt-haritasını almanın en kolay yolu nedir
- 28. Android: Küçük miktarlarda veri kaydetmenin en kolay yolu nedir?
- 29. Karakterle başlamayan tüm dizeleri almanın en kolay yolu nedir?
- 30. Javascript'te sadece bir sayının işaretini almanın en kolay yolu nedir?
MIDI bir ses formatı değildir. – leftaroundabout
@leftaroundabout MIDI verilerinde okuyabilseydim ve oynatırsam, bu bana yardımcı olur. –
Eğer linux veya osx üzerindeyseniz, en basit yol bir ses dosyasını belleğe (muhtemelen 'libsndfile' kullanarak) yüklemek ve'/dev/audio'ya yazmaktır. Ya da "sox" ya da benzerlerini dışarda tut ve bir ses dosyası çal. –