memroses sinyal input menjadi output dengan efek echo dengan tms320c6414
Post on 13-Aug-2015
1.174 Views
Preview:
DESCRIPTION
TRANSCRIPT
Tugas kuliah: Pemrosesan Sinyal, Tahun: 2013, Semester: VII 1
Abstract—Pemberian efek audio dapat dilakukan
menggunakan DSP board. Efek audio memiliki berbagai jenis,
yaitu fuzz, echo, dan reverb. Aplikasi dari efek audio ini
banyak digunakan dalam musik dan industri hiburan. Pada
proyek ini hanya akan dikerjakan efek audio dengan tipe echo.
Echo itu sendiri merupakan cerminan suara yang datang ke
pendengar dalam jumlah jangka waktu setelah suara asli.
Suara echo akan dipantulkan dan akan terdengar lebih lambat
daripada suara asli. Pengerjaan efek audio tipe echo ini
menggunakan pemrograman C dengan software Code
Composer Studio v3.1. Hasil dari pemrosesan sinyal efek echo
ini dianalisis menggunakan software audio editor Cool Edit Pro
v2.1. Hasil menunjukkan bahwa dengan menggunakan
TMS320C6416 DSK, dapat dikembangkan menjadi aplikasi
real-time untuk efek audio, khususnya pemrosesan sinyal efek
audio echo.
Index Terms—efek audio, echo, DSP, Pemrograman C, TMS320C6416 DSK.
I. PENDAHULUAN
udio effect secara artifisial adalah membuat atau
memodifikasi suara, atau memroses suara yang
digunakan untuk menekankan artistik atau konten lain dari
film, acara televisi, live performance, animasi, video game,
musik, atau media lainnya. Dalam film dan produksi televisi,
efek suara adalah suara yang direcord dan ditampilkan untuk
membuat cerita tertentu lebih menarik.
Efek audio adalah salah satu dari banyak aplikasi dari DSP.
Prinsip efek audio untuk memanipulasi sinyal input ke sinyal
keluaran baru seperti yang diharapkan. Dalam kehidupan
sehari-hari, efek audio yang umum digunakan dalam industri
hiburan. Sebelum era digital, efek audio dapat dibuat dengan
menggunakan rangkaian analog, tetapi penggunaan
rangkaian analog untuk efek audio dalam satu rangkaian
membutuhkan rangkaian yang sangat kompleks. Rangkaian
analog yang kompleks ini tidak efektif dari segi waktu,
anggaran, dan fleksibilitas. Efek audio menggunakan
prosesor DSP tidak serumit efek audio yang menggunakan
rangkaian analog. Meskipun menggunakan prosesor DSP
dapat membuat sinyal audio dalam satu proyek, rangkaian
ini tidak secara signifikan mengubah atau menambahkan,
tetapi program akan jauh lebih kompleks. Prosesor DSP
yang digunakan dalam desain efek audio ini adalah DSK
TMS320C6416. Dalam DSK, aplikasi membangun
algoritma menggunakan bahasa C, atau bahasa Assembler.
Jadi, hal pertama yang harus dilakukan adalah melakukan
coding. Kemudian setelah coding dilakukan, algoritma dapat
terlibat langsung ke DSK, dan kemudian output dan kinerja
program dapat dianalisis. Secara umum, efek audio
diklasifikasikan menjadi tiga jenis, yaitu Drive / Distortion,
Modulation, dan Ambience. Sebelum menerapkan efek ini di
TMS320C6416 DSK, kita harus tahu bagaimana efek audio
bekerja. Mengetahui cara kerjanya akan membantu kita
untuk membuat algoritma dari efek audio. Paper ini akan
mengulas tentang kinerja desain efek real-time audio untuk
echo. TMS320C6416 DSK digunakan untuk proses desain.
Hasilnya menunjukkan bahwa perancangan menggunakan
DSP board, dapat berkembang menjadi aplikasi real-time
untuk efek audio dalam perangkat elektronik dan akustik.
Jadi desain dapat ditulis dalam perangkat chip
TMS320C6416.
DSK TMS320C6416 adalah board DSP, sebuah platform di
mana seseorang dapat membangun aplikasi pemrosesan
sinyal dengan menulis sebuah program di board DSP [1].
Proses pada DSP board ini sangat sederhana, sinyal analog
datang dari port di line in / mic. Selanjutnya, itu akan
disampel menjadi sinyal digital oleh codec tersebut. Setelah
itu, sinyal akan diproses secara digital oleh DSP. Bagaimana
proses snial pada DSP ini tergantung pada bagaimana
program pengguna board DSP. Kemudian, sinyal keluaran
akan keluar melalui line out / headphone. Seperti disebutkan
sebelumnya, pemrosesan sinyal oleh DSP tergantung pada
algoritma program yang diberikan dari pengguna ke prosesor
DSP. Menulis sebuah program dalam prosesor DSP adalah
hampir sama dengan menulis program dalam prosesor
lainnya, yang menggunakan bahasa mesin atau assembler.
Sebagai alternatif, kita juga dapat menggunakan bahasa C
untuk program prosesor DSP. Untuk pengembangan aplikasi
dengan DSK, Texas Instrument menyediakan perangkat
lunak yang disebut Code Composer Studio (CCS). CCS
adalah perangkat lunak yang digunakan untuk antarmuka
pengguna dan board DSP. CCS menyediakan lingkungan
kerja yang berisi semua peralatan yang diperlukan untuk
memprogram prosesor DSP [2].
Memroses Sinyal Input Menjadi Output
dengan Efek Echo dengan TMS320C6416
(Echo Control)
Arya Gamma Aditia (0906529615), Departemen Fisika, Universitas Indonesia
A
Tugas kuliah: Pemrosesan Sinyal, Tahun: 2013, Semester: VII 2
Gambar 1. Mekanisme efek echo
Alat-alat (tools) tersebut terintegrasi dengan CCS. CCS juga
merupakan perangkat lunak yang fleksibel yang dapat
bekerja sama dengan perangkat lunak populer, seperti
MATLAB, LabView, Visual Basic, dll
II. METODE
Echo merupakan pantulan suara yang datang ke pendengar
dalam jumlah jangka waktu setelah suara asli. Idealnya,
gema memiliki delay waktu yang relatif lama, yaitu lebih
dari 1 detik. Sehingga dalam efek gema, suara sejati dan
suara buatan jelas dipisahkan, sehingga pendengaran
manusia bisa membedakan. Mekanisme gema dapat dilihat
gambar 1. Seperti yang terlihat pada Gambar. 1, sinyal pergi
dari sumber ke pendengar dalam dua jalur [3]. Pertama,
sinyal dari sumber pergi langsung ke pendengar. Kedua,
sinyal pergi ke dinding dan kemudian dipantulkan kepada
pengguna. Proses kedua akan membutuhkan waktu lebih dari
proses pertama, sehingga pendengar akan mendengar dua
suara dalam periode waktu yang berbeda. Kekuatan sinyal
dari proses kedua akan dilemahkan karena proses refleksi.
Ada beberapa langkah kerja yang diambil dalam proyek ini.
Langkah pertama adalah untuk melakukan inisialisasi yang
di board. Ada banyak jenis inisialisasi. Kami
menginisialisasi komponen board yang kita gunakan untuk
proyek tersebut.
Misalnya, dalam proyek efek audio echo ini, codec untuk
input audio dan jack output dalam program harus
diinisialisasi. Jika komponen lain seperti switch dan LED
ingin digunakan, kita harus menginisialisasinya terlebih
dahulu. Inisialisasi dapat ditulis dalam bahasa C.
Langkah berikutnya adalah untuk menulis program utama.
Pada bagian ini, sinyal input akan dimanipulasi dengan
algoritma tertentu sehingga output akan menciptakan sinyal
seperti yang diharapkan.
Dengan bantuan fitur CCS dan alat analisis eksternal, kinerja
output seperti redaman, delay, dan noise dapat dianalisis.
Dari sini, kinerja DSP juga dapat dilihat, dan itu merupakan
efisiensi dari algoritma yang dibuat oleh pengguna.
Berikut adalah penggalan bahasa-bahasa pemrograman C
yang digunakan untuk audio efek echo pada proyek ini.
#include "DSK6416_AIC23.h"
Uint32 fs=DSK6416_AIC23_FREQ_8KHZ;
#define DSK6416_AIC23_INPUT_MIC 0x0015
#define DSK6416_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6416_AIC23_INPUT_MIC
Pada bagian awal dari pemrograman ini dapat dilihat
terdapat inisialisasi board. Pada bagian inisialisasi paling
awal diinisialisasi terlebih dahulu DSK6416_AIC23.h,
inisialisasi ini adalah salah satu yang terpenting karena
inisialisasi ini adalah untuk menginisialisasi codec.
TLV320AIC23B adalah high-performance stereo audio
codec yang digunakan pada TMS320C6416 board. Sehingga
dapat dikatakan TLV320AIC23B ini adalah merupakan
salah satu IC yang paling penting yang terdapat pada
TMS320C6416 board. Codec adalah singkatan dari dari
“Compressor-Decompressor” atau bisa “Coder-Decoder,”
yaitu sebuah device atau program yang mampu
mengubah/mentransform sinyal atau aliran data. codec dapat
merubah stream atau sinyal kedalam bentuk yang ter-
”encode” (sering dipakai pada transmisi, storage, enkripsi)
kemudian diterima, atau dapat men-”decode” bentuk
tersebut agar dapat dilihat / dimanipulasi ke bentuk yang
lain. Panjang data-transfer untuk TLV320AIC23B adalah
16, 20, 24, dan 32 bit, dengan sampel rate dari 8 kHz sampai
96 kHz. Dalam proyek ini digunakan sampling rate sebesar 8
kHz.
Selanjutnya dideklarasikan beberapa parameter dalam
bentuk float, short, dan int. Data float memiliki panjang data
sebesar 4 bytes atau 32 bits, data short memiliki panjang
data sebesar 2 bytes atau 16 bits, dan data int memiliki
panjang data sebesar 2 bytes atau 16 bits. Yang
dideklarasikan sebagai data float adalah gain, yang
dideklarasikan sebagai data short antara lain buflength,
buffer, input, output, dan delayed. Dan yang dideklarasikan
sebagai data int adalah i. Untuk parameter gain dan
buflength nilainya dapat divariasikan dengan file gel yang
akan dijelaskan selanjutnya
#define MAX_BUF_SIZE 8000
float gain = 0.5;
short buflength = 1000;
short buffer[MAX_BUF_SIZE];
short input,output,delayed;
int i = 0;
Setelah dideklarasikan parameter-parameter yang berperan
dalam pemrosesan sinyal echo efek seperti delayed, gain,
dan buffer. Maka selanjutnya adalah program utamanya.
Dalam program utama ini dibentuk bahasa C yang
memroses atau memodifikasi nilai input sehingga dapat
menghasilkan sinyal output berupa efek audio echo. Dan
dibawah ini merupakan bagian main program pada bahasa C
proyek ini.
interrupt void c_int11()
{
input = input_left_sample();
delayed = buffer[i];
Tugas kuliah: Pemrosesan Sinyal, Tahun: 2013, Semester: VII 3
output = input + delayed;
output_left_sample(output);
buffer[i] = input + delayed*gain;
if(++i >= MAX_BUF_SIZE)
i = MAX_BUF_SIZE - buflength;
return;
}
Pada bagian interrupt service routine (ISR) harus ditulis atau
dinamakan ISR-nya sebagai "c_int11 ()", karena nama ini
sudah didefinisikan dalam file "Vectors_intr.asm".
Input dari program ini adalah dari line in di TMS320C6416.
Function yang mengambil sinyal input ini adalah
input_left_sample(),input_left_sample() ini merupakan
fungsi untuk mengambil data sampling input dari AIC23
codec yang selanjutnya akan mentransmisikan sinyal audio
dari line in pada TMS320C6416 sehingga menjadi sinyal
yang dapat diproses pada board, fungsi ini telah terdefinisi
dan tersedia dari CCS sehingga pengguna langsung dapat
menggunakannya hanya dengan mendeklarasikan fungsi ini.
Setelah input maka selanjutnya adalah nilai delayed, output
dan buffer. Delayed berperan untuk menentukan panjang
delay pada proyek ini, namun untuk nilai delayed yang
pertama kali atau delayed pada saat bufer[0] nilai delayed ini
adalah nol sehingga ketika diberikan sinyal pertama kali,
maka pada waktu yang bersamaan output yang keluar akan
sama dengan input. Hal ini karena output sama dengan nilai
input ditambah dengan delayed. Nilai delayed ini dapat
bertambah karena nilai i-nya bertambah sehingga buffer
akan ada nilainya. Pada lanjutannya nilai i akan bernilai
sama dengan MAX_BUF_SIZE dikurang buflength jika nilai
i ini lebih besar sama dengan MAX_BUF_SIZE. Dengan
adanya nilai delayed ini maka akan terdengar atau terlihat
bentuk sinyal dari efek audio echo. Output yang dihasilkan
akan dikirim ke AIC23 codec yang selanjutnya AIC23 ini
akan mentranmisikan nilai output sebagai sinyal audio yang
dikeluarkan pada line out pada TMS320C6416. Fungsi yang
mengantarkan nilai output ke AIC23 codec adalah fungsi
output_left_sample(). Sama seperti fungsi
input_left_sample(), fungsi output_left_sample() ini juga
telah terdefinisi dan tersedia dari CCS sehingga pengguna
langsung dapat menggunakannya hanya dengan
mendeklarasikan fungsi ini.
Selanjutnya pada bgaian akhir program dilanjutnkan dengan
pembersihan nilai buffer dan inisialisasi dari DSK, codec,
McBSP.
void main()
{
for(i=0 ; i<MAX_BUF_SIZE ; i++)
buffer[i] = 0;
comm_intr();
while(1);
}
Yang berperan untuk menginisialisasi DSK, codec, McBSP
adalah fungsi “comm_intr()”, fungsi ini harus selalu ditulis
dalam setiap pemrograman untuk menggunakan DSK. Pada
bagian paling akhir terdapat while(1), fungsi ini berfungsi
untuk menjaga agar program akan terus berjalan dan akan
mengulang program ketika ada interrupt pada
TMS320C6416 sampai kapanpun hingga program distop.
Dan berikut adalah program gel yang digunakan untuk
memvariasikan nilai gain dan delay untuk memroses sinyal
input menjadi output dengan efek echo
//echo_control.gel
menuitem "echo control"
slider gain(0,18,1,1,gain_parameter)
{
gain = gain_parameter*0.05;
}
slider delay(1,20,1,1,delay_parameter)
{
buflength = delay_parameter*100;
}
Dalam file gel diatas dibuat parameter-parameter yang dapat
diubah, antara lain nilai gain dan delaynya. Nilai gain yang
dapat divariasikan adalah dalam rentang 0 hingga 18,
dengan setiap satu-satu kenaikan. Nilai gain yang dapat
divariasikan dengan slider ini dikalikan terlebih dahulu
dengan 0.05 untuk dapat digunakan dalam script utamanya.
Sedangkan untuk nilai delay yang dapat divariasikan adalah
dalam rentang 1 hingga 20, dengan setiap satu-satu
kenaikan. Nilai delay yang dapat divariasikan dengan slider
ini dikalikan terlebih dahulu dengan 100 untuk dapat
digunakan dalam script utamanya.
Hasil keluaran dari line out TMS320C6416 dihubungkan
menggunakan kabel audio ke line in pada laptop sehingga
output dari TMS320C6416 yang berupa sinyal echo effect
Gambar 2. Sinyal Input dalam domain waktu
Tugas kuliah: Pemrosesan Sinyal, Tahun: 2013, Semester: VII 4
Gambar 3. Sinyal input dalam domain frekuensi
Gambar 4. Salah satu sampel sinyal output dalam frekuensi
dapat terbaca atau terekam di laptop dengan menggunakan
software Cool Edit Pro v2.1. Cool Edit Pro merupakan salah
satu software power-packed digital sound editor yang
digunakan untuk PC berbasis Windows. Semua fungsi yang
diperlukan untuk mengambil proyek audio dari konsepsi
sampai selesai dimasukkan dalam Cool Edit Pro. Selain itu
software ini dapat digunakan untuk editing sound atau
editing suara dengan bermacam-macam extensi file suara
seperti mp3, wav, cda, cel dan yang lainnya. Di dalam cool
edit pro banyak terdapat menu effect. Cool Edit Pro juga
dapat membuat suara rekaman yang bisa disisipkan lagu atau
yang sering kita kenal dengan istilah backsound.Dengan
menggunakan Cool Editing Pro kita juga bisa membuat
sebuah kombinasi musik dari beberapa lagu yang dijadikan
satu, misanya untuk backsound pembuatan film, slide
presentasi, atau untuk dance.
III. HASIL DAN PEMBAHASAN
Hasil dari aplikasi ini dianalisis dengan software Cool Edit
Pro seperti yang telah dijelaskan sebelumnya. Sebuah sinyal
suara dengan bentuk sinyal seperti pada Gambar 2. Pada
Gambar 2 ini merupakan bentuk sinyal input yang diberikan
dalam domain waktu, sedangkan jika dalam domain
frekuensi dapat dilihat pada gambar 3. Sinyal input ini
digunakan sebagai input ke board. Sinyal ini dihasilkan
dengan menggunakan microphone yang terhubung ke line in
di DSP board. Kemudian output dari DSP board dikirim ke
komputer untuk dianalisis dalam software audio editor.
Pada Gambar 3 menunjukkan sinyal dalam domain frekuensi
grafik input tanpa menggunakan algoritma efek audio
dimana sumbu x mewakili frekuensi sinyal dalam Hertz dan
sumbu y mewakili kekuatan sinyal dalam dB. Hal ini dapat
dilihat dari grafik bahwa dalam keluarannya ada beberapa
komponen frekuensi lain selain frekuensi dasar. Komponen-
komponen frekuensi yang tidak diinginkan ini dikenal
sebagai noise. Tetapi jika kita melihat dari intensitas sinyal,
sinyal noise memiliki daya yang sangat rendah dibandingkan
dengan sinyal utama, yang menyebabkan efek noise tidak
signifikan. Selanjutnya, jika input dan output dibandingkan,
maka akan ditemukan bahwa ada redaman antara sinyal
tersebut. Atenuasi ini terjadi karena karakteristik tipe audio
yang digunakan dan pengaturan dari board.
Gambar 5. Sinyal output efek echo dalam domain waktu
Tugas kuliah: Pemrosesan Sinyal, Tahun: 2013, Semester: VII 5
Gambar 6. Sinyal output efek echo dalam bentuk spectral
Gambar 4 menunjukkan sinyal output dalam FFT, sinyal
output dalam Gambar 4 ini merupakan salah satu sample
yang diambil. Pada Gambar 5 menunjukkan sinyal keluaran
dari efek echo. Sinyal asli di bagian paling kiri sedangkan
sinyal-sinyal terpantulnya adalah yang terdapat di sisi kanan.
Waktu delay yang diukur dari awal sinyal pertama untuk
sinyal kedua sebesar sekitar 0.090 detik. Selain itu dapat
dilihat pula bahwa seiring berjalannya waktu maka waktu
delay antar sinyal pantul akan semakin bertambah besar.
Redaman antara sinyal asli dengan sinyal terpantulnya dapat
diukur dengan membandingkan grafik FFT.
Gambar 6 menunjukkan sinyal output dalam bentuk spectral.
Dengan bentuk spectral ini dapat terlihat sinyal-sinyalnya
dengan lebih jelas. Pada spectral graph ini dapat dilihat
perbedaan antara, sinyal dengan sinyal yang terdapat suara
dengan sinyal yang tidak terdapat suara. Dan pada spectral
graph ini dapat dilihat bahwa semakin lama atau seiring
berjalannya waktu maka waktu delay antar suara pantul akan
terlihat lebih lama dan frekuensi tinggi akan semakin hilang.
IV. KESIMPULAN
Desain efek audio echo dapat diterapkan kepada DSP board
TMS320C56426 dengan berhasil. Hal ini juga dapat
digunakan dalam aplikasi real time. Kinerja yang diukur
pada dasarnya memberikan hasil yang baik dan tujuan desain
terpenuhi. Pada pengembangannya proyek ini dapat
dilengkapi dengan penggunaan RTDX sehingga dapat
dihubungkan dengan LabVIEW™. Pada pengaplikasianya
audio effect echo ini umumnya digunakan pada industri
hiburan atau musik.
REFERENCES
[1] “TMS320C6713 DSK Technical Reference”, Spectrum
Digital, Inc., Mei 2003
[2] “Code Composer Studio Help”, Texas Instrument, 2003
[3] Sikora R.,“Implementing Echo and Reverberation using
the Audio Daughter Card and the TMS320C5402 DSK
and the TMS320C6711 DSK”, 22 July 2001
Arya Gamma Aditia, lahir di
Jakarta, tanggal 22 Mei 1991,
pada saat ini sedang
menyelesaikan pendidikan S-1 di
Departemen Fisika, Universitas
Indonesia
Lampiran Arya Gamma Aditia 0906529615
Penjelasan Proyek
Memroses Sinyal Input Menjadi Output dengan Efek Echo dengan
TMS320C6416
(Echo Control)
Proyek ini bertujuan untuk memroses sinyal input sehingga menghasilkan sinyal output berupa hasil
modifikasi sinyal input dengan efek echo. Alat dan bahan yang diperlukan untuk menyelesaikan proyek
ini antara lain DSP board (TMS320c6416), seperangkat PC yang telah terinstal code composer studio
v3.1, seperangkat PC dengan Software Cool Edit Pro v2.1, microphone, speaker/headphone. Untuk
memprogram TMS320c6416 menggunakan bahasa C yang dibuat dengan code composer studio v.31,
dan dengan code composer studio v.31 ini juga saya menanamkan program echo control saya ke
TMS3206416. Setelah TMS320c6416 terprogram dengan program echo control maka TMS320c6416
telah siap digunakan untuk memroses sinyal dengan efek echo, sinyal input yang diberikan berupa sinyal
suara, dengan suara yang diberikan adalah suara manusia (saya sendiri) yang menyebut “A”, panjang
suara “A” yang diberikan ini terukur di software Cool Edit Pro v2.1 sepanjang 0,166 s. Suara yang
digunakan sebagai sinyal input ini di interface dengan TMS320c6416 menggunakan microphone yang
terhubung dengan line in yang terdapat di TMS320c6416. Sedangkan untuk line outnya dihubungkan ke
PC/laptop yang telah siap dengan software Cool Edit Pro v2.1, dengan software ini kita dapat melihat
sinyal yang dihasilkan dari TMS320c6416 yang telah terproses dengan efek echo. Dengan Cool Edit Pro
v2.1 ini kita dapat melihat sinyal dengan domain waktu dan frekuensi. Untuk melihat delay dari sinyal
echo ini kita dapat menggunakan sinyal dengan domain waktu yang berbasis waveform maupun
spectral. Dari sinyal yang terbentuk dapat dilihat bahwa delay yang terbentuk adalah rata-rata sekitar
0,090 s. Dan dari sinyal yang berdomain frekuensi dapat dilihat bahwa sinyal output yang terbentuk
menghasilkan nilai kekuatan sinyal (db) yang semakin mengecil seiring dengan berjalannya waktu.
Untuk membuat TMS320c6416 terprogram agar memroses sinyal dengan efek echo dibuatlah code
dengan bahasa C. Berikut adalah bahasa pemrograman C yang digunakan untuk audio efek echo pada
proyek ini.
//echo_control.c echo with variable delay and feedback
#include "DSK6416_AIC23.h" //codec support
Uint32 fs=DSK6416_AIC23_FREQ_8KHZ; //set sampling rate
#define DSK6416_AIC23_INPUT_MIC 0x0015
#define DSK6416_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6416_AIC23_INPUT_MIC; // select input
#define MAX_BUF_SIZE 8000 // this sets maximum length of delay
float gain = 0.5;
short buflength = 1000;
short buffer[MAX_BUF_SIZE]; // storage for previous samples
short input,output,delayed;
int i = 0; // index into buffer
interrupt void c_int11() // interrupt service routine
{
input = input_left_sample(); // read new input sample from ADC
delayed = buffer[i]; // read delayed value from buffer
output = input + delayed; // output sum of input and delayed values
output_left_sample(output);
buffer[i] = input + delayed*gain; // store new input and a fraction
// of the delayed value in buffer
if(++i >= MAX_BUF_SIZE) // test for end of buffer
i = MAX_BUF_SIZE - buflength;
return; // return from ISR
}
void main()
{
for(i=0 ; i<MAX_BUF_SIZE ; i++) // clear buffer
buffer[i] = 0;
comm_intr(); // init DSK, codec, McBSP
while(1); //infinite loop
}
Berikut adalah penjelasan dari bagian-bagian yang tertulis dalam bahasa pemrograman C yang
digunakan pada proyek echo control ini :
#include "DSK6416_AIC23.h"
Uint32 fs=DSK6416_AIC23_FREQ_8KHZ;
#define DSK6416_AIC23_INPUT_MIC 0x0015
#define DSK6416_AIC23_INPUT_LINE 0x0011
Uint16 inputsource=DSK6416_AIC23_INPUT_MIC
Pada bagian awal dari pemrograman ini dapat dilihat terdapat inisialisasi board. Pada bagian inisialisasi
paling awal diinisialisasi terlebih dahulu DSK6416_AIC23.h, inisialisasi ini adalah salah satu yang
terpenting karena inisialisasi ini adalah untuk menginisialisasi codec. TLV320AIC23B adalah high-
performance stereo audio codec yang digunakan pada TMS320C6416 board. Sehingga dapat dikatakan
TLV320AIC23B ini adalah merupakan salah satu IC yang paling penting yang terdapat pada
TMS320C6416 board. Codec adalah singkatan dari dari “Compressor-Decompressor” atau bisa “Coder-
Decoder,” yaitu sebuah device atau program yang mampu mengubah/mentransform sinyal atau aliran
data. codec dapat merubah stream atau sinyal kedalam bentuk yang ter-”encode” (sering dipakai pada
transmisi, storage, enkripsi) kemudian diterima, atau dapat men-”decode” bentuk tersebut agar dapat
dilihat / dimanipulasi ke bentuk yang lain. Panjang data-transfer untuk TLV320AIC23B adalah 16, 20,
24, dan 32 bit, dengan sampel rate dari 8 kHz sampai 96 kHz. Dalam proyek ini digunakan sampling
rate sebesar 8 kHz.
Selanjutnya dideklarasikan beberapa parameter dalam bentuk float, short, dan int. Data float memiliki
panjang data sebesar 4 bytes atau 32 bits, data short memiliki panjang data sebesar 2 bytes atau 16 bits,
dan data int memiliki panjang data sebesar 2 bytes atau 16 bits. Yang dideklarasikan sebagai data float
adalah gain, yang dideklarasikan sebagai data short antara lain buflength, buffer, input, output, dan
delayed. Dan yang dideklarasikan sebagai data int adalah i. Untuk parameter gain dan buflength nilainya
dapat divariasikan dengan file gel yang akan dijelaskan selanjutnya
#define MAX_BUF_SIZE 8000
float gain = 0.5;
short buflength = 1000;
short buffer[MAX_BUF_SIZE];
short input,output,delayed;
int i = 0;
Setelah dideklarasikan parameter-parameter yang berperan dalam pemrosesan sinyal echo efek seperti
delayed, gain, dan buffer. Maka selanjutnya adalah program utamanya. Dalam program utama ini
dibentuk bahasa C yang memroses atau memodifikasi nilai input sehingga dapat menghasilkan sinyal
output berupa efek audio echo. Dan dibawah ini merupakan bagian main program pada bahasa C proyek
ini.
interrupt void c_int11()
{
input = input_left_sample();
delayed = buffer[i];
output = input + delayed;
output_left_sample(output);
buffer[i] = input + delayed*gain;
if(++i >= MAX_BUF_SIZE)
i = MAX_BUF_SIZE - buflength;
return;
}
Pada bagian interrupt service routine (ISR) harus ditulis atau dinamakan ISR-nya sebagai "c_int11 ()",
karena nama ini sudah didefinisikan dalam file "Vectors_intr.asm".
Input dari program ini adalah dari line in di TMS320C6416. Function yang mengambil sinyal input ini
adalah input_left_sample(),input_left_sample() ini merupakan fungsi untuk mengambil data sampling
input dari AIC23 codec yang selanjutnya akan mentransmisikan sinyal audio dari line in pada
TMS320C6416 sehingga menjadi sinyal yang dapat diproses pada board, fungsi ini telah terdefinisi dan
tersedia dari CCS sehingga pengguna langsung dapat menggunakannya hanya dengan mendeklarasikan
fungsi ini. Setelah input maka selanjutnya adalah nilai delayed, output dan buffer. Delayed berperan
untuk menentukan panjang delay pada proyek ini, namun untuk nilai delayed yang pertama kali atau
delayed pada saat bufer[0] nilai delayed ini adalah nol sehingga ketika diberikan sinyal pertama kali,
maka pada waktu yang bersamaan output yang keluar akan sama dengan input. Hal ini karena output
sama dengan nilai input ditambah dengan delayed. Nilai delayed ini dapat bertambah karena nilai i-nya
bertambah sehingga buffer akan ada nilainya. Pada lanjutannya nilai i akan bernilai sama dengan
MAX_BUF_SIZE dikurang buflength jika nilai i ini lebih besar sama dengan MAX_BUF_SIZE.
Dengan adanya nilai delayed ini maka akan terdengar atau terlihat bentuk sinyal dari efek audio echo.
Output yang dihasilkan akan dikirim ke AIC23 codec yang selanjutnya AIC23 ini akan mentranmisikan
nilai output sebagai sinyal audio yang dikeluarkan pada line out pada TMS320C6416. Fungsi yang
mengantarkan nilai output ke AIC23 codec adalah fungsi output_left_sample(). Sama seperti fungsi
input_left_sample(), fungsi output_left_sample() ini juga telah terdefinisi dan tersedia dari CCS
sehingga pengguna langsung dapat menggunakannya hanya dengan mendeklarasikan fungsi ini.
Selanjutnya pada bgaian akhir program dilanjutnkan dengan pembersihan nilai buffer dan inisialisasi
dari DSK, codec, McBSP.
void main()
{
for(i=0 ; i<MAX_BUF_SIZE ; i++)
buffer[i] = 0;
comm_intr();
while(1);
}
Yang berperan untuk menginisialisasi DSK, codec, McBSP adalah fungsi “comm_intr()”, fungsi ini
harus selalu ditulis dalam setiap pemrograman untuk menggunakan DSK. Pada bagian paling akhir
terdapat while(1), fungsi ini berfungsi untuk menjaga agar program akan terus berjalan dan akan
mengulang program ketika ada interrupt pada TMS320C6416 sampai kapanpun hingga program distop.
Dan berikut adalah program gel yang digunakan untuk memvariasikan nilai gain dan delay untuk
memroses sinyal input menjadi output dengan efek echo
//echo_control.gel
menuitem "echo control"
slider gain(0,18,1,1,gain_parameter)
{
gain = gain_parameter*0.05;
}
slider delay(1,20,1,1,delay_parameter)
{
buflength = delay_parameter*100;
}
Dalam file gel diatas dibuat parameter-parameter yang dapat diubah, antara lain nilai gain dan delaynya.
Nilai gain yang dapat divariasikan adalah dalam rentang 0 hingga 18, dengan setiap satu-satu kenaikan.
Nilai gain yang dapat divariasikan dengan slider ini dikalikan terlebih dahulu dengan 0.05 untuk dapat
digunakan dalam script utamanya. Sedangkan untuk nilai delay yang dapat divariasikan adalah dalam
rentang 1 hingga 20, dengan setiap satu-satu kenaikan. Nilai delay yang dapat divariasikan dengan slider
ini dikalikan terlebih dahulu dengan 100 untuk dapat digunakan dalam script utamanya.
Langkah-langkah memprogram TMS320C6416 dengan Code Composer Studio v3.1
1. Menjalankan Program Code Composer Studio v3.1 pada PC
2. Menghubungkan TMS320C6416 dengan PC dengan kabel USB
3. Membuka file project echo control
4. Memasukkan file library: rts6400.lib, csl6416.lib dan dsk6416bsl.lib dengan mengikuti alamat
berikut
C:\CCStudio\c6000\cgtools\lib\rts6400.lib
C:\CCStudio\c6000\bios\lib\csl6416.lib
C:\CCStudio\c6000\dsk6416\lib\dsk6416bsl.lib
5. Memasukkan file linker command
6. Mengeset compiler option
Mengeset compiler option dengan cara seperti dibawah ini
Memasukan Include Search Path dengan “C:\CCStudio\c6000\dsk6416\include”
7. Mengeset linker option
Mengeset linker option dengan cara seperti dibawah ini
Memasukkan Library search path dengan “C:\CCStudio\c6000\dsk6416\lib”
Memasukkan Include Library dengan “rts6400.lib;csl6416.lib;dsk6416bsl.lib”
8. Menanam program ke TMS320C6416 board.
Pertama, select Project>Build. Selanjutnya, select Debug>connect, select File>Load program
(pilih echo_control.out) ,select File>Gel Program (pilih echo_control.gel). Dan terakhir select
Debug>Run.
9. Program telah siap melakukan pemrosesan sinyal echo control. (dan memastikan line in dan line
out pada TMS320C6416 telah terhubung dengan device yang dibutuhkan)
Pada proyek ini saya menghubungkan line in dengan menggunakan microphone dan line out
dengan speaker dan PC dengan software Cool Edit Pro v.2.1 sebagai perekam sinyal output.
Bentuk Sinyal Pada Proyek Memroses Sinyal Input Menjadi Output dengan Efek Echo dengan
TMS320C6416
Sinyal Input
Sinyal input ini merupakan sinyal yang dihasilkan oleh suara saya sendiri yang mengucapkan “A”
dengan panjang sekitar 0,170 s.
Sinyal Output dalam domain waktu
o Sinyal output efek echo dalam domain waktu berbentuk waveform
o Sinyal output efek echo dalam bentuk spectral
Sinyal Output dalam bentuk waveform dan Spectral tersebut menunjukkan bahwa delay antar
sinyal suara adalah rata-rata sekitar 0,090 s dan menunjukkan dari sinyal input yang diberikan
hingga sinyal suara pantulan(gema)nya menghilang membutuhkan waktu 2 s (sesuai dengan
nilai delay yang diberikan pada gel yang sebesar 2000 ms)
Perbandingan Sinyal Input dan Output dalam domain frekuensi
o Sinyal Input
o Salah Satu Sampel Sinyal Output
Jika input dan output dibandingkan, maka akan ditemukan bahwa ada redaman antara sinyal
tersebut. Atenuasi ini terjadi karena karakteristik tipe audio echo yang digunakan dan
pengaturan dari board.
Sinyal-sinyal diatas ditampilkan menggunakan software Cool Edit Pro v2.1
Cool Edit Pro merupakan salah satu software power-packed digital sound
editor yang digunakan untuk PC berbasis Windows. Semua fungsi yang
diperlukan untuk mengambil proyek audio dari konsepsi
sampai selesai dimasukkan dalam Cool Edit Pro. Selain itu software ini
dapat digunakan untuk editing sound atau editing suara dengan bermacam-
macam extensi file suara seperti mp3, wav, cda, cel dan yang lainnya. Di
dalam cool edit pro banyak terdapat menu effect. Cool Edit Pro juga dapat
membuat suara rekaman yang bisa disisipkan lagu atau yang sering kita
kenal dengan istilah backsound.Dengan menggunakan Cool Editing Pro
kita juga bisa membuat sebuah kombinasi musik dari beberapa lagu yang dijadikan satu, misanya untuk
backsound pembuatan film, slide presentasi, atau untuk dance.
top related