Index: /gs2-extensions/music-ir-src/trunk/perllib/plugins/MusicIRPlugin.pm
===================================================================
--- /gs2-extensions/music-ir-src/trunk/perllib/plugins/MusicIRPlugin.pm	(revision 26275)
+++ /gs2-extensions/music-ir-src/trunk/perllib/plugins/MusicIRPlugin.pm	(revision 26276)
@@ -107,8 +107,8 @@
 
 
-# do plugin specific processing of doc_obj
-sub process {
+
+sub process_features {
     my $self = shift (@_);
-    my ($pluginfo, $base_dir, $file, $metadata, $doc_obj, $gli) = @_;
+    my ($base_dir, $file, $doc_obj) = @_;
 
     my $outhandle = $self->{'outhandle'};
@@ -132,8 +132,19 @@
     }
 
+}
+
+# do plugin specific processing of doc_obj
+sub process {
+    my $self = shift (@_);
+    my ($pluginfo, $base_dir, $file, $metadata, $doc_obj, $gli) = @_;
+
+    my $top_section = $doc_obj->get_top_section();
+
+    $self->process_features($base_dir,$file,$doc_obj);
     
     #we have no text - adds dummy text and NoText metadata
     $self->add_dummy_text($doc_obj, $doc_obj->get_top_section());
 
+    my ($filename_full_path, $filename_no_path) = &util::get_full_filenames($base_dir, $file);
     $doc_obj->associate_file($filename_full_path, "audio.mp3", "audio/mpeg", $top_section);
 
@@ -151,10 +162,12 @@
     if ($self->{'retrieve_mir_metadata'} eq "true") {
 	my $top_section = $doc_obj->get_top_section();
+
 	my $id3_titles = $doc_obj->get_metadata($top_section,"ex.ID3.Title");
-
-	my $id3_title = shift @$id3_titles || "Unknown";
+	# my $id3_title = shift @$id3_titles || "Unknown";
+	my $id3_title = shift @$id3_titles || undef;
 
 	my $id3_artists = $doc_obj->get_metadata($top_section,"ex.ID3.Artist");
-	my $id3_artist = shift @$id3_artists || "Unkown";
+	# my $id3_artist = shift @$id3_artists || "Unknown";
+	my $id3_artist = shift @$id3_artists || undef;
 
 	my ($metadata_acexml_filename,$metadata_txt_filename) 
Index: /gs2-extensions/music-ir-src/trunk/perllib/plugins/jAudioExtractor.pm
===================================================================
--- /gs2-extensions/music-ir-src/trunk/perllib/plugins/jAudioExtractor.pm	(revision 26275)
+++ /gs2-extensions/music-ir-src/trunk/perllib/plugins/jAudioExtractor.pm	(revision 26276)
@@ -102,6 +102,12 @@
     my $music_ir_home = $ENV{'GEXT_MUSICIR'};
 
-    $self->{'ace_xml_output_directory'} = &util::filename_cat($gsdl_home,"tmp"); # Set the directory to save the the ACE XML output files in
+    my $ace_xml_output_directory = &util::filename_cat($gsdl_home,"tmp"); # Set the directory to save the the ACE XML output files in
+    if (!util::dir_exists($ace_xml_output_directory)) {
+	util::mk_dir($ace_xml_output_directory);
+    }
+    $self->{'ace_xml_output_directory'} = $ace_xml_output_directory;
+
     $self->{'jmir_directory'} = &util::filename_cat($music_ir_home,"lib","java"); # Set the directory holding the jMIR .jar files
+
 
 
@@ -137,10 +143,23 @@
 
     # Set the input file name in the file tag in the temporary file
+    if ($^O eq "cygwin") {
+	$input_music_file_path = `cygpath -m "$input_music_file_path"`;
+	$input_music_file_path=~ s/\s+$//;
+    }
     $batch_file_contents =~ s/<file><\/file>/<file>$input_music_file_path<\/file>/;
 
     # Set the feature vales save path in the temporary file
+    if ($^O eq "cygwin") {
+	$feature_descriptions_file_path = `cygpath -m "$feature_descriptions_file_path"`;
+	$feature_descriptions_file_path=~ s/\s+$//;
+    }
+
     $batch_file_contents =~ s/<destination><\/destination>/<destination>$feature_descriptions_file_path<\/destination>/;
 
     # Set the feature vales save path in the temporary file
+    if ($^O eq "cygwin") {
+	$feature_values_file_path = `cygpath -m "$feature_values_file_path"`;
+	$feature_values_file_path=~ s/\s+$//;
+    }
     $batch_file_contents =~ s/<destination><\/destination>/<destination>$feature_values_file_path<\/destination>/;
 
@@ -228,5 +247,12 @@
 	
 	# Input and Output files to use are stored in the batch_file
-	my $jaudio_cmd = "java -Xmx1024M -jar jAudio.jar $convert_options -b \"$batch_file_path\"";
+	my $batch_file_path_os = $batch_file_path;
+
+	if ($^O eq "cygwin") {
+	    $batch_file_path_os = `cygpath -w "$batch_file_path"`;
+	    $batch_file_path_os =~ s/\s+$//;
+	}
+
+	my $jaudio_cmd = "java -Xmx1024M -jar jAudio.jar $convert_options -b \"$batch_file_path_os\"";
 		
 	# Test the execution path
Index: /gs2-extensions/music-ir-src/trunk/perllib/plugins/jSongMinerExtractor.pm
===================================================================
--- /gs2-extensions/music-ir-src/trunk/perllib/plugins/jSongMinerExtractor.pm	(revision 26275)
+++ /gs2-extensions/music-ir-src/trunk/perllib/plugins/jSongMinerExtractor.pm	(revision 26276)
@@ -176,11 +176,26 @@
     elsif (chdir($jmir_directory)) {
 
+	my $source_file_path_os = $source_file_path;
+	if ($^O eq "cygwin") {
+	    $source_file_path_os = `cygpath -w "$source_file_path"`;
+	    $source_file_path_os =~ s/\s+$//;
+	}
+	my $target_txt_file_path_os = $target_txt_file_path;
+	if ($^O eq "cygwin") {
+	    $target_txt_file_path_os = `cygpath -w "$target_txt_file_path"`;
+	    $target_txt_file_path_os =~ s/\s+$//;
+	}
+	my $target_acexml_file_path_os = $target_acexml_file_path;
+	if ($^O eq "cygwin") {
+	    $target_acexml_file_path_os = `cygpath -w "$target_acexml_file_path"`;
+	    $target_acexml_file_path_os =~ s/\s+$//;
+	}
 
 	my $jsongminer_cmd = "java -Xmx1024M -jar jSongMiner.jar $convert_options";
-	$jsongminer_cmd .= " -title \"$id3_title\"";
-	$jsongminer_cmd .= " -artist \"$id3_artist\"";
-	$jsongminer_cmd .= " -audio \"$source_file_path\"";
-	$jsongminer_cmd .= " -savetxtfile \"$target_txt_file_path\"";
-	$jsongminer_cmd .= " -saveacexmlfile \"$target_acexml_file_path\"";
+	$jsongminer_cmd .= " -title \"$id3_title\"" if defined $id3_title;
+	$jsongminer_cmd .= " -artist \"$id3_artist\"" if defined $id3_artist;
+	$jsongminer_cmd .= " -audio \"$source_file_path_os\"";
+	$jsongminer_cmd .= " -savetxtfile \"$target_txt_file_path_os\"";
+	$jsongminer_cmd .= " -saveacexmlfile \"$target_acexml_file_path_os\"";
 	
 	if ($verbosity>2) {
Index: /gs2-extensions/music-ir-src/trunk/perllib/plugins/jSongMinerMetadata.pm
===================================================================
--- /gs2-extensions/music-ir-src/trunk/perllib/plugins/jSongMinerMetadata.pm	(revision 26275)
+++ /gs2-extensions/music-ir-src/trunk/perllib/plugins/jSongMinerMetadata.pm	(revision 26276)
@@ -228,5 +228,12 @@
 	
 	# Input and Output files to use are stored in the batch_file
-	my $jaudio_cmd = "java -Xmx1024M -jar jAudio.jar $convert_options -b \"$batch_file_path\"";
+	my $batch_file_path_os = $batch_file_path;
+
+	if ($^O eq "cygwin") {
+	    $batch_file_path_os = `cygpath -w "$batch_file_path"`;
+	    $batch_file_path_os =~ s/\s+$//;
+	}
+
+	my $jaudio_cmd = "java -Xmx1024M -jar jAudio.jar $convert_options -b \"$batch_file_path_os\"";
 		
 	# Test the execution path
