diff --git a/matlab/tfgm/scripts/exp_tff1_car_bird.m b/matlab/tfgm/scripts/exp_tff1_car_bird.m
index ee2cfe3ae196dc5924b9e55b46be14b837c5f1a8..301202b076255957af1419e4e4e23229f7ed63c8 100644
--- a/matlab/tfgm/scripts/exp_tff1_car_bird.m
+++ b/matlab/tfgm/scripts/exp_tff1_car_bird.m
@@ -397,3 +397,4 @@ title(['Interp  SDR= ', num2str(sdr_interp,4),'dB  ','IS=',num2str(is_interp)])
 set(gca, 'FontSize', 20, 'fontName','Times');
 saveas(gcf,fullfile(fig_dir,'spectrogram_interp.pdf'));
 %%
+save('exp_tff1_car_bird.mat')
diff --git a/matlab/tfgm/scripts/exp_tffP_car_bird.m b/matlab/tfgm/scripts/exp_tffP_car_bird.m
index 82b41c46f146384e9e30cedd9e3e00107f4c88f9..27a98c526a1b3996630a7db08627f5abc6c58ae7 100644
--- a/matlab/tfgm/scripts/exp_tffP_car_bird.m
+++ b/matlab/tfgm/scripts/exp_tffP_car_bird.m
@@ -11,7 +11,7 @@ dbstack;
 %%
 loc_source='bird';
 wideband_src='car';
-setting = 7;
+setting = 6;
 
 if setting == 1
     
@@ -22,98 +22,45 @@ if setting == 1
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
-elseif  setting == 1.2
-    
-    win_type = 'hann';
-    win_dur = 128/8000;
-    hop_ratio = 1/4;
-    nbins_ratio = 4;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
-    
-elseif setting == 1.3
-    
-    win_type = 'hann';
-    win_dur = 128/8000;
-    hop_ratio = 1/4;
-    nbins_ratio = 4;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
-    
-    
-elseif setting == 1.5
+elseif setting == 2
     
     win_type = 'hann';
-    win_dur = 128/8000;
-    hop_ratio = 1/4;
-    nbins_ratio = 4;
+    win_dur = 256/8000;
+    hop_ratio = 1/8;
+    nbins_ratio = 2;
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
-elseif setting == 2
-    
-    win_type = 'gauss';
-    win_dur = 128 / 8000;
-    hop_ratio = 1 / 4;
-    nbins_ratio = 4;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
 elseif setting == 3
     
     win_type = 'hann';
-    win_dur = 128 / 8000;
-    hop_ratio = 1 / 4;
+    win_dur = 512/8000;
+    hop_ratio = 1/4;
     nbins_ratio = 4;
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
+            
 elseif setting == 4
-    
-    win_type = 'hann';
-    win_dur = 256 / 8000;
-    hop_ratio = 1 / 8;
-    nbins_ratio = 2;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
-    
-elseif setting == 5
-    
-    win_type = 'hann';
-    win_dur = 512 / 8000;
-    hop_ratio = 1 / 4;
-    nbins_ratio = 4;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
-    
-elseif setting == 6
-    
     win_type = 'hann';
-    win_dur = 512 / 8000;
-    hop_ratio = 1 / 8;
+    win_dur = 512/8000;
+    hop_ratio = 1/8;
     nbins_ratio = 2;
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
-elseif setting == 7
     
-    win_type = 'gauss';
-    win_dur = 256/8000;
-    hop_ratio = 1 / 4;
-    nbins_ratio = 4;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
-    
-elseif setting == 7.1
+elseif setting == 5
     
     win_type = 'gauss';
-    win_dur = 256 / 8000;
+    win_dur = 128 / 8000;
     hop_ratio = 1 / 4;
     nbins_ratio = 4;
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
-elseif setting == 8
+elseif setting == 6
     
     win_type = 'gauss';
     win_dur = 256 / 8000;
@@ -122,32 +69,23 @@ elseif setting == 8
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
-elseif setting == 9
+elseif setting == 7
     
     win_type = 'gauss';
     win_dur = 256 / 8000;
-    hop_ratio = 1 / 4;
-    nbins_ratio = 4;
+    hop_ratio = 1 / 8;
+    nbins_ratio = 2;
     tol_subregions = 1e-5;
     [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
     
-elseif setting == 10
-    
-    win_type = 'gauss';
-    win_dur = 256 / 8000;
-    hop_ratio = 1 / 4;
-    nbins_ratio = 4;
-    tol_subregions = 1e-5;
-    [alpha, seuil, radius] = set_smooth_mask_params(wideband_src, loc_source, win_type);
 end
 
-
 %%
 
 nb_areas ='Paeras';
 
 pwd;
-fig_dir =['fig_solve_', nb_areas,'_car_cuicui_', win_type];
+fig_dir =['fig_solve_', nb_areas,'_car_bird_', win_type];
 if ~exist(fig_dir,'dir')
     mkdir(fig_dir);
 end
@@ -217,9 +155,7 @@ x_rec = @(lambda_coef)compute_estimate(lambda_coef, x_mix, s_vec_list,...,
 
 [lambda_oracle, t_oracle] = compute_lambda_oracle_sdr(n_areas,x_wideband, x_rec);
 
-
-
-fprintf("Running time to tune lambda (oracle): %f \n")
+disp("Running time to tune lambda (oracle): %f \n")
 disp(t_oracle);
 
 %% Estimate energy and lambda
@@ -232,24 +168,6 @@ disp(t_oracle);
 fprintf("Running time to tune lambda (est): \n")
 disp(t_lambda_est);
 
-%%  Estimate lambda from true energy
-e_wideband_true_energy = zeros(n_areas,1);
-x_wideband_tf_mat = dgt(gabmul_list{1}(signals.wideband));
-
-for k_area  =1:n_areas
-    mask_k = (mask_labeled==k_area);
-    x_wideband_tf_masked = mask_k .* x_wideband_tf_mat;
-    
-    e_wideband_true_energy(k_area) =norm(x_wideband_tf_masked, 'fro').^2;
-end
-e_wideband = e_wideband_true_energy;
-
-[lambda_true_energy, t_true_energy] = compute_lambda(x_mix, mask_labeled, dgt_params,...,
-    signal_params,  dgt, s_vec_list, u_mat_list, ut_x_list,...,
-    gabmul_list, fig_dir,e_wideband);
-%%
-fprintf("Running time to tune lambda (True):\n")
-disp(t_true_energy);
 
 
 %% Results
@@ -257,11 +175,11 @@ disp(t_true_energy);
 x_wideband = signals.wideband;
 sdr_wideband = @(lambda_coef)sdr(x_wideband, x_rec(lambda_coef));
 
-sdr_wideband_1area = @(lambda_coef, k_area)sdr_engine_1area(lambda_coef, k_area, x_rec, x_wideband, n_areas);
+sdr_wideband_1area = @(lambda_coef, k_area)sdr_1region(lambda_coef, k_area, x_rec, x_wideband, n_areas);
 
 is_wideband = @(lambda_coef) itakura_saito_dist_spectrum(x_wideband, x_rec(lambda_coef));
 
-is_wideband_1area = @(lambda_coef,k_area)is_spectrum_engine_1aera(x_wideband, k_area,lambda_coef, n_areas,x_rec);
+is_wideband_1area = @(lambda_coef,k_area)is_spectrum_1region(x_wideband, k_area,lambda_coef, n_areas,x_rec);
 
 %% SDR for each area
 
@@ -270,77 +188,89 @@ l_range = 10.^linspace(-10,10,100);
 sdr_engine1area_l = zeros(length(l_range),1);
 
 
-figure;
 for k_area =1: n_areas
+   figure;
     for k=1:length(l_range)
         sdr_engine1area_l(k) = sdr_wideband_1area(l_range(k), k_area);
     end
-    txt = ['SDR sub-reg  =' num2str(k_area)];
-    plot(l_range, sdr_engine1area_l,'DisplayName',txt)
-end
+    txt = 'SDR';
+    plot(l_range, sdr_engine1area_l,'LineWidth',3,'DisplayName',txt)
+
 
 hold on;
-for k_area =1:n_areas
-    txt1 = ['TFF-O ',num2str(k_area)];
+
+    txt1 = 'TFF-O ';
     plot(lambda_oracle(k_area), sdr_wideband_1area(lambda_oracle(k_area), k_area),...,
         '*','LineWidth',3,'DisplayName',txt1);
-    txt2 = ['TFF-P',num2str(k_area)];
+    txt2 = 'TFF-P';
     plot(lambda_est(k_area),sdr_wideband_1area(lambda_est(k_area), k_area),...,
         'o','LineWidth',3,'DisplayName',txt2);
-    txt3 = ['TFF-E',num2str(k_area)];
-    plot(lambda_true_energy(k_area),sdr_wideband_1area(lambda_true_energy(k_area), k_area),...,
-        'o','LineWidth',3,'DisplayName',txt3);
-    txt4 = ['Zero fill',num2str(k_area)];
-    plot(1, sdr_wideband_1area(1, k_area), 'o','LineWidth',3,'DisplayName',txt4);
+    txt3 = 'Zero fill';
+    plot(1, sdr_wideband_1area(1, k_area), 'o','LineWidth',3,'DisplayName',txt3);
     
-end
+
 legend show;
 
 
 xlabel('$\lambda$','Interpreter','latex')
 ylabel('SDR(dB)')
+title(['SDR sub-region:' num2str(k_area)])
 set(gca,'XScale','log');
 grid on;
 set(gca, 'FontSize', 20, 'fontName','Times');
 
-saveas(gcf,fullfile(fig_dir, 'tuning_lambda.pdf'));
-
+saveas(gcf,fullfile(fig_dir, ['tuning_lambda_area_',num2str(k_area),'.pdf']));
+end
 
 %% Itakura saito for each aera
+
 is_engine1area_l = zeros(length(l_range),1);
 
-figure;
 for k_area =1: n_areas
+    figure;
     for k=1:length(l_range)
         is_engine1area_l(k) = is_wideband_1area(l_range(k), k_area);
     end
-    txt = ['SDR sub-reg  =' num2str(k_area)];
+    txt ='IS'; 
     plot(l_range, is_engine1area_l,'LineWidth',3,'DisplayName',txt)
-end
+
 hold on;
-for k_area=1:n_areas
+
     
     plot(lambda_oracle(k_area), is_wideband_1area(lambda_oracle(k_area),k_area), 'o','LineWidth',3)
     plot(lambda_est(k_area), is_wideband_1area(lambda_est(k_area),k_area), 'o')
-    plot(lambda_true_energy(k_area), is_wideband_1area(lambda_true_energy(k_area),k_area),'o','LineWidth',3)
     plot(1, is_wideband_1area(1,k_area), 'o','LineWidth',3)
     
     
-end
-
-
 xlabel('$\lambda$','Interpreter','latex')
 ylabel('IS (dB)')
 set(gca,'XScale','log');
+title(['IS sub-region:' num2str(k_area)])
 grid()
-legend('IS','TFF-O','TFF-P','TFF-E','Zero fill')
+legend('IS','TFF-O','TFF-P','Zero fill')
 axis tight;
-saveas(gcf,fullfile(fig_dir, 'tuning_lambda_IS.pdf'));
-%%
-figure;
+set(gca, 'FontSize', 20, 'fontName','Times');
+saveas(gcf,fullfile(fig_dir, ['tuning_IS_',num2str(k_area),'.pdf']));
+end
+
+%% plot both sdr and itakura saito in the same axis
+sdr_engine1area_l = zeros(length(l_range),1);
+is_engine1area_l = zeros(length(l_range),1);
+for k_area =1:n_areas
+  figure;
+    for k=1:length(l_range)
+        sdr_engine1area_l(k) = sdr_wideband_1area(l_range(k), k_area);
+        is_engine1area_l(k) = is_wideband_1area(l_range(k), k_area);
+    end
+
+txt = ['SDR sub-reg  =' num2str(k_area)];
 yyaxis left;
 plot(l_range, sdr_engine1area_l, '-','LineWidth',3); hold on;
-
+plot(lambda_oracle(k_area), sdr_wideband_1area(lambda_oracle(k_area), k_area), ...,
+    'o','LineWidth',3)
+plot(lambda_est(k_area),sdr_wideband_1area(lambda_est(k_area), k_area),...,
+    'bo','LineWidth',3)
+plot(1, sdr_wideband_1area(1, k_area), 'mo', 'LineWidth',3);
 grid on;
 xlabel('$\lambda$','Interpreter','latex')
 ylabel('SDR (dB)')
@@ -350,20 +280,24 @@ set(gca,'XScale','log');
 yyaxis right;
 
 plot(l_range,is_engine1area_l,'-','LineWidth',3); hold on;
+plot(lambda_oracle(k_area), is_wideband_1area(lambda_oracle(k_area),k_area),...,
+    'o','LineWidth',3)
+plot(lambda_est(k_area), is_wideband_1area(lambda_est(k_area),k_area), 'bo',...,
+    'LineWidth',3)
+plot(1, is_wideband_1area(1,k_area), 'mo','LineWidth',3)
 
 
-axis tight;
-legend('SDR TFF-P','IS TFF-P','Location','northwest');
+legend('SDR','TFF-O','TFF-P','Zero fill','Location','northwest');
 xlabel('$\lambda$','Interpreter','latex')
 ylabel('IS divergence')
+title(['SDR-IS sub-reg:' num2str(k_area)])
 set(gca, 'FontSize', 20, 'fontName','Times');
 
 
-saveas(gcf,fullfile(fig_dir, 'tuning_lambda_SDR_IS.pdf'));
-
-
+saveas(gcf,fullfile(fig_dir, ['tuning_lambda_SDR_IS',num2str(k_area),'.pdf']));
+end
 %% Reconstructed signals
-tf_mat_mix = compute_dgt(signals.mix, dgt );
+
 
 x_oracle = x_rec(lambda_oracle);
 wav_write('x_oracle.wav', x_oracle, signal_params.fs);
@@ -375,16 +309,17 @@ x_true_energy = x_rec(lambda_true_energy);
 wav_write('x_true_energy.wav', x_true_energy, signal_params.fs);
 
 
-x_zero = solver_tfgm_zero(tf_mat_mix, mask, idgt);
+x_zero = zero_fill_solver(x_mix, mask, dgt, idgt,  dgt_params,...,
+    signal_params, fig_dir);
 wav_write('x_zero_fill.wav', x_zero, signal_params.fs);
 
-x_interp= solver_tfgm_interp(tf_mat_mix, mask, idgt);
+x_interp= interpolation_solver(x_mix, mask, dgt, idgt, dgt_params,...,
+    signal_params, fig_dir);
 wav_write('x_interp.wav', x_zero, signal_params.fs);
 
 
 %% Sdr
 
-
 sdr_oracle = sdr(x_wideband, x_oracle);
 sdr_est = sdr(x_wideband, x_est);
 sdr_true_energy = sdr(x_wideband, x_true_energy);
@@ -403,8 +338,6 @@ is_interp= itakura_saito_dist_spectrum(x_wideband,x_interp);
 
 %%
 
-
-
 fprintf('Oracle lambda: %f\n', lambda_oracle);
 fprintf('SDR for oracle lambda: %f dB\n',sdr_oracle);
 
@@ -452,10 +385,6 @@ set(gca, 'FontSize', 20, 'fontName','Times');
 axis tight;
 saveas(gcf,fullfile(fig_dir,'spectrogram_TFF-O.pdf'));
 
-
-
-%%
-
 figure;
 plot_spectrogram(x_est, dgt_params, signal_params, dgt)
 title(['TFF-P - SDR= ',num2str(sdr_est,4),'dB  ','IS=',num2str(is_est)])
@@ -463,19 +392,10 @@ set(gca, 'FontSize', 20, 'fontName','Times');
 axis tight;
 saveas(gcf,fullfile(fig_dir, 'spectrogram_TFF-P.pdf'));
 
-
-%%
-figure;
-plot_spectrogram(x_true_energy, dgt_params, signal_params,dgt)
-title(['TFF-E SDR= ', num2str(sdr_true_energy,4),'dB  ','IS=',num2str(is_true_energy) ])
-set(gca, 'FontSize', 20, 'fontName','Times');
-saveas(gcf,fullfile(fig_dir, 'spectrogram_TFF-E.pdf'));
-%%
-
-
 figure;
 plot_spectrogram(x_interp, dgt_params, signal_params,dgt)
 title(['Interp  SDR= ', num2str(sdr_interp,4),'dB  ','IS=',num2str(is_interp)])
 set(gca, 'FontSize', 20, 'fontName','Times');
 saveas(gcf,fullfile(fig_dir,'spectrogram_interp.pdf'));
 %%
+save('exp_tffP_car_bird.mat');
diff --git a/matlab/tfgm/scripts/is_spectrum_1region.m b/matlab/tfgm/scripts/is_spectrum_1region.m
index 407dc879784ba839005074dc07508969fba42892..71deae8fb603e163e9a46ad8f5b8d19e82821c45 100644
--- a/matlab/tfgm/scripts/is_spectrum_1region.m
+++ b/matlab/tfgm/scripts/is_spectrum_1region.m
@@ -1,10 +1,10 @@
-function is_engine_1area = is_spectrum_engine_1aera(x_engine, k_area,lambda_coef, n_areas,x_rec)
+function is_1region = is_spectrum_1region(x_engine, k_area,lambda_coef, n_areas,x_rec)
 
 
 lambda_vec = ones(n_areas,1);
 lambda_vec(k_area) = lambda_coef;
 
-is_engine_1area  =  itakura_saito_dist_spectrum(x_engine, x_rec(lambda_vec))  ;
+is_1region =  itakura_saito_dist_spectrum(x_engine, x_rec(lambda_vec))  ;
 
 
 
diff --git a/matlab/tfgm/scripts/sdr_1region.m b/matlab/tfgm/scripts/sdr_1region.m
index c2970228f7bd277d1fcdeb765a14b76e33608e42..82edfb93814c842a81ee380e980d02a53f17f97a 100644
--- a/matlab/tfgm/scripts/sdr_1region.m
+++ b/matlab/tfgm/scripts/sdr_1region.m
@@ -1,10 +1,10 @@
-function sdr_engine1area =sdr_engine_1area(lambda_coef, k_area, x_rec, x_engine, n_areas)
+function sdr_1region =sdr_1region(lambda_coef, k_area, x_rec, x_engine, n_areas)
 
 lambda_vec = ones(n_areas,1);
 lambda_vec(k_area) = lambda_coef;
 
 
-sdr_engine1area = sdr(x_engine, x_rec(lambda_vec));
+sdr_1region = sdr(x_engine, x_rec(lambda_vec));
 
 
 end