RD5 GOLD WEB EDITOR
📄
📄 2-RB4-3CC.HTML
📄 222.JPG
📄 3CC-BASIC1.HTML
📄 Microsoft Paint.exe
📄 R2C-3.HTML
📄 R2C-4.HTML
📄 RB4-3C.HTML
📄 RB4-3CC.HTML
📄 RB4-RETRO.HTML
📄 RB4-RETRO.html
📄 RD5-3CC.html
📄 RL-4.html
📄 TARS.html
📄 TES10.mp3
📄 TES11.mp3
📄 TRISHA-OK.html
📄 TRISHA-WIN.HTML
📄 Tiny-demo.html
📄 Tinybj7-blindado.html
📄 Tinybj7-publica.html
📄 aplicaciones-rd5.html
📄 app1.html
📄 app2.html
📄 app3.html
📄 appb1.html
📄 appb2.html
📄 appb3.html
📄 appb4.html
📄 appb5.html
📄 appb6.html
📄 c-julio.JPG
📄 caratula.gif
📄 caratula02.gif
📄 caratula2.gif
📄 chokurei2.jpg
📄 columna-julio.html
📄 columna-stella.html
📄 columna-stellab.html
📄 demos.html
📄 df3.html
📄 dni.gif
📄 donaciones.gif
📄 ecualizador.html
📄 ed-podcast.JPG
📄 ed-radio.JPG
📄 editorv.html
📄 editorv1.html
📄 editorv2.html
📄 fondo5d.jpg
📄 fresi-clip.html
📄 gold.php
📄 gold62.php
📄 gold93.php
📄 googlefd161ffccea5f6ab.html
📄 gw.php
📄 index-anterior.html
📄 index.html
📄 index2.html
📄 logo.png
📄 logo.webp
📄 magazine.html
📄 manager3.php
📄 mic2.jpg
📄 mini1.html
📄 minib2a.html
📄 mn.php
📄 muestra.JPG
📄 p.html
📄 pm.html
📄 pm2.html
📄 pod-rd5.html
📄 podcast-stops.gif
📄 podcast2.mp3
📄 pp.html
📄 promo-tinybj7.html
📄 radio.html
📄 radio_gold.html
📄 rd5-fresia-4 canvashtml
📄 rd5-fresia-ok.html
📄 rd5-fresia.html
📄 rd5-plus-anterior.html
📄 rd5-plus.html
📄 rd5-plus2.html
📄 rd5-radioplayer.html
📄 rd5-tv.html
📄 rd5.html
📄 sst.html
📄 st.html
📄 starclip.html
📄 stella-2.JPG
📄 stella.JPG
📄 stt.html
📄 t-rd5.html.html
📄 t-rd6.html
📄 t-rd7.html
📄 t-tiny.html
📄 tes0.jpg
📄 tes1.jpg
📄 tes2.jpg
📄 tes4.jpg
📄 tes4.mp3
📄 tes5.jpg
📄 tes7.jpg
📄 tes8.jpg
📄 tienda.html
📄 tiendaaps.html
📄 tiendapps.html
📄 tiny-bj6.html
📄 tiny-bj7-full.html
📄 tiny-bj7.html
📄 tiny3-bj2.html
📄 tinybj7-blindado.html
📄 tinydemo.html
📄 titulo.jpg
📄 tnw2.html
📄 trisha-basic.html
📄 trisha-cafe.html
📄 trisha-mini.html
📄 tv-pantalla.php
📄 tv.html
📄 xdni.html
CÓDIGO (OSCURO GOLD)
VISTA PREVIA
💾 GUARDAR
Tema: Monokai
Tema: Dracula
Tema: Material
Tema: Blackboard
Tema: Abyss
Monospace
Courier
12px
14px
16px
18px
20px
22px
24px
26px
28px
30px
32px
↷ Rehacer
↶ Deshacer
🔍 BUSCAR
+ REPRO RADIO
SIG.
X
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>rd5</title> <style> body{margin:0;background:#231815;color:white;font-family:Arial} .cuadro{display:flex;justify-content:center;padding:8px} .linea{display:flex;align-items:center;gap:12px} .logo{width:90px;height:70px;background:#111;border:2px solid orange;display:flex;align-items:center;justify-content:center} .logo img{max-width:100%;max-height:100%} canvas{background:black;border:4px solid #888;border-radius:50%} .ctrl{display:flex;flex-direction:column;align-items:center;font-size:12px} .ctrl div{font-size:11px;color:orange} input[type=range]{ -webkit-appearance:none; width:140px; height:8px; background:#3a2c28; border-radius:5px; } input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:14px; height:14px; background:#e3a465; border-radius:50%; border:2px solid black; } </style> </head> <body> <div class="cuadro"> <div class="linea"> <div class="logo"><img src='logo.webp'></div> <canvas id="btnPlay" width="70" height="70"></canvas> <canvas id="vuL" width="70" height="70"></canvas> <canvas id="vuR" width="70" height="70"></canvas> <canvas id="vuECG" width="70" height="70"></canvas> <canvas id="vuSpec" width="70" height="70"></canvas> <div class="ctrl">VOL <input id="vol" type="range" min="0" max="1" step="0.01" value="0.8"> <div id="pVol">80%</div></div> <div class="ctrl">BASS <input id="bass" type="range" min="-15" max="15" value="0"> <div id="pBass">50%</div></div> <div class="ctrl">MID <input id="mid" type="range" min="-15" max="15" value="0"> <div id="pMid">50%</div></div> <div class="ctrl">TREB <input id="treb" type="range" min="-15" max="15" value="0"> <div id="pTreb">50%</div></div> </div> </div> <audio id="player" crossorigin="anonymous" src="https://stream.zeno.fm/uqfs2e03h2zuv"></audio> <script> const AC=window.AudioContext||window.webkitAudioContext; const ctx=new AC(); const player=document.getElementById("player"); const src=ctx.createMediaElementSource(player); const gain=ctx.createGain(); const bassF=ctx.createBiquadFilter(); bassF.type="lowshelf"; bassF.frequency.value=200; const midF=ctx.createBiquadFilter(); midF.type="peaking"; midF.frequency.value=1000; const trebF=ctx.createBiquadFilter(); trebF.type="highshelf";trebF.frequency.value=3000; const split=ctx.createChannelSplitter(2); const aL=ctx.createAnalyser(); const aR=ctx.createAnalyser(); aL.fftSize=aR.fftSize=256; src.connect(bassF); bassF.connect(midF); midF.connect(trebF); trebF.connect(gain); gain.connect(split); split.connect(aL,0); split.connect(aR,1); gain.connect(ctx.destination); let playing=false; const bctx=btnPlay.getContext("2d"); function drawBtn(){ bctx.clearRect(0,0,70,70); bctx.beginPath(); bctx.arc(35,35,30,0,2*Math.PI); bctx.fillStyle="#e3a465"; bctx.fill(); bctx.fillStyle="black"; if(!playing){ bctx.beginPath(); bctx.moveTo(28,22); bctx.lineTo(28,48); bctx.lineTo(48,35); bctx.fill(); }else{ bctx.fillRect(26,22,6,26); bctx.fillRect(38,22,6,26); } } drawBtn(); btnPlay.onclick=async()=>{ if(ctx.state==="suspended") await ctx.resume(); playing=!playing; playing?player.play():player.pause(); drawBtn(); }; vol.oninput=()=>{gain.gain.value=vol.value;pVol.textContent=Math.round(vol.value*100)+"%";} bass.oninput=()=>{bassF.gain.value=bass.value;pBass.textContent=Math.round((bass.value+15)/30*100)+"%";} mid.oninput =()=>{midF.gain.value=mid.value; pMid.textContent =Math.round((mid.value+15)/30*100)+"%";} treb.oninput=()=>{trebF.gain.value=treb.value;pTreb.textContent=Math.round((treb.value+15)/30*100)+"%";} const cL=vuL.getContext("2d"), cR=vuR.getContext("2d"), ecg=vuECG.getContext("2d"), spec=vuSpec.getContext("2d"); function needle(ctx,v){ ctx.clearRect(0,0,70,70); ctx.beginPath(); ctx.arc(35,35,28,-Math.PI,0); ctx.strokeStyle="#231815"; ctx.lineWidth=30; ctx.stroke(); ctx.save(); ctx.translate(35,35); ctx.rotate(-Math.PI+v*Math.PI); ctx.beginPath(); ctx.moveTo(0,0); ctx.lineTo(30,0); ctx.strokeStyle="orange"; ctx.lineWidth=4; ctx.stroke(); ctx.restore(); } /* ===== LIMITADOR DE FPS ===== */ let lastFrame = 0; const FPS = 20; const FRAME_TIME = 1000 / FPS; /* ============================ */ function loop(now){ if(now - lastFrame < FRAME_TIME){ requestAnimationFrame(loop); return; } lastFrame = now; let L=new Uint8Array(aL.frequencyBinCount); let R=new Uint8Array(aR.frequencyBinCount); aL.getByteFrequencyData(L); aR.getByteFrequencyData(R); needle(cL,L.reduce((a,b)=>a+b)/L.length/255); needle(cR,R.reduce((a,b)=>a+b)/R.length/255); let t=new Uint8Array(aL.fftSize); aL.getByteTimeDomainData(t); ecg.clearRect(0,0,70,70); ecg.beginPath(); ecg.moveTo(0,35); t.forEach((v,i)=>ecg.lineTo(i/t.length*70,35+(v-128)/128*25)); ecg.strokeStyle="lime"; ecg.stroke(); let f=new Uint8Array(aR.frequencyBinCount); aR.getByteFrequencyData(f); spec.clearRect(0,0,70,70); f.forEach((v,i)=>{ let h=v/255*70; spec.fillStyle='hsl('+i/f.length*360+',100%,50%)'; spec.fillRect(i*(70/f.length),70-h,70/f.length,h); }); requestAnimationFrame(loop); } requestAnimationFrame(loop); </script> </body> </html>