raw audio in windows

Discussion in 'Python' started by Putty, Sep 1, 2006.

  1. Putty

    Putty Guest

    Hi. I've written a small python script that was primarily meant for
    use in a unix-compatible environment. It writes a bunch of raw audio
    to a file and then sends the file to /dev/audio and the system plays
    the audio. Very simple.

    Is there a simple way I could edit the script (which just uses the
    system call to do this) to run under windows?

    This is the code that would have to change:
    os.system("cat audioBuf > /dev/audio")
    Putty, Sep 1, 2006
    #1
    1. Advertising

  2. Putty

    spiffy Guest

    On 31 Aug 2006 21:34:13 -0700, "Putty" <> wrote:

    >Hi. I've written a small python script that was primarily meant for
    >use in a unix-compatible environment. It writes a bunch of raw audio
    >to a file and then sends the file to /dev/audio and the system plays
    >the audio. Very simple.
    >
    >Is there a simple way I could edit the script (which just uses the
    >system call to do this) to run under windows?
    >
    >This is the code that would have to change:
    >os.system("cat audioBuf > /dev/audio")



    hey, that sounds like some stuff i've been working on...
    is there any possibility that you could send me that script so I could
    take a look at it and learn?
    i'm new to python and programming in general. i'm working on some
    algorithmic composition stuff and also trying to write some synths....
    here's my email...
    spiffy, Sep 1, 2006
    #2
    1. Advertising

  3. Putty

    Ben Sizer Guest

    Putty wrote:
    > Hi. I've written a small python script that was primarily meant for
    > use in a unix-compatible environment. It writes a bunch of raw audio
    > to a file and then sends the file to /dev/audio and the system plays
    > the audio. Very simple.
    >
    > Is there a simple way I could edit the script (which just uses the
    > system call to do this) to run under windows?
    >
    > This is the code that would have to change:
    > os.system("cat audioBuf > /dev/audio")


    Not really. You'll have to convert it to .wav and then pass it to a
    helper app.

    <http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov04/hey1103.mspx>

    --
    Ben Sizer
    Ben Sizer, Sep 1, 2006
    #3
  4. Ben Sizer wrote:

    > Not really. You'll have to convert it to .wav and then pass it to a
    > helper app.
    >
    > <http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov04/hey1103.mspx>


    >>> import winsound
    >>> help(winsound)

    Help on module winsound:

    NAME
    winsound

    FILE
    c:\python24\dlls\winsound.pyd

    DESCRIPTION
    PlaySound(sound, flags) - play a sound
    SND_FILENAME - sound is a wav file name
    SND_ALIAS - sound is a registry sound association name
    SND_LOOP - Play the sound repeatedly; must also specify SND_ASYNC
    SND_MEMORY - sound is a memory image of a wav file
    SND_PURGE - stop all instances of the specified sound
    SND_ASYNC - PlaySound returns immediately
    SND_NODEFAULT - Do not play a default beep if the sound can not be found
    SND_NOSTOP - Do not interrupt any sounds currently playing
    SND_NOWAIT - Return immediately if the sound driver is busy

    Beep(frequency, duration) - Make a beep through the PC speaker.

    FUNCTIONS
    Beep(...)
    Beep(frequency, duration) - a wrapper around the Windows Beep API

    The frequency argument specifies frequency, in hertz, of the sound.
    This parameter must be in the range 37 through 32,767.
    The duration argument specifies the number of milliseconds.
    On WinNT and 2000, the platform Beep API is used directly. Else funky
    code doing direct port manipulation is used; it's unknown whether that
    will work on all systems.

    MessageBeep(...)
    MessageBeep(x) - call Windows MessageBeep(x). x defaults to MB_OK.

    PlaySound(...)
    PlaySound(sound, flags) - a wrapper around the Windows PlaySound API

    The sound argument can be a filename, data, or None.
    For flag values, ored together, see module documentation.

    DATA
    MB_ICONASTERISK = 64L
    MB_ICONEXCLAMATION = 48L
    MB_ICONHAND = 16L
    MB_ICONQUESTION = 32L
    MB_OK = 0L
    SND_ALIAS = 65536L
    SND_APPLICATION = 128L
    SND_ASYNC = 1L
    SND_FILENAME = 131072L
    SND_LOOP = 8L
    SND_MEMORY = 4L
    SND_NODEFAULT = 2L
    SND_NOSTOP = 16L
    SND_NOWAIT = 8192L
    SND_PURGE = 64L

    </F>
    Fredrik Lundh, Sep 1, 2006
    #4
  5. Putty

    Jay Guest

    I'm afraid I can't do that. Don't take it personally. I would send it
    to you, but at this time, I'm developing this app with a friend and I
    don't know his feelings about the program's distribution or licensing.
    I can't send it around until I speak to him about it.

    Sorry.


    spiffy wrote:
    > On 31 Aug 2006 21:34:13 -0700, "Putty" <> wrote:
    >
    > >Hi. I've written a small python script that was primarily meant for
    > >use in a unix-compatible environment. It writes a bunch of raw audio
    > >to a file and then sends the file to /dev/audio and the system plays
    > >the audio. Very simple.
    > >
    > >Is there a simple way I could edit the script (which just uses the
    > >system call to do this) to run under windows?
    > >
    > >This is the code that would have to change:
    > >os.system("cat audioBuf > /dev/audio")

    >
    >
    > hey, that sounds like some stuff i've been working on...
    > is there any possibility that you could send me that script so I could
    > take a look at it and learn?
    > i'm new to python and programming in general. i'm working on some
    > algorithmic composition stuff and also trying to write some synths....
    > here's my email...
    >
    Jay, Sep 1, 2006
    #5
  6. Putty

    Jay Guest

    So, are you saying this would be possible to do with the PlaySound
    function?

    Fredrik Lundh wrote:
    > Ben Sizer wrote:
    >
    > > Not really. You'll have to convert it to .wav and then pass it to a
    > > helper app.
    > >
    > > <http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov04/hey1103.mspx>

    >
    > >>> import winsound
    > >>> help(winsound)

    > Help on module winsound:
    >
    > NAME
    > winsound
    >
    > FILE
    > c:\python24\dlls\winsound.pyd
    >
    > DESCRIPTION
    > PlaySound(sound, flags) - play a sound
    > SND_FILENAME - sound is a wav file name
    > SND_ALIAS - sound is a registry sound association name
    > SND_LOOP - Play the sound repeatedly; must also specify SND_ASYNC
    > SND_MEMORY - sound is a memory image of a wav file
    > SND_PURGE - stop all instances of the specified sound
    > SND_ASYNC - PlaySound returns immediately
    > SND_NODEFAULT - Do not play a default beep if the sound can not be found
    > SND_NOSTOP - Do not interrupt any sounds currently playing
    > SND_NOWAIT - Return immediately if the sound driver is busy
    >
    > Beep(frequency, duration) - Make a beep through the PC speaker.
    >
    > FUNCTIONS
    > Beep(...)
    > Beep(frequency, duration) - a wrapper around the Windows Beep API
    >
    > The frequency argument specifies frequency, in hertz, of the sound.
    > This parameter must be in the range 37 through 32,767.
    > The duration argument specifies the number of milliseconds.
    > On WinNT and 2000, the platform Beep API is used directly. Else funky
    > code doing direct port manipulation is used; it's unknown whether that
    > will work on all systems.
    >
    > MessageBeep(...)
    > MessageBeep(x) - call Windows MessageBeep(x). x defaults to MB_OK.
    >
    > PlaySound(...)
    > PlaySound(sound, flags) - a wrapper around the Windows PlaySound API
    >
    > The sound argument can be a filename, data, or None.
    > For flag values, ored together, see module documentation.
    >
    > DATA
    > MB_ICONASTERISK = 64L
    > MB_ICONEXCLAMATION = 48L
    > MB_ICONHAND = 16L
    > MB_ICONQUESTION = 32L
    > MB_OK = 0L
    > SND_ALIAS = 65536L
    > SND_APPLICATION = 128L
    > SND_ASYNC = 1L
    > SND_FILENAME = 131072L
    > SND_LOOP = 8L
    > SND_MEMORY = 4L
    > SND_NODEFAULT = 2L
    > SND_NOSTOP = 16L
    > SND_NOWAIT = 8192L
    > SND_PURGE = 64L
    >
    > </F>
    Jay, Sep 1, 2006
    #6
  7. Putty

    Ben Sizer Guest

    Jay wrote:
    > So, are you saying this would be possible to do with the PlaySound
    > function?


    Fredrik is often terse. ;) I think what he's saying is that when I
    said you could pass a .wav file to an external application, he showed
    that you could pass it to a Python module instead. I think you still
    need to get it into .wav format first, though this can apparently be in
    memory rather than on disk.

    --
    Ben Sizer
    Ben Sizer, Sep 4, 2006
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. christos panagiotou

    reading .raw files (windows-linux)

    christos panagiotou, Jul 16, 2003, in forum: C++
    Replies:
    2
    Views:
    991
    Vasileios Zografos
    Jul 16, 2003
  2. Noah

    raw audio input on Windows

    Noah, Jan 27, 2004, in forum: Python
    Replies:
    1
    Views:
    470
    Kevin Dahlhausen
    Jan 28, 2004
  3. CharlesW
    Replies:
    0
    Views:
    431
    CharlesW
    Sep 27, 2006
  4. aeonsun
    Replies:
    2
    Views:
    424
    Luc The Perverse
    Mar 11, 2007
  5. sick dick
    Replies:
    0
    Views:
    387
    sick dick
    Apr 3, 2006
Loading...

Share This Page