Sejarah Langgam dan Ketidakpedulian Kita

Pada tulisan kali ini saya mencoba menulis sekelumit hal tentang aliran musik langgam. Tentu banyak di antara kita yang sudah mengenal kata itu, dan mungkin juga sering menggunakan istilah tersebut, tetapi apakah hal itu sudah tepat jika diterapkan pada sejarah musik? Saya bukan ahli musik, tetapi saya peduli dengan sejarah kemusikan dan budaya –terutama budaya jawa, karena saya orang jawa–.

Sebelum terlampau jauh, saya kutip dulu pengertian langgam yang sudah diadaptasi oleh KBBI, sebagai berikut:

langgam

Nomina (n)

  1. gaya; model; cara: — permainannya khas, sukar ditiru orang lain
  2. adat atau kebiasaan: — orang di daerah itu kalau berkata dengan suara keras, tetapi hatinya baik dan suka berterus terang
  3. bentuk irama lagu (nyanyian): penyanyi lagu pop belum tentu dapat menyanyikan lagu —

definisi tersebut bisa anda lihat di kateglo.

Nah, karena saya sedang membahas budaya jawa, maka saya fokus pada pengertian nomer 3, bahwa langgam adalah bentuk irama lagu. Irama lagu yang seperti apakah yang bisa disebut langgam?

Jawa dan Segala Aturannya

Di dalam masyarakat Jawa, produk apapun yang dihasilkan dari budayanya selalu dilekati dengan aturan-aturan dan kaidah-kaidah. Apalagi di dunia musik. Aliran musikal dalam adat Jawa pada awalnya kurang lebih terbagi menjadi empat bagian, yaitu: Tembang Gedhe, Tembang Tengahan, Tembang Macapat dan Tembang Dolanan.

Tembang Gedhe dan Tengahan mungkin jarang kita dengar, yang paling sering kita dengar adalah Macapat –yang sering diartikan sebagai maca papat-papat, membaca empat demi empat– dan tembang dolanan. Masing-masing tembang tersebut memiliki aturan-aturan sendiri, kita ambil contoh saja macapat. Macapat yang terbagi menjadi pocung, sinom, asmaradhana dan lain-lain, masing-masing juga memiliki aturan lagi.

Seseorang bisa memakai nada-nada yang mirip dengan pocung misalnya, tetapi kalau tidak memenuhi aturan:
– Guru Wilangan (jumlah suku kata) 12, 6, 8, 12
– Guru Lagu (akhiran vokal) u,a,i,a
maka itu bukan Pocung. Jika tidak memenuhi syarat untuk macapat yang lain, maka jelas itu juga bukan Macapat.

Perkembangan politik di negeri ini, pada akhirnya memunculkan kreativitas di kalangan pemusik tradisional Jawa. Pada masa-masa awal kemerdekaan kita itulah, muncul irama langgam Jawa. Tokoh yang merintis irama ini adalah seperti Dharmanto, Ki Narto Sabdo, Gesang, Anjar Any, Waldjinah, dan masih banyak lagi. Berdasarkan penuturan Nyi Andjar Any sendiri, langgam ini terlahir karena waktu itu presiden Soekarno mendorong para pemuda untuk meninggalkan musik ngak-ngik-ngok.

Langgam Jawa pada dasarnya adalah adaptasi musik keroncong ke tradisi gamelan dan tembang Jawa. Maka oleh karenanya, langgam Jawa ini juga memiliki aturan-aturan, tidak sembarang lagu bisa disebut sebagai Langgam Jawa.

Aturan Langgam Jawa adalah sebagai berikut:

  • Matra atau ukuran biramanya 4/4.
  • Temponya moderato.
  • Terdiri dari empat kalimat masing-masing delapan bar, sehingga dalam satu langgam terdapat 32 bar.
  • Susunan keempat kalimatnya adalah A-A-B-A

Berdasar dari sejarah permusikan Jawa, maka ketika seseorang terdengar menggunakan nada-nada seperti langgam tetapi tidak mengikuti aturan tersebut, sudah pasti itu bukan langgam dalam artian lagu Jawa.

Perkembangan selanjutnya langgam jawa ini dibuat lebih nakal oleh generasi Manthous dengan komposisi yang lebih nge-pop dan menanggalkan aturan-aturan di atas. Kalau dalam bahasa saya yang bukan ahli musik, campursari ini adalah tipe lagu dolanan yang lebih serius. Dia bisa saja dimulai dengan bawa (lagu) dari macapat, atau bisa langsung ke model keriangan ala campursari.

Apakah Kita Peduli?

Pertanyaan ini muncul di kepala saya, ketika beberapa waktu lalu orang ribut-ribut mengenai seseorang yang membaca dengan alunan yang akrab dengan telinga orang Jawa. Ramai-ramai semua mengatakan bahwa itu langgam Jawa.

Mungkin para pendekar langgam jawa sudah capek dengan ketidakpedulian kita, sehingga mereka hanya diam dan mungkin mengurut dada. Jelas-jelas itu bukan langgam jawa. Apakah biramanya 4/4? apakah terdiri dari empat kalimat delapan bar? apakah susunannya A-A-B-A?

Kalau Anda menyebut itu langgam jawa, dalam artian nomer 1 di KBBI: gaya/model/cara, maka saya tidak akan memprotes. Tetapi yang jadi permasalahan ketika kemudian mengkait-kaitkan dengan aturan-aturan per-lagu-an, dimana apa yang dibaca itu tidak boleh sembarang dilagukan menirukan irama lagu dan seterusnya. Saya bilang, tolong hentikan, itu bukan langgam jawa dalam artian irama lagu jawa! Sama sekali tidak masuk dalam aturan langgam Jawa.

Bagi saya, itu adalah murni gaya atau model pembacaan, sebagaimana –meskipun kata-katanya sama, panjang pendek kalimatnya sama–, tetapi masing-masing masjid ketika tiba saatnya TPA, nada yang keluar sama sekali berbeda: TEMAN TEMAAAAN DI.HA.RAP.DA.TANG.KE.MAS.JID  UN.TUK.TEPEA. KA.RE.NA HA.RI SU.DAH. SO.RE

Perhatikan lagi, panjang pendeknya sama, tetapi sebenarnya ada perbedaan nada karena ada perbedaan mulut yang mengucapkannya. Maka itulah gaya, model, yang lahir murni karena justru ada panjang pendek kalimat tersebut.

Paham?

vale, demi te pe a

el rony, sinau iqra’

Menggabungkan Image PNG menggunakan library PIL

Sebenarnya apa yang ingin saya tulis ini sudah ada di dokumentasi dan tutorial-tutorial online. Tetapi tidak ada salahnya saya kira kalau saya membagikan apa yang saya tahu. Kalaupun ternyata ada salahnya, ya mumpung ini masih terhitung Hari Lebaran, saya mohon maaf lahir dan batin. 😀

Library PIL adalah library pengolah gambar di bahasa pemrograman Python. Yang saya bagikan ini hanyalah sebagian kecil sekali dari fasilitas yang ada di library tersebut. Fokus saya adalah di bagian penggabungan gambar.

Kadang kita ingin menggabungkan dua atau lebih gambar, hal yang sebenarnya sangat mudah dilakukan dengan menggunakan software pengolah gambar seperti Photoshop atau Gimp. Tetapi kalau yang ingin digabungkan itu ada banyak sekali file, maka kadang kita perlu juga melirik script untuk otomatisasinya.

Batasan Kasus

Supaya tidak terlalu melebar, saya akan membatasi kasus ini dengan penggabungan gambar yang sama ukurannya. Tekniknya seperti overlay layer di css dengan positioning. Untuk kebutuhan ini saya akan menggunakan metode paste dari library PIL.Image.

Biasanya yang saya lakukan adalah membuka satu persatu image/gambar yang mau digabung tersebut.

from PIL import Image #import dulu library yang ingin digunakan

im = Image.open('/path/asli/lokasi/gambar.png')
im2 = Image.open('/path/asli/lokasi/gambar2.png')

#misalnya dua gambar itu yang ingin kita gabungkan

Setelah itu kita siapkan canvas tempat kita akan menggabungkan dua gambar tersebut. Karena dua gambar itu ukurannya sama, kita ambil saja salah satunya sebagai dasar ukuran canvas.

canvas_size = im.size #mengambil ukuran dimensi gambar
bg = Image.new('RGB',canvas_size,(255,255,255))
# RGB adalah mode gambar. 255,255,255 berarti kita beri warna putih

Setelah canvas siap, maka kita bisa menggabungkan gambar di atas, misalnya kita ingin menimpa gambar im dengan im2. Di sini filenya adalah png transparent, sehingga ketika ditimpa, gambar im tidak seluruhnya tertutup oleh gambar im2. Langkahnya sebagai berikut:

bg.paste(im,(0,0))
#gambar im kita timpa di atas canvas, di koordinat 0,0.

Maka di atas canvas (bg) sudah akan muncul gambar im. Tetapi kita ingin agar transparansi gambar im tetap ada, sehingga background putih canvas tidak tertutup blok hitam. Untuk hal ini, script di atas kita ubah menjadi:

bg.paste(im,(0,0),im)
# seperti langkah di atas, tetapi kita tambahkan masking im

#lalu dilanjut dengan menempatkan gambar im2 di atas im
#maka kita lanjutkan dengan script berikut

bg.paste(im2,(0,0),im2)

Voila! gambar im2 sudah bergabung dengan gambar im. Untuk melihatnya, kita bisa menggunakan perintah bg.show()

Script lengkapnya jadinya begini:

from PIL import Image #import dulu library yang ingin digunakan

im = Image.open('/path/asli/lokasi/gambar.png')
im2 = Image.open('/path/asli/lokasi/gambar2.png')

canvas_size = im.size #mengambil ukuran dimensi gambar
bg = Image.new('RGB',canvas_size,(255,255,255))
bg.paste(im,(0,0),im)
bg.paste(im2,(0,0),im2)
bg.show()

Menyimpan hasil ke django model ImageField

Nah, setelah gambar itu tergabung, seandainya kita menggunakan django, maka kita perlu menyimpan image itu ke models. Untuk kebutuhan ini, saya kadang menggunakan memory untuk meredraw hasil gabungan gambar tersebut, lalu memanfaatkan fasilitas InMemoryUploadedFile di django untuk menyimpannya ke database.

Sehingga script di atas akan menjadi seperti ini

#misalkan kita mempunyai models seperti ini

class DataImage(models.Model):
    title = models.CharField(max_length=255)
    image = models.ImageField(upload_to='image')

maka kita ubah script lengkap yang saya tulis di atas tadi, menjadi seperti ini:

import StringIO

tempFile = StringIO.StringIO()

im = Image.open('/path/asli/lokasi/gambar.png')
im2 = Image.open('/path/asli/lokasi/gambar2.png')

canvas_size = im.size #mengambil ukuran dimensi gambar
bg = Image.new('RGB',canvas_size,(255,255,255))
bg.paste(im,(0,0),im)
bg.paste(im2,(0,0),im2)

# menyimpan hasil generate ke stringIO file

bg.save(tempFile, format="JPEG")
#format bisa diubah sesuai kebutuhan. 
#dalam contoh ini, saya menyimpannya dengan kompresi jpeg

Setelah itu, kita bisa menyimpannya ke model DataImage dengan langkah berikut:

from django.core.files.uploadedfile import InMemoryUploadedFile

image_file = InMemoryUploadedFile(tempFile, None, 'nama_file.jpg','image/jpeg',tempFile.len, None)

#nama file diubah sesuai nama yang ingin kita simpan

Dari sini kita bisa langsung menyimpannya ke database.

daim = DataImage()
daim.title = "nama file"
daim.image.save("nama_file.jpg",image_file)
daim.save()

image hasil gabunganpun tersimpan ke database. File disimpan ke MEDIA_DIRECTORY sesuai setelan di settings.py

Demikian serba sedikit yang bisa saya bagi. Tidak begitu penting, tetapi semoga bisa bermanfaat bagi yang membutuhkan 😀

vale, demi parsletongue

el rony, mendesissssssss ssss sssss

nb. sekedar untuk lucu-lucuan, kita juga bisa menggunakan php untuk hal ini

<?php
$ibody = base_url('path/relative/to/body.png');
$istrap = base_url('path/relative/to/strap.png');
$ipads = base_url('path/relative/to/pads.png');
$imgInfo = getimagesize($ibody);
$basebody= imageCreateFromPNG($ibody);

// menentukan ukuran canvas
$w = "319";
$h = "221";

// men-scale image ke ukuran canvas dg aspect ratio
if ($imgInfo[0] <= $w && $imgInfo[1] <= $h) {
    $nHeight = $imgInfo[1];
    $nWidth = $imgInfo[0];
} else {
    if ($w/$imgInfo[0] > $h/$imgInfo[1]) {
        $nWidth = $w;
        $nHeight = $imgInfo[1]*($w/$imgInfo[0]);
    }else{
        $nWidth = $imgInfo[0]*($h/$imgInfo[1]);
        $nHeight = $h;
    }
}
$nWidth = round($nWidth);
$nHeight = round($nHeight);

// membuat canvas
$base = imagecreatetruecolor($nWidth, $nHeight);

imagealphablending($base, false);
imagesavealpha($base, true);
$transparent = imagecolorallocatealpha($base, 255, 255, 255, 127);
imagefilledrectangle($base, 0, 0, $nWidth, $nHeight, $transparent);
imagealphablending($base, true);
imagecopyresampled($base, $basebody, 0, 0, 0, 0, $nWidth, $nHeight, $imgInfo[0], $imgInfo[1]);

$insert2 = imageCreateFromPNG($istrap);
imagealphablending($insert2, true);
imagesavealpha($insert2, true);
imagecopyresampled($base,$insert2,0,0,0,0,$nWidth,$nHeight,$imgInfo[0], $imgInfo[1]);


$insert3 = imageCreateFromPNG($ipads);
imagealphablending($insert3, false);
imagesavealpha($insert3, true);
imagecopyresampled($base,$insert3,0,0,0,0,$nWidth,$nHeight,$imgInfo[0], $imgInfo[1]);


header('Content-type: image/png');
imagepng($base);
imagedestroy($base);
if(isset($insert2)){
    imagedestroy($insert2);
}
if(isset($insert3)){
    imagedestroy($insert3);
}
?>

iya.. script-script ini yang saya pakai untuk webnya NOKNbag 😀

Nggetih

Sebelum saya menulis panjang lebar, ada baiknya tulisan kali ini saya awali juga dengan disclaimer. Saya bukanlah pengusaha sukses, dan barang tentu saya termasuk generasi mereka yang tidak update terutama terkait gaya berbisnis. Maka tulisan saya ini murni pandangan saya yang sekiranya Anda termasuk mereka yang mengamini pendekatan ala startup, maka tulisan ini akan sedikit banyak menyinggung “keimanan” sampeyan, oleh karenanya saya minta maaf terlebih dahulu.

Tahun ini adalah tahun ke-14 semenjak pertama kali saya menyatakan diri membakar kapal, terjun bebas ke dunia belantara yang bermoto “daily struggle“. Sampai detik ini tidak ada tolok ukur yang bisa mengatakan bahwa saya termasuk mereka yang berhasil –terutama jika diukur dari sisi materi — maka bisa jadi dan sangat mungkin saya ini terlanjur salah memilih “keimanan”.

Sependek pengalaman saya berusaha bertahan hidup, saya melalui berbagai model usaha. Dari mulai usaha yang sifatnya non-pemerintah, semi-altruistic, hingga murni materialistik. Dari mulai kerjaan kasar, hingga pekerjaan di belakang monitor — yang sebenarnya tak lebih halus dari pekerjaan sebelumnya. Hingga pada tahun 2001 akhir, saya bergabung dengan teman-teman yang memiliki mimpi sama, berdiri di atas kaki sendiri dengan bermodal pengetahuan semampu kami di bidang IT. Kami berlima akhirnya mencar sendiri-sendiri, tetapi inilah yang membentuk sejarah diri saya.

Pengalaman yang masih serba sedikit, dengan perahan darah dan keringat yang tak bisa dibilang sedikit, mengajarkan diri saya sendiri, tentang makna membakar kapal yang sesungguhnya. Tidak ada titik balik bagi mereka yang sudah membakar kapal. Pilihannya tinggal maju berperang, dengan resiko mati di medan laga, atau nekat berenang dengan resiko yang jauh lebih pasti, mati konyol tenggelam.

Kondisi yang seperti ini entah kenapa justru hal yang sangat saya nikmati. Sehingga perjalanan ini pula yang membuat saya menjadi semakin keras dalam bersikap. Sikap yang oleh sebagian orang dipandang sebagai sebuah ideologi yang kaku. Tidak menerima pekerjaan membuatkan situs judi, porno, MLM bahkan situs pemerintah yang mengharuskan saya memarkup dana. Tidak peduli seberapa kondisi butuh uangnya saya, tidak peduli seberapapun besar reward yang ditawarkan, kalau harus meninggalkan pilihan itu, saya memilih untuk tidak. Alhamdulillah saya masih bisa survive sampai sekarang.

Sikap ini akhirnya merembet ke pekerjaan saya sendiri. Sebagai contoh ketika saya harus mengerjakan sebuah situs — dulu sering saya harus memperbaiki beberapa situs milik orang, baik yang saya kenal langsung maupun tidak, yang seringkali sampai ke meja saya dalam keadaan sudah babak belur– saya akan sepenuh hati bekerja jika saya tahu bahwa si pemesan memang mempertaruhkan hidupnya di situ. Satu perusahaan retail di Amerika, misalnya, saya ikut andil membuat sistem informasi untuk penjualannya, dan saya pantau sistem tersebut bahkan ketika harus dideploy ke cabang-cabangnya yang tersebar di tiga negara bagian, tanpa saya minta charge lebih. Sekian ribu dollar yang jika dikonversikan ke besaran energi dan perhatian serta waktu yang saya curahkan jadinya tidak sebanding. Tetapi saya all out karena saya tahu mereka nggetih. Dan saya turut bahagia ketika akhirnya mereka jadi semakin besar dan bahkan menularkan keberhasilan mereka untuk membidani perusahaan-perusahaan baru di beberapa negara, termasuk Indonesia.

Sifat nggetih ini juga saya rasakan di teman-teman NOKNbag, di teman-teman SolusiCamp, di teman-teman APSI Jogja. Sifat nggetih saya juga tersalur bersama teman-teman ARDWORT. Dengan mereka, saya teramat sangat nyaman bekerja bersama.

Sifat nggetih ini juga ada di teman-teman relawan merapi, sehingga ketika ada kebutuhan membuat gerakan, saya bisa membuatkan situs untuk mereka, lengkap dengan sistem geo-location dan API, hanya dalam dua hari. Tidak ada uang yang berbicara di sini.

Pada mereka-mereka yang nggetih, saya akan ikut nggetih.

Hal inilah yang membuat saya sangat kurang paham, bagaimana mungkin orang membuat sebuah usaha, dengan pola pikir bahwa usaha tersebut nantinya akan dia jual. Exit strategy, bahasa kerennya. Setiap kali saya mendengar kata exit, dahi saya berkernyit.

Benar, mungkin karena saya bukanlah pengusaha seperti mereka. Maka hidup saya ya biasa-biasa saja, rumah seadanya, kendaraan seadanya. Tidak bergelimang harta melimpah seperti mereka. Tetapi demikianlah saya, bagi saya setiap kodingan seperti anak yang lahir dari tangan-tangan saya. Sedih sekali ketika apa yang sudah saya bangun nantinya hanya akan ditinggalkan, tanpa benar-benar dimaksimalkan proses optimasinya. Tanpa benar-benar dimanfaatkan potensinya.

Beberapa dari klien saya tentu paham maksud saya, mereka merasakan naik turunnya semangat saya, dan saya pastikan semangat saya turun semenjak saya merasa bahwa mereka bikin perusahaan hanya untuk dijual. Ibaratnya saya mengotori tangan saya untuk mereka yang sejak awal ingin menjual bayinya. Bergidik saya.

Tidak adakah lagi mereka yang benar-benar nggetih dalam pilihannya? Apakah memang sudah jamaknya begitu sehingga aneh justru ketika orang-orang sedemikian nggetihnya dalam usahanya?

Mungkin saya tidak akan pernah mendapatkan jawaban yang sesuai dengan harapan saya, tetapi melalui tulisan ini, saya membuka diri kepada Anda semua. Monggo, bagi siapa saja yang nggetih dengan pilihannya, saya selalu terbuka untuk berbagi pikiran. Mungkin tidak tenaga, karena saya sudah mencebur nggetih bersama orang-orang keren yang tidak mungkin lagi saya tampung beban tambahan. Tetapi saya selalu siap berdiskusi, apapun yang Anda hadapi, asalkan saya mampu membantu atau membagi jalan keluar, saya akan bantu. Silakan kontak melalui email saya, lantip at gmail dot com.

Keyakinan saya, apapun tipe kendala yang akan kita alami, kita hanya akan selamat kalau kita nggetih.

vale, demi kemerdekaan

el rony, macak nggetih.