Audio-Nama

 view release on metacpan or  search on metacpan

bin/nama  view on Meta::CPAN

=head4 B<vol> (v) - Change or show the current track's volume.

=over 8

vol [ [ + | - | / | * ] <float:volume> ]

vol * 1.5 # Multiply the current volume by 1.5
vol 75    # Set the current volume to 75
          # Depending on your namarc configuration, this means
          # either 75% of full volume (-ea) or 75 dB (-eadb).
vol - 5.7 # Decrease current volume by 5.7 (percent or dB)
vol       # Display the volume setting of the current track.


=back

=head4 B<mute> (c cut) - Mute the current track by reducing the volume parameter.
Use "unmute" to restore the former volume level.


=over 8

bin/nama  view on Meta::CPAN

sax   # Select the track sax.
solo  # Mute other tracks
nosolo # Unmute other tracks (piano is still muted)
all   # all tracks play


=back

=head4 B<pan> (p) - Change or display the current panning position of the 
current track. Panning is moving the audio in the stereo 
panorama between right and left. Position is given in percent. 
0 is hard left and 100 hard right, 50% is dead centre.


=over 8

pan [ <float:pan_position_in_percent> ]

pan 75 # Pan the track to a position between centre and hard right
p 50   # Move the current track to the centre.
pan    # Show the current position of the track in the stereo panorama.


=back

=head4 B<pan-right> (pr) - Pan the current track hard right. this is a synonym for pan 100. 
Can be reversed with pan-back.

bin/nama  view on Meta::CPAN

ain local # Create a local insert
guitar-1-wet # Select the wet arm 
afx G2reverb 50 5.0 0.6 0.5 0 -16 -20 # add a reverb
afx etc 6 100 45 2.5 # add a chorus effect on the reverbed signal
guitar # Change back to the main guitar track
wet 25 # Set the balance between wet/dry track to 25% wet, 75% dry.


=back

=head4 B<set-insert-wetness> (wet) - Set wet/dry balance of the insert for the current track. The balance is given in percent, 0 meaning dry and 100 wet signal only.

=over 8

set-insert-wetness [ pre | post ] <n_wetness>

wet pre 50 # Set the prefader insert to be balanced 50/50 wet/dry.
wet 100 # Simpler if there's only one insert


=back

lib/Audio/Nama.pm  view on Meta::CPAN

vol:
  type: track
  what: Change or show the current track's volume.
  short: v
  parameters: [ [ + | - | / | * ] <float:volume> ]
  example: |
    vol * 1.5 # Multiply the current volume by 1.5
    vol 75    # Set the current volume to 75
    !         # Depending on your namarc configuration, this means
    !         # either 75% of full volume (-ea) or 75 dB (-eadb).
    vol - 5.7 # Decrease current volume by 5.7 (percent or dB)
    vol       # Display the volume setting of the current track.
mute:
  type: track
  what: |
    Mute the current track by reducing the volume parameter.
    Use "unmute" to restore the former volume level.
  short: c cut
  parameters: none
unmute:
  type: track

lib/Audio/Nama.pm  view on Meta::CPAN

    mute  # Mute the piano track.
    sax   # Select the track sax.
    solo  # Mute other tracks
    nosolo # Unmute other tracks (piano is still muted)
    all   # all tracks play
pan:
  type: track
  what: |
    Change or display the current panning position of the 
    current track. Panning is moving the audio in the stereo 
    panorama between right and left. Position is given in percent. 
    0 is hard left and 100 hard right, 50% is dead centre.
  short: p
  parameters: [ <float:pan_position_in_percent> ]
  example: |
    pan 75 # Pan the track to a position between centre and hard right
    p 50   # Move the current track to the centre.
    pan    # Show the current position of the track in the stereo panorama.
pan_right:
  type: track
  what: |
    Pan the current track hard right. this is a synonym for pan 100. 
    Can be reversed with pan-back.
  short: pr

lib/Audio/Nama.pm  view on Meta::CPAN

    ! controls) to jconvolver, getting the return from csound.
    guitar # Select the guitar track
    ain local # Create a local insert
    guitar-1-wet # Select the wet arm 
    afx G2reverb 50 5.0 0.6 0.5 0 -16 -20 # add a reverb
    afx etc 6 100 45 2.5 # add a chorus effect on the reverbed signal
    guitar # Change back to the main guitar track
    wet 25 # Set the balance between wet/dry track to 25% wet, 75% dry.
set_insert_wetness:
  type: effect 
  what: Set wet/dry balance of the insert for the current track. The balance is given in percent, 0 meaning dry and 100 wet signal only.
  short: wet
  parameters: [ pre | post ] <n_wetness>
  example: |
    wet pre 50 # Set the prefader insert to be balanced 50/50 wet/dry.
    wet 100 # Simpler if there's only one insert
remove_insert:
  type: effect
  what: Remove an insert from the current track.
  short: rin
  parameters: [ pre | post ]

lib/Audio/Nama.pm  view on Meta::CPAN

}

# Unmute all tracks
proc nosolo {
	for i in [tlist] {
		unmute $i;
	}
}

# Quantise current track to the nearest quantise_note denomination with a
# precision of precision percent starting at start_position for
# quantise_measures measures.
# Example:
# 	cquantm now 12 16 100 # quantise the next 8 measures to 16th notes with
# 	                     # 100% precision
proc cquantm start_position quantise_measures quantise_note precision {
	if [eval_cur_track] {
		let cur_pos = [getpos];
		let start_pos = [eval_pos $start_position];
		g $start_pos;
		if [getq] {

lib/Audio/Nama.pm  view on Meta::CPAN

		tquant $precision;
		g $cur_pos;
		setq $cur_quant;
		return 1;
	} else {
		return 0;
	}
}

# Quantise a track to the nearest quantise_note denomination with a
# precision of precision percent starting at start_position for
# quantise_measures measures.
# Example:
# 	quantm piano 0 10 8 75 # quantise piano from beginning to 10 measures
# 	                      # to 8th notes with 75% precision
proc quantm my_track start_position quantise_measures quantise_note precision {
	if [eval_track $my_track] {
		let cur_track = [gett];
		ct $my_track;
		let cur_return_value = [cquant $start_position $quantise_measures $quantise_note $precision];
		sec_ct $cur_track;
		return $cur_return_value;
	} else {
		return 0;
	}
}

# Quantise the current track to the nearest quantise_note with a
# precision of precision percent starting at start_position upto
# end_position.
# Example:
# cquant 0 end 16 95
proc cquant start_position end_position quantise_note precision {
	let start_pos = [eval_pos $start_position];
	let end_pos = [eval_pos $end_position];
	if [eval_positive $start_pos $end_pos] {
		let quantise_measures = $end_pos - $start_pos;
		return [cquantm $start_pos $quantise_measures $quantise_note $precision];
	} else {
		return 0;
	}
}

# Quantise the track to the nearest quantise_note denomination with a
# precision of precision percent starting at start_position upto
# end_position.
# Example:
# 	quant piano 2 end 16 100
proc quant my_track start_position end_position quantise_note precision {
	let start_pos = [eval_pos $start_position];
	let end_pos = [eval_pos $end_position];
	if [eval_positive $start_pos $end_pos] {
		let quantise_measures = $end_pos - $start_pos;
		return [quantm $my_track $start_pos $quantise_measures $quantise_note $precision];
	} else {

lib/Audio/Nama.pm  view on Meta::CPAN

				let cur_return_value = 0;
			}
		}
		return $cur_return_value;
	} else {
		return 0;
	}
}

# Quantise all track in the group to the nearest quantise_notes with a
# precision of precision percent, starting at start_position for
# quantise_measures measures.
# example:
# 	tnew piano
# 	tnew bass
# 	let band = {piano bass}
# 	gquantm $band now 10 16 100
proc gquantm my_group start_position quantise_measures quantise_note precision {
	let cur_return_value = 1;
	for i in $my_group {
		let tmp_return_value = [quantm $i $start_position $quantise_measures $quantise_note $precision];
		if ($tmp_return_value == 0) {
			let cur_return_value = 0;
		}
	}
	return $cur_return_value;
}

# Quantise all tracks in the group to the nearest quantise_note with a
# precision of precision percent starting at start_position upto
# end_position.
# Example:
# 	tnew piano
# 	tnew bass
# 	let band = {piano bass}
# 	gquant $band 0 now 8 75 # quantise from start to current position to 8th
# 	                        # with 100% precision
proc gquant my_group start_position end_position quantise_note precision {
	let start_pos = [eval_pos $start_position];
	let end_pos = [eval_pos $end_position];

lib/Audio/Nama/Fade.pm  view on Meta::CPAN

	}
	@in_bounds
}

# our envelope must include a straight segment from the
# beginning of the track (or region) to the fade
# start. Similarly, we need a straight segment
# from the last fade to the track (or region) end

# - If the first fade is a fade-in, the straight
#   segment will be at zero-percent level
#   (otherwise 100%)
#
# - If the last fade is fade-out, the straight
#   segment will be at zero-percent level
#   (otherwise 100%)

# although we can get the precise start and endpoints,
# I'm using 0 and $track->shifted_playat_time + track length

sub initial_level {
	# return 0, 1 or undef
	# 0: track starts silent
	# 1: track starts at full volume
	my $track_name = shift;



( run in 0.432 second using v1.01-cache-2.11-cpan-709fd43a63f )