audacity-nyquist — Discussion among Nyquist programmers creating plug-ins for Audacity

You can subscribe to this list here.

2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov (40) Dec (29) Jan (7) Feb (12) Mar (28) Apr (27) May Jun (13) Jul (4) Aug (7) Sep (1) Oct (2) Nov (32) Dec (49) Jan (31) Feb (16) Mar (15) Apr (15) May (21) Jun (1) Jul (1) Aug (5) Sep (2) Oct (21) Nov Dec (6) Jan (21) Feb Mar Apr (5) May (1) Jun (3) Jul (10) Aug (38) Sep (21) Oct (38) Nov (23) Dec (3) Jan (72) Feb (45) Mar (46) Apr (5) May (2) Jun (33) Jul Aug (9) Sep (6) Oct (1) Nov (17) Dec (73) Jan (20) Feb (28) Mar (7) Apr (24) May (8) Jun (59) Jul (38) Aug (25) Sep (19) Oct (40) Nov (43) Dec (53) Jan (22) Feb (12) Mar (14) Apr (4) May (29) Jun (26) Jul (7) Aug (14) Sep (16) Oct (34) Nov (13) Dec (8) Jan Feb Mar (1) Apr (1) May Jun (5) Jul (10) Aug (2) Sep (3) Oct Nov (1) Dec (1) Jan Feb (1) Mar Apr May Jun Jul (4) Aug Sep (21) Oct Nov Dec Jan Feb Mar (1) Apr May Jun Jul Aug Sep Oct (6) Nov Dec Jan Feb (2) Mar Apr May (1) Jun Jul (3) Aug Sep (1) Oct Nov Dec Jan (2) Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
S M T W T F S

1
(1)
2
(4)
3

4

5

6
(1)
7
(2)
8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28
(9)
29
(8)
30
(2)
31
(1)

Showing 2 results of 2

 Re: [Audacity-nyquist] Finding gaps, etc. From: David Sky - 2005-03-07 17:03:02 ```Thanks Roger for your explanations and proposed solution. So far i haven't worked with any of the functions you suggested. I'll post questions as I'm experimenting and learning. David ```
 [Audacity-nyquist] Finding gaps, etc. From: Roger B. Dannenberg - 2005-03-07 14:16:32 ```Finding gaps within and audio clip and removing them requires you to go = from a continuous signal to discrete editing operations. This is a bit of a problem in Nyquist because there are no operations that take a signal in = and scan it for events or conditions of any kind. However, you can read = samples as Lisp FLONUMS (floating point numbers) directly from a signal, and = while this is not particularly efficient, it does solve the problem. Finding gaps is very tricky in general. A simple thing is to do = threshold detection (e.g. see the code in lib/compress.lsp for envelope = following), but if there are noises or if the recording used automatic level control (and boosting the background noise during pauses), you may find it very difficult to find a good threshold. If I wanted to do a very good job, I would probably ask the user to identify areas of speech and areas of = noise and then use spectra from these regions to train a classifier to = distinguish "good" signals from unwanted signals. But assuming you want to use levels, you can compute a relatively low-sample-rate envelope from the input signal, read it one sample at a = time with SND-FETCH, and compute where to perform the edits.=20 If you want to do this as an Audacity plug-in, you probably want to = stream samples from input to output. If you can the input to determine where to perform edits, you'll end up with all the input samples in memory. This could take a lot of space. The simplest way around this is to construct = the desired result using SND-FROMARRAYSTREAM, which requests arrays of = samples from an object and concatenates them together to form the resulting = sound. The object (which you need to write in Xlisp) uses SND-FETCH-ARRAY to = grab blocks from t he imput sound. You could then decide whether the block represents speech or silence. If speech, return the block; if silence, = read the next block. I hope this helps -- if someone wants to write this, I'm happy to answer questions, but I can't do it myself now (I still owe this list a sound reverse function!) -Roger ```

Showing 2 results of 2