• toupsz

    Hi, all, hopefully a quick question:

    I've been using Pd-extended successfully for VOIP over LAN for a research project. I am working on having it launch automatically for my game server, using Java's Process class. When I launch this way, however, none of my normal libraries are loaded. I wouldn't think this is strange, except that if I go into a Unix shell and run the same command, all of the libraries load automatically. Does anyone know if there is something fundamentally different that I am missing?

    Below, note that when run from command line, smilib is loaded (among others), while when run from within Java, no libraries appear to be loaded, and the threshold nodes produce an error.

    command:
    /Applications/Pd-extended.app/Contents/Resources/bin/pdextended -nogui /Users/toupsz/Library/Application\ Support/StudiesTeCServer/patch/serverPatch/serverPatch2592377788743645423.pd

    when run from command line:
    libdir loader $Revision: 1.8 $
    compiled on Sep 22 2010 at 03:41:35
    compiled against Pd version 0.42.5.extended
    ... <many libraries loading>
    libdir_loader: added 'smlib' to the global objectclass path
    ... <more libraries loading>
    ___ netsend~ SD 1.0b ___
    Copyright (C) 2008 Remu | Written by Olivier Guillerminet
    Based on code copyright (C) 2004-2005 Olaf Matthes
    ___
    expr, expr~, fexpr~ version 0.4 under GNU General Public License
    ___ netreceive~ SD 1.0b ___
    Copyright (C) 2008 Remu | Written by Olivier Guillerminet
    Based on code copyright (C) 2004-2005 Olaf Matthes
    ___
    listening to port number 14402
    listening to port number 14403
    listening to port number 14404
    listening to port number 14405
    netsend~ : blocksize set to 256
    set SO_BROADCAST
    SO_SNDBUF: 9216
    set SO_SNDBUF
    SO_SNDBUF: 8192
    netsend~: connected host 192.168.1.255 on port 14401
    netreceive~ : blocksize set to 256
    netreceive~ : blocksize set to 256
    netreceive~ : blocksize set to 256
    netreceive~ : blocksize set to 256
    Pt_Start() called

    when run within Java:

    java.lang.UNIXProcess@1c047338 ERR > ___ netsend~ SD 1.0b ___
    java.lang.UNIXProcess@1c047338 ERR > Copyright (C) 2008 Remu | Written by Olivier Guillerminet
    java.lang.UNIXProcess@1c047338 ERR > Based on code copyright (C) 2004-2005 Olaf Matthes
    java.lang.UNIXProcess@1c047338 ERR > ___
    java.lang.UNIXProcess@1c047338 ERR > expr, expr~, fexpr~ version 0.4 under GNU General Public License
    **java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
    java.lang.UNIXProcess@1c047338 ERR > ... couldn't create
    java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
    java.lang.UNIXProcess@1c047338 ERR > ... couldn't create
    java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
    java.lang.UNIXProcess@1c047338 ERR > ... couldn't create
    java.lang.UNIXProcess@1c047338 ERR > threshold 10 100 1 10
    java.lang.UNIXProcess@1c047338 ERR > ... couldn't create **
    java.lang.UNIXProcess@1c047338 ERR > ___ netreceive~ SD 1.0b ___
    java.lang.UNIXProcess@1c047338 ERR > Copyright (C) 2008 Remu | Written by Olivier Guillerminet
    java.lang.UNIXProcess@1c047338 ERR > Based on code copyright (C) 2004-2005 Olaf Matthes
    java.lang.UNIXProcess@1c047338 ERR > ___
    java.lang.UNIXProcess@1c047338 ERR > listening to port number 14402
    java.lang.UNIXProcess@1c047338 ERR > listening to port number 14403
    java.lang.UNIXProcess@1c047338 ERR > listening to port number 14404
    java.lang.UNIXProcess@1c047338 ERR > listening to port number 14405
    java.lang.UNIXProcess@1c047338 ERR > netsend~ : blocksize set to 256
    java.lang.UNIXProcess@1c047338 ERR > set SO_BROADCAST
    java.lang.UNIXProcess@1c047338 ERR > SO_SNDBUF: 9216
    java.lang.UNIXProcess@1c047338 ERR > set SO_SNDBUF
    java.lang.UNIXProcess@1c047338 ERR > SO_SNDBUF: 8192
    java.lang.UNIXProcess@1c047338 ERR > netsend~: connected host 192.168.1.255 on port 14401
    java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256
    java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256
    java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256
    java.lang.UNIXProcess@1c047338 ERR > netreceive~ : blocksize set to 256

    posted in technical issues read more
  • toupsz

    We are using PD with the netsend~ and netrecieve~ objects on a local area network. We're looking at expanding our work over the internet, but would need something closer to a VOIP solution.

    Does anyone know of any externals for VOIP for PD?

    All best,
    -Z

    posted in technical issues read more
  • toupsz

    Hi, all-

    I am a fairly heavy user of Pd for doing audio in my research game. We are working on some new machines, and on several of them, any incoming voice is heavily distorted: you'll hear a second or two of clear audio, then samples repeating and just a lot of buzzing. This even happens if we just try to Test Audio and set it to monitor. All sounds work fine in Windows, and we can record outside of Pd without trouble. Audio created in Pd sounds fine; it's just when I get audio from the microphone it is distorted.

    Has anyone had any experience with this that would help?

    We are running Windows XP on Dell D830 with a SigmaTel sound card.

    Thanks in advance!

    All best,
    -Zach

    posted in technical issues read more
  • toupsz

    Hey all -

    I'm back again, and trying to do some basic procedural sound using midi. The problem is that I don't seem to be allowed to use midi on my Mac. I'm running PD v. 0.40.3-extended. Under my midi control panel, my only choice for midi output is "none". Is there a setting I can change so that I can get midi output through my speakers? Does anyone know how to fix this?

    Thanks in advance!

    -Zach

    posted in technical issues read more
  • toupsz

    Hey all-

    Is there a way to append samples to the end of a wave file in PD? I'm working on some voice activity detection stuff, and I basically want to read in a multi-channel wave file, determine if every 80 samples is speech or non-speech, and add another channel that contains the information about speech / non-speech.

    I would like to write all of the original channels, plus the new channel, to a new wave file. My concern is that the channels will be too large to simply load them all into arrays, and then write out all the arrays (maybe I'm wrong and maybe I should just do that). I would like to basically...

    read in 80 samples
    determine speech
    write out 80 samples (on all 5 channels)
    repeat until the end of the file

    Is there any way to do this? Or should I just try to load them all into arrays and just write the file @ the end (the files are like 20 minutes each, 4 channels, 8kHz).

    I've looked at soundfiler (will let you skip parts of the array, but not parts of the file) and writesf (seems to only write in real time; stopping must be followed by an open before more writing, which overwrites the file)...

    Any help would be appreciated!

    All the best,
    -Zach

    posted in technical issues read more
  • toupsz

    I am working on synching up audio from a multiplayer game setup. I already have pd recording audio on three separate audio tracks (each player's speech, the radio speech, and the game audio). This is done for each player.

    What I would like to do is add to this audio file a fourth track, which will have events triggered by the game. I would simply like to place a single sample with a maximum value when an OSC event arrives, and write 0's (or the minimum value) otherwise. This way, the fourth track does not act as an audio track, but instead the computer can use it to synch together all of the different players' audio tracks offline using it as a data source.

    Unfortunately, I'm a little at a loss as to how to do this. :(

    My biggest problem is that I don't understand quite how [writesf~] works. How is it synching up the audio tracks? Does it keep them all synched, writing 0s if one incoming track has no data, or are they each written separately? If anyone has any insight into this, I'd appreciate it! :)

    -Zach

    posted in technical issues read more
  • toupsz

    Hey all-

    I've been using pd to mix audio, provide sound effects, and record audio for my dissertation project -- a serious game for teaching team members to coordinate. As the next step in this research, I need to be able to detect when each player is speaking to the others -- voice activity detection. Essentially logging the times that participants start and stop talking.

    Each player has a bluetooth headset with a noise-cancelling microphone. Looking at the audio I've recorded directly from the headset, it's pretty obvious to human eyes when a participant is speaking, and when they are not, as the SNR is fairly high.

    I am trying to use a combination of an envelope follower ([env~]) and a thresholder ([threshold~]) to create the start and stop events. I am having some difficulty in figuring out what the proper settings for the thresholder should be, and I'm also wondering if there are any other pd components that might be useful. One big problem that I'm encountering is that the thresholder catches the quiet portions of speech as turnoffs (generally followed almost immediately by another turnon). Does anyone out there have any experience with this? Or any advice?

    Thanks!

    -Zach

    posted in technical issues read more
  • toupsz

    Hey all, I'm new to pd, but have some experience with Max/MSP. Is there any way to prepend something to a message in pd? Specifically, I'm sending the patch an OSC message with the name of a file to create (a .wav file for [writesf~]). I have just the filename coming from the [OSCroute] object, but I can't seem to get "open" in front of it so that I can send it on to the [writesf~]. I've tried pack, but it doesn't seem to like the input. :-/

    It seems clear that there must be some way to do this...but I've been poking around in documentation everywhere and haven't found a solution yet! :(

    Any assistance would be appreciated!

    Thanks!
    -Zach

    posted in technical issues read more
  • toupsz

    Alright, I added -verbose to see what was going wrong. Was able to add the proper path using the -path to point to the directory that contained threshold.pd.

    Success!

    posted in technical issues read more
  • toupsz

    Also, I have tried setting -lib to the location of the library in question, -stdpath, and -path.

    posted in technical issues read more

Internal error.

Oops! Looks like something went wrong!