Digital audio is created when a sound wave is converted into numbers - a process referred to as digitizing. It is possible to digitize sound from a microphone, a synthesizer, existing tape recordings, live radio and television broadcasts, and popular CDs.
1. Preparing a digital audio File:
- The first step is to digitize the analog material and recording it onto a computer readable digital media.
- The next step is to focus on balancing the sound quality against your available RAM and
Hard disk resources so as to set proper recording levels to get a good, clean recording.The formula for determining the size of the digital audio is;
(a) Monophonic = Sampling rate * duration of recording in seconds * (bit resolution / 8) * 1
(b) Stereo = Sampling rate * duration of recording in seconds * (bit resolution / 8) * 2
_ The sampling rate is how often the samples are taken.
_ The sample size is the amount of information stored. This is called as bit resolution.
_ The number of channels is 2 for stereo and 1 for monophonic.
_ The time span of the recording is measured in seconds.
2. Editing Digital audio.
Once a recording has been made, it will almost certainly need to be edited. The basic sound editing operations needed are described in the paragraphs that follow;
a. Multiple Tasks: Able to edit and combine multiple tracks and then merge the tracks and export them in a final mix to a single audio file.
b. Trimming: Removing dead air or blank space from the front of a recording and an unnecessary extra time off the end is your first sound editing task.
c. Splicing and Assembly: Using the same tools mentioned for trimming, you will probably want to remove the extraneous noises that inevitably creep into recording.
d. Volume Adjustments: If you are trying to assemble ten different recordings into a single track there is a little chance that all the segments have the same volume.
e. Format Conversion: In some cases your digital audio editing software might read a format different from that read by your presentation or authoring program.
f. Re-sampling or down-sampling: If you have recorded and edited your sounds at 16 bit sampling rates but are using lower rates you must re-sample or down-sample the file.
g. Equalization: Some programs offer digital equalization capabilities that allow you to modify a recording frequency content so that it sounds brighter or darker.
h. Digital Signal Processing: Some programs allow you to process the signal with reverberation, multitap delay, and other special effects using DSP routines.
Mwalimu Bonface answered the question on June 5, 2018 at 14:23
- Define the term multimedia and explain the main elements and building blocks of multimedia.(Solved)
Define the term multimedia and explain the main elements and building blocks of multimedia.
Date posted: June 5, 2018. Answers (1)
- Discuss the basic stages of multimedia project development.(Solved)
Discuss the basic stages of multimedia project development.
Date posted: June 5, 2018. Answers (1)
- List and explain five applications of multimedia.(Solved)
List and explain five applications of multimedia.
Date posted: June 5, 2018. Answers (1)
- Define the term "Multimedia" and state its elements.(Solved)
Define the term "Multimedia" and state its elements.
Date posted: June 5, 2018. Answers (1)
- What is wrong with the following function prototype?
char *f(char *p, int x =0, char *q);
(Solved)
What is wrong with the following function prototype?
char *f(char *p, int x =0, char *q);
Date posted: May 31, 2018. Answers (1)
- Given the following class definition,
class test{
char *p;
int *q;
int count;
public:
test(char *x, int *y, int c) {
p = x;
q = y;
count = c;
}
//...
};
Is it possible...(Solved)
Given the following class definition,
class test{
char *p;
int *q;
int count;
public:
test(char *x, int *y, int c) {
p = x;
q = y;
count = c;
}
//...
};
Is it possible to dynamically allocate an array of these objects?
Date posted: May 31, 2018. Answers (1)
- Given the following partial class, add the necessary constructor function so that both declarations within main() are valid.
class samp {
int a;
public:
//add constructor functions
int get_a() {...(Solved)
Given the following partial class, add the necessary constructor function so that both declarations within main() are valid.
class samp {
int a;
public:
//add constructor functions
int get_a() { return a;}
};
int main()
{
samp ob(88); //init ob's a to 88
samp obarray[10]; //nonitialized 10-element array
// ...
}
Date posted: May 31, 2018. Answers (1)
- a)Show how to overload the constructor for the following class so that unitialized objects can also be created. (When creating uninitialized objects, give x and...(Solved)
a)Show how to overload the constructor for the following class so that unitialized objects can also be created. (When creating uninitialized objects, give x and y the value 0.)
class myclass {
int x, y;
public:
myclass(int i, int j) { x=i; y=j;}
// ...
};
b)Using the class from question(a) above, show how you can avoid overload myclass() by using default arguments.
Date posted: May 31, 2018. Answers (1)
- Why would the following be an inappropriate use of an overloaded operator?coord coord:: operator%(coord ob) {double i;cout << "Enter a number:";cin >>i;cout << "root of...(Solved)
Why would the following be an inappropriate use of an overloaded operator?
coord coord:: operator%(coord ob)
{
double i;
cout << "Enter a number:";
cin >>i;
cout << "root of " << i << "is ";
cout << ();
}
Date posted: May 31, 2018. Answers (1)
- Relative to coord, overload the * and / operators. Demonstrate that they work.
(Solved)
Relative to coord, overload the * and / operators. Demonstrate that they work.
Date posted: May 31, 2018. Answers (1)
- Given the following class, show how to add a friend function called isneg() that takes one parameter of type myclass and returns true if num...(Solved)
Given the following class, show how to add a friend function called isneg() that takes one parameter of type myclass and returns true if num is negative and false otherwise.
class myclass {
int num;
public:
myclass(int x) {num = x;}
};
Date posted: May 31, 2018. Answers (1)
- Given the following class,
class summation{
int num;
long sum; //summation of num
public:
void set_sum(int n);
void show_sum () {
cout <(Solved)
Given the following class,
class summation{
int num;
long sum; //summation of num
public:
void set_sum(int n);
void show_sum () {
cout <}
};
void summation::set _sum(int n)
{
int i;
num = n;
sum = 0;
for(i=1; i<=n; i++)
sum += i;
}
a) create a C++ function called make_sum() that returns an object of type summation. Have this function prompt the user for a number and then construct an object having this value and return it to the calling procedure.Demonstrate that the function works.
b)The function set_sum() was not defined in line within the summation class declaration. Give a reason why this might be necessary for some compilers.
Date posted: May 31, 2018. Answers (1)
- What is wrong with the following prototype, which uses a default argument?int f(int count, int max = count);(Solved)
What is wrong with the following prototype, which uses a default argument?
int f(int count, int max = count);
Date posted: May 31, 2018. Answers (1)
- Most C++ compilers supply nonstandard functions that allow cursor positioning and the like. If a compiler supplies such functions, create a function called myclreol() using...(Solved)
Most C++ compilers supply nonstandard functions that allow cursor positioning and the like. If a compiler supplies such functions, create a function called myclreol() using C++ language a function that clears the line from the current cursor position to the end of the line. However, give this function a parameter that specifies the number of character position to clear. If the parameter is not specified, automatically clear the entire line. Otherwise, clear only the number of character positions specified by the parameter.
Date posted: May 31, 2018. Answers (1)
- In the C++ standard library is the function strtol(), which has this prototype:
long strtol|(const char*start, const **end, int base);
The function cnverts the numeric string...(Solved)
In the C++ standard library is the function strtol(), which has this prototype:
long strtol|(const char*start, const **end, int base);
The function cnverts the numeric string pointed to by start into a long integer. The number base of the numeric string is specified by base. Upon return, end points to the character in the string immediately following the end of the number. The long integer equivalent of the numeric string is returned. base must be in the range 2 to 38. However, most commonly, base 10 is used.
Create a function called mystrtol() that works the same as strtol() except that base is given the default argument of 10. Demonstrate that your version works correctly.
Date posted: May 31, 2018. Answers (1)
- Using the following class declaration, create a ten-element array, initialize num to the values 1 through 10, and itialize sqr to num's square.
#include
using namespace...(Solved)
Using the following class declaration, create a ten-element array, initialize num to the values 1 through 10, and itialize sqr to num's square.
#include
using namespace std;
class square {
int num, sqr;
public:
square (int a, int b) {num=a; sqr=b;}
voshow() {cout <};
Date posted: May 31, 2018. Answers (1)
- Using the following class declaration, create a ten-elment array and initialize the ch element with the values A through J. Demonstrate that the array does,...(Solved)
Using the following class declaration, create a ten-elment array and initialize the ch element with the values A through J. Demonstrate that the array does, indeed, contains these value.
#include
using namespace std;
class letters {
char ch;
public:
letters (char c) { ch = c; }
char get_c) { return ch;}
};
Date posted: May 31, 2018. Answers (1)
- Write a C++ program that uses new to dynamically allocate a float, a long, and char.Give these dynamic variable values and display their values. Finally, release...(Solved)
Write a C++ program that uses new to dynamically allocate a float, a long, and char.Give these dynamic variable values and display their values. Finally, release all dynamically allocated memory by using delete.
Date posted: May 31, 2018. Answers (1)
- Given the following program, convert all appropriate references to class members to explicit this pointer references.
#include
using namespace std;
class myclass {
int a, b;
public:
myclass(int n, int...(Solved)
Given the following program, convert all appropriate references to class members to explicit this pointer references.
#include
using namespace std;
class myclass {
int a, b;
public:
myclass(int n, int m,) {a=n; b=m;}
int add() {return a+b; }
void show();
};
void myclass::show()
{
t = add(); //call member function
cout <}
int main()
{
myclass ob(10, 14);
ob.show();
return 0;
}
Date posted: May 31, 2018. Answers (1)
- a) Show how to convert the following code into its equivalent that uses new.
char *p;
p= (char *) malloc(100);
//...
strcpy(p, "This is a test");
b)Using new, show how...(Solved)
a) Show how to convert the following code into its equivalent that uses new.
char *p;
p= (char *) malloc(100);
//...
strcpy(p, "This is a test");
b)Using new, show how to allocate a double and give it an initial value of -123.0987
Date posted: May 31, 2018. Answers (1)