Próbuję napisać program do losowego generowania muzyki w oparciu o prosty zestaw reguł. Chciałbym, żeby program mógł generować własne dźwięki, w przeciwieństwie do pliku z dźwiękiem dla każdej nuty. Czy ktoś wie prosty sposób na robienie tego? Byłoby miło (ale nie koniecznie), aby dźwięk był polityczny, i chciałbym znaleźć rozwiązanie dla Linuksa, używając C.Jak odtwarzać dźwięk w systemie Linux za pomocą C?
Odpowiedz
Możesz spróbować znaleźć sekwencer C midi (taki jak MIDI Sequencer). Zajrzyj także do plików .au sformatowanych w formacie audio (np. Spójrz na specyfikacje dla nagłówków .au i formatu danych dźwiękowych). Nie będziesz mógł używać formatu .wav, ponieważ przed rozpoczęciem odtwarzania wymaga on podania długości w nagłówku.
Proponuję wypróbować bibliotekę PortAudio. Jest to szczupła wieloplatformowa biblioteka, która usuwa funkcje wyjścia audio.
Zawiera wiele małych przykładów. Jeden z nich gra pojedynczą falę sinusoidalną, gra się jednocześnie w jedną falę sinusoidalną. Ponieważ przykłady już zawierają 90% tego, czego potrzebujesz, dźwięk powinien być włączony i uruchomiony w mniej niż pół godziny.
Podpowiedź: Najlepsza dokumentacja PortAudio znajduje się w pliku nagłówkowym!
Here is an ALSA example który odtwarza czysty dźwięk fali sinusoidalnej. Przypadkowo, myślę, to również pokazuje, dlaczego nie chcesz tego zrobić bezpośrednio w bibliotece ALSA.
Alsa wydaje się być dość nieporęczna w tej scenie, dziwnie uważam wersję OSS podobnej rzeczy o wiele bardziej zrozumiałą; jest tutaj "http://manuals.opensound.com/developer/singen.c.html". Jeśli jest jedna rzecz, której się nauczyłem, to jest to, że praca z dźwiękiem dla Linuksa jest trochę zagmatwana. –
- 1. Jak mogę odtwarzać dźwięk w WinForms?
- 2. Jak płynnie odtwarzać dźwięk za pomocą api web audio
- 3. Jak odtwarzać dźwięk jak najszybciej?
- 4. Jak odtwarzać dźwięk z biblioteki w AS3?
- 5. Jak odtwarzać dźwięk (alert) w aplikacji java?
- 6. Qt - jak nagrywać i odtwarzać dźwięk jednocześnie
- 7. Jak odtwarzać dźwięk powiadomienia z Androidem
- 8. iOS - Jak odczytać dźwięk ze strumienia i odtwarzać dźwięk
- 9. Jak odtwarzać dźwięk w Qt5 (migracja Qt4)?
- 10. Jak mogę odtwarzać dźwięk w rozszerzeniu chrome
- 11. Jak odtwarzać dźwięk w tle Swift?
- 12. jak zip poszczególnych folderów w systemie Linux za pomocą Shell
- 13. Jak odtwarzać utwór w systemie Android - phonegap
- 14. Jak odtwarzać dźwięk za pomocą AVAudioPlayer w trybie cichym w telefonie iPhone
- 15. Jak odtwarzać dźwięk, jeśli przekazujemy NSData?
- 16. Jak uniknąć łzawienia za pomocą pygame w systemie Linux/X11
- 17. Jak wyszukać plik wykonywalny za pomocą Pythona w systemie Linux?
- 18. Tworzenie GUI za pomocą Pythona w systemie Linux
- 19. Jak odtwarzać dźwięk w odwrotnej kolejności za pomocą interfejsu web audio API?
- 20. kompilacji F Program # w systemie Linux za pomocą wiersza poleceń
- 21. Jak odtwarzać dźwięk kliknięcia przycisku systemowego na iPadzie?
- 22. Jak odtwarzać listy mp3 za pomocą SoundManager za pomocą kontrolek
- 23. Jak odtwarzać pliki .wav za pomocą java
- 24. Jak odtwarzać pliki MP3 za pomocą JavaScript?
- 25. Jak odtwarzać plik audio za pomocą jQuery?
- 26. Uzyskiwanie strefy czasowej w systemie Windows za pomocą C++
- 27. Odtwórz dźwięk za pomocą SoundPool
- 28. Jak przeskakiwać dźwięk za pomocą cocoalibspotify?
- 29. Sprawdzanie uprawnień do plików w systemie Linux za pomocą Pythona
- 30. Jak odtwarzać dźwięk po uruchomieniu testów jednostkowych w Visual Studio
Możesz spojrzeć na źródło http://en.wikipedia.org/wiki/SuperCollider – JasonTrue