Skip to Content
It is currently August 14th, 2018, 2:25 am

All times are UTC - 6 hours [ DST ]




Post new topic Reply to topic  [ 23 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: October 1st, 2008, 5:26 pm 
Offline
Senior User
Senior User

Joined: October 14th, 2004, 10:15 am
Posts: 174
Haven't worked out the particulars yet (SQL queries/PAL) but this is the gist of a decent workaround:

1. BACKUP YOUR SAM DATABASE AND MUSIC LIBRARY!
2. ***SQL/PAL NEEDED HERE***
Using SQL query and PAL Add this to the beginning of each song title in the database:
Code:
::songID::


So that all songs title may look like this:
Code:
::2956::Tin Man

in the title field of the songlist table.

You'll see why we're adding the songID field to the title field later..

3. Download the MixMeister BPM analyzer at
http://www.mixmeister.com/download.html

4. Once installed and opened, drag your music files over to the analyzer, they will automatically start calculating BPMs.
(you can do this a folder at a time or a few.... Try not to drag your entire music library at once or your system may lock up)

5. Wait until the BPMs are calculated. It takes about 10-15 seconds to calculate each song's BPMs so keep that in mind. Grab lunch, dinner, take a nap, or go to sleep...
(You should see all your files with calculated BPMs with the songID at the beginning of the title.)

6. Click the 'Export to Text File' button.
This exports all the files to a Tab delimited text file. Each line or record will look something like this:
Code:
C:\Documents and Settings\Work\My Documents\My Music\Living Legends - The Gathering\01 The Gathering.mp3[TAB]::2442::The Gathering[TAB]Living Legends[TAB]98.01


7. ***SQL/PAL NEEDED HERE***
This is where you take the tab delimited text file and import it into a table. Then you read the BPM table, look at the title, extract the songID and search for that songID in the songlist table. Once you find the record in the songlist table, update the record as such:
a. Append the BPM in the BPM table you imported to the end of the xfade field in the songlist table so that an xfade field that looks like this:
Code:
&x=142333&xf=1

Will look like this:
Code:
&x=142333&xf=1&bmp=55.89

(of course if there is already a bpm designation in the field then just replace the 'bmp=nn.nn' with the new bpm.)
b. update the title field in the songlist table by deleting the ::songID::


DONE!

Now you have all your BPMs stored in SAM...

Anybody care to contribute the needed sql and PAL?

Thanks, as I'm sure this will help a lot of broadcasters out there... Any ideas?

_________________
erdubya
ProjectVIBE Internet Radio
Image


Top
 Profile  
Reply with quote  
PostPosted: October 1st, 2008, 10:26 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
If the BPM info is in an Id3v2 MP3 tag my tool, nearing a release, could read the tag and enter the value into SAM; similar to what I'm doing for TCOP/pline and TXXX_Tones/mood.

I would need to know the exact ID3v2 tag where the BPM is stored and the songlist column name to dump the data.
If you promise to not run any of the other functions of the tool and be OK with little documentation I'd be willing to hammer this transformation and provide an earlier access release for you.

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 1st, 2008, 10:46 pm 
Offline
Senior User
Senior User

Joined: October 14th, 2004, 10:15 am
Posts: 174
SWEET! That would really help a lot! The BPMs are in the ID3v2 tag... but it only appears in the winamp ID3 tag editor. Tried to find it in Godfather... no luck. Tried to find it in Mp3 Tag Tools but it doesn't appear in their ID3 tag editor either. I've only been able to see it in winamp's editor thus far.

Can your tool append the BPM to the end of the songlist.xfade field AND the songlist.bpm field? Or will I have to do it manually.

Looks like I'll need the BPMs in two places...
1. xfade field so it will show up in sam
2. bpm field so i can pull the bpm from the songinfo object

Here's some screenshots of the id3v2 tag in winamp AND the mixmeister BPM analyzer tool

Thanks!


Attachments:
File comment: winamp id3 tags and mixmeister bpm anaylzer screenshot
id3_tag.gif
id3_tag.gif [ 89.12 KiB | Viewed 4227 times ]

_________________
erdubya
ProjectVIBE Internet Radio
Image
Top
 Profile  
Reply with quote  
PostPosted: October 1st, 2008, 11:31 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
Quote:
Can your tool ...

I can make it do anything; some things more easier than others.

1. xfade field so it will show up in sam (Not quite so easy; will have to account for all permutations; no xfade/no bpm, no xfade/has bpm, has xfade/no bpm, has xfade/has bpm)
2. bpm field so i can pull the bpm from the songinfo object (EASY, a simple SQL set will suffice)

Please either PM me a link to download a BPMed MP3 or email me one (you know my address, eh?), tell me the BPM value, and I'll use my tag reader to see if I can find out where MixMeister stores the value.

Sample UI screenshot:
Attachment:
sample.PNG
sample.PNG [ 14.75 KiB | Viewed 4221 times ]

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 2nd, 2008, 1:42 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
The BPM of the file made available is 96.01 and is stored in the ID3v2.3.0 TBPM field.
http://www.id3.org/id3v2.3.0

Quote:
4.2.1 TBPM [#TBPM BPM (beats per minute)]

TBPM
The 'BPM' frame contains the number of beats per minute in the mainpart of the audio. The BPM is an integer and represented as a numerical string.


I'm surpeised SAM isn't picking this up. However, SAMs bpm column is a mediumint(9) which corresponds to the TBPM field of an integer means it doesn't take too kindly to the MixMeister decimal points.
So, if there's a finger to point here it's MM for not following the ID3v2.3 spec, not SAM.

I will add "ID3 TBPM to SAM bpm" to my tool.

Work flow:
* select all songs from the songlist whose bpm is 0 (that is the default)
* read the TBPM field from the MP3 ID3v2.3 tag for each song and update SAM with TBPM value rounded to the nearest integer
* append/alter xfade with the exact TBPM value

There will be no provision at this time to update or re-process [i]all[i/] songs but I could add that later.
No guarantee of a delivery time-frame; I'm doing this in my spare time which isn't a lot.

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 2nd, 2008, 3:29 pm 
Offline
Senior User
Senior User

Joined: October 14th, 2004, 10:15 am
Posts: 174
FesterHead wrote:

Work flow:
* select all songs from the songlist whose bpm is 0 (that is the default)
* read the TBPM field from the MP3 ID3v2.3 tag for each song and update SAM with TBPM value rounded to the nearest integer
* append/alter xfade with the exact TBPM value

There will be no provision at this time to update or re-process all songs but I could add that later.
No guarantee of a delivery time-frame; I'm doing this in my spare time which isn't a lot.


Cool!

I know you're busy and all so I appreciate it. In the meantime I'll get everything set up.

_________________
erdubya
ProjectVIBE Internet Radio
Image


Top
 Profile  
Reply with quote  
PostPosted: October 2nd, 2008, 4:31 pm 
Offline
Senior User
Senior User

Joined: April 11th, 2008, 12:50 pm
Posts: 117
Location: Indiana
Steve,

Is there any time line for a release of this application? I know it's a 'Spare Time' project. Just curious.

Thanks

_________________
SpazzRadio Internet Network


Top
 Profile  
Reply with quote  
PostPosted: October 2nd, 2008, 6:24 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
I have been using it for my radio station for several months now; just need to finish up the GUI and make it a bit more digestible and less scary.

I'll probably disable the ArtistIDs, AlbumIDs, and Album Covers for now and release the MP3 parts sometime this or next weekend or sometime in between..

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 2nd, 2008, 7:38 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
Someone that has xfade and/or bpm values in the database;
Please post a variety of data samples from the songlist.xfade table to assist with testing.

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 2nd, 2008, 11:15 pm 
Offline
Senior User
Senior User

Joined: October 14th, 2004, 10:15 am
Posts: 174
Here's a sample of 160 records that I extracted. Just the ID and xfade fields sorted by xfade descending order. Since I'm unable to post xls, or txt attachments, here is the drop for the files:

http://drop.io/songlist_table_sample

_________________
erdubya
ProjectVIBE Internet Radio
Image


Top
 Profile  
Reply with quote  
PostPosted: October 3rd, 2008, 2:32 am 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
Most excellent test sample; I believe I have all the cases handled but will "fudge" my test database to use those values.

Sample code (for those that are interested; full source will be with my upcoming download):
Code:
... more code above

                MP3File mp3 = new MP3File( new File( file_name ) );
                String tbpm_string = mp3.getTextFrame( "TBPM" ); //$NON-NLS-1$
                int tbpm_int = Math.round( NumberUtils.toFloat( tbpm_string, 0.0f ) );

                if ( StringUtils.isNotBlank( tbpm_string ) && tbpm_int > 0 )
                {
                  // prepare xfade string
                  if ( xfade.indexOf( "&bmp=" ) >= 0 ) //$NON-NLS-1$
                  {
                    xfade = xfade.replaceFirst( "&bmp=\\d*\\.?\\d*", "&bmp=" + tbpm_string ); //$NON-NLS-1$ //$NON-NLS-2$
                  }
                  else
                  {
                    xfade = xfade + "&bmp=" + tbpm_string; //$NON-NLS-1$
                  }

...  more code below


The result set that's iterated through is based on this query:
Code:
select id, xfade, filename from songlist where bpm is null or bpm = 0

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 3rd, 2008, 2:46 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
Using this sample input:
Code:
      String[] tests = new String[] { "&xf=1&gl=79", "&xf=1&gl=73", "&xf=1&gl=52&bmp=53.24", "&xf=1&gl=52",
          "&xf=1&gl=127", "&xf=1&bmp=73.84", "&xf=1&bmp=65.15", "&xf=1&bmp=61.84", "&xf=1&bmp=59.48",
          "&xf=1&bmp=58.56", "&xf=1&bmp=57.55", "&xf=1&bmp=55.41", "&xf=1&bmp=53.41", "&xf=1&bmp=52.99",
          "&xf=1&bmp=46.23", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1",
          "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1",
          "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&xf=1", "&x=218044&xf=1",
          "&x=162579&xf=1&bmp=81.93", "&x=-3000&fie=1&fit=1782&fil=52&foe=1&fot=10000",
          "&x=-3000&fie=0&foe=0&xf=0&ft=40&ge=0", "&i=5994&f=160986", "&i=18759", "&i=183502&bmp=55.01", "&gl=97",
          "&gl=94", "&gl=94", "&gl=94", "&gl=94", "&gl=91", "&gl=91", "&gl=85", "&gl=82", "&gl=79", "&gl=79", "&gl=76",
          "&gl=-31", "&gl=-13", "&ge=0&gl=94", "&ge=0&gl=94", "&ge=0&gl=88", "&ge=0&gl=73", "&ge=0&gl=73",
          "&ge=0&gl=61", "&ge=0&gl=43", "&ge=0&gl=127", "&ge=0&bmp=50.75", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0",
          "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0", "&ge=0",
          "&fot=7030&fol=100", "&fol=100", "&fol=100", "&foe=1&fot=8218&fol=100&foc=1&xf=2",
          "&foe=1&fot=10000&fol=100&foc=1", "&foe=1&fol=100", "&foe=1&foc=2", "&foe=1&foc=1", "&foe=0&ge=0", "&foe=0",
          "&foe=0", "&fit=9208&fil=79&fot=8218&fol=95", "&fit=0&fil=100&fic=1&ge=0",
          "&fie=1&fit=990&fic=1&foe=1&fot=4653&fol=90&foc=1&g", "&fie=1&fit=8317&fil=100&fic=1&foe=1&fot=8218&fol=1",
          "&fie=1&fit=10000&fil=88&fot=10000&fol=100&foc=1", "&fie=0&foe=1&fot=4950&fol=100&foc=1&ge=0&gl=25",
          "&fie=0&foe=1", "&fie=0&foe=0&ge=0&gl=67", "&fie=0&foe=0&ge=0&gl=-61", "&fie=0&foe=0&ge=0", "&fie=0&foe=0",
          "&fie=0&foe=0", "&fie=0&foe=0", "&fie=0&fit=500&foe=0&fot=495", "&f=99035", "&f=94281", "&f=77424",
          "&ct0=36567&cn0=test", "&ct0=32685&cn0=beat&ct1=24488&cn1=vocal in",
          "&ct0=175295&cn0=chorus_end&ct1=44335&cn1=early bum", "&c=9131&f=302825&fie=1&fit=10000&fil=100&fic=1",
          "&c=8000", "&c=6420", "&c=6400&i=21631&ct1=13677&ct2=22380", "&c=5009&bmp=47.70", "&c=4800",
          "&c=427558&fie=1&fit=8515&fil=76&fic=1", "&c=3942&bmp=59.22", "&c=3661&e=120597&bmp=63.24",
          "&c=245223&i=246823&f=512225&fie=1&fit=2178&fil=80&", "&c=24386&e=180863&f=175782&x=-3000&xf=1",
          "&c=234&ge=0&gl=127", "&c=230867&i=232553&f=323551", "&c=22564&e=194870&foe=1&fot=5000&fol=100",
          "&c=221012&fie=1&fit=2376&fic=1", "&c=21153&bmp=47.50", "&c=201746&i=201746", "&c=19650&i=40706",
          "&c=18379&i=21207&xf=1", "&c=17809&e=268510&f=261660&x=-3000&xf=1", "&c=15864&fie=1&fit=9010&fil=80&fic=1",
          "&c=149166&ct1=170521", "&c=1477", "&c=1342&bmp=60.01", "&c=1200&bmp=70.67", "&c=11152", "&c=1000&xf=1",
          "&c=0&gl=70", "&c=0&ct1=61345", "&c=0", "&bmp=70.34", "&bmp=67.50", "&bmp=62.90", "&bmp=62.77", "&bmp=62.68",
          "&bmp=62.59", "&bmp=62.51", "&bmp=62.49", "&bmp=61.85", "&bmp=61.81", "&bmp=61.67", "&bmp=61.30",
          "&bmp=61.10", "&bmp=60.50", "&bmp=60.33", "&bmp=60.02", "&bmp=59.01", "&bmp=58.71", "&bmp=58.67",
          "&bmp=47.25", "&bmp=46.83", "&bmp=46.68", "&bmp=46.51", "&bmp=46.01", "&bmp=45.94", "&bmp=45.53",
          "&bmp=45.47", "&bmp=45.40", "&bmp=45.24", "&bmp=45.21", "&bmp=45.14", "&bmp=45.00" };

      for (String test : tests)
      {
        System.out.println ( "Pre : " + test );
        if ( test.indexOf( "&bmp=" ) >= 0 )
        {
          System.out.println( "Replacement needed" );
          test = test.replaceFirst( "&bmp=\\d*\\.?\\d*", "&bmp=80.88" );
        }
        System.out.println ( "Post: " + test );
        System.out.println ( "****************************************" );
      }

I get this result:
Code:
Pre : &xf=1&gl=79
Post: &xf=1&gl=79
****************************************
Pre : &xf=1&gl=73
Post: &xf=1&gl=73
****************************************
Pre : &xf=1&gl=52&bmp=53.24
Replacement needed
Post: &xf=1&gl=52&bmp=80.88
****************************************
Pre : &xf=1&gl=52
Post: &xf=1&gl=52
****************************************
Pre : &xf=1&gl=127
Post: &xf=1&gl=127
****************************************
Pre : &xf=1&bmp=73.84
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=65.15
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=61.84
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=59.48
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=58.56
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=57.55
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=55.41
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=53.41
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=52.99
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1&bmp=46.23
Replacement needed
Post: &xf=1&bmp=80.88
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &xf=1
Post: &xf=1
****************************************
Pre : &x=218044&xf=1
Post: &x=218044&xf=1
****************************************
Pre : &x=162579&xf=1&bmp=81.93
Replacement needed
Post: &x=162579&xf=1&bmp=80.88
****************************************
Pre : &x=-3000&fie=1&fit=1782&fil=52&foe=1&fot=10000
Post: &x=-3000&fie=1&fit=1782&fil=52&foe=1&fot=10000
****************************************
Pre : &x=-3000&fie=0&foe=0&xf=0&ft=40&ge=0
Post: &x=-3000&fie=0&foe=0&xf=0&ft=40&ge=0
****************************************
Pre : &i=5994&f=160986
Post: &i=5994&f=160986
****************************************
Pre : &i=18759
Post: &i=18759
****************************************
Pre : &i=183502&bmp=55.01
Replacement needed
Post: &i=183502&bmp=80.88
****************************************
Pre : &gl=97
Post: &gl=97
****************************************
Pre : &gl=94
Post: &gl=94
****************************************
Pre : &gl=94
Post: &gl=94
****************************************
Pre : &gl=94
Post: &gl=94
****************************************
Pre : &gl=94
Post: &gl=94
****************************************
Pre : &gl=91
Post: &gl=91
****************************************
Pre : &gl=91
Post: &gl=91
****************************************
Pre : &gl=85
Post: &gl=85
****************************************
Pre : &gl=82
Post: &gl=82
****************************************
Pre : &gl=79
Post: &gl=79
****************************************
Pre : &gl=79
Post: &gl=79
****************************************
Pre : &gl=76
Post: &gl=76
****************************************
Pre : &gl=-31
Post: &gl=-31
****************************************
Pre : &gl=-13
Post: &gl=-13
****************************************
Pre : &ge=0&gl=94
Post: &ge=0&gl=94
****************************************
Pre : &ge=0&gl=94
Post: &ge=0&gl=94
****************************************
Pre : &ge=0&gl=88
Post: &ge=0&gl=88
****************************************
Pre : &ge=0&gl=73
Post: &ge=0&gl=73
****************************************
Pre : &ge=0&gl=73
Post: &ge=0&gl=73
****************************************
Pre : &ge=0&gl=61
Post: &ge=0&gl=61
****************************************
Pre : &ge=0&gl=43
Post: &ge=0&gl=43
****************************************
Pre : &ge=0&gl=127
Post: &ge=0&gl=127
****************************************
Pre : &ge=0&bmp=50.75
Replacement needed
Post: &ge=0&bmp=80.88
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &ge=0
Post: &ge=0
****************************************
Pre : &fot=7030&fol=100
Post: &fot=7030&fol=100
****************************************
Pre : &fol=100
Post: &fol=100
****************************************
Pre : &fol=100
Post: &fol=100
****************************************
Pre : &foe=1&fot=8218&fol=100&foc=1&xf=2
Post: &foe=1&fot=8218&fol=100&foc=1&xf=2
****************************************
Pre : &foe=1&fot=10000&fol=100&foc=1
Post: &foe=1&fot=10000&fol=100&foc=1
****************************************
Pre : &foe=1&fol=100
Post: &foe=1&fol=100
****************************************
Pre : &foe=1&foc=2
Post: &foe=1&foc=2
****************************************
Pre : &foe=1&foc=1
Post: &foe=1&foc=1
****************************************
Pre : &foe=0&ge=0
Post: &foe=0&ge=0
****************************************
Pre : &foe=0
Post: &foe=0
****************************************
Pre : &foe=0
Post: &foe=0
****************************************
Pre : &fit=9208&fil=79&fot=8218&fol=95
Post: &fit=9208&fil=79&fot=8218&fol=95
****************************************
Pre : &fit=0&fil=100&fic=1&ge=0
Post: &fit=0&fil=100&fic=1&ge=0
****************************************
Pre : &fie=1&fit=990&fic=1&foe=1&fot=4653&fol=90&foc=1&g
Post: &fie=1&fit=990&fic=1&foe=1&fot=4653&fol=90&foc=1&g
****************************************
Pre : &fie=1&fit=8317&fil=100&fic=1&foe=1&fot=8218&fol=1
Post: &fie=1&fit=8317&fil=100&fic=1&foe=1&fot=8218&fol=1
****************************************
Pre : &fie=1&fit=10000&fil=88&fot=10000&fol=100&foc=1
Post: &fie=1&fit=10000&fil=88&fot=10000&fol=100&foc=1
****************************************
Pre : &fie=0&foe=1&fot=4950&fol=100&foc=1&ge=0&gl=25
Post: &fie=0&foe=1&fot=4950&fol=100&foc=1&ge=0&gl=25
****************************************
Pre : &fie=0&foe=1
Post: &fie=0&foe=1
****************************************
Pre : &fie=0&foe=0&ge=0&gl=67
Post: &fie=0&foe=0&ge=0&gl=67
****************************************
Pre : &fie=0&foe=0&ge=0&gl=-61
Post: &fie=0&foe=0&ge=0&gl=-61
****************************************
Pre : &fie=0&foe=0&ge=0
Post: &fie=0&foe=0&ge=0
****************************************
Pre : &fie=0&foe=0
Post: &fie=0&foe=0
****************************************
Pre : &fie=0&foe=0
Post: &fie=0&foe=0
****************************************
Pre : &fie=0&foe=0
Post: &fie=0&foe=0
****************************************
Pre : &fie=0&fit=500&foe=0&fot=495
Post: &fie=0&fit=500&foe=0&fot=495
****************************************
Pre : &f=99035
Post: &f=99035
****************************************
Pre : &f=94281
Post: &f=94281
****************************************
Pre : &f=77424
Post: &f=77424
****************************************
Pre : &ct0=36567&cn0=test
Post: &ct0=36567&cn0=test
****************************************
Pre : &ct0=32685&cn0=beat&ct1=24488&cn1=vocal in
Post: &ct0=32685&cn0=beat&ct1=24488&cn1=vocal in
****************************************
Pre : &ct0=175295&cn0=chorus_end&ct1=44335&cn1=early bum
Post: &ct0=175295&cn0=chorus_end&ct1=44335&cn1=early bum
****************************************
Pre : &c=9131&f=302825&fie=1&fit=10000&fil=100&fic=1
Post: &c=9131&f=302825&fie=1&fit=10000&fil=100&fic=1
****************************************
Pre : &c=8000
Post: &c=8000
****************************************
Pre : &c=6420
Post: &c=6420
****************************************
Pre : &c=6400&i=21631&ct1=13677&ct2=22380
Post: &c=6400&i=21631&ct1=13677&ct2=22380
****************************************
Pre : &c=5009&bmp=47.70
Replacement needed
Post: &c=5009&bmp=80.88
****************************************
Pre : &c=4800
Post: &c=4800
****************************************
Pre : &c=427558&fie=1&fit=8515&fil=76&fic=1
Post: &c=427558&fie=1&fit=8515&fil=76&fic=1
****************************************
Pre : &c=3942&bmp=59.22
Replacement needed
Post: &c=3942&bmp=80.88
****************************************
Pre : &c=3661&e=120597&bmp=63.24
Replacement needed
Post: &c=3661&e=120597&bmp=80.88
****************************************
Pre : &c=245223&i=246823&f=512225&fie=1&fit=2178&fil=80&
Post: &c=245223&i=246823&f=512225&fie=1&fit=2178&fil=80&
****************************************
Pre : &c=24386&e=180863&f=175782&x=-3000&xf=1
Post: &c=24386&e=180863&f=175782&x=-3000&xf=1
****************************************
Pre : &c=234&ge=0&gl=127
Post: &c=234&ge=0&gl=127
****************************************
Pre : &c=230867&i=232553&f=323551
Post: &c=230867&i=232553&f=323551
****************************************
Pre : &c=22564&e=194870&foe=1&fot=5000&fol=100
Post: &c=22564&e=194870&foe=1&fot=5000&fol=100
****************************************
Pre : &c=221012&fie=1&fit=2376&fic=1
Post: &c=221012&fie=1&fit=2376&fic=1
****************************************
Pre : &c=21153&bmp=47.50
Replacement needed
Post: &c=21153&bmp=80.88
****************************************
Pre : &c=201746&i=201746
Post: &c=201746&i=201746
****************************************
Pre : &c=19650&i=40706
Post: &c=19650&i=40706
****************************************
Pre : &c=18379&i=21207&xf=1
Post: &c=18379&i=21207&xf=1
****************************************
Pre : &c=17809&e=268510&f=261660&x=-3000&xf=1
Post: &c=17809&e=268510&f=261660&x=-3000&xf=1
****************************************
Pre : &c=15864&fie=1&fit=9010&fil=80&fic=1
Post: &c=15864&fie=1&fit=9010&fil=80&fic=1
****************************************
Pre : &c=149166&ct1=170521
Post: &c=149166&ct1=170521
****************************************
Pre : &c=1477
Post: &c=1477
****************************************
Pre : &c=1342&bmp=60.01
Replacement needed
Post: &c=1342&bmp=80.88
****************************************
Pre : &c=1200&bmp=70.67
Replacement needed
Post: &c=1200&bmp=80.88
****************************************
Pre : &c=11152
Post: &c=11152
****************************************
Pre : &c=1000&xf=1
Post: &c=1000&xf=1
****************************************
Pre : &c=0&gl=70
Post: &c=0&gl=70
****************************************
Pre : &c=0&ct1=61345
Post: &c=0&ct1=61345
****************************************
Pre : &c=0
Post: &c=0
****************************************
Pre : &bmp=70.34
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=67.50
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=62.90
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=62.77
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=62.68
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=62.59
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=62.51
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=62.49
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=61.85
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=61.81
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=61.67
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=61.30
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=61.10
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=60.50
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=60.33
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=60.02
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=59.01
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=58.71
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=58.67
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=47.25
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=46.83
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=46.68
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=46.51
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=46.01
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.94
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.53
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.47
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.40
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.24
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.21
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.14
Replacement needed
Post: &bmp=80.88
****************************************
Pre : &bmp=45.00
Replacement needed
Post: &bmp=80.88
****************************************

Looks good to me.

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 3rd, 2008, 2:53 pm 
Offline
Senior User
Senior User

Joined: October 14th, 2004, 10:15 am
Posts: 174
Cool! Let me know if there's anything I can do to help...

Also is the tool gonna replace existing bpm values AND add new ones from the ID3v2.3 TBPM tag?

_________________
erdubya
ProjectVIBE Internet Radio
Image


Top
 Profile  
Reply with quote  
PostPosted: October 3rd, 2008, 9:07 pm 
Offline
Alumni
Alumni

Joined: March 11th, 2003, 1:34 pm
Posts: 9959
Location: Maui, HI
I am preparing documentation and have temporarily disabled the other tabbed functions for now.
All the MP3 Fields parts will be enabled:
ID3 TCOP to SAM pline
ID3 TXXX_Tones to SAM moods
ID3 TBPM to SAM bpm/xfade

Quote:
is the tool gonna replace existing bpm values AND add new ones from the ID3v2.3 TBPM tag?


rough algorithm:

* get the songs that have a null or zero (zero is the default) value for "bpm" in the songlist
* Read the songs Id3v2.3 TBPM tag and if TBPM present round to an integer and store in songlist "bpm" column and update or add to any bpm=XYZ value in the songlist "xfade" column with the actual TBPM value

Songs that already have a SAM songlist.bpm value will not be processed.
I could change this later to update the songlist.bpm and songlist.xfade from the MP3 ID3v2.3 tag but let's do some iterative deployments first.

The "easiest" way to update all songs is to set the bpm value to 0 by using this SQL:
update songlist set bpm = 0

I used that extensively during testing to reset and retest.

_________________
- Steve Kunitzer
- SVS (Spacial Volunteer Support) / Forum Administrator

Image
Image


Top
 Profile  
Reply with quote  
PostPosted: October 4th, 2008, 11:56 am 
Offline
Senior User
Senior User

Joined: October 14th, 2004, 10:15 am
Posts: 174
FesterHead wrote:
I am preparing documentation and have temporarily disabled the other tabbed functions for now.
All the MP3 Fields parts will be enabled:
ID3 TCOP to SAM pline
ID3 TXXX_Tones to SAM moods
ID3 TBPM to SAM bpm/xfade


Just out of curiosity, what is the TXXX_Tones field?

_________________
erdubya
ProjectVIBE Internet Radio
Image


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 23 posts ]  Go to page 1, 2  Next

All times are UTC - 6 hours [ DST ]


Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group