help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sending data to an asynchronous process


From: Jean Louis
Subject: Re: sending data to an asynchronous process
Date: Fri, 2 Apr 2021 20:18:54 +0300
User-agent: Mutt/2.0.6 (2021-03-06)

* Nicolas Graner <nicolas@graner.name> [2021-04-02 13:21]:
> I am writing a program that creates audio samples in an emacs
> buffer, then sends them to an external program (sox) to play in
> the background while I continue working with emacs. Part of the
> code is roughly as follows:
> 
(setq process
      (let ((process-connection-type nil))
        (start-process "my-process" nil
                       "sox" "-r" rate "-c" channels "-b" bits "-e" encoding 
"-q" "-d")))
(process-send-region process start end)
(process-send-eof process)

For process-send-region, it says:

If PROCESS is a non-blocking network process that hasn’t been fully
set up yet, this function will block until socket setup has completed.

Maybe that applies.

It would be nice to show all the function you use there.

> The sound plays as expected, but process-send-region does not
> return until about half a second before the sound finishes
> playing. This means that if I send several minutes of audio,
> emacs is stuck during all that time, which completely defeats the
> purpose of an asynchronous process. Using process-send-string
> instead of process-send-region makes no difference.

I would like to know if you play files or you feed data to sox to
play files, where does that come from? Is it maybe an elevator
music from an UDP port?

-- 
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

Sign an open letter in support of Richard M. Stallman
https://rms-support-letter.github.io/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]