This is the basic class, representing a numeric tape recorder with audio tracks.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | duration |
Duration in seconds: |
|||
real(kind=wp), | public, | dimension(:, :), allocatable | :: | left |
Two arrays stocking the stereo tracks: |
||
real(kind=wp), | public, | dimension(:, :), allocatable | :: | right |
Two arrays stocking the stereo tracks: |
||
integer, | public | :: | samples |
Number of samples: |
|||
integer, | public | :: | tracks |
Number of audio tracks (excluding track 0 reserved for the final mix): |
final :: auto_finalize |
procedure, public :: clear_tracks | |
procedure, public :: copy_section | |
procedure, public :: finalize | |
procedure, public :: mix_tracks | |
procedure, public :: new |
An automatic finalizer, by security.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tape_recorder), | intent(inout) | :: | self |
Erase all tracks on all the channels of the tape.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tape_recorder), | intent(inout) | :: | self |
Copy section t1...t2 at t3, either on the same track or another one. The content already present at t3 is overwritten. The code suppose that t1 < t2 < t3.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tape_recorder), | intent(inout) | :: | self | |||
integer, | intent(in) | :: | from_track | |||
integer, | intent(in) | :: | to_track | |||
real(kind=wp), | intent(in) | :: | t1 | |||
real(kind=wp), | intent(in) | :: | t2 | |||
real(kind=wp), | intent(in) | :: | t3 |
Called by the close_WAV_file() method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tape_recorder), | intent(inout) | :: | self |
Tracks 1 to tracks-1 are mixed on track 0.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tape_recorder), | intent(inout) | :: | self | |||
real(kind=wp), | intent(in), | optional, | dimension(1:self%tracks) | :: | levels | |
real(kind=wp), | intent(in), | optional, | dimension(1:self%tracks) | :: | pan |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(tape_recorder), | intent(inout) | :: | self | |||
integer, | intent(in) | :: | tracks | |||
real(kind=wp), | intent(in) | :: | duration |