2011-11-09 8 views
5

Ricerca di librerie audio semplici per la riproduzione in finestre che non sono GPL o LGPL. Cioè, il software stesso non è E qualsiasi back-end della libreria che usa non sono GPL/LGPL.Libreria audio C++ multipiattaforma che non è GPL/LGPL?

Ho cercato per molto tempo e tutto ciò che trovo promettente (Allegro, SFML ecc.) Risulta avere codice GPL o LGPL. Non sto cercando di avviare un dibattito sulle licenze, è solo una mia preferenza, quindi chiunque conosca qualcosa di semplice, fatemelo sapere.

Non sono necessariamente alla ricerca di una soluzione multipiattaforma, ma non voglio affidarmi a metodi Windows incorporati come PlaySound .. :). Qualsiasi aiuto sarebbe molto apprezzato!

P.S. Per essere chiari su cosa intendo per semplicità, si tratta della maggior parte delle funzionalità richieste:

  1. Fornire il nome del file oi dati in memoria a una funzione di riproduzione.
  2. Se possibile, definire la richiamata per quando il suono è finito.
+7

Qual è il problema con LGPL? Non pone restrizioni al tuo codice purché ti colleghi solo ad esso (IIRC). – eudoxos

+7

Come ho detto è più una questione di preferenza e non voglio entrare nel dibattito su queste cose, ma suppongo che dirò solo che ci sono alcuni passaggi oscuri nella licenza completa se la leggi. Ad esempio, c'è una formulazione del tipo, se il tuo programma diventa "dipendente" da "tipi" all'interno della libreria, anche se il link è dinamico, anche il tuo codice deve diventare LGPL. Ho investito circa 6 mesi della mia vita nella scrittura di un motore di gioco multipiattaforma e mi piacerebbe davvero non regalare 6 mesi della mia vita gratuitamente, anche se le possibilità sono estremamente ridotte. :) –

+0

Se non hai bisogno di cross platform, perché non sei disposto ad usare qualcosa come DirectSound? Non ha senso. –

risposta

2

libsoundio è di livello un po 'inferiore a quello che si sta chiedendo, ma è robusto e MIT concesso in licenza.

1

IrrKLang non è GPL (Si tratta di un prodotto commerciale):

irrKlang è un 2D di alto livello e cross platform 3D (Windows, Mac OS X, Linux) motore sonoro e una biblioteca audio .. . è possibile accedere tramite un'API estremamente semplice.

L'ho già usato ed è piuttosto semplice.

+0

Grazie per il suggerimento, sto pianificando di produrre un gioco commerciale e in questo momento sono sulla dieta mr.noodles quindi sborsare soldi per una licenza in questo momento non è necessariamente un'opzione. lol: D –

+2

Attendi, quindi hai bisogno di un sistema audio non LGPL/GPL E deve essere gratuito per uso commerciale? È un insieme di restrizioni piuttosto strano, va detto: ti verrà difficile trovare librerie audio usando le licenze FLOSS che non sono LGPL/GPL –

5

PortAudio è una libreria di suoni di basso livello (in C), che utilizza l'equivalente di una licenza MIT

1

BASS è "gratuito per uso non commerciale" senza nominare una licenza di terze parti (sembra la stessa di la licenza MIT per me, ma IANAL) e mi è sempre piaciuto lavorare con la sua API C.

Anche i prezzi per le licenze commerciali per prodotto sono abbastanza ragionevoli.

2

Dopo aver fatto un po 'di scavare intorno, sono riuscito a trovare un paio di librerie che sono adatti:

Cinder
http://libcinder.org/

Esempio di utilizzo (Audio):

audio::SourceRef mAudioSource; 
mAudioSource = audio::load(loadResource(MY_RESOURCE)); 
audio::Output::play(mAudioSource); 

TempAU
http://www.tempau.com/

Sound sound("somefile.mp3"); // Create sound object 
sound.play();    // Play it! 

La fonte di TempAU non è stata ancora rilasciata poiché è nuova di zecca. Ho visto alcuni commenti sui forum da parte dello sviluppatore e ha intenzione di rilasciarlo nel prossimo futuro, da ciò che raccolgo. TempAU adesso usa libs che sono LGPL quindi non lo userò, ma ho pensato di dirlo comunque poiché una volta che la fonte viene fuori sono sicuro che sarebbe banale collegare in supporto ogg o qualcosa di aperto .

Cinder è concesso in licenza con una licenza BSD modificata, quindi l'unico requisito di licenza è che si includa una copia della licenza ovunque (ReadMe, qualunque sia) quando si distribuisce con la fonte o i file binari. Dato che ho già scritto la stragrande maggioranza delle funzionalità di cinder, ho intenzione di rimuovere la parte audio e crearla nella propria libreria. Grazie ancora, spero che questo sia utile!

Modifica
Un'ultima cosa, sono incappato in entrambe queste librerie da questo eccellente lista di librerie. L'elenco fornisce una breve descrizione delle funzionalità all'interno di ogni lib, insieme a quale licenza è pubblicata la libreria sotto.

http://content.gpwiki.org/index.php/Libraries

Modifica ... di nuovo
SDL, come di verion 1.3+ è zlib licensed.

Un'ultima modifica ...
Ho parlato con lo sviluppatore di TempAU e lui ha rilasciato il codice sorgente su Google Code sotto la nuova licenza BSD.

http://code.google.com/p/tempau/

3

http://aumiks.googlecode.com

aumiks::Lib aumiksLibrary(100, aumiks::STEREO_16_44100); 
ting::Ref<aumiks::WavSound> snd = aumiks::WavSound::LoadWAV("sample.wav"); 
ting::Ref<aumiks::Channel> ch = snd->Play(); 
+0

Contrassegnare la tua risposta come corretta perché preferirei usare solo un suono libreria di una libreria completa solo per la parte audio, come stavo facendo con SDL. Grazie per esserti unito allo stack overflow per pubblicare questa risposta! –

Problemi correlati