tries to instantiate all the instruments that are imported in /instruments/__init__.py
    and saves instruments that could be instantiate into a .b2 file in the folder path
    Args:
        target_folder: target path for .b26 files

def export_default_instruments(target_folder, source_folder = None, raise_errors = False, verbose=True):
    """
    tries to instantiate all the instruments that are imported in /instruments/__init__.py
    and saves instruments that could be instantiate into a .b2 file in the folder path
    Args:
        target_folder: target path for .b26 files
    """
    print('export_def_instr called')
    instruments_to_load = get_classes_in_folder(source_folder, Instrument, verbose = True)
    print('instruments to load:')
    print(instruments_to_load)

    if verbose:
        print(('attempt to load {:d} instruments: '.format(len(instruments_to_load))))
    loaded_instruments, failed = Instrument.load_and_append(instruments_to_load, raise_errors = raise_errors)
    print('loaded instruments:')
    print(loaded_instruments, failed)

    for name, value in loaded_instruments.items():
        filename = os.path.join(target_folder, '{:s}.b26'.format(name))

        value.save_b26(filename)

    if verbose:
        print('\n================================================')
        print('================================================')
        print(('saved {:d} instruments, {:d} failed'.format(len(loaded_instruments), len(failed))))
        if failed != {}:
            for error_name, error in failed.items():
                print(('failed to create instruments: ', error_name, error))