Append Import

Yes I can go for that, but it’s an extra line and we’re already up to the 25 line limit for 800 x 600, so we’ll need to lose a line somewhere - perhaps the blank line between:

loaded in alphanumeric order.

The default Import Folder is:



I’ll have a look tomorrow. Better would be if Nyquist could access “Audacity track time”, but it can’t :frowning:
I agree that it is not intuitive, but at least it is easily discoverable.

It could still be wrong because the imported files are relative to the cursor position.

The limitations are quite frustrating, and the limitations for help screens exacerbate the frustration.

Yes, I had not taken into account the n, only the real line usage in the plug-in.

I think your suggestion is OK, or trim the “alternate channels” text to two lines:

'Alternate Channels' assumes the first file is for
the left channel, the next for the right, and so on.n

53 characters, but some lines already use more than that.

Yes but at least import (of the audio) at the cursor is a feature. :slight_smile:

If doable, it would reduce the limitations. Import at zero, move the cursor to play a bit of it, then import labels (surely a common scenario) would then still have the labels in the correct position.

I agree it would need two labels choices, “Labels at cursor”, “Labels from file” (or some such). That would be useful but then you probably need a choice not to create the label file (or an action to delete it, called from the plug-in).


Gale

Windows 8 and Mac OS X 10.7.4 seem OK with detecting the working directory if the “Import Folder” field is left empty. I still have to check Win XP.

On Windows, I found two more behaviours to note with filelist.txt import.

Windows XP and later uses “natural number sort” that makes “file10.wav” come after “file2.wav” rather than before, but if the file name has a letter preceding a number, this sort makes that file name come before a name that has only numbers.

So the plug-in imports in this order:

S:7_datae00d00e0000005.au
S:7_datae00d00e00002c9.au
S:7_datae00d00e0000317.au
S:7_datae00d00e0000556.au
S:7_datae00d00e000059a.au
S:7_datae00d00e00007ad.au
S:7_datae00d00e0000904.au
S:7_datae00d00e000095c.au
S:7_datae00d00e0000bc5.au
S:7_datae00d00e0000bf2.au
S:7_datae00d00e0000cf0.au
S:7_datae00d00e0000d2a.au
S:7_datae00d00e0000dbe.au

but Windows ascend-sorts the files this way:

S:7_datae00d00e0000bc5.au
S:7_datae00d00e0000bf2.au
S:7_datae00d00e0000cf0.au
S:7_datae00d00e0000d2a.au
S:7_datae00d00e0000dbe.au
S:7_datae00d00e00002c9.au
S:7_datae00d00e0000005.au
S:7_datae00d00e00007ad.au
S:7_datae00d00e000059a.au
S:7_datae00d00e000095c.au
S:7_datae00d00e0000317.au
S:7_datae00d00e0000556.au
S:7_datae00d00e0000904.au

Also I noticed if you change the file names in the directory and reimport the files, the order imported in does not change in that session.



Gale

Unfortunately there is no international standard for alphanumeric order, so inconsistencies can and do occur.
Nyquist uses “character by character” alphanumeric ordering (as does Windows 2000) while Windows XP and later file name sorting considers numbers in strings in file and folder names as numeric content, not text (as does Linux).

We could change:

If not found, all
supported audio files in the Import Folder will be
loaded in alphanumeric order.

to:

If not found, all
supported audio files in the Import Folder will be
loaded in alphanumeric character order.

hallo everyone,

recently i’m using this wonderful plugin and it could be useful to create sample sequences and load them on my Korg ESX-1 as “slice samples” (as in this video http://www.youtube.com/watch?v=lGctUPri1ew )

in order to do that, i could use samples with clear attack and end… otherwhise, after importing appended files, i’d separate the samples one by one in order to create a little silence between them…

but if there were an option to do that during the import… i’d find it more than useful!
do you think it could be possible to implement that? or any tip to save time on this operation?

thanks in advance and my compliments to the writers of this plugin!

You could also try my Plug-in:
https://forum.audacityteam.org/t/arrange-your-tracks-with-chain-it-up-ny/26201/1
You import the files via the import menu.
Select all tracks and start the plug-in.
For a pause of 300 ms just enter 0.3 in the gap control.
Once the tracks are arranged, you can mix them down or simply export which will do the same.

thank you! chainin’ it up! :smiley:

A feature request has been made for Append Import - a way to mark the joins between the imported files.

It was suggested to insert silence at the joins but you could also label the joins or add split lines there (or perhaps only the C++ version could do that)…


Gale

Nyquist plug-ins can currently only return one “result”. Thus a plug-in can return audio (the appended track) OR labels, but not both on the same pass.
The split positions can be saved in RAM between one pass and the next, so it would be possible (though not hugely convenient) to run an effect twice, returning the audio on the first pass and a label track on the second pass.

When Nyquist plug-ins return audio, Audacity always renders the audio as one continuous audio clip. It is not currently possible to return more than one audio clip from a Nyquist plug-in. Thus “split lines” and “white space” are not possible from Nyquist plug-ins.

Perhaps a better option would be a development of the (new) “Align End to End” feature (Tracks menu in Audacity 2.0.4).
Something that I had this mind while developing “Align End to End” was another function that behaves similarly to Align End to End, but moves all of the audio tracks onto the same track (and removes the, then empty, tracks). I’ve been trying to think of a more user friendly name for this function than “Concatenate”. Any suggestions?

I would much prefer to label the joins rather than adding silence.

WC

Perhaps “Align into one Track”?

But would this add Split lines? I’ve been suggesting users do Tracks > Mix and Render to do what you suggest (which doesn’t add Split lines).

I’ve little doubt that a dedicated C++ Append Import with a file browser and customisations for “import first file at the cursor” and “methods to demarcate the joins” is the best way to go.


Gale

That’s the idea (otherwise it’s no better than Align End to End followed by Mix and Render).

Perhaps, though it probably depends on the user case, but I doubt that is going to happen within the next few years.

I sometimes doubt that sufficient improvements to Nyquist will happen within the next few decades.

I would expect Feature Requests for a full Append Import feature will grow as a result of the Align End to End feature (useful as that is in its own right).


Gale

Tell me about it, :sigh: though most of the limitations do not come from Nyquist itself, but from the primitive interface provided by Audacity.

A “full Append Import feature” could certainly be useful.
I’d imagine that much of the demand will come from people wanting to stitch together broken projects (weird that I’ve never needed to do that).

The currently posted Append Import does not work in HEAD (Nyquist did not return audio) :

error: unbound variable - *FILE-SEPARATOR*
if continued: try evaluating symbol again
Function: #<FSubr-SETQ: #4108070>
Arguments:
  *DEFAULT-SF-DIR*
  (STRCAT (STRING-RIGHT-TRIM " \/" *DEFAULT-SF-DIR*) (STRING *FILE-SEPARATOR*))
Function: #<Closure-IMPORT: #4098e20>
Function: #<FSubr-IF: #41071e0>
Arguments:
  (< OUTPUT 2)
  (IMPORT)
  (MAKE-LABELS)
Function: #<FSubr-CASE: #4105480>
Arguments:
  VIEWHELP
  (1 (HELP))
  (2 (LABEL-HELP))
  (3 (LIMITATIONS))
  (T (IF (< OUTPUT 2) (IMPORT) (MAKE-LABELS)))
1>

It does work in 2.0.6 Release.

Gale

FILE-SEPARATOR is a predefined Nyquist variable (global). It should return the ASCII character for the file separator (OS dependent).

Please try this in the Nyquist Prompt (should work in both “normal” (version 4) and “legacy (version 3) syntax”:

(print *FILE-SEPARATOR*)

and press the Debug button.

The debug output on Linux is:

#/

which is correct.

On Windows it should return (in the debug window):

#\

I’m not sure what it should return on Mac OS X, I’d guess either the same as Linux or #:

On Mac it returns the same as Linux.
– Bill

For both Version 3 and 4 the debug output is:

error: unbound variable - *FILE-SEPARATOR*
if continued: try evaluating symbol again
1>

In 2.0.6, as expected:

#\

Sample Data Export is broken as well in HEAD:

error: unbound variable - *FILE-SEPARATOR*
if continued: try evaluating symbol again
Function: #<FSubr-SETQ: #4120858>
Arguments:
  FILESEPARATOR
  (FORMAT NIL "~a" *FILE-SEPARATOR*)
Function: #<Closure-FILEWRITER: #4109a28>
1> sample-data   1 channel (mono)
Sample Rate: 44100 Hz. Sample values on dB scale.
Length processed: 100 samples 0.00227 seconds.


error: unbound variable - FP
if continued: try evaluating symbol again
Function: #<FSubr-CASE: #411dc68>
Arguments:
  HEADER
  (0 (FORMAT T (NORMHEAD)) (FORMAT FP (NOHEAD)))
  (1 (FORMAT T (NORMHEAD)) (FORMAT FP (MINHEAD)))
  (2 (FORMAT T (NORMHEAD)) (FORMAT FP (NORMHEAD)))
  (3 (FORMAT T (NORMHEAD)) (FORMAT FP (FULLHEAD)))
Function: #<Closure-PRINTDATA: #410b098>
Function: #<FSubr-IF: #411f9c8>
Arguments:
  (= FILEFORMAT 4)
  (PRINTHTML)
  (PRINTDATA)
Function: #<FSubr-PROGN: #41202d8>
Arguments:
  (PUT-HEAD-INFO)
  (IF (= FILEFORMAT 4) (PRINTHTML) (PRINTDATA))
Function: #<FSubr-IF: #411f9c8>
Arguments:
  (> (LENGTH ERR) 0)
  (IF (= MESSAGES 2) (S-REST 0) (FORMAT NIL "Error.~%~a" ERR))
  (PROGN (PUT-HEAD-INFO) (IF (= FILEFORMAT 4) (PRINTHTML) (PRINTDATA)))
Function: #<FSubr-SETQ: #4120858>
Arguments:
  FILESEPARATOR
  (FORMAT NIL "~a" *FILE-SEPARATOR*)
Function: #<Closure-FILEWRITER: #4109a28>
2> 1>

Gale

It’s working fine here with revision 13651, and I’m not aware of any recent changes relating to that.
FILE-SEPARATOR is defined in Nyquist, not in the plug-in or even in the Audacity code.

Do you get the same errors from these commands?

(print *default-sf-format*)
(print *default-sf-dir*)

.

Windows nightly 26th November, the file system.lsp is missing from the nyquist folder.
It was there in the nightly 23rd Nov.

It looks like some sort of build error. Copying that file from the 23rd to the 26th should fix the problem.