Re: randomising tracks: scripting question

2011-01-04 Thread Peter Vereshagin
You know St. Peter won't call my name, freebsd-questions!
2011/01/03 20:23:38 -0800 Joseph Olatt  => To Frank Shute :
JO> On Sun, Dec 26, 2010 at 05:09:30PM +, Frank Shute wrote:
JO> > 
JO> > I generally play my tracks of an album like so:
JO> > 
JO> > for track in $(cat trombone_shorty-backatown.m3u); do
JO> > mplayer $track
JO> > done
JO> > 
JO> > They then play in the correct order.
JO> > 
JO> > How would I go about randomising the order of play using
JO> > sh (preferably) or perl?

I have several tens of thousands of MIDI files from 90s. They are too many for 
'random play' feature of the Timidity++ which is used with 'eawpats', the GUS 
patches.
Here is my bash script to play them in random order:
===
#!/usr/local/bin/bash
IFS='
'
fns=(`find ~/mid/ -iname '*.mid'`)
while :; do 
timidity -a -OdS -in -j -t 1251 -E t -p a -R 500 -EFreverb=127 -EFns=4 
${fns[$((${#f...@]}*$random/32767))]}
done
===

Of course I miss the 'Previous track' functionality.

73! Peter pgp: A0E26627 (4A42 6841 2871 5EA7 52AB  12F8 0CE1 4AAC A0E2 6627)
--
http://vereshagin.org
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2011-01-03 Thread Joseph Olatt
On Sun, Dec 26, 2010 at 05:09:30PM +, Frank Shute wrote:
> 
> I generally play my tracks of an album like so:
> 
> for track in $(cat trombone_shorty-backatown.m3u); do
> mplayer $track
> done
> 
> They then play in the correct order.
> 
> How would I go about randomising the order of play using
> sh (preferably) or perl?
> 
> Sorry for the OT posting but I thought a brainteaser might clear the
> fog caused by excessive Xmas indulgence ;)
> 
> 
> Regards,
> 
> -- 
> 
>  Frank
> 
>  Contact info: http://www.shute.org.uk/misc/contact.html
> 
> 

A little while back I wrote a perl script to randomly pick mp3, 
ogg, flac files from any directory specified as arg 1 and play them
using mplayer. 

I categorize my genres by directory and with this perl script I can
randomly play songs from any directory.

If the script is invoked without any arguments, then it will play songs
from the default hard-coded directory defined by $SONG_DIR.

Don't know if this would be useful to you (or someone else). 


#!/usr/bin/perl -w

use strict;

my $SONG_DIR = "/home/joji/songs/good";

if ($#ARGV == 0)
{
$SONG_DIR = $ARGV[0];
}

my %played = ();
my $rand;
my $dh;
my @song_list;


opendir($dh, $SONG_DIR);
@song_list = readdir($dh);
closedir($dh);

my $count = $#song_list;

# Perl counts from zero. If there is one item, Perl will say 0.
# So to get the real count, we have to increment by 1.
$count++;

chdir($SONG_DIR);

while ((keys %played) < $count)
{
while (1)
{
$rand = int(rand($count));
if (! $played{$rand})
{
$played{$rand} = 1;
last;
}

if ((keys %played) >= $count)
{
last;
}
}

if ($song_list[$rand] eq "." || $song_list[$rand] eq "..")
{
;
}
else
{
print "Playing song # " . $rand . " [" . $song_list[$rand] . "]\n";
`mplayer \"$song_list[$rand]\"`;
}

}

exit(0);
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread Devin Teske

On Dec 26, 2010, at 11:02 AM, Frank Shute wrote:

> On Sun, Dec 26, 2010 at 06:01:45PM +, RW wrote:
>> 
>> On Sun, 26 Dec 2010 09:40:43 -0800
>> Chip Camden  wrote:
>> 
>>> Quoth Frank Shute on Sunday, 26 December 2010:
 I generally play my tracks of an album like so:
 
 for track in $(cat trombone_shorty-backatown.m3u); do
 mplayer $track
 done
 
 They then play in the correct order.
 
 How would I go about randomising the order of play using
 sh (preferably) or perl?
 
 Sorry for the OT posting but I thought a brainteaser might clear the
 fog caused by excessive Xmas indulgence ;)
 
 
 Regards,
>>> 
>>> change "cat t...n.m3u" to "random < t..n.m3u"
>>> 
>> 
>> That should be 
>> 
>> random -f trombone_shorty-backatown.m3u
>> 
>> see random(6) for what happens when it reads directly from stdin
>> (without "-f -")
>> 
> 
> Excellent. I didn't know about random(6), I was getting lost in the
> manpages: there are manpages for random in 3 different sections!
> Should have used apropos.
> 

Just keep in mind that random(6) comes from the `games' distribution-set.

wget -r 
ftp://ftp-archive.freebsd.org/pub/FreeBSD/releases/i386/8.1-RELEASE/games
cd games
sudo ./install.sh

Not sure if it's available anywhere else.
--
Devin


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread Chris Brennan
On Sun, Dec 26, 2010 at 2:04 PM, b. f.  wrote:

> Frank Shute wrote:
> >I generally play my tracks of an album like so:
> >
> >for track in $(cat trombone_shorty-backatown.m3u); do
> >mplayer $track
> >done
> >
> >They then play in the correct order.
> >
> >How would I go about randomising the order of play using
> >sh (preferably) or perl?
>
> cat trombone_shorty-backatown.m3u | xargs mplayer ... -shuffle
>
> or
>
> mplayer ... -playlist trombone_shorty-backatown.m3u -shuffle
>
> if they are in a uncommented, one-absolute-path-per-line format
> without extended directives?
>
>

Here is something that I wrote a long time ago in python, works quite well

[code]
#!/usr/bin/env python

def randline(f):
for i,j in enumerate(file(f, 'rb')):
if random.randint(0,i) == i:
line = j
eturn line

print randline(text)
[/code]

Name it as you wish then it's ./file.py , granted this will only read
1 (random) line from INPUT and print it, it shouldn't be hard to modify this
for your needs tho, enjoy :)

C-
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread b. f.
Frank Shute wrote:
>I generally play my tracks of an album like so:
>
>for track in $(cat trombone_shorty-backatown.m3u); do
>mplayer $track
>done
>
>They then play in the correct order.
>
>How would I go about randomising the order of play using
>sh (preferably) or perl?

cat trombone_shorty-backatown.m3u | xargs mplayer ... -shuffle

or

mplayer ... -playlist trombone_shorty-backatown.m3u -shuffle

if they are in a uncommented, one-absolute-path-per-line format
without extended directives?

b.
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread Frank Shute
On Sun, Dec 26, 2010 at 06:01:45PM +, RW wrote:
>
> On Sun, 26 Dec 2010 09:40:43 -0800
> Chip Camden  wrote:
> 
> > Quoth Frank Shute on Sunday, 26 December 2010:
> > > I generally play my tracks of an album like so:
> > > 
> > > for track in $(cat trombone_shorty-backatown.m3u); do
> > > mplayer $track
> > > done
> > > 
> > > They then play in the correct order.
> > > 
> > > How would I go about randomising the order of play using
> > > sh (preferably) or perl?
> > > 
> > > Sorry for the OT posting but I thought a brainteaser might clear the
> > > fog caused by excessive Xmas indulgence ;)
> > > 
> > > 
> > > Regards,
> > 
> > change "cat t...n.m3u" to "random < t..n.m3u"
> > 
> 
> That should be 
> 
> random -f trombone_shorty-backatown.m3u
> 
> see random(6) for what happens when it reads directly from stdin
> (without "-f -")
> 

Excellent. I didn't know about random(6), I was getting lost in the
manpages: there are manpages for random in 3 different sections!
Should have used apropos.


Regards,

-- 

 Frank

 Contact info: http://www.shute.org.uk/misc/contact.html


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread Mark Caudill

How would I go about randomising the order of play using
sh (preferably) or perl?


I fiddled around for a minute without luck but I think between the 
built-in $RANDOM, tail and head you should be able to get a randomize 
going. I'd recommend putting a script together that just pulls a random 
line from a file then work from there. Post your results if yo get one 
working.


--
# Mark Caudill
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread RW
On Sun, 26 Dec 2010 09:40:43 -0800
Chip Camden  wrote:

> Quoth Frank Shute on Sunday, 26 December 2010:
> > I generally play my tracks of an album like so:
> > 
> > for track in $(cat trombone_shorty-backatown.m3u); do
> > mplayer $track
> > done
> > 
> > They then play in the correct order.
> > 
> > How would I go about randomising the order of play using
> > sh (preferably) or perl?
> > 
> > Sorry for the OT posting but I thought a brainteaser might clear the
> > fog caused by excessive Xmas indulgence ;)
> > 
> > 
> > Regards,
> > 
> > -- 
> > 
> >  Frank
> > 
> >  Contact info: http://www.shute.org.uk/misc/contact.html
> > 
> > 
> > ___
> > freebsd-questions@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > To unsubscribe, send any mail to
> > "freebsd-questions-unsubscr...@freebsd.org"
> 
> change "cat t...n.m3u" to "random < t..n.m3u"
> 

That should be 

random -f trombone_shorty-backatown.m3u

see random(6) for what happens when it reads directly from stdin
(without "-f -")

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"


Re: randomising tracks: scripting question

2010-12-26 Thread Chip Camden
Quoth Frank Shute on Sunday, 26 December 2010:
> I generally play my tracks of an album like so:
> 
> for track in $(cat trombone_shorty-backatown.m3u); do
> mplayer $track
> done
> 
> They then play in the correct order.
> 
> How would I go about randomising the order of play using
> sh (preferably) or perl?
> 
> Sorry for the OT posting but I thought a brainteaser might clear the
> fog caused by excessive Xmas indulgence ;)
> 
> 
> Regards,
> 
> -- 
> 
>  Frank
> 
>  Contact info: http://www.shute.org.uk/misc/contact.html
> 
> 
> ___
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

change "cat t...n.m3u" to "random < t..n.m3u"

-- 
Sterling (Chip) Camden| sterl...@camdensoftware.com | 2048D/3A978E4F
http://camdensoftware.com | http://chipstips.com| http://chipsquips.com


pgpvxO07hLh2G.pgp
Description: PGP signature


randomising tracks: scripting question

2010-12-26 Thread Frank Shute

I generally play my tracks of an album like so:

for track in $(cat trombone_shorty-backatown.m3u); do
mplayer $track
done

They then play in the correct order.

How would I go about randomising the order of play using
sh (preferably) or perl?

Sorry for the OT posting but I thought a brainteaser might clear the
fog caused by excessive Xmas indulgence ;)


Regards,

-- 

 Frank

 Contact info: http://www.shute.org.uk/misc/contact.html


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"