Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Data Science

    Mengulik Digitalisasi data statistik dengan bantuan python untuk pemanfaatan di bidang transportasi, kesehatan, keuangan dan masih banyak lagi

  • Artificial Intelligence - Pengenalan Object

    Menghadirkan pemanfaatan AI dengan praktek-praktek yang mudah diikuti - cocok untuk mahasiswa yang mencari ide tugas akhir

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Tampilkan postingan dengan label audio. Tampilkan semua postingan
Tampilkan postingan dengan label audio. Tampilkan semua postingan

Selasa, 02 September 2025

[ESP32-A2DP] Talkie Suara Digital dari Era 80-an: Pelaporan Suhu DHT11 Lewat Audio

Bayangkan sebuah suara robotik yang khas, kaku, namun jelas – seperti suara dari film fiksi ilmiah tahun 1980-an. Suara itu bukan hasil rekaman manusia, bukan pula hasil AI modern seperti Google Assistant atau Siri. Suara itu adalah hasil dari sintesis vokal berbasis Linear Predictive Coding (LPC), teknologi canggih di masanya yang diusung oleh chip legendaris: TMS5100 dari Texas Instruments.



Hari ini, dengan ESP32 dan library modern seperti TalkiePCM ( kreasi Phill Schatzmann baca disini ), kita bisa menghidupkan kembali suara ikonik itu – bukan hanya untuk nostalgia, tapi untuk aplikasi nyata. Dalam proyek ini, saya berhasil membuat sistem pelaporan suhu dan kelembaban otomatis menggunakan sensor DHT11, yang kemudian "dibacakan" oleh suara digital vintage dan dikirim ke speaker Bluetooth. Mari kita telusuri sejarah menakjubkan di balik teknologi ini, dan bagaimana ia masih relevan di era IoT.


Dari Lab TI ke Mainstream: Kelahiran TMS5100 dan Revolusi Speech Synthesis

Pada akhir 1970-an, Texas Instruments (TI) merilis sebuah chip revolusioner: TMS5100. Ini bukan sekadar chip audio biasa. TMS5100 adalah prosesor LPC (Linear Predictive Coding) pertama yang dikomersialkan, mampu mensintesis suara manusia dari data terkompresi dengan sangat efisien – bahkan dengan memori yang sangat terbatas.

Teknologi LPC bekerja dengan memodelkan saluran vokal manusia secara matematis, bukan merekam suara asli. Alih-alih menyimpan audio mentah, chip ini menyimpan parameter seperti frekuensi fonasi, resonansi (formant), dan energi suara. Saat diaktifkan, ia "membangun" suara dari parameter ini, menghasilkan ucapan yang terdengar mekanis, tetapi cukup jelas untuk dipahami.


TMS5100 menjadi jantung dari berbagai produk populer:




  • Speak & Spell (1978): Mainan edukasi TI yang mengajarkan ejaan dengan suara robotik yang ikonik.
  • TI-99/4A Home Computer: Dengan modul ekspansi speech, komputer rumahan ini bisa berbicara.
  • Game Arcade Atari: Suara Darth Vader yang mengintimidasi di Star Wars Arcade (1983) dihasilkan oleh TMS5220, penerus TMS5100.
  • BBC Micro dan Apple Echo II: Menunjukkan bahwa teknologi ini diadopsi luas di dunia komputasi awal.
  • Suara dari chip-chip ini menjadi simbol era digital awal – suara dari masa depan yang dibayangkan di masa lalu.


Talkie: Membangkitkan Kembali Warisan TI di Abad 21

Talkie adalah proyek open-source yang menghidupkan kembali arsitektur TMS5100 secara perangkat lunak. Dikembangkan oleh Peter Knight dan dikembangkan lebih lanjut oleh Phil Schatzmann (pschatzmann), Talkie bukan emulator perangkat keras, melainkan reimplementasi algoritma LPC yang digunakan oleh TMS5100, dikompilasi menjadi kode C++ yang ringan dan platform-independent.


Yang membuat Talkie sangat menarik:

  • Header-only dan ringan: Cocok untuk mikrokontroler seperti ESP32.
  • Menghasilkan PCM 16-bit @ 8 kHz: Format dasar yang bisa diproses lebih lanjut.
  • Vokabular siap pakai: Termasuk Vocab_US_Large.h yang berisi ratusan kata seperti "temperature", "is", "degrees", "button", dan angka.
  • Kemampuan baca angka dan float: Bisa mengucapkan angka desimal secara otomatis.

Contoh vocabulary yang paling lengkap dan bisa kamu kreasikan sendiri  jika ada waktu : https://github.com/ptwz/python_wizard



Dengan Talkie, kita tidak hanya mendapatkan suara vintage – kita mendapatkan mesin TTS (Text-to-Speech) analog digital yang bisa digunakan untuk sistem informasi otomatis, tanpa bergantung pada cloud atau AI besar.


Proyek: Sistem Pelaporan Suhu Otomatis dengan ESP32 dan Bluetooth

Saya memanfaatkan kekuatan Talkie untuk membuat sistem yang fungsional dan futuristik-nostalgik sekaligus:


ESP32 membaca data dari sensor DHT11, lalu "mengucapkan" suhu dan kelembaban melalui speaker Bluetooth dengan suara robotik khas tahun 80-an. Jika tidak ada aktivitas selama 10 detik, sistem secara otomatis melaporkan kondisi terkini. 


Arsitektur Sistem

  • Sensor: DHT11 membaca suhu & kelembaban.
  • Sintesis Suara: Library TalkiePCM menghasilkan ucapan dari vokabular TI.
  • Konversi Format: Audio 8 kHz dari Talkie di-upsample ke 44.1 kHz agar kompatibel dengan Bluetooth A2DP.
  • Output Nirkabel: Data dikirim via A2DPStream ke speaker Bluetooth.
  • Interaksi: Dua tombol fisik untuk memicu pesan khusus ("Button one is press").
  • Integrasi dengan AudioTools


Karena Talkie hanya menghasilkan data PCM mentah, saya menggunakan AudioTools oleh pschatzmann untuk menghubungkannya ke dunia nyata:

  1. FormatConverterStream: Mengubah 8kHz → 44.1kHz.
  2. BufferedStream: Menjamin aliran data halus.
  3. A2DPStream: Mengirim audio ke Bluetooth dengan nama perangkat "K1".


FormatConverterStream out(a2dp);

BufferedStream bs(1024, out);

TalkiePCM voice(bs, 2); // Output ke stream dengan stereo



Setiap kali saya memanggil:


voice.say(sp3_TEMPERATURE);

voice.sayFloat(t, 2, 0, 1);

voice.say(sp3_CELCIUS);

bs.flush();


...ESP32 secara real-time menghasilkan suara "temperature is twenty three point five degrees" – dengan aksen robotik yang khas, lalu mengirimkannya ke speaker.


Berikut adalah contoh kode lengkap, sesuaikan dengan pin esp32 yg kamu pakai:

#include "AudioTools.h"
#include "AudioTools/AudioCodecs/CodecMP3Helix.h"
#include "AudioTools/AudioLibs/A2DPStream.h"
#include "TalkiePCM.h"
#include "Vocab_US_Large.h"
#include "DHT.h"

// Definisikan pin tombol
const int PIN_BUTTON_1 = 22; // Tombol untuk memutar audio 1
const int PIN_BUTTON_2 = 21; // Tombol untuk memutar audio 2

// === Bluetooth Name Sesuaikan dengan nama speaker kamu ===
const char* BT_NAME = "K1";

// === Audio Info seperti di contoh ===
AudioInfo from(8000, 2, 16);  // TTS (input: 8kHz, stereo - meski mono, kita isi 2)
AudioInfo to(44100, 2, 16);   // A2DP (output: 44.1kHz, stereo)

// === Stream ===
A2DPStream a2dp;
FormatConverterStream out(a2dp);
BufferedStream bs(1024, out);  // Buffer untuk smooth playback
TalkiePCM voice(bs, from.channels);

#define DHTTYPE DHT11  //Sensor DHT11
const int dhtPin = 23; //PIN DHT11 di ESP32


DHT dht(dhtPin, DHTTYPE);

// === Timer Idle ===
unsigned long lastActivity = 0;
const unsigned long IDLE_TIMEOUT = 10000; // 30 detik

void setup() {
  Serial.begin(115200);

  pinMode(PIN_BUTTON_1, INPUT_PULLUP);
  pinMode(PIN_BUTTON_2, INPUT_PULLUP);
    
  AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
  Serial.println(" TalkiePCM to A2DP - Dengan Idle Timer 30 Detik");
   
  // Setup konversi format: 8kHz → 44.1kHz, mono → stereo
  out.begin(from, to);
  
  // Setup Bluetooth
  auto cfg = a2dp.defaultConfig(TX_MODE);
  cfg.name = BT_NAME;
  cfg.silence_on_nodata = true;
  a2dp.begin(cfg);
  a2dp.setVolume(0.8);

  delay(2000); // Beri waktu Bluetooth stabil

  Serial.println(" Siap. Play Suhu dan Tekan tombol kapan saja...");

  dht.begin();

  playTemp();
  // Simpan waktu terakhir aktivitas
  lastActivity = millis();
}


void playTemp(){
   
 
    float h = dht.readHumidity();
    float t = dht.readTemperature();

    bool fail = false;

    if (isnan(h) || isnan(t)) {
      Serial.println("Failed to read from DHT sensor!");
      fail =true;
    }
    
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" °C ");
  
    //ngomong temp
    voice.say(sp4_THE);
    voice.say(sp3_TEMPERATURE);
    voice.say(sp2_IS);
    if(!fail){
       voice.sayFloat(t,2,0,1);
       voice.say(sp3_CELCIUS);
      }
     else{
       voice.say(sp2_DEVICE);
       voice.say(sp3_ERROR); 
     }
    delay(200);
    voice.say(sp4_PLEASE);
    voice.say(sp2_PRESS);
    voice.say(sp2_A);
    voice.say(sp2_BUTTON);
    bs.flush();
  }

void loop() {
  unsigned long now = millis();

  // Cek tombol 1
  if (digitalRead(PIN_BUTTON_1) == LOW) {
    Serial.println(" Tekan 1: Button one is press");
    delay(50);
    if (digitalRead(PIN_BUTTON_1) == LOW) {
      voice.say(sp2_BUTTON);
      voice.say(sp2_ONE);
      voice.say(sp2_IS);
      voice.say(sp2_PRESS);
      bs.flush();
      lastActivity = now; // Reset timer
    }
    while (digitalRead(PIN_BUTTON_1) == LOW) delay(10);
  }

  // Cek tombol 2
  if (digitalRead(PIN_BUTTON_2) == LOW) {
    Serial.println(" Tekan 2: Button two is press");
    delay(50);
    if (digitalRead(PIN_BUTTON_2) == LOW) {
      voice.say(sp2_BUTTON);
      voice.say(sp2_TWO);
      voice.say(sp2_IS);
      voice.say(sp2_PRESS);
      bs.flush();
      lastActivity = now; // Reset timer
    }
    while (digitalRead(PIN_BUTTON_2) == LOW) delay(10);
  }

  // Cek idle: jika tidak ada aktivitas selama 10 detik
  if (now - lastActivity > IDLE_TIMEOUT) {
    Serial.println(" Idle 10 detik: memutar suhu");

    playTemp();
    lastActivity = now; // Reset timer setelah main
  }

  delay(10); // Stabilisasi loop
}





Fitur Cerdas: Mode Idle Otomatis

Salah satu fitur menarik adalah mode idle. Jika tidak ada tombol yang ditekan selama 10 detik, sistem otomatis memutar pembacaan suhu terbaru:


Ini membuat sistem sangat cocok untuk:


  • Panel informasi cuaca mini di rumah.
  • Sistem monitoring IoT yang memberi laporan berkala.
  • Instalasi seni interaktif dengan nuansa retro-futuristik.


Mengapa Ini Penting di Era Modern?

Di tengah dominasi AI dan cloud, proyek seperti ini mengingatkan kita bahwa:


  • Komputasi edge bisa tetap cerdas tanpa internet.
  • Efisiensi dan kemandirian lebih penting daripada kompleksitas.
  • Nostalgia teknologi bisa menjadi inspirasi desain.
  • Talkie tidak hanya tentang suara – ia adalah penghormatan terhadap inovasi masa lalu yang masih bisa digunakan hari ini untuk membuat sesuatu yang unik, fungsional, dan menyenangkan.


Kesimpulan: Masa Lalu yang Masih Bisa Berbicara

Dengan kombinasi:

  • Sejarah chip TMS5100,
  • Rekayasa ulang oleh TalkiePCM,
  • Kemudahan integrasi melalui AudioTools,
  • Dan kreativitas dalam aplikasi IoT,

Saya berhasil membuat sistem yang bukan hanya bekerja, tapi berkarakter. Suara robotik yang keluar dari speaker Bluetooth bukan sekadar informasi – ia adalah nada waktu, pengingat bahwa teknologi lama tetap bisa bernyawa di tangan pembuat yang kreatif.

Jika Anda ingin membuat proyek IoT yang tidak hanya pintar, tapi juga punya jiwa, cobalah hidupkan kembali suara dari masa lalu. Karena terkadang, masa depan terdengar seperti tahun 1982.








Proyek ini menggunakan: ESP32, DHT11, TalkiePCM, Vocab_US_Large, AudioTools, dan A2DP. Semua kode open-source dan tersedia untuk dikembangkan lebih lanjut.

Share:

[ESP32-A2DP] MP3 player menggunakan SD Card dan kirim ke speaker Bluetooth

Pada artikel sebelumnya, kita telah membahas cara membuat suara sirene digital menggunakan ESP32 dan mengirimkannya melalui Bluetooth A2DP dengan bantuan library AudioTools oleh pschatzmann. Kali ini, kita akan melangkah lebih jauh dengan memanfaatkan kemampuan ESP32 untuk memutar file audio MP3 dari kartu SD dan mengalirkannya ke perangkat speaker Bluetooth secara nirkabel menggunakan protokol A2DP.



Namun, ada satu hal penting yang perlu ditekankan: dengan konfigurasi dan library tertentu — khususnya kombinasi AudioSourceSDFAT, CodecMP3Helix, dan A2DPStream — sistem ini hanya mampu memutar semua file MP3 pada scdard secara otomatis dan berulang (loop), tanpa kemampuan memilih file lain secara dinamis. Artikel ini akan menjelaskan mengapa hal ini terjadi, bagaimana sistem bekerja, serta batasan-batasan teknis yang perlu dipahami oleh pengembang.


1. Arsitektur Sistem: Alur Pemutaran Audio

Untuk memutar file MP3 dari SD card ke speaker Bluetooth, kita membutuhkan beberapa komponen utama:


  1. ESP32 – Sebagai mikrokontroler utama.
  2. Kartu SD – Menyimpan file audio MP3.
  3. Library AudioTools – Framework audio modular oleh pschatzmann.
  4. Codec MP3Helix – Untuk mendekode file MP3.
  5. A2DPStream – Untuk mengirim audio ke perangkat Bluetooth.
  6. AudioSourceSDFAT – Untuk membaca data dari SD card.






Alur kerjanya adalah:


  1. ESP32 membaca file MP3 dari SD card.
  2. File tersebut didekode menggunakan codec MP3Helix.
  3. Data audio dalam format PCM dikirim ke A2DPStream.
  4. A2DPStream mengirimkan data ke perangkat Bluetooth (seperti speaker atau headphone).
  5. Proses ini berjalan terus-menerus (loop) selama perangkat menyala.


2. Kode Dasar untuk Pemutaran MP3 via A2DP

Berikut adalah contoh kode minimal menggunakan library yang disebutkan:

#define HELIX_LOGGING_ACTIVE true

#include "AudioTools.h"
#include "AudioTools/AudioLibs/A2DPStream.h"
#include "AudioTools/Disk/AudioSourceSDFAT.h"
#include "AudioTools/AudioCodecs/CodecMP3Helix.h"

// === SD Card Pins ===
#define SD_CS   5
#define SD_MOSI 23
#define SD_MISO 19
#define SD_SCK  18

// === Konfigurasi ===
const char *startFilePath = "/"; //pindahkan file mp3 ke sdcard 
const char* ext = "mp3";

// === Objek Audio ===
AudioSourceSDFAT source(startFilePath, ext);
A2DPStream out;
MP3DecoderHelix decoder;
AudioPlayer player(source, out, decoder);

void setup() {
  Serial.begin(115200);
  AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Warning);

  // Setup SPI dengan pin kamu
  SPI.begin(SD_SCK, SD_MISO, SD_MOSI, SD_CS);

  // Setup player
  player.setVolume(0.8);  // 0.0 - 1.0
  player.begin();

  // Setup Bluetooth
  auto cfg = out.defaultConfig(TX_MODE);
  cfg.silence_on_nodata = true;
  cfg.name = "K1";  //  Ganti jadi nama speaker BT kamu
  out.begin(cfg);

  Serial.println(" Siap memutar MP3 ke K1...");
}

void loop() {
  player.copy();  // Otomatis mainkan file .mp3 dari SD
}



3. Bagaimana Pemilihan File Dilakukan?

Perhatikan bahwa dalam kode di atas, tidak ada perintah eksplisit untuk memilih nama file tertentu. Ini karena AudioSourceSDFAT — dalam konfigurasi default — secara otomatis membuka file pertama yang ditemukan di root direktori SD card dengan ekstensi .mp3.


Artinya:


  • Jika Anda memiliki file alarm.mp3, music.mp3, dan siren.mp3 di SD card, maka satu persatu fileakan diputar — biasanya yang pertama menurut urutan pembacaan sistem file (FAT).
  • Tidak ada fungsi seperti source.open("siren.mp3") yang tersedia secara langsung dalam implementasi dasar AudioSourceSDFAT saat digunakan dengan AudioPlayer dan A2DPStream.


4. Mengapa Tidak Bisa Memilih File Secara Bebas?

Ada beberapa alasan teknis mengapa pemilihan file dinamis tidak didukung secara langsung dalam pendekatan ini:


a. Abstraksi Tingkat Tinggi

Library AudioTools dirancang untuk mempermudah alur data audio, bukan sebagai sistem manajemen file. AudioSourceSDFAT bertindak sebagai source pasif yang hanya menyediakan data mentah, dan AudioPlayer mengharapkan sumber yang siap digunakan tanpa intervensi pengguna.


b. Keterbatasan A2DPStream

A2DPStream adalah output stream yang bersifat continuous. Begitu koneksi Bluetooth terbentuk, ia mengharapkan aliran data tanpa henti. Jika kita ingin berganti file, kita harus:


  • Menghentikan stream,
  • Mengganti file di sumber,
  • Memulai ulang koneksi A2DP.
  • Proses ini tidak stabil dan sering menyebabkan koneksi Bluetooth terputus atau speaker gagal reconnect.


c. Tidak Ada Event Callback untuk Akhir File

Dalam konfigurasi ini, saat file MP3 selesai diputar, AudioPlayer secara otomatis melakukan loop ke awal file yang sama, bukan melanjutkan ke file berikutnya. Tidak ada event seperti onFinish() yang bisa digunakan untuk beralih ke file lain.


5. Sistem Ini Dirancang untuk Pemutaran Loop Otomatis

Justru karena keterbatasan ini, sistem ini sangat cocok untuk aplikasi yang membutuhkan pemutaran terus-menerus dari satu file, seperti:


  • Alarm atau sirene darurat yang harus berbunyi terus hingga dimatikan.
  • Panduan suara di pameran yang memutar satu rekaman berulang-ulang.
  • Speaker background music di toko kecil dengan satu playlist statis.


Keuntungannya:


  • Stabil: Tidak ada perpindahan file yang bisa merusak koneksi Bluetooth.
  • Sederhana: Tidak perlu logika kompleks untuk manajemen file.
  • Hemat sumber daya: Cocok untuk sistem embedded dengan memori terbatas.


6. Solusi Alternatif (Jika Ingin Pemilihan File)

Jika Anda benar-benar membutuhkan kemampuan memilih file, beberapa opsi yang bisa dipertimbangkan:


  • Gunakan SPIFFS atau SD card dengan daftar file statis dan buat logika manual untuk mengganti sumber.
  • Restart seluruh pipeline audio (player.end(), ganti file, player.begin()).
  • Gunakan Bluetooth Sink + ESP32 sebagai penerima, lalu keluarkan ke DAC/I2S — lebih stabil untuk kontrol file.
  • Gunakan platform lain seperti ESP32-S3 dengan dukungan RTOS dan codec lebih baik.
  • Namun, semua ini keluar dari lingkup kemudahan yang ditawarkan oleh AudioSourceSDFAT + A2DPStream secara default.


Silahkan baca bagaimana memutar file Mp3 untuk pembacaan LM35 disini : https://www.aisi555.com/2024/05/esp8266-kirim-data-suhu-lm35-lewat.html


7. Kesimpulan: Simplicity with a Trade-off

Kombinasi library:


#include "AudioTools.h"

#include "AudioTools/AudioLibs/A2DPStream.h"

#include "AudioTools/Disk/AudioSourceSDFAT.h"

#include "AudioTools/AudioCodecs/CodecMP3Helix.h"


menawarkan solusi cepat, mudah, dan stabil untuk memutar satu file MP3 dari SD card secara loop terus-menerus melalui Bluetooth A2DP.

Namun, pengguna harus menerima kenyataan bahwa sistem ini tidak dirancang untuk navigasi file atau pemilihan lagu dinamis. Ini bukan kelemahan, melainkan konsekuensi dari desain yang mengutamakan kesederhanaan dan keandalan.

Jika proyek Anda membutuhkan pemutaran otomatis tanpa intervensi, seperti sistem alarm, panduan otomatis, atau iklan berulang, maka pendekatan ini sangat ideal. Tapi jika Anda ingin membuat music player dengan playlist dan kontrol, Anda perlu mempertimbangkan arsitektur yang lebih kompleks.

Dengan memahami batasan ini sejak awal, Anda bisa merancang sistem yang realistis, efisien, dan sesuai kebutuhan — tanpa frustrasi karena ekspektasi yang salah terhadap kemampuan library.

AudioTools tetap menjadi salah satu library paling powerful untuk proyek audio di ESP32, selama kita tahu apa yang bisa dan tidak bisa dilakukannya.

Share:

[ESP32-A2DP] Berkenalan dengan library siap pakai AudioTools - Membuat Sirene

Dalam era Internet of Things (IoT), mikrokontroler seperti ESP32 telah menjadi pilihan populer karena kemampuannya yang luar biasa, termasuk konektivitas Wi-Fi dan Bluetooth. Salah satu fitur menarik dari ESP32 adalah dukungan terhadap Bluetooth A2DP (Advanced Audio Distribution Profile), yang memungkinkan perangkat mengirimkan aliran audio berkualitas tinggi ke perangkat audio nirkabel seperti speaker Bluetooth. Dengan memanfaatkan library AudioTools yang dikembangkan oleh pschatzmann, proses pengiriman audio melalui A2DP menjadi jauh lebih mudah dan terstruktur.





Pada artikel ini, kita akan membahas bagaimana ESP32 dapat digunakan untuk menghasilkan suara sirene digital dan mengirimkannya ke speaker Bluetooth menggunakan protokol A2DP dengan bantuan library AudioTools. Pembahasan akan mencakup dasar teori, arsitektur sistem, serta konsep pembangkitan sinyal audio secara real-time.


1. Apa itu A2DP dan Mengapa ESP32 Cocok untuk Ini?

A2DP adalah protokol Bluetooth yang memungkinkan transmisi data audio secara nirkabel dari sumber (seperti smartphone atau mikrokontroler) ke perangkat penerima (seperti headphone atau speaker). ESP32 dilengkapi dengan modul Bluetooth dual-mode (Classic Bluetooth dan BLE), sehingga mampu bertindak sebagai sumber audio A2DP (Source).

Dengan fitur ini, ESP32 bisa digunakan sebagai pemutar musik, interkom nirkabel, atau bahkan sistem peringatan seperti sirene darurat yang dikirim ke speaker Bluetooth di lokasi tertentu.


2. Peran Library AudioTools oleh pschatzmann

Salah satu tantangan dalam pengembangan aplikasi audio di ESP32 adalah kompleksitas manajemen buffer, codec, dan sinkronisasi aliran data. Di sinilah library AudioTools oleh pschatzmann sangat membantu. Library ini menyediakan abstraksi tingkat tinggi yang mempermudah proses pembuatan, manipulasi, dan transmisi audio.


Beberapa keunggulan AudioTools:

  1. Mendukung berbagai format audio (WAV, MP3, RAW, dll).
  2. Memiliki antarmuka modular untuk input, output, dan prosesor audio.
  3. Integrasi langsung dengan A2DP melalui BluetoothA2DPSink atau BluetoothA2DPSource.
  4. Mudah digunakan dengan sintaks yang intuitif.


Untuk proyek ini, kita akan menggunakan BluetoothA2DPSink agar ESP32 dapat menerima audio, tetapi karena tujuan kita adalah mengirim audio sirene, maka kita sebenarnya membutuhkan mode A2DP Source. Namun, perlu dicatat bahwa implementasi A2DP Source di ESP32 masih terbatas dibandingkan Sink. Oleh karena itu, alternatifnya adalah menghasilkan audio secara internal dan mengirimkannya melalui koneksi Bluetooth sebagai sumber virtual, atau menggunakan pendekatan lain seperti mengirim audio melalui DAC atau I2S, lalu memancarkannya via Bluetooth dari perangkat lain.

Namun, dengan perkembangan library AudioTools, pschatzmann telah menyediakan dukungan eksperimental untuk A2DP Source, yang memungkinkan ESP32 berperan sebagai pengirim audio. Ini adalah kunci dari proyek kita.


3. Konsep Pembangkitan Suara Sirene Digital

Suara sirene umumnya merupakan gelombang suara dengan frekuensi yang berubah-ubah secara periodik, seperti naik-turun (wailing) atau berdenyut (yelp). Untuk menghasilkan efek ini secara digital, kita bisa menggunakan osilator gelombang sinus dengan frekuensi yang dimodulasi terhadap waktu.


Secara matematis, sinyal sirene dapat direpresentasikan sebagai:


s(t)=A⋅sin(2Ï€⋅f(t)⋅t)

di mana:

A adalah amplitudo (volume),

f(t) adalah frekuensi yang berubah terhadap waktu (misalnya, dari 500 Hz ke 1500 Hz secara linier).


Modulasi frekuensi ini bisa diimplementasikan dengan memvariasikan nilai frekuensi osilator dalam loop utama program. ESP32 cukup cepat untuk menghitung nilai sinus ini secara real-time menggunakan fungsi sin() dari C++ (dengan optimasi jika perlu).


4. Arsitektur Sistem

Berikut adalah komponen utama sistem:


  1. ESP32 – Sebagai otak sistem, menghasilkan sinyal audio dan mengelola koneksi Bluetooth.
  2. Library AudioTools – Menyediakan framework untuk pembangkitan dan transmisi audio.
  3. Bluetooth A2DP Source – Mengirimkan aliran audio ke perangkat penerima.
  4. Speaker Bluetooth – Perangkat yang menerima dan memutar suara sirene.


Alur kerja sistem:


  1. ESP32 menginisialisasi modul Bluetooth dalam mode A2DP Source.
  2. Secara berkala, ia menghasilkan sampel audio sirene (dalam bentuk array nilai 16-bit signed).
  3. Sampel ini dikirim ke buffer audio yang dikelola oleh AudioTools.
  4. Library AudioTools menangani enkapsulasi data ke format A2DP dan transmisi nirkabel.
  5. Speaker Bluetooth menerima data, mendekode, dan memutar suaranya.


5. Implementasi Teoritis - Praktek dengan AudioTools

Untuk membuat sirene, kita bisa membuat kelas atau fungsi yang menghasilkan sampel audio setiap waktu. Berikut adalah gambaran kode teoritis:

Silahkan download library yang sesuai di googling saja dengan kata kunci :  AudioTools - Pschatzmann dan ESP32-A2DP

Test 1 - Tone Generator : 

#include "BluetoothA2DPSource.h"
#include <math.h>

// Objek utama untuk mengelola koneksi Bluetooth
BluetoothA2DPSource a2dp_source;

// Frekuensi nada yang akan dihasilkan dalam Hz (A4)
#define A4_FREQUENCY 1000.0

// Variabel untuk melacak waktu/fase agar gelombang sinyal kontinu
static float m_time = 0.0;

// Fungsi callback untuk menghasilkan data audio
int32_t get_data_frames(Frame *frame, int32_t frame_count) {
  // Volume, dari -32,768 hingga 32,767
  float m_amplitude = 10000.0;
  // Interval waktu antar sampel, untuk sample rate 44.1 kHz
  float m_deltaTime = 1.0 / 44100.0;
  float pi_2 = PI * 2.0;

  // Isi buffer frame dengan data sinyal
  for (int sample = 0; sample < frame_count; ++sample) {
    // Hitung sudut untuk gelombang sinus
    float angle = pi_2 * A4_FREQUENCY * m_time;
    // Hasilkan sinyal
    int16_t signal = (int16_t)(m_amplitude * sin(angle));
    
    // Isi data ke kedua saluran (stereo)
    frame[sample].channel1 = signal;
    frame[sample].channel2 = signal;
    
    // Majukan waktu
    m_time += m_deltaTime;
  }
  return frame_count;
}

// Callback untuk melacak status koneksi
void connection_state_changed(esp_a2d_connection_state_t state, void *ptr){
  Serial.println(a2dp_source.to_str(state));
}

void setup() {
  Serial.begin(115200);
  a2dp_source.set_auto_reconnect(false);
  a2dp_source.set_on_connection_state_changed(connection_state_changed);
  a2dp_source.set_data_callback_in_frames(get_data_frames);
  a2dp_source.set_volume(100);
  a2dp_source.start("K1"); // Ubah K1 dengan nama speaker BT anda
}

void loop() {
  // Hanya jeda untuk mencegah watchdog timer
  delay(10);
}


Test 2- Sirene Generator : 

#include "AudioTools.h"
#include "BluetoothA2DPSource.h"

using namespace audio_tools;

// Generator dan Bluetooth
SineWaveGenerator<int16_t> sine_gen;
BluetoothA2DPSource a2dp_source;

// Konfigurasi sirene
#define SIRENE_FREQ_1 800.0f
#define SIRENE_FREQ_2 1000.0f
#define DURATION_S_TONE 0.5f  // 0.5 detik

// State
float current_frequency = SIRENE_FREQ_1;
float time_of_last_switch = 0.0f;
float m_time = 0.0f;
const float sample_rate = 44100.0f;

// Buffer
const int FRAME_COUNT = 1024;
int16_t buffer_mono[FRAME_COUNT];
Frame buffer_stereo[FRAME_COUNT];  // channel1 & channel2

// Callback: generate audio data
int32_t get_data_frames(Frame *frame, int32_t frame_count) {
  // Ganti frekuensi setiap DURATION_S_TONE detik
  if (m_time - time_of_last_switch >= DURATION_S_TONE) {
    current_frequency = (current_frequency == SIRENE_FREQ_1) ? SIRENE_FREQ_2 : SIRENE_FREQ_1;
    time_of_last_switch = m_time;
    sine_gen.setFrequency(current_frequency);
  }

  // Gunakan readBytes() — memindah byte audio
  size_t bytes_to_read = frame_count * sizeof(int16_t);
  size_t bytes_read = sine_gen.readBytes((uint8_t*)buffer_mono, bytes_to_read);
  size_t samples_read = bytes_read / sizeof(int16_t);

  // Konversi mono → stereo
  for (int i = 0; i < samples_read; i++) {
    frame[i].channel1 = buffer_mono[i];
    frame[i].channel2 = buffer_mono[i];
  }

  // Update waktu
  m_time += samples_read / sample_rate;

  return samples_read;
}

// Callback: status koneksi Bluetooth
void connection_state_changed(esp_a2d_connection_state_t state, void *ptr) {
  Serial.println(a2dp_source.to_str(state));
}

void setup() {
  Serial.begin(115200);
  while (!Serial);

  // Konfigurasi audio
  AudioInfo cfg;
  cfg.sample_rate = 44100;
  cfg.channels = 1;
  cfg.bits_per_sample = 16;

  // Inisialisasi generator
  sine_gen.begin(cfg);
  sine_gen.setFrequency(SIRENE_FREQ_1);      // Mulai dari 800 Hz
  sine_gen.setAmplitude(10000.0f);           // Amplitude ~30% dari max

  // Setup Bluetooth
  
  a2dp_source.set_auto_reconnect(true);
  a2dp_source.set_volume(100);  // 0–100
  a2dp_source.set_on_connection_state_changed(connection_state_changed);
  a2dp_source.set_data_callback_in_frames(get_data_frames);

  Serial.println("Mencoba terhubung ke speaker 'K1'...");
  a2dp_source.start("K1"); //Sesuaikan dengan nama speaker BT anda
}

void loop() {
  delay(10);
}


6. Tantangan dan Solusi

Keterbatasan A2DP Source di ESP32: ESP-IDF lebih mendukung A2DP Sink. Implementasi Source masih dalam pengembangan. Solusi: Gunakan versi terbaru library AudioTools yang telah mengatasi sebagian besar isu ini.

  1. Kualitas Audio: Penggunaan fungsi sin() secara real-time bisa memberatkan CPU. Optimasi dengan lookup table (LUT) sinus dapat mengurangi beban prosesor.
  2. Latensi dan Buffering: Pastikan buffer audio cukup besar untuk menghindari crackling atau putus-putus suara.
  3. Daya Baterai: Transmisi Bluetooth konstan memakan daya. Untuk aplikasi portabel, pertimbangkan untuk mengaktifkan sirene hanya saat diperlukan.


7. Aplikasi Nyata

Sistem ini bisa digunakan dalam berbagai skenario:


  1. Alarm rumah pintar yang memicu sirene melalui speaker Bluetooth di seluruh rumah.
  2. Sistem peringatan bencana berbasis IoT.
  3. Proyek edukasi tentang pemrosesan sinyal digital dan komunikasi nirkabel.


Kesimpulan

Dengan kombinasi ESP32, library AudioTools oleh pschatzmann, dan protokol Bluetooth A2DP, kita dapat membangun sistem audio yang canggih namun tetap sederhana secara konseptual. Pembuatan suara sirene digital adalah contoh nyata bagaimana mikrokontroler modern bisa digunakan tidak hanya untuk kontrol logika, tetapi juga untuk pemrosesan sinyal waktu-nyata.

Meskipun ada tantangan teknis, terutama terkait dukungan A2DP Source, perkembangan library open-source seperti AudioTools terus mempermudah pengembangan aplikasi audio di platform ESP32. Dengan sedikit pemahaman tentang dasar-dasar gelombang suara dan modulasi frekuensi, siapa pun bisa membuat sistem audio nirkabel yang fungsional dan kreatif.

Proyek ini membuka pintu bagi eksplorasi lebih lanjut, seperti menambahkan kontrol jarak jauh via Wi-Fi, menyimpan audio dalam SD card, atau bahkan menggabungkan dengan sensor untuk sistem alarm otomatis. Dunia audio di IoT menanti untuk dieksplorasi!

Share:

Sabtu, 09 April 2022

Modifikasi Mic TaffStudio BM 800 Untuk Mengurangi Noise Floor dan Feedback Saat Live Via Speaker

 


Mikrofon untuk podcast yang paling viral dan termurah saat ini adalah seri BM800 yang merupakan clone dari berbagai mikrofon podcast kelas menengah. Kenapa clone? karena jika ditelusuri maka rangkaian dari preamp atau jeroan dari mic ini sangat umum dibagikan pada forum atau group yang membahas tentang audio. Sehingga dengan menggunakan bahan komponen elektronik dan bahan besi body yang kelas bawah, membuat harga jual dari mic ini cukup membuat ngeri produsen mic untuk perang menurunkan harga. Namun kualitasnya dapat dihandalkan juga kok, jadi jangan takut.


Berdasarkan pengalaman Aisi555 dalam pemanfaatan mic ini, terutama saat perbaikan audio system di Pura Agung Jagat Karana Surabaya (baca disini) , mic Taffstudio (atau kadang ada yg memberi label merek Taffware) BM 800 dan yang sejenis memiliki karakteristik seperti ini :



Dari rangkaian preamp yang umum ditemukan di internet, maka mic ini dapat langsung digunakan untuk rekaman di PC atau di smartphone dengan memainkan gain lebih tinggi namun dengan kompensasi desis yg lumayan menggangu. Untuk suara lebih bagus maka diperlukan Phantom Power atau mixer yang rangkaiannya dapat dibuat dari komponen sederhana seperti dibahas disini.





Selanjutnya jika diperhatikan jeroannya menggunakan pickup mic condenser dengan arah yang ke samping body seperti pada gambar dibawah :



Sehingga dalam penggunaan untuk podcast atau menyanyi diharapkan suara datang dari arah logo atau tulisan TaffStudio BM800.



Mikrofon ini sebenarnya khusus untuk penggunaan rekaman di studio atau jika ingin merekam suara alam dengan latar belakang ambience air mengalir, kicauan burung dan sebagainya. Jadi karena rangkaiannya memiliki gain yang cukup tinggi maka mic ini memiliki noise floor atau background noise yg cukup tinggi. Silahkan gunakan headset dan perhatikan suara yang saya rekam ini, sehingga mendengar suara desis,  denging pompa air jetpump serta kicauan burung tetangga saya.




Karena gain yang cukup tinggi, maka untuk penggunaan live speaker out seperti karaoke maupun rekaman pada panggung, feedback akan sangat mudah terbentuk. Ini dikarenakan tingkat Noise Floor atau ambience pick up nya yang sangat sensitif, seperti yang ditemukan pada video youtube di link ini.

Untuk itu perlu diturunkan Gain nya agar lebih leluasa mengatur pada mixer saat penggunaan live atau speaker. Rangkaian tambahannya cukup sederhana dengan modal komponen tidak lebih dari 5000 rupiah saja.



 
Penempatan komponennya bisa meniru yang saya lakukan seperti gambar berikut :




Dari beberapa forum audio yang membahas modifikasi BM 800 ada yang melakukan kombinasi Zener dan Resistor seperti ini :  Z 5.1 volt dengan R 470 ohm , Z 9.1 volt (aslinya) dengan R 560 ohm dan ada juga menggunakan Z 11 volt dengan R 1K ohm.  Jadi dapat disesuaikan dengan kegunaan dan karakteristik feedback audio sistem di lokasi pembaca.


Untuk melihat hasilnya dapat dibandingkan pada video berikut :




Bagaimana ? Berhasil bukan ? Saya harap ini dapat membantu mengurangi noise floor dan menghilangkan feedback mic TaffStudio BM 800 saat penggunaan live dengan speaker. Selamat mencoba !

Share:

Jumat, 08 April 2022

Rangkaian Phantom Power Untuk Mic BM 800 Dari Komponen Bekas

 



Microphone yang digunakan untuk podcast pada umumnya adalah jenis mic condenser walau ada juga ( terutama yang kelas atas ) menggunakan mikrofon dengan pickup dynamic. Seperti yg digunakan oleh om Deddy Corbuzier si raja podcast diatas microphonenya menggunakan merek Shure SM7B yang katanya ber bandrol 7 jutaan. Gila ? Ya ndaklah...bandingkan saja dengan kaliber tamu yang hadir dan juga jumlah viewer tiap kali mengunggah video. Jadi Harga mic ini menjadi sangat kecil dari presentase pendapatan dari adsense maupun endorse barang dan jasa yang berderet itu.

Lalu bagi pemula pilihan microphone buat podcast apa ya ? Banyak kok beredar di mana-mana dan bahkan yang termurah cukup menggunakan mic clip on 10 ribuan lalu pakai HP sebagai perekamnya. Yahh untuk gaya-gayaan kini sudah ada Mic Podcast sejuta umat bermerek TaffStudio BM800.


 


Mic ini sangat terjangkau, bahkan ada yang menjual 1 paket dengan stand mic khas podcast dan juga ada yg memberikan bonus USB soundcard. Kenapa dapat bonus USB soundcard? Apa tidak bisa langsung colok ke PC/Laptop atau smartphone ? Ya karena ada ciri khas mic condenser yang mengharuskan adanya rangkaian pre-amp ber-tergangan DC, dan benar saja mic TaffStudio BM800 mengharuskan penggunaan tegangan tambahan yg lazim disebut Phantom Power 48Volt. Jika colok langsung ke PC maka tegangan yg didapatkan hanya sebesar 5 volt saja dan suaranya menjadi agak kecil. Memang sih bisa diboost suara mic pada sound setting, namun akan ada desis dan dengung serta suara aneh yang ikutan keluar.




Untuk mendapatkan hasil yang bagus maka diperlukan perangkat tambahan berupa Mixer atau alat khusus yg dijual untuk mencatu daya mic condenser sebesar 48 volt. Apa sih phantom power itu ?

Menurut wikipedia Phantom power dalam konteks peralatan audio profesional, adalah daya listrik DC yang ditransmisikan melalui kabel mikrofon untuk mengoperasikan mikrofon yang terdapat sirkuit elektronik aktif didalamnya. Ini dikenal sebagai sumber daya yang nyaman untuk mikrofon kondensor, meskipun banyak perangkat audio aktif lainnya juga menggunakannya. Metode ini juga digunakan dalam aplikasi lain di mana catu daya dan komunikasi sinyal terjadi pada kedua kabel.


Catu daya phantom biasanya dipasang di konsol mixing, preamplifier mikrofon, dan peralatan serupa. Selain mengaktifkan sirkuit mikrofon, mikrofon kondensor tradisional juga menggunakan phantom power untuk mempolarisasi elemen transduser mikrofon.

Bagaimana jika tidak memiliki dana lebih untuk membeli mixer? Gampang, saya telah mencoba merangkai catu daya phantom dari gambar rangkaian jadul yg saya dapatkan di buku elektronika tahun 80-an . Mahal? Jangan khawatir, cukup hanya beberapa komponen bekas dan baterai 9 volt. Begini nih rangkaiannya :




Solderan saya tidak begitu rapi dan saya lakukan diatas pcb lubang, kalau mau rapi bisa juga menempatkan komponen yg jumlahnya sedikit ini ke box atau bahkan kedalam jack xlr / canon (kalau ketemu komponen bekas SMD).



hasilnya bagaimana? Dapat didengarkan pada video berikut :




Mudah bukan ? Kini rekaman podcast anda di Smartphone maupun PC dapat lebih jelas terdengar tanpa harus menaikkan gain pada pengaturan sound.


Selamat Mencoba

Share:

Kamis, 07 April 2022

Menata Audio Sistem Pura Menjadi Lebih Baik Dan Berkualitas [Part 3]

 



Lokasi pura umumnya pada ruang terbuka atau outdoor sehingga memiliki ke-khas-an sendiri dalam mengatur audio sistemnya. Untuk lokasi di pulau Bali mungkin cukup menghandalkan speaker corong / TOA untuk menghantarkan kidung, musik gamelan atau pengumuman ke masyarakat sekitar seperti yang sudah saya bahas di bagian ke- 2. Namun pada lokasi yang masyarakatnya majemuk dan memiliki " lawan " berupa speaker corong pada mushola atau masjid, maka cara yang elok dilakukan adalah melakukan pengaturan yg lebih ke arah kenyamanan bagi umat hindu yang akan bersembahayang di dalam lingkungan pura. Dan kali ini saya akan berbagi pengalaman memilih jenis dan mengatur penempatan mikrofon yang tepat untuk memberikan kenyamanan semua pihak dan sudah saya terapkan pada perbaikan audio sistem di Pura Agung Jagat Karana Surabaya.



- Mikrofon untuk pedanda / pemangku


Ada beberapa pilihan mikrofon yang dapat digunakan oleh pengurus audio pura untuk mendapatkan suara yg jernih dan tanpa feedback. Cara yang paling umum adalah menggunakan mikrofon biasa maupun mic kancing (clip on). Untuk mikrofon kabel biasa yang umum didapatkan di toko elektronika bertipe Dynamic - Cardioid yang memiliki pola tangkap suara seperti gambar berikut:



Dari teori dan praktek dilapangan maka mic ini memiliki tangkapan suara yang cukup pendek namun lebih tahan terhadap feedback / storing dari perangkat audio. Karena kegiatan pedanda yang cukup dinamis semisal melakukan gerakan tangan, membunyikan genta dan memercikkan air suci maka pilihan mic standar ini akan kurang tepat karena jangkauannya terbatas.



Salah seorang kawan aisi555 yang menjadi takmir masjid berbagi pengalaman tentang penggunaan mic clip on atau mic bando seperti pada gambar. Beberapa imam sholat yang masih muda mungkin tidak masalah menggunakan tipe ini namun masalah akan terjadi saat imam yg sudah sepuh akan mengalami kerepotan. Ketika saya korelasikan pada kasus yg saya hadapi dan dikonsultasikan ke pengguna yaitu pedande di pura perak surabaya, para sulinggih umumnya sudah sepuh dan pemakaian asesoris audio yang kurang dianggap " sukla " atau suci akan menghasilkan masalah tersendiri. Solusinya adalah menggunakan mikrofon tele / shotgun yang pola pickup suaranya lebih jauh dan fokus ke suara yg keluar dari bibir.



 

Dari teori yg saya dapatkan dan praktek langsung saat Ida Pandita memimpin sembahyang, mic condenser tele yang saya pilih (dari hasil menonton review di youtube) sangat berhasil menangkap suara dari kejauhan tanpa mengalami feedback. Mikrofon shotgun / tele yang saya pilih bermerek Krezt K 818.





Dengan bantuan pengaturan gain pada mixer sebesar 75%, bass off, middle 90% dan treble di jam 12 maka dari praktek saat upacara purnama dan tilem suara vokal dari pedanda dapat ditangkap oleh pickup mic condensernya debgan jarak cukup jauh lebih dari 1 meter. Keunggulan lainnya adalah pola suara fokus kedepan sehingga walau gain maksimum tidak didapati feedback yg berarti pada perangkat audio.





- Mikrofon untuk sekaa kidung dan gamelan





Ketika acara persembahyangan yg cukup penting semisal odalan, ngenteg linggih atau hari raya galungan, maka umumnya terdapat sekaa atau grup penyanyi kidung yang akan mengiringi upacara, dan umumnya anggotanya berjumlah banyak. Begitu juga dengan gamelan gong akan membutuhkan titik pengambilan suara yg banyak saat bermain musik tradisional. Namun semakin banyak titik microphone maka akan menghabiskan resource input mixer yg banyak, dan kebetulan mixer yg saya pakai hanya 8 buah input saja. Solusi yang saya ambil adalah menggunakan mikrofon kondenser yg memimiliki pickup patern ambience atau dengan kata lain lebih sensitif mengambil suara sekitar.




Pilihan jatuh ke mikrofon podcast sejuta umat TaffStudio BM 800 sebagai percobaan awal saya apakah mic yg khusus untuk studio recording ini mampu menghasilkan suara sesuai keinginan saya. Karena ketika saya coba untuk melakukan rekaman (tanpa speaker out) maka hasilnya sangat luar biasa bagus, persis seperti apa yg kita dengar dengan telinga saat di playback ulang. Namun berdasarkan review beberapa orang di youtube maupun blog, mic ini terlalu sensitif untuk penggunaan audio live yg keluar dari speaker. Dan benar saja ketika saya trial, gain dari mic ini sangat tinggi sehingga feedback tidak dapat dihindari.




Dari beberapa modifikasi yang saya temukan di forum maupun youtube, saya berhasil melakukan modifikasi microphone Taffstudio BM800 agar menurunkan gain sehingga saya lebih leluasa mengatur gain pada mixer. Untuk penyesuaian ditempat lain maka penggantian zener yg aslinya (bernilai 9 volt ) mungkin tidak perlu dilakukan. Gambar diatas yg saya lakukan adalah mengganti dengan zener bernilai 5.1 volt. Ada juga beberapa forum modifikasi yg sampai menggunakan zener 11 volt dan resistor 1 k ohm. Jadi dapat dicoba sesuai dengan karakter suara speaker dilokasi. Mungkin dilokasi pura pembaca, tempat sekaa kidung menyanyi terlindungi dari suara speaker, maka modifikasi diatas pun bisa diabaikan.


Mic taffware BM 800 atau sejenis (umumnya dinamakan mic podcast) membutuhkan fasilitas panthom power 48 volt sehingga mengharuskan penggunaan mixer yg support panthom power. Dan yang menjadi perhatian khusus adalah pickup patern suara yang cenderung dari samping body mic sehingga diupayakan suara penyanyi datang dari arah logo / tulisan taffware BM 800. 



- Microphone wireless

Untuk beberapa alasan teknis maupun kemudahan pengoperasian, maka dibutuhkan microphone wireless yang disesuaikan dengan anggaran serta kondisi di lapangan, seperti pada contoh denah berikut pada Pura Agung Jagat Karana Surabaya :



Kesulitan terjadi karena lokasi dari mixer ke mic pemangku terhalang oleh bangunan bale pawedan tempat ratu peranda duduk yg cukup tinggi, sehingga dengan jarak 50m akan sangat rentan terhadap gangguan pengiriman sinyal mic wireless UHF. Untuk kondisi sepi pengunjung mungkin tidak bermasalah karena sinyal ( yg didapatkan akibat pantulan ) masih dapat dianggap bagus, namun ini akan berbeda saat banyak pemedek sehingga sinyal sangat dipengaruhi oleh orang yg lalu lalang di depan mikrofon pemangku. Solusinya adalah menempatkan penerima microphone wireless lebih tinggi dibawah balai bambu tempat pandita duduk dan tidak menghalangi sinyal menuju ke mic pemangku dan lokasi diseputarnya. Gunakan sambungan jack DC dan kabel yg panjang untuk menghubungkan adaptor (syukur di lokasi ada kabel olor) dan juga kabel XLR / Mic menuju mixer. 

Cara lain juga bisa dilakukan yakni jika tipe antena pada penerima wirelesnya bisa dilepas maka dengan sambungan kabel antena yg tepat  posisi antena dapat diletakkan pada posisi yang LOS ( Line Of Sight ) tidak terhalang antara antena dengan mikrofon.


Pemilihan jenis wireless dapat disesuaikan dengan anggaran dan keperluan, semisal apabila sering ada kegiatan tari topeng sidakarya atau ngesolahang (menarikan) rangda, maka microphone wireless clip on dibutuhkan untuk menampilkan suara penari ke speaker. 

Solusi yang lain bisa juga menggunakan teknologi wireless terbaru yang cukup simple, dengan menggunakan microphone biasa disambungkan ke Transmitter dan Receiver wireless menuju mixer.



Dengan memanfaatkan alat diatas maka link audio berupa microphone maupun link dari mixer / splitter menuju speaker aktif dapat juga dilakukan secara wireless. Pada pemakaian di pura perak surabaya ini, saya memanfaatkan alat bermerek Asley Mvoice ini untuk mengirimkan sinyal dari mixer / splitter menuju ke perangkat audio Speaker aktif di area Madya mandala. Saya pilih ini karena praktis dan ketika ada acara di madya mandala yang membutuhkan 2 speaker aktif tersebut maka saya tinggal memindahkan Transmitter menuju perangkat audio atau mic yg membutuhkan.


Tentunya kesemua yang saya lakukan merupakan kegiatan yang cukup melelahkan (apalagi jika dilakukan sendiri), namun aisi555 sudah mencintai dunia audio sejak smp di tahun 90an. Sebagaimana kita tahu kalau sudah menjadi hobby maka capeknya tidak akan terasa. Selanjutnya yang terpenting juga adalah pelatihan operator pura agar peka dalam mengatur level audio antara banyak sumber suara, baik dari MC, penyanyi, pemangku, pandita, musik dan sebagainya. Semua akan sukses kalau dilatih secara berkala.


Terakhir yang juga sangat menuntut perhatian lebih adalah pemeliharaan perangkat, jangan ditinggalkan begitu saja setelah capek melaksanakan kegiatan, harus ada yg berkorban ngayah lebih giat untuk mengumpulkan kembali setiap perangkat, memasukkannya ke kotak, meggulung kabel dan menyimpannya di tempat yg layak jauh dari jangkauan tikus, semut dan cuaca.

Semoga rekan-rekan pengurus audio di pura dan tempat ibadah seluruh agama di Nusantara dapat terbantu dengan ulasan saya ini. 


Om Shanti Shanti Shanti Om


Sumber foto : FB Ida Pandita Istri Sekar Arum, FB Banjar Surabaya, mynewmicrophone.com

Share:

Rabu, 06 April 2022

Menata Audio Sistem Pura Menjadi Lebih Baik Dan Berkualitas [Part 2]

 



Kebanyakan pura dan tempat suci yang berada di pulau Bali menggunakan speaker corong atau secara umum disebut TOA, sebagai pengantar suara kidung maupun pengumuman dari pura kepada masyarakat sekitar pura. Ini tidak jauh berbeda dengan TOA masjid yang kadang juga digunakan untuk memberikan pengumuman kepada masyarakat sekitar disamping fungsi utama sebagai pemanggil waktu sholat. Jadi penggunaan Speaker corong TOA lebih ditujukan untuk jangkauan namun menghilangkan faktor kenyamanan.

Pada dunia audio, tingkat kekuatan suara diukur melalui besar kecilnya nilai dB alias decibel. Ini merupakan standar pengukuran yang mengukur seberapa kuat gelombang suara memberikan tekanan di telinga manusia. Speaker corong merek Toa memiliki nilai tingkat tekanan suara sebesar 110 dB. Sementara itu, speaker musik memiliki nilai tingkat tekanan suara sebesar 100 dB. 

Alexander Sengpiel, ahli audio asal Jerman, membeberkan percakapan antara manusia berada di tingkat tekanan suara sebesar 60 dB. Sedangkan tekanan suara sebesar 110 dB setara dengan suara speaker corong, ini setara dengan suara gergaji mesin yang terdengar pada jarak satu meter. Sedangkan lebar frekuensi yg dikeluarkan oleh speaker corong adalah 1000 hz - 6000 hz, sehingga speaker corong akan memotong suara bernada bass dan treble. Inilah kenapa suara speaker corong TOA menekankan pada vokal manusia saja dan cenderung memekakkan telinga pendengar yg berada di lokasi yang relatif dekat.






Berdasarkan survey yg dilakukan Aisi555 pada sistem audio di Pura Agung Jagat Karana Surabaya, sudah sangat tepat apa yang dilakukan oleh perancang audio sistem sebelumnya yg menempatkan 6 buah speaker aktif, dengan 4 posisi didalam utama mandala yang menyasar pemedek yg sedang sembahyang dan 2 buah di madya mandala yang akan meng-cover pemedek di ruang tunggu dan parkiran. Seperti yang sudah dibahas pada tulisan sebelumnya ( klik disini ) peralatan speaker yg digunakan adalah speaker aktif yang meiliki jangkauan frekuensi lebar 20 hz - 20000 hz. Jadi suara gong gamelan lelambatan dapat dinikmati dengan jelas dan begitu juga suara kidung akan terdengar merdu. Amplifier juga dapat dipasang pada level suara yang tidak terlalu tinggi karena jumlah 6 speaker aktif mampu mendapatkan coverage pendengar yg cukup.

Lalu apa saja yang aisi555 lakukan saat melakukan perbaikan audio sistem pada Pura Agung Jagat Karana Surabaya ? Berikut saya urutkan berdasarkan urutan langkah dari yg paling sederhana dan saya susun agar dapat ditiru oleh pengurus pura di daerah lain.



- Cek konektor dan perkabelan





Langkah yang paling mudah ketika terjadi gangguan suara berupa suara mendengung ataupun suara kemresek / mencuit adalah dengan melakukan pengecekan konektor balance / XLR / Canon yang umumnya ada pada sambungan antar perangkat audio. Untuk perbaikan yang saya lakukan terdapat noise suara kemresek yg sangat menggangu diakibatkan oleh terjadinya korosif pada terminal jack XLR ( pada kabel yg berumur dan konektor di perangkat audio, akibat faktor cuaca ) sehingga perlu menggunakan contact cleaner atau de-Oxit. Mungkin untuk menghemat anggaran dapat membeli contact cleaner warna merah seperti pada gambar.



Beberapa merek dengan harga yg tidak berbeda juga hadir seperti Rexco atau WD-40 namun berdasarkan pengalaman merek diatas lebih ampuh melunturkan kotoran apalagi dibantu dengan cotton bud / kapas kecil untuk menggosok permukaan terminal sambungan audio.

Untuk perkabelan yang bagus, dapat menggunakan kabel Mic stereo / Balance / XLR yg umum dijual dan jenis apapun, dan yang saya pilih dalam pekerjaan kali ini bermerek Makita ( 1 rol sekitar 90m). Sebagai kabel audio sejuta umat yg cukup ekonomis dan berkualitas ini tidak membebani anggaran untuk pengurus pura. Saya tidak memilih kabel rol bermerek canare karena selain KW (aslinya muahal banget), juga 1 roll nya kurang panjang (70 m) untuk proyek kali ini. 

Diupayakan semua perkabelan tanpa sambungan ditengah-tengah kabel untuk menghindari gangguan akibat kemasukan air atau impedansi yg kacau akibat sambungan. Saya ganti semua perkabelan dari mixer - splitter - dan ke speaker aktif,  karena mengingat umur kabel audio lama yg dipasang outdoor ini sudah tua dan berdasarkan saran teman takmir masjid yg menyarankan perlu diganti tiap 2-4 tahun.

Sedangkan konektor XLR saya gunakan merek audiocraft yg lumayan kokoh dan gampang menyoldernya. Jika ditempat kalian jack dan kabelnya masih dirasa bagus, sebaiknya dilakukan penyolderan ulang untuk menguatkan kembali ikatan timah antar logam terminal dengan kabel. Pastikan koneksi kabel sesuai standar (gambar sambungan xlr diatas), dan yang saya lakukan lebih spesial adalah menyambungkan pin 1 (ground/shield) ke pin ke 4 / body pada jack canon / xlr.


 
- Pasangkan grounding / arde / pentanahan pada perangkat audio




Ingat cerita saya kesetrum mic pada tulisan sebelumnya ? Ini terjadi karena perangkat audio jaman now kebanyakan menggunakan power supply switching yang kadang menyebabkan arus bocor / induksi tegangan AC ke body perangkat audio. 

Secara teori kenapa saya kesetrum dikarenakan ketiadaan grounding / pentanahan pada sistem audio, sehingga ada aliran listrik dari mixer yg listriknya bocor, terhubung kabel mic ke body / besi mic yang saya pegang, lalu melewati tubuh kemudian menuju arah tanah ( karena di area utama mandala pura alas kaki harus dilepas, otomatis tubuh menyentuh tanah). Hilangnya  grounding ini juga terkadang menyebabkan efek suara mendengung pada perangkat speaker aktif. 

Solusi terbaik dan mungkin satu-satunya adalah melihat kelistrikan PLN pada lokasi pura, apakah sudah memiliki grounding yang baik atau belum. Caranya paling mudah adalah dengan memeriksa apakah kabel dari jalur listrik utama memiliki sambungan kabel ke 3 pada stop kontak. Jika tidak yakin ya kita pasang sendiri saja sistem pentanahan / arde yang baru.



Lalu bagaimana jika saya memiliki colokan / steker cuman 2 terminal saja, dan masih terasa sengkring-sengkring saat menggenggam mikrofon ? Untuk itu perlu dipasangkan stik arde dan terhubung dengan tanah seperti pada gambar diatas. Stik ground rod / arde dapat dipasang 1 terpusat atau seperti pada perbaikan saya di pura perak surabaya adalah dengan membagi stik rod menjadi potongan kecil 40 cm dan ditanam pada tanah di setiap simpul perangkat audio, yaitu pada mixer dan masing-masing speaker aktif. Lalu nyambungnya kemana ? Ini bisa disambung ke terminal ground pada stop kontak listrik perangkat audio atau kabel yg nyambung dari tanah di hubungkan / tempelkan ke sekrup pada body perangkat audio. 

Dengan penambahkan grounding dan jangan lupa membasahi lokasi grounding sebelum menggunakan perangkat audio dijamin menghindari resiko tersengat listrik bagi yg memiliki sensitifitas terhadap listrik rendah sekalipun. Umumnya dialami oleh ibu-ibu sekaa kidung yang tangannya cenderung basah sehingga kontak ke body besi mikrofon lebih langsung terasa. Ini tidak akan terjadi jika menggunakan mic wireless ya ... ( operatornya yg kesetrum mungkin, makanya usahakan gunakan sandal ya saat ngayah ..)



- Gunakan perangkat Mixer, Microphone dan Amplifier yang masih waras 




Ketika kabel sudah dirasa benar dan sambungannya sudah bersih serta yakin solderan tanpa  timah yang meluber, maka jika tetap terjadi kondisi gangguan yg tiba-tiba saat operasional, kemungkinan besar ini terjadi akibat kerusakan pada perangkat audionya. Penerima mic wireless mungkin saja frekuensinya sudah bergeser  sehingga kresek-kresek dan putus putus atau paling gampang baterai nya perlu diganti yang baru dan diusahakan gunakan baterai alkaline. Jadi selalu konsultasikan dengan tukang servis audio yang terdekat jika terjadi gangguan ditengah penggunaan padahal di awal baik - baik saja.

Karena project perbaikan di Pura Agung Jagat Karana Surabaya ini mendesak dan mixernya yg lama sudah mencapai berakhirnya masa pakai, maka diputuskan untuk membeli mixer sederhana dengan fasilitas cukup bagus. Kini umum ditemukan mixer merek ashley, soundqueen, hardwell yang kalau dibilang KW namun memiliki kualitas dan fasilitas yang dapat dihandalkan. Pengoperasiannya cukup dengan beberapa tombol saja dan sudah dilengkapi pemutar MP3-Bluetooth dan soundcard yg mendukung koneksi ke PC / Laptop jika ingin melakukan siaran langsung ke youtube misalnya.

Suara yang dihasilkan pun sangat dapat dinikmati kerenyahan echo-reverb dengan effect yang sudah digital DSP. Ini menjadi solusi yang tepat jika dana yg dianggarkan tidak begitu besar namun dapat memuaskan pengurus di pura.






Lalu bagaimana untuk melakukan seting terhadap microphone dan mengatur penempatannya sehingga tidak mengganggu kegiatan ratu peranda serta pemangku ? Akan dibahas pada bagian selanjutnya ( disini ).


*) Sumber gambar dan video : FB Banjar Pakraman Madya Surabaya
Share:

Kontak Penulis



12179018.png (60×60)
+6281331339072

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (14) antares (11) arduino (29) artikel (11) attiny (3) attiny2313 (19) audio (8) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp32 (3) esp8266 (30) euro2020 (13) gcc (1) gis (3) gsm (1) iklan (1) infrared (2) Input Output (3) iot (78) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (2) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) openwrt (3) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (37) proyek (1) python (11) radio (31) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) SDR (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) statistik (5) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (5) transistor (2) troubleshoot (3) tulisan (96) tutorial (108) tv digital (6) tvri (2) unesa (8) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (6) yolo (9)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika