Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-20 Thread Fred Gleason
On Nov 19, 2018, at 23:17, ija...@jamcorbroadcast.com wrote:

> Would this also work for voice tracker. 

If you mean the ‘Import’ button on Voice Tracker dialog in rdlogedit(1), then 
I’m afraid not. That feature does not use rdimport(1) (and hence, nor the 
nested_import script).

Cheers!


|--|
| Frederick F. Gleason, Jr. |  Chief Developer |
|   |  Paravel Systems |
|--|
|  A room without books is like a body without a soul. |
| -- Cicero|
|--|___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-19 Thread ijames


Fred

Would this also work for voice tracker. We find ourselves importing 
files manually. I know want to speed up the process. Can you give an 
example of how to start import the files.


Thanks


On 2018-11-16 14:48, Fred Gleason wrote:

On Nov 16, 2018, at 12:50, Richard Elen  wrote:


As I am a novice here, I would be most grateful if you could do me
the favour of providing an example usage of nested-import.pl, just
so that I get it right first time.

The command-line invocation I am using currently would be:

rdimport --verbose --segue-level=-10 --autotrim-level=-30
--normalization-level=-10  MUSIC *

How would I call the Perl script with these parameters?


The usage is very similar to that of rdimport(1) — in fact, it takes
all of the same options. The difference is that the  now
refers to *directories*, rather than files! So, say you had a
directory full of MP3s in a directory called ‘/home/rd/MyMusic’.
You could import the whole batch into a group called ‘MUSIC’ by
doing:

 nested-import.pl MUSIC /home/rd/MyMusic

If ‘/home/rd/MyMusic’ contained subdirectories, it would recurse
down into those as well. And so on.

However, a lot of the real power lies in the fact that all of the
usual rdimport(1) commands can still be given and will work as
expected. Thus, you could do:

 nested-import.pl --segue-level=-10 --autotrim-level=-30
--normalization-level=-10 MUSIC /home/rd/MyMusic

and all of those level parameters would be applied to each import,
just as if you’d done each one individually with rdimport(1).

It works with scheduler codes too. Say Drew has sent you a USB drive
full of Bahamian music, which you’ve mounted at
‘/media/usb_key’. You could create a scheduler code (in
rdadmin(1)) called ‘BHMA’, then import the music by doing:

 nested-import.pl --add-scheduler-code=BHMA MUSIC /media/usb_key

and then every file imported would be tagged with code ‘BHMA’ so
you could program the music scheduler to call for one wherever you
wanted to add a little Caribbean flavor to your music mix. (Of course,
you can also add your standard level parameters to that invocation so
the levels and markers come in just right as well).

Lots of possibilities here. The easiest way to get started is the
experiment with a few files and see what effect turning the various
knobs produce. I wouldn’t try a batch of 5000 files until you have a
good sense of what to expect.

Cheers!

|--|
| Frederick F. Gleason, Jr. |  Chief Developer
|
|   |  Paravel Systems
|
|--|
|  A room without books is like a body without a soul.
|
| -- Cicero
|
|--|
___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev

___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Richard Elen

Excellent! Thanks very much for the detailed response, a great help!

-R


On 16-Nov-18 19:48, Fred Gleason wrote:


The usage is very similar to that of rdimport(1)...

___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Fred Gleason
On Nov 16, 2018, at 12:50, Richard Elen  wrote:
> As I am a novice here, I would be most grateful if you could do me the favour 
> of providing an example usage of nested-import.pl, just so that I get it 
> right first time. 
> 
> The command-line invocation I am using currently would be:
> 
> rdimport --verbose --segue-level=-10 --autotrim-level=-30 
> --normalization-level=-10  MUSIC *
> 
> How would I call the Perl script with these parameters?
> 

The usage is very similar to that of rdimport(1) — in fact, it takes all of the 
same options. The difference is that the  now refers to 
*directories*, rather than files! So, say you had a directory full of MP3s in a 
directory called ‘/home/rd/MyMusic’. You could import the whole batch into a 
group called ‘MUSIC’ by doing:

nested-import.pl MUSIC /home/rd/MyMusic

If ‘/home/rd/MyMusic’ contained subdirectories, it would recurse down into 
those as well. And so on.

However, a lot of the real power lies in the fact that all of the usual 
rdimport(1) commands can still be given and will work as expected. Thus, you 
could do:

nested-import.pl --segue-level=-10 --autotrim-level=-30 
--normalization-level=-10 MUSIC /home/rd/MyMusic

and all of those level parameters would be applied to each import, just as if 
you’d done each one individually with rdimport(1).

It works with scheduler codes too. Say Drew has sent you a USB drive full of 
Bahamian music, which you’ve mounted at ‘/media/usb_key’. You could create a 
scheduler code (in rdadmin(1)) called ‘BHMA’, then import the music by doing:

nested-import.pl --add-scheduler-code=BHMA MUSIC /media/usb_key

and then every file imported would be tagged with code ‘BHMA’ so you could 
program the music scheduler to call for one wherever you wanted to add a little 
Caribbean flavor to your music mix. (Of course, you can also add your standard 
level parameters to that invocation so the levels and markers come in just 
right as well).

Lots of possibilities here. The easiest way to get started is the experiment 
with a few files and see what effect turning the various knobs produce. I 
wouldn’t try a batch of 5000 files until you have a good sense of what to 
expect.

Cheers!


|--|
| Frederick F. Gleason, Jr. |  Chief Developer |
|   |  Paravel Systems |
|--|
|  A room without books is like a body without a soul. |
| -- Cicero|
|--|___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Richard Elen

Fred,

As I am a novice here, I would be most grateful if you could do me the 
favour of providing an example usage of nested-import.pl, just so that I 
get it right first time.


The command-line invocation I am using currently would be:

rdimport --verbose --segue-level=-10 --autotrim-level=-30 
--normalization-level=-10  MUSIC *


How would I call the Perl script with these parameters?

Many thanks

--Richard E


On 16-Nov-18 17:17, Fred Gleason wrote:


  * How do I make it recurse so it crawls the source library and
grabs the content of all my album folders and sub-folders? Only a
few files are in the root: most are in album folders and
sometimes deeper.

rdimport(1) doesn’t do recursion by itself, but can be made to do so 
with a little scripting. See:


https://github.com/ElvishArtisan/rivendell-importers

and take a look at the ‘nested-import.pl’ script.


___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Fred Gleason
On Nov 16, 2018, at 12:37, Richard Elen  wrote:

> Thanks for this! Is there a solution to my other query?

Just use a  of ‘*’.

Cheers!


|--|
| Frederick F. Gleason, Jr. |  Chief Developer |
|   |  Paravel Systems |
|--|
|  A room without books is like a body without a soul. |
| -- Cicero|
|--|___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Richard Elen

Thanks for this! Is there a solution to my other query?

--Richard E


  * How do I import all audio file types in one go, or at least *.mp3
and *.flac for starters?;
  * How do I make it recurse so it crawls the source library and
grabs the content of all my album folders and sub-folders? Only a
few files are in the root: most are in album folders and
sometimes deeper.

rdimport(1) doesn’t do recursion by itself, but can be made to do so 
with a little scripting. See:


https://github.com/ElvishArtisan/rivendell-importers

and take a look at the ‘nested-import.pl’ script.


___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Fred Gleason
On Nov 16, 2018, at 11:43, Richard Elen  wrote:

> The first thing I see is the message:
> "Session management: None of the authentication protocols specified are 
> supported". 
> What is this telling me?

Useless cruft from your desktop manager. You can safely ignore it.


> Meanwhile, the files appear successfully ingested from the root of the source 
> library. However:
> How do I import all audio file types in one go, or at least *.mp3 and *.flac 
> for starters?;
> How do I make it recurse so it crawls the source library and grabs the 
> content of all my album folders and sub-folders? Only a few files are in the 
> root: most are in album folders and sometimes deeper.
rdimport(1) doesn’t do recursion by itself, but can be made to do so with a 
little scripting. See:

https://github.com/ElvishArtisan/rivendell-importers

and take a look at the ‘nested-import.pl’ script.

Cheers!


|--|
| Frederick F. Gleason, Jr. |  Chief Developer |
|   |  Paravel Systems |
|--|
|  A room without books is like a body without a soul. |
| -- Cicero|
|--|___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-16 Thread Richard Elen

Hi...

I now have a 2TB drive mounted at /var that can hopefully contain the RD 
music library in WAV format and I'm beginning to import files. As a 
result I have a couple of queries.


I am navigating to the source music library root directory, which is a 
read-only-mounted NTFS partition, and issuing the command:
rdimport --verbose --segue-level=-10 --autotrim-level=-30 
--normalization-level=-10  MUSIC *.mp3


The first thing I see is the message:
"Session management: None of the authentication protocols specified are 
supported".

What is this telling me?

Meanwhile, the files appear successfully ingested from the root of the 
source library. However:


 * How do I import all audio file types in one go, or at least *.mp3
   and *.flac for starters?;
 * How do I make it recurse so it crawls the source library and grabs
   the content of all my album folders and sub-folders? Only a few
   files are in the root: most are in album folders and sometimes deeper.


MTIA for any observations.

Best,
--Richard E
___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-06 Thread Fred Gleason
On Nov 6, 2018, at 12:15, David Klann  wrote:

> My experience has been that rdimport ignores _all_ of the
> metadata if it finds problems with _any_ of the metadata it (someone
> please correct me if I misunderestimate that).

Can you gives us a specific example of where this occurs?

Cheers!


|--|
| Frederick F. Gleason, Jr. |  Chief Developer |
|   |  Paravel Systems |
|--|
|  A room without books is like a body without a soul. |
| -- Cicero|
|--|___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev


Re: [RDD] rdimport - Suggested ingestion parameters?

2018-11-06 Thread David Klann
Hi Richard,

On 11/5/18 5:29 PM, Richard G Elen wrote:
> Hi...
> 
> I am soon to ingest our music library using rdimport.
> 
> The source library structure is basically
> ~/Artistname/Albumname/trackfiles and they may be multiple album
> subfolders in the Artistname folder.
> 
> We've spent quite a lot of time and effort getting our metadata in good
> order so hopefully all will go well.
> 
> looking at the man pages, rdimport has a great number of options, but,
> being new to this, I wonder if anyone can suggest what is a good
> general-purpose set of configuration options that will be most likely to
> give the best results. Fortunately or unfortunately we have an extremely
> eclectic library ranging from mediaeval to rock, so I am expecting to
> have to do some fine tuning.
> 
> But some basic suggestions would be gratefully received, and thanks in
> advance.

I have written a ZSH script to wrap rdimport. Mostly the script is
irrelevant to your question, but you can see how I invoke it at the
bottom of the attached file (in the series of lines starting with
"${DEBUG} ${RDIMPORT}"). The file is also available on GitHub at
https://github.com/opensourceradio/ram/blob/master/usr/local/bin/import-rd

Given the recent discussion on the list regarding normalization level, I
recommend setting (and will change) the default normalization in the
script from -4 dBFS to -12 dBFS.

While rdimport(1) is pretty good at extracting metadata from audio
files, I like to do so manually, and then set the the database fields to
predictable values on the command line rather than simply leaving them
blank. My experience has been that rdimport ignores _all_ of the
metadata if it finds problems with _any_ of the metadata it (someone
please correct me if I misunderestimate that).

Feel free to ask questions!

  ~David Klann
#!/bin/zsh

setopt NO_CASE_MATCH
zmodload zsh/regex
zmodload zsh/terminfo
autoload colors
colors

# This script complies with Semantic Versioning: http://semver.org/
vMajor=0
vMinor=1
vPatch=4
vHash='$Hash: 917b77e$'

# Tell them how to use this command.
usage() {
  myName=${1}

  ${CAT} << EOF
${myName}: import digital audio tracks into the Rivendell Library using 
rdimport(1).

Summary: ${myName##*/} [ --code (-c) {  or 'list' } ]
   [ --label (-l)  ]
   [ --normalization  ]
   --group (-g) {  or 'list' }
   audio-file ...

You may use the word "list" for the --code (-c) and --group (-g)
options. This will cause ${myName##*/} to list the available codes or
groups and prompt for which one(s) to use. You may specify multiple
Scheduler Codes with the "-c" (aka "--code") option; do this by
specifying the codes separated by commas (you must quote the list of
Scheduler Codes if you include spaces between the codes).

This script will set Scheduler Code to the "genre" meta tag if the
"genre" matches a valid Rivendell Scheduler code. Otherwise the
"genre" meta tag will be ignored.

The script will attempt to extract the label name from the meta
tags. You can explicitely set this with the --label option.

Normalization level defaults to -4 dBFS.

EOF
}

# Check to be sure it is a valid Scheduler Code. Returns true or false
# based on the regex match test.
validSchedCode() {
  local definedCodes=${1} ; shift
  local requestedCode=${1} ; shift

  for schedCode in $(echo ${definedCodes}) ; do
[[ "${requestedCode}" = ${schedCode} ]] && return 0
  done

  return 1
}

# Check to be sure it is a valid GROUP. Returns true or false based on
# the regex match test
validGroup() {
  local definedGroups=${1} ; shift
  local requestedGroup=${1} ; shift

  [[ "${definedGroups}" =~ ".*${requestedGroup}.*" ]]
}

# Figure out the file type and extract the meta tags from it.
tags() {
  local track="${1}"

  # NB: these string match tests are performed case INsensitively
  # (see setopt, above).
  if [[ "${track##*.}" = 'flac' ]] ; then
flacTags "${track}"
  elif [[ "${track##*.}" = 'ogg' ]] ; then
vorbisTags "${track}"
  elif [[ "${track##*.}" = 'mp3' ]] ; then
id3Tags "${track}"
  else
echo "${BOLD}Cannot figure out what kind of file this is. I give 
up!${NORM}" >&2
exit
  fi
}

# We prefer the style of metaflac(1), so leave these alone.
flacTags() {
  local track="${1}"

  ${METAFLAC} --list --block-type=VORBIS_COMMENT "${track}" | ${FGREP} ' 
comment['
}

# We prefer the style of metaflac(1), so do only minimal processing.
# Output from vorbiscomment(1) is expected to be simply "key=value" format.
vorbisTags() {
  local track="${1}"
  local index=1

  ${VORBISCOMMENT} --list "${track}" | while read line ; do

echo "comment[$((index++))]: ${line}"

  done
}

# We prefer the style of metaflac(1), so convert the ID3 tags to
# metaflac style.
id3Tags() {
  local track=${1}

  ${ID3INFO} "${track}" | while read line ; do
case "${line#=== }" in
  TT2*|TIT2*) echo "comment[1]: title=${line#*: }" ;; # 
(Title/songname/content 

[RDD] rdimport - Suggested ingestion parameters?

2018-11-05 Thread Richard G Elen

Hi...

I am soon to ingest our music library using rdimport.

The source library structure is basically 
~/Artistname/Albumname/trackfiles and they may be multiple album 
subfolders in the Artistname folder.


We've spent quite a lot of time and effort getting our metadata in good 
order so hopefully all will go well.


looking at the man pages, rdimport has a great number of options, but, 
being new to this, I wonder if anyone can suggest what is a good 
general-purpose set of configuration options that will be most likely to 
give the best results. Fortunately or unfortunately we have an extremely 
eclectic library ranging from mediaeval to rock, so I am expecting to 
have to do some fine tuning.


But some basic suggestions would be gratefully received, and thanks in 
advance.


--Richard E

___
Rivendell-dev mailing list
Rivendell-dev@lists.rivendellaudio.org
http://caspian.paravelsystems.com/mailman/listinfo/rivendell-dev