Classes (extension) | Libraries>crucial>Players | Libraries>crucial>SoundFiles

# SFP : AbstractSFP : AbstractPlayer : AbstractFunction : Object
Extension

Sound File Player
Source: SFP.sc
Subclasses: VSFP
See also: VSFP

## Description

SFP plays long sound files from disk. It is not a sample player, it is to be used for playing recordings and long sound files.

    (

    SFP.getNew({ arg v;
        Sheet({ arg layout;
            v.topGui(layout);
        })
    })

    )

    (
    // no path supplied
    // click on the path (which is nil) to browse for a file
    SFP.new.gui
    )

## Class Methods

### SFP.new(path, tempo, firstBeatIsAtFrame: 0)

#### Arguments:

path | Paths should be either fully specified or if a relative path is used it will be relative to the classvar : AbstractSFP.dir which by default is "~/SoundFiles/" so test.aiff will be determined internally by using the standardizePath method: SFP.standardizePath("test.aiff") for me this would result in : /Users/cruxxial/SoundFiles/test.aiff You may set the AbstractSFP.dir = "wherever you want it" in your startup.rtf file. or you may simply fully specify your paths.
tempo |
firstBeatIsAtFrame |

### SFP.getNew(receivingFunction)

#### Arguments:

receivingFunction |

### Inherited class methods

## Instance Methods

### .firstBeatIsAt

### .firstBeatIsAt = value

### .found

### .soundFilePath

### .storeArgs

### .init(sfilePath)

#### Arguments:

sfilePath |

### .fileNotFound(sfilePath)

#### Arguments:

sfilePath |

### .preloadData(startAt: 0, endAt, group, bundle, parentSegmentBuffers)

#### Arguments:

startAt |
endAt |
group |
bundle |
parentSegmentBuffers |

### .fileName

### .fileDuration

### .timeDuration

### .tempo

### .tempo = t

#### Arguments:

t |

### .children

### .guiClass

### Inherited instance methods

helpfile source: /Users/zzk/Library/Application Support/SuperCollider/downloaded-quarks/crucial-library/HelpSource/Classes/SFP.schelp
link::Classes/SFP::