Designing a step sequencer

by Nick_Zaillian » Mon, 27 Jul 2009 06:45:01 GMT


Sponsored Links
 Hey all.  This is my first post to the Android group.  I grabbed the
Android SDK a few days ago and have been playing around with it in the
time that has elapsed since.  I've built a few simple apps to get a
feel for everything and have been generally pleased.  In any case, I
am posting here because I am interested in building an app with a step
sequencer and am not quite sure how best to go about doing it.  My
idea is that the user would be presented with a row of 16 toggle
switches, a tempo control, and a few buttons to select instruments
(kick drum, snare, etc...this is basically an emulator of old-
fashioned drum machines).  Each instrument would have its own 16-step
pattern and when the user pressed a "play" button, all of the
individual patterns (which might more appropriately be called "parts")
would play back simultaneously.  Accomplishing all of this would be
relatively straightforward if Android/Dalvik had a javax.sound
implementation (it includes midi tools and audio playback tools) but I
know that it doesn't.  I was thinking, then, that the best way to go
about building my program would be to have a bunch of MediaPlayer
instances and some sort of scheme for representing patterns as strings
(maybe something as simple as 0s for "no-hit" and 1s for "hit").  I
was thinking I'd keep these pattern strings in an XML file and update
it every time the user changed the state of a toggle switch.  For
playback, I was thinking I'd parse the XML file such that I'd have a
16-element array of, let's say, 10 (if there are 10 instruments)-
element arrays of 2-element arrays where the 2-element arrays consist
of [(instrument), (hit/no hit)].  I'd then use a timer (set to user-
selected Tempo) to step through the 16 element array and, when an
instrument represented in the contained array had a "hit" state, call
the start method of the corresponding MediaPlayer instance.  So,
that's my fairly convoluted solution to the problem.  I am posting to
the group because I am so new to the SDK and figured that I should
probably ask of those more experienced whether there is some glaring
problem with this solution or, perhaps, if there is a far more simple
way to go about accomplishing what I'm trying to accomplish.
Thanks,
Nick

--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. Using EmbossFilterMask

I'd like to have an embossed look on a bitmap image using its alpha
channel.  It seems that the EmbossFilterMask works great on drawables,
like drawCircle, for instance.  Is there a way to apply it to a bitmap
like drawBitmap?

Thanks,
Stephen

-- 

2. Perjuanganku untuk mengalami Acer Liquid E

Selamat malam semuanya, berhubung tadi pesawatnya delay, akhirnya saya coba
menulis sesuatu, dan tulisan di bawah ini lebih tepat sebagai curhatan atas
kesan saya setelah mencoba Acer Liquid E hehehe, jujur dari hati yang paling
dalam, jadi ya panjang banget isinya..... :p

------------------------------------------

Perjuanganku untuk mengalami Acer Liquid E

Hari yang gelap dan mendung saat kulangkahkan kaki keluar dari bandar udara
Internasional Soekarno-Hatta, kupesan sebuah taksi yang kemudian membawaku
meluncur ke sebuah hotel di jalan Gatot Subroto. Hatiku gelisah ingin segera
menuju JCC, tempat dimana dipamerkannya sebuah ponsel besutan Acer, bernama
Liquid E, si mungil yang berlayar lebar 3,5 inchi WVGA (480 x 800 piksel).
Kutertunduk lesu karena jam hotel telah menunjukkan jam dua pagi, sedikit
tersentak, kuperhatikan sekali lagi, ternyata salah baca jam dari negara
lain. Semangatku muncul lagi sesaat namun kembali hilang setelah memastikan
waktu Jakarta menunjukkan pukul sembilan lewat limabelas menit di malam
hari. Kupendam hasratku pada hari itu untuk bertemu, berkenalan, dan
mengalami ponsel berprosesor Qualcomm Snapdragon 8250 berkecepatan 768 MHz,
Acer Liquid E.

Malam itu aku tidak bisa tidur, gelisah memikirkan esok hari, dan begitu
pagi menjelang aku terlanjur mengantuk sehingga terpaksa memenuhi kebutuhan
istirahatku terlebih dahulu. Siangnya, setelah waktu ibadah usai, aku
persiapkan hatiku untuk segera mengalami Acer Liquid E dengan Sistem Operasi
Android Eclair-nya. Kubaca petunjuk navigasi di ponselku dan ternyata jarak
dari hotel ke JCC hanya 1 km lebih, sehingga kuputuskan untuk jalan kaki ke
JCC  sambil mencoba navigasi moda berjalan kaki pada ponselku. Ini adalah
keputusan yang salah. Meskipun aku sudah berkali-kali naik gunung dan
percaya diri dengan kekuatan kakiku,  ternyata berjalan kaki di jalanan
Jakarta tidak semudah itu, beberapa kali aku hendak menyerah namun kamera 5
Megapiksel dan pengambil video VGA Acer Liquid E selalu menyemangatiku untuk
terus berjalan, hingga akhirnya hampir satu setengah jam kemudian aku sampai
di JCC dengan kaki yang telah lecet-lecet,

Pada dasarnya orang udik, aku terbengong di depan gedung JCC yang megah itu,
tengok sana sini sambil mencari dimana pintuk masuk dan tempat beli
tiketnya. Akhirnya setelah memberanikan diri bertanya dengan seseorang,
ladalah, ternyata tempat menjual tiketnya ada dibelakangku. Berdebar tidak
karuan rasanya jantungku mengingat  akan segera bertemu dengan  alat
berfitur A-GPS dan berkemampuan data HSPA bernama Acer Liquid E. Setelah
membayar tiket masuk sebesar lima ribu rupiah dan mendapatkan keripik
singkong, mulailah aku beredar di dalam JCC. Singkat cerita, kakiku makin
lecet karena aku tidak menemukan dimana dambaanku tersebut berada, hingga
akhirnya aku memutuskan untuk beristirahat sejenak duduk di lantai, sambil
termenung, tiba-tiba kuterhenyak melihat seorang ibu berjalan dari sebelah
kiri membawa kantong kertas bertuliskan AcerLiquid E, seketika itu juga aku
berditi dari berlari ke arah kiri, melewati pamflet vertikal Acer Liquid E,
dan akhirnya sampailah aku di tempat pujaan hatiku dipamerkan.

Dengan tidak sabar kuhampiri salah satu SPG yang ada disana, kulihat dia
sedang menggenggam dambaanku, kusapa dia dan kumohon restunya, hingga
akhirnya aku dapat berkenalan dengan Acer Liquid E!  Kuulurkan tanganku
untuk mejabat dirinya yang  terasa ringan pada bobot 135 gram, kuraba
tubuhnya yang ternyata berbahan dasar plastik ringan berwarna hitam dengan
tonjolan kamera di bagian belakangnya. Kuelus sedikit layar *capactive *nya
yang telah mendukung multi sentuh. Bersamaan dengan semua itu kuperkenalkan
diriku,  enalkan, saya gunggudan Acer Liquid E pun menyapaku balik
dengan layar utamanya yang langsung menyala setelah kusentuh tombol keras
daya di sebelah kiri atasnya. Seusai berkenalan, tiba waktunya untuk
mengakrabkan diri mengalami Acer Liquid E ini.

Kumainkan jariku menjelajah menu serta menyentuh keempat tombol lunak yang
ada di bagian bawah layarnya. Respon dan umpan balik pada layar utamanya
sangat baik, menu daftar aplikasi model komedi putarnya cukup menarik,
terurut berdasarkan nama aplikasi. Hampir semua aplikasi yang kucoba buka
langsung terbuka dengan cepat. Sedikit penasaran dengan kapasitas riil ROM
untuk penyimpan aplikasi dan sisa riil RAM untuk menjalankan aplikasi,
kuminta restu sekali lagi kepada SPG untuk mengunduh beberapa aplikasi dari
pasar sebagai pendukung pengujianku. Setelah restu diberikan, sekaligus
kesempatanku menguji kemampuan datanya, kucoba mengunduh memakai jaringan
seluler dan WiFi, dan semua aplikasi terunduh dengan lancar. Setelah
aplikasi terunduh telah terpasang, ternyata sisa ROM nya dari 512 MB, yang
hanya bisa dipakai sekitar 200 MB, dan sisa RAM nya dari 512 MB, tanpa
aplikasi tambahan yang berjalan, masih bersisa sekitar 225 MB. Ini merupakan
berita yang menggembirakanku karena berarti masih banyak aplikasi yang dapat
kupasang dan kujalankan sekaligus atau dalam moda berjalan dibelakang.
Kukembalikan penjelajahanku ke layar depan, kudapati beberapa pintas dan *
widgets* yang menarik, beserta kertas dinding hidupnya, yang menggambarkan
nama Liquid karena berujud air mengalir. Kuterhenti pada sebuah pintas
berjudul Acer Settings, kuintip sedikit, ternyata isinya adalah setelah
seperti halnya pada *power widget* standar Android, dengan tambahan  beberapa
tambahan opsi baru, misalnya *toggle* 3G/2G. Seketika itu, kumencoba mencari
widget untuk Acer Setting, tidak ketemu, kutanyakan ke SPG ternyata memang
tidak tersedia, sangat disayangkan.

Kulanjutkan penjelajahanku mengalami fungsi kameranya, yang menampilkan menu
standar kamera eclair, namun dengan kulit tampilan berbeda, berwarna krom
abu-abu metalik. Setelah restu untuk mengambil  gambar diberikan, kucoba
memainkan tombol keras kameranya. Layarnya menampilkan fokus otomatis yang
menurutku berarea terlalu lebar, akupun sedikit kecewa, si dia ternyata
kurang mampu dipakai untuk mengambil gamar jarak dekat. Sedikit penasaran,
kucoba buka setelan fokusnya, ternyata hanya terdapat pilihan fokus otomatis
dan tak hingga, pantaslah area fokusnya lebar hampir selebar layarnya.
Kekecewaanku bertambah setelah kumencoba mengambil gambar dengan menekan
tombol kerasnya, ternyata penempatan tombol kerasnya kurang bagus, sehingga
jariku susah menekan setengah untuk fokus tomatisnya, dan juga susah untuk
menekan lebih dalam lagi untuk mengambil gambar, setelah berhasil terpencet,
kuheran kenapa tak muncul kilatan penerangnya, ternyata, si dia tidak
berlampu kilat! Kuberalih menengok ke moda video dan mecobanya dengan
mengambil suasana di sekitar tempat si dia dipamerkan. Dengan menggunakan
aplikasi sebelumnya terunduh, kukirimkan kedua hasil tes ke ponselku, yang
kemudian kubuka di laptopku setelah kupulang ke hotel. Hasil kameranya
serata-rata kamera 5 MP lainnya, ada gangguannya dalam keadaan gelap, dan
hasil videonya standar sekali jika kulihat di laptopku. Kucoba kirimkan
berkas video 720p milikku dan ternyata nemoplayer mampu menjalankannya
dengan baik, meskipun kadang masih terlihat cegukan saat tingkatan rasio
bingkainya meninggi, misalnya saat adegan cepat mobil balap.

Sekali lagi restu diberikan untuk mencoba menerima/mengirim email serta
melakukan panggilan, sehingga dengan segera kubelai layar sentuh si dia
sambil mengetikkan email. Kesulitan melandaku dan sebenarnya aku cukup mampu
mengetik cepat menggunakan layar sentuh, namun si dia ini agak bandel,
sehingga kuharus berulang-ulang melakukan koreksi , selain itu respon dan
umpan baliknya kurang begitu menyenangkanku. Ketika kumelakukan panggilan
dengannya, suara penerima dapat terdengar jelas sekali, namun penerima
kadang kurang dapat mendengar apa yang kuteriakkan ke mikrofon si dia yang
{*filter*}. Kualihkan penasaranku dengan mencoba A-GPS si dia, dimana beberapa
waktu sebelumnya telah kuaktifkan, kulihat sinyal GPS tak didapatkan,
{*filter*}tara itu, ponselku yang GPS nya kuaktifkan bersamaan, memiliki 2 batang
sinyal GPS. Dengan sedikit murung kucoba membuka penjelajah dan mulai
mengarungi beberapa laman yang memiliki konten *flash*. Terputar dengan
baik, sehingga hatiku mulai bersemangat kembali dan tiba-tiba mataku
berbinar saat menatap kepala si dia, tampaklah notifikasi LED berwarna putih
atas email dan panggilan yang tadi kulakukan, indah sekali, dankuyakini ini
ponsel android pertama yang memiliki notifikasi seperti ini, bukan hanya
menggunakan lampu LED seperti biasanya.

Setelah kekecewaanku terobati oleh keindahan kepala si dia, kumohon restu
untuk yang terakhir kali untuk membuka pakaian yang membungkusnya. Setelah
restu turun, kubuka pakaiannya dan kuintip isinya, ada satu hal yang menarik
perhatianku. Baterainya berkapasitas 1350 MaH membuatku tidak yakin akan
kemampuan si dia, yang notabene akan menguras banyak sekali daya dengan
keaktifan datanya, dan kuprediksi, untuk pemakai aktif sepertiku, mungkin
sebelum sore hari pasti si dia akan minta makan dan minum lagi. Kemungkinan
besar jika kupakai si dia sebagai utamaku, aku akan membutuhkan tambahan
baterai.

Setelah puas mengalami Acer Liquid E, kukembalikan si dia kepada SPG, dan
aku berpamit hendak pulang ke hotel. Dalam perjalananku pulang, hatiku
campur aduk, ingin meminang si dia, namun di balik fitur yang ditawarkan
berlimpah, ternyata masih terdapat beberapa kekurangan yang cukup signifikan
untukku. Aku pun berharap besar semoga Acer akan membagi koda sumber si dia
sehingga aku tidak hanya akan memakai, namun juga dapat ikut memoles,
mendidik, serta membesarkan Liquid E ini bersamaan dengan komunitasku serta
komunitas Acer Indonesia sehingga semua kekecewaanku sebelumnya dapat
terobati.

Jakarta,  JW Longue Terminal 1A

gunggu

-- 
"Indonesian Android Community [id-android]" 

Join:  http://www.***.com/ 
Moderator: id.andr...@gmail.com
ID Android Developer:  http://www.***.com/ 
ID Android Surabaya:  http://www.***.com/ 
ID Android on FB:  http://www.***.com/ 

3. Multi-point touch event

4. Liquid E

5. Tablet Android Debutan Zyrex

6. Pembuktian Desas-desus Liquid E; "Review Report From ICS2010"

7. Disabling Java formatting in the Eclipse editor