IpatchSF2File

IpatchSF2File — SoundFont file object

Stability Level

Stable, unless otherwise indicated

Functions

Properties

guint sample-pos Read / Write
guint sample-size Read / Write
guint sample24-pos Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── IpatchItem
        ╰── IpatchFile
            ╰── IpatchSF2File

Description

A IpatchFile object type specifically for SoundFont files.

Functions

ipatch_sf2_file_new ()

IpatchSF2File *
ipatch_sf2_file_new (void);

Create a new SoundFont file object.

Returns

New SoundFont file object (derived from IpatchFile) with a reference count of 1. Caller owns the reference and removing it will destroy the item.


ipatch_sf2_file_set_sample_pos ()

void
ipatch_sf2_file_set_sample_pos (IpatchSF2File *file,
                                guint sample_pos);

Sets the position of the sample data chunk in a SoundFont file object.

Parameters

file

SoundFont file object to set position of sample chunk

 

sample_pos

Position in the SoundFont file of the first sample of the sample data chunk, in bytes

 

ipatch_sf2_file_get_sample_pos ()

guint
ipatch_sf2_file_get_sample_pos (IpatchSF2File *file);

Gets the position of the sample data chunk in a SoundFont file object.

Parameters

file

SoundFont file object to get position of sample chunk from

 

Returns

Position in the SoundFont file of the first sample of the sample data chunk, in bytes


ipatch_sf2_file_set_sample_size ()

void
ipatch_sf2_file_set_sample_size (IpatchSF2File *file,
                                 guint sample_size);

Sets the size of the sample data chunk in a SoundFont file object.

Parameters

file

SoundFont file object to set the size of the sample chunk

 

sample_size

Size of the sample data chunk, in samples

 

ipatch_sf2_file_get_sample_size ()

guint
ipatch_sf2_file_get_sample_size (IpatchSF2File *file);

Gets the size of the sample data chunk in a SoundFont file object.

Parameters

file

SoundFont file object to get the size of the sample chunk from

 

Returns

Size of the sample data chunk, in samples


ipatch_sf2_file_set_sample24_pos ()

void
ipatch_sf2_file_set_sample24_pos (IpatchSF2File *file,
                                  guint sample24_pos);

Sets the position of the sample 24 data chunk in a SoundFont file object. This optional chunk contains the lower significant bytes of 24 bit samples.

Parameters

file

SoundFont file object to set position of sample24 chunk

 

sample24_pos

Position in the SoundFont file of the first sample of the sample 24 data chunk, in bytes

 

ipatch_sf2_file_get_sample24_pos ()

guint
ipatch_sf2_file_get_sample24_pos (IpatchSF2File *file);

Gets the position of the sample24 data chunk in a SoundFont file object.

Parameters

file

SoundFont file object to get position of sample24 chunk from

 

Returns

Position in the SoundFont file of the first byte of the sample24 data chunk, in bytes

Types and Values

IPATCH_SFONT_FOURCC_IFIL

#define IPATCH_SFONT_FOURCC_IFIL  IPATCH_FOURCC ('i','f','i','l')

IPATCH_SFONT_FOURCC_ISNG

#define IPATCH_SFONT_FOURCC_ISNG  IPATCH_FOURCC ('i','s','n','g')

IPATCH_SFONT_FOURCC_INAM

#define IPATCH_SFONT_FOURCC_INAM  IPATCH_FOURCC ('I','N','A','M')

IPATCH_SFONT_FOURCC_IROM

#define IPATCH_SFONT_FOURCC_IROM  IPATCH_FOURCC ('i','r','o','m')

IPATCH_SFONT_FOURCC_IVER

#define IPATCH_SFONT_FOURCC_IVER  IPATCH_FOURCC ('i','v','e','r')

IPATCH_SFONT_FOURCC_ICRD

#define IPATCH_SFONT_FOURCC_ICRD  IPATCH_FOURCC ('I','C','R','D')

IPATCH_SFONT_FOURCC_IENG

#define IPATCH_SFONT_FOURCC_IENG  IPATCH_FOURCC ('I','E','N','G')

IPATCH_SFONT_FOURCC_IPRD

#define IPATCH_SFONT_FOURCC_IPRD  IPATCH_FOURCC ('I','P','R','D')

IPATCH_SFONT_FOURCC_ICOP

#define IPATCH_SFONT_FOURCC_ICOP  IPATCH_FOURCC ('I','C','O','P')

IPATCH_SFONT_FOURCC_ICMT

#define IPATCH_SFONT_FOURCC_ICMT  IPATCH_FOURCC ('I','C','M','T')

IPATCH_SFONT_FOURCC_ISFT

#define IPATCH_SFONT_FOURCC_ISFT  IPATCH_FOURCC ('I','S','F','T')

IPATCH_SFONT_NAME_SIZE

#define IPATCH_SFONT_NAME_SIZE 20  /* name string size (Preset/Inst/Sample) */

IpatchSF2Bag

typedef struct {
    guint16 mod_index;		/* index into modulator list */
    guint16 gen_index;		/* index into generator list */
} IpatchSF2Bag;

IpatchSF2Ihdr

typedef struct {
    char name[20];		/* name of instrument */
    guint16 bag_index;		/* instrument bag index (#IPFileBag) */
} IpatchSF2Ihdr;

IpatchSF2Phdr

typedef struct {
    char name[20];		/* preset name */
    guint16 program;		/* MIDI program number */
    guint16 bank;			/* MIDI bank number */
    guint16 bag_index;	      /* index into preset bag (#IPFileBag) */
    guint32 library;		/* Not used (preserved) */
    guint32 genre;		/* Not used (preserved) */
    guint32 morphology;		/* Not used (preserved) */
} IpatchSF2Phdr;

IpatchSF2Shdr

typedef struct {
    char name[20];		/* sample name */
    guint32 start;		/* offset to start of sample */
    guint32 end;			/* offset to end of sample */
    guint32 loop_start;		/* offset to start of loop */
    guint32 loop_end;		/* offset to end of loop */
    guint32 rate;			/* sample rate recorded at */
    guint8 root_note;		/* root midi note number */
    gint8 fine_tune;		/* pitch correction in cents */
    guint16 link_index;	  /* linked sample index for stereo samples */
    guint16 type;	       /* type of sample (see IpatchSF2SampleFlags) */
} IpatchSF2Shdr;

Property Details

The “sample-pos” property

  “sample-pos”               guint

Position in file of sample data chunk.

Owner: IpatchSF2File

Flags: Read / Write

Default value: 0


The “sample-size” property

  “sample-size”              guint

Size of sample data chunk, in samples.

Owner: IpatchSF2File

Flags: Read / Write

Default value: 0


The “sample24-pos” property

  “sample24-pos”             guint

Position in file of 24 bit sample chunk.

Owner: IpatchSF2File

Flags: Read / Write

Default value: 0