Need simple sound
Martin Tschierschke via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jul 5 06:36:39 PDT 2017
On Wednesday, 5 July 2017 at 10:19:54 UTC, Sebastiaan Koppe wrote:
> On Wednesday, 5 July 2017 at 09:43:05 UTC, Martin Tschierschke
> wrote:
>> On Wednesday, 5 July 2017 at 07:21:45 UTC, Sebastiaan Koppe
>> wrote:
>>> On Wednesday, 5 July 2017 at 05:34:37 UTC, FoxyBrown wrote:
>>>> On Tuesday, 4 July 2017 at 20:37:44 UTC, Sebastiaan Koppe
>>>> wrote:
>>>>> Portaudio is simple as well. And nice cross platform.
>>>>
>>>> are there any bindings?
>>>
>>> Sure, see http://code.dlang.org/packages/portaudio
>>
>> Sorry, for that question but now, as I have several different
>> options -
>> all not 'overdocumented' - so what would be the shortest
>> possible D program waiting for input and playing a sound from
>> a file in parallel?
>>
>> Something short like the single-file dub example...?
>>
>> #!/usr/bin/env dub
>> /+ dub.sdl:
>> name "hello"
>> +/
>> void main() {
>>
>> writef("Do you like the music?");
>> char[] answer;
>> answer = readln();
>> writef("This was your Answer: ", answer);
>>
>> }
>
> This one plays a wav file. Couldn't get dub to do single-file
> on it. It kept giving linker errors. (Took example from
> https://github.com/v--/portaudio/blob/master/examples/pa_test.d)
[...]
> Lerror:
> stderr.writefln("error %s",
> to!string(Pa_GetErrorText(err)));
> return 1;
> }
Thank you!
Without the error handling it would be quite simple :-)
So, the following process starts the music in main, it is just to
clarify the process for me: In main:
//1
PaStream* stream;
Sound input = decodeWAV("FILE.wav");
auto audio = Audio(input....);
Pa_Initialize();
Pa_OpenDefaultStream(&stream,...input...&callback,&audio);
//2
Pa_StartStream(stream);
//3
Pa_StopStream(stream);
Pa_CloseStream(stream);
For my purpose I will try to encapsulate it all in 3 additional
own methods on top of it:
//1
auto myinput = InitWav("File.wav");
//2
PlaySound(myinput,volume=default, length=max_length);
//3
StopSound(myinput);
With a new Struct myinput to handle input,audio and stream.
Thank you all for your help!
More information about the Digitalmars-d-learn
mailing list