Membuat MP3 Compressor Sendiri
| September 25, 2012 | Posted by Joko Rivai under Delphi, Tips & Tricks |
» Compiled EXE
Note: Rename *.ppt to *.zip top open downloaded files.
Jangan percaya judul di atas. Yang dibahas di sini sesungguhnya hanyalah membuat antarmuka GUI untuk software WAV/MP3 EncoderDecoder – Lame. Lame sudah lama negtop di dunia encoding & decoding suara antarformat MP3 & WAV. Namun yang akan saya ulas di bawah hanya pada fitur mengompres file MP3 hingga ukurannya menjadi lebih kecil. Yang selanjutnya, MP3 dengan ukuran kecil jauh lebih efisien digunakan pada handphone, PDA, MP3 player dan sejenisnya.
Kualitas MP3 tergantung pada beberapa hal, seperti bitrate, jumlah channel, dan beberapa hal lain yang spesifik dengan digital music. Berapa jumlah channel – untuk selanjutnya akan saya sebut Mode, dan bitrate serta kawan-kawannya – nanti saya sebut Preset, akan menjadi pokok pembicaraan di bagian awal tulisan ini.
Lame dipublikasikan dalam bentuk sebuah file EXE (Lame.exe) dan juga sebuah library (lame_enc.dll). Keduanya dapat didownload di http://lame.sourceforge.net/. DI tulisan ini hanya Lame.exe yang akan digunakan. Misalkan Anda mempunyai sebuah file MP3 dengan ukuran 4MB, yang terletak di c:musicavril_lavigne.mp3, dan Anda ingin mengompressnya biar pas buat memori HP Anda (sebut saja Nokia N93, biar keren) yang memorinya cuma tersisa 500KB doang. Apa akal? Ada ide: coba saja download lame.exe dan ekstrak ke c:lame, lalu jalankan command prompt dan ketik:C:lamelame.exe -m mono –preset cbr 8 “c:musicavril_lavigne.mp3″ “c:musicavril_lavigne_compressed.mp3″Kemudian tekan Enter. tunggu sampai proses yang ada di monitor Anda selesai. Sekarang cek file c:musicavril_lavigne_compressed.mp3, dan ternyata, ukurannya pas buat HP Anda!
Kembali ke dua hal di atas, Mode & Preset, “-m mono” adalah Modenya sedang “–preset cbr 8″ adalah Presetnya. Berikut penjelasannya, “-m mono” berarti MP3 hasil kompresi nantinya harus memiliki channel tunggal, alias Mono. Mode lainnya adalah Stereo, Joint Stereo dan Force. Preset, sebagaimana contoh di atas, dapat diartikan seperti ini: cbr artinya Constant BitRate dan angka 8 berarti MP3 hasil kompresi memiliki Bitrate 8Kbps.
Lebih lanjut, jalankan lame.exe tanpa parameter untuk melihat opsi-opsi lainnya.Selanjutnya, kita membuat antarmuka GUI dengan Delphi untuk perintah di atas.
Urutan pengerjaan kompresi MP3 yang akan kita buat kira-kira seperti ini:
Input File MP3 -> jalankan lame.exe dengan parameter yang sesuai -> Tunggu sampai selesai -> File MP3 terkompres didapat. Pertama, kita buat input MP3, berupa sebuah TEdit, TButton, dan TOpenFileDialog. Beri event OnClick pada TButton dan isi dengan kode berikut:
if openfiledialog.Execute then
edit1.Text :=openfiledialog.FileName;
Selanjutnya, tambahkan sebuah TButton lagi, dan isi event OnClicknya dengan kode berikut:
var
s:String;
x:String;
begin
if not fileexists(edit1.Text ) then
begin
MessageBox(handle,’Source file is not found.’,'Error’,MB_ICONHAND);
exit;
end;
if Lowercase(ExtractFileExt(edit1.Text))<>’.mp3′ then
begin
MessageBox(handle,’Source file is not an MP3 file.’,'Error’,MB_ICONHAND);
exit;
end;
Params:=’”‘+Compressor +’” ‘;
Params:=Params + ‘-m ‘+Lowercase(cbm.Items[cbm.itemindex]){[1]}+’ ‘; //mode
s:=lowercase(cbq.Items[cbq.itemindex]);
x:=”;
if s = ‘standard’ then x:=’–preset cbr 8′;
if s = ‘medium’ then x:=’–preset cbr 16′;
if s = ‘high’ then x:=’–preset cbr 32′;
if s = ‘highest’ then x:=’–preset cbr 44′;
params:=params+x+’”‘+edit1.Text +’” “‘+changeFileExt(edit1.Text,’_compressed.mp3′)+’”‘;
b.Enabled:=False;
try
RunDos(Params, nil);
finally
b.Enabled:=true;
end;
MessageBox(handle,’Completed.’,'Information’,MB_ICONINFORMATION or MB_OK);
End;Terakhir, buat sebuah unit lagi dan berikut isinya. Jangan lupa tambahkan unit ini ke klausa uses pada form yang mengandung kode di atas.
unit ucons; interface uses Windows, SysUtils, Forms; type TConsoleProgress = procedure (const Buffer:PChar); procedure RunDos(DosApp:String; consoleProgress:TconsoleProgress) ; implementation procedure RunDos(DosApp:String; consoleProgress:TconsoleProgress) ; const ReadBuffer = 2400; var Security : TSecurityAttributes; ReadPipe,WritePipe : THandle; start : TStartUpInfo; ProcessInfo : TProcessInformation; Buffer : Pchar; BytesRead : DWord; Apprunning : DWord; begin With Security do begin nlength := SizeOf(TSecurityAttributes) ; binherithandle := true; lpsecuritydescriptor := nil; end; if Createpipe (ReadPipe, WritePipe, @Security, 0) then begin Buffer := AllocMem(ReadBuffer + 1) ; FillChar(Start,Sizeof(Start),#0) ; start.cb := SizeOf(start) ; start.hStdOutput := WritePipe; start.hStdInput := ReadPipe; start.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW; start.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(DosApp), @Security, @Security, true, NORMAL_PRIORITY_CLASS, nil, nil, start, ProcessInfo) then begin repeat Apprunning := WaitForSingleObject(ProcessInfo.hProcess,100) ; Application.ProcessMessages; until (Apprunning <> WAIT_TIMEOUT) ; Repeat BytesRead := 0; ReadFile(ReadPipe,Buffer[0], ReadBuffer,BytesRead,nil) ; Buffer[BytesRead]:= #0; OemToAnsi(Buffer,Buffer) ; if @ConsoleProgress<>nil then consoleprogress(buffer); until (BytesRead < ReadBuffer) ; end; FreeMem(Buffer) ; CloseHandle(ProcessInfo.hProcess) ; CloseHandle(ProcessInfo.hThread) ; CloseHandle(ReadPipe) ; CloseHandle(WritePipe) ; end; end; end.Untuk lebih jelasnya, silahkan download demo project dan file exe hasil kompilasinya.
» Source Code
» Compiled EXE
Note: Rename *.ppt to *.zip top open downloaded files.
Selamat mencoba.JokoRB
Incoming search terms:
- aplikasi pembuat mp3
- software pembuat mp3
- aplikasi buat musik sendiri
- cara membuat install dan uninstal pada program delphi kita
- program buat mp3
- membuat software mp3 sendiri
- download aplikasi pembuat mp3
- penjelasan dari coding delphi mp3
- pengertian dari joint stereo dan forced joint stereo
- sofeware pembuat mp3
Comments
Powered by Facebook Comments









This is the default footer layout. You can easily add or remove columns in the footer.
aku mw minta tolong caranya membuat mp3 lagu sendiri biar bisa daapat kode css dan dimasukkan ke dalam friendster bagaimana???saia masih bingung buat mengikuti langkah2 di atas…
mohon diberi petunjuk bagaimana caranya yang cepat dan mudah untuk dipahami…
terima kasih..
mohon petunjuknya
Maaf Mas Andre, saya belum jelas dengan pertanyaannya. Apa maksudnya Mas Andre akan menulis kode program Kompress MP3 di Friensdster? Jika ini yang Mas Andre maksud, Silahkan download source code dan ubah namanya ke .ZIP. Selanjutnya bisa diekstrak pakai Winrar/Winzip. Nah file-file kode hasil ekstraksi ini silahkan dibuka dengan MS. Word (pakai Open With…), lalu di-Save sebagai html. Jika file HTML yang dihasilkan dibuka dengan notepad, di situ terdapat kode html + CSS yang bisa dicopy dan dipaste di Friendster.
Semoga membantu. Saya tunggu komentar Mas Andre selanjutnya.
assalamu’alaikum
saya lagi belajar membuat sofware dan membutuhkan beberapa form.tapi saya menginginkan satu form saja ,bagaimana caranya agar disatu form begitu menekan button menu berubah,misalnya kesatu program edit lalu tekan button kedua menu radio button seperti program shollu yang ada di http://ebsoft.web.id saya mohon bantuannya lewat e-mail atau diposting disini
terimakasih sebelumnya.
wassalamu’alaikum
assalamu’alaikum
langsung saja yah..! saya mohon bantuannya saya sedang belajar delphi 7.0 bagaimana caranya agar bisa menulis hurup arab baig di string atau apa sajalah baik untuk memo atau lainnya,apakah ada sofware tambahannya.demikian kiranya yang saya butuhkan mohon untuk diperhatikan
wassalam
Mas Imam, untuk nulis Arab ada dua cara:
- Dengan menginstall middle-east (Timur-Tengah) support language ke WIndows Anda, caranya masuk ke Control Panel, Regional and Language Options, dan pada tab Language, cek opsi “Install files for complex right-to-left…” dan klik OK. Masukkan CD Windows dan ikuti petunjuk instalasi. Sebaiknya menggunakan keyboard yang support tulisan Arab.
- Dengan gambar, yaitu tiap karakter Arab (Alif sampai Yaa) dibuat gambarnya, baik untuk huruf awal, di tengah dan akhir. Kemudian gambar ini nantinya digabung-gabungkan ke gambar hasil sesuai susunan tulisan latin yang diketik.
Untuk Harum Anjani ( Udah kenalan sama Desitie? Blognya rame tuh. Buat yang muslimah bakal betah di blog-nya), untuk menulis jawabannya rada repot kali yaa. Next On lah, sekalian dengan contohnya. Saya sudah install Shollu dan paham maksud Harum. Tunggu sebentar lagi yah…
terimakasih e-mail dan postingannya akan saya pelajari dirumah
mengenai desitie akan coba mampir
wassalam
assalamu’alaikum
tentang text arabnya bukan itu maksudnya tapi ga apa-apa mas udah berkenan menjawabnya,dan tenang itu sudah dapat yaitu komponen arabic yaitu tntunicode tapi sayang saya ingin menulis text arab di captionnya button tapi ga bisa ,ada solusi mas..?
assalamu’alaikum
wow..begitu masuk aku jatuh cinta sama web ini..!
posting databasenya baru permulaan,bagus buat aku yang pemula,ditunggu database berikutnya yah..!
oh iya..sekalian mau nanya nih,bagaimana caranya menambahkan uninstal agar pada star all program lalu pada program yang kita buat(conto..mp3 conpressor uninstal untuk ngebuangnya..)
2.apa instalshield yang bukan bawaan delphi agar tampilannya bisa kita robah sekeinginan kita..?
makasihyah..!Database selanjutnya ditunggu.
aduhh..keduluan!
tuh kan apa dikata,banyak teman kita yang pemula membutuhkannya,terus berkarya yah akutunggu karya berikutnya
pelajaran databasenya sangat membantu moga aja apa yang saya harapkan bisa diposting disini amin teruslah berkarya
Mas Joko..thanks yah tutornya…
tp..saya teh pingin compress mp3 nya ga atu2…jd bisa sekaligus beberapa file mp3 di compress..di tambahin apa yah??
mungki mas joko bisa kasih tau lewat email saya….
okkeh?!??
thanks….
tambahan…”hampir semua”..file .mp3 mempunyai bitrate 128… bila bitrate nya di jadiin 8..kualitas suaranya pun berkurang… bahkan untuk pendengar musik seperti saya…..terasa hampa suara yang dihasilkan bitrate 8 kbps itu… saya coba ubah bitratenya jadi 96… agak lumayan lah daripada yang 8 ..he..he…walaupun hasil kompresinya 1/2 dari file aslinya… tpi cukup lah…daripada gitu….
buat mas iman, ini code buat masukin lagu ke Friendster!
ada bagusnya dalam format wma
buat mas iman, ini code buat masukin lagu ke Friendster!
ada bagusnya dalam format wma
[EMBED SRC="http://www.situs-anda.com/musikfiles/lagu-anda.wma" AUTOSTART=TRUE LOOP=TRUE WIDTH=0 HEIGHT=0 ALIGN="CENTER" allowScriptAccess="never" allownetworking="internal"][/EMBED]
ganti tanda “[” dengan “”
aduh, terlalu banyak proteksi neh! mo nulis kode “lebih besar” ajah kena sensor
btw, ganti “[" dengan tanda "lebih kecil dari" dan tanda "]” dengan tanda “lebih besar dari”
jah, salah nulis kan! maksudnya buat mas andre bukan mas iman! :hammer:
Assalamualaikum KandaQ Sayang

Dikala kanda membuka comment ini, dinda pengen banget bilang kalau ……………….;)
Maap kanda, dinda cuman numpang lewat
I’m in missing u………..
Kanda, kapan negh diajarin buat WEB?
Mas Joko, saya ada satu uneg2 lagi, dan belum dapat solusinya..
Idenya saya ingin membuat sebuah kamus Mandarin dengan membiarkan user mengetik huruf2/kalimat2 Mandarin secara bebas di Memo. Misal user mengetik 我是好朋友。 Untuk pencarian arti, saya ingin menggunakan hover dari mouse, jadi setiap huruf Mandarin yang dilewati pointer mouse tersebut akan dianggap sebagai kata kuncinya. Dan saya bisa mencari artinya pada database, kemudian ditampilkan untuk user.
Semoga mas Joko bisa memberi gambaran langkah2 diperlukan.
Terima kasih sebelumnya.
mas joko bisa minta referensi yg lbh lgkap soal kompresi diatas. mohon bantuannya. cara kompresinya ma algoritmanya?
Itu cuma antarmuka GUI nya mas. Sebenarnya itu pake Lame encoder, jadi saya gak buat algoritmanya, cuma interface grafis saja..
mas joko ada ga aplikasi yg udah jadi buat compres kaya gtu, tp yg pake algoritma!!!
soalnya mau saya buat TA … Tolong ya mas..
trimakasih….