Наш WEB-SDR

Модератор: Разработчики

Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 21 сен 2021, 22:03

Vort писал(а):
21 сен 2021, 21:38
Можно скриншот со вкладки Network
Вряд ли он Вам поможет
изображение.png
Vort писал(а):
21 сен 2021, 21:38
Какая частота дискретизации звукового потока, идущего в браузер?
К сожалению в документации на этот счет нет конкретики, есть только уровни от 1 до 4 их можно прописать с cfg
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Аватара пользователя
Vort
Сообщения: 20
Зарегистрирован: 22 фев 2021, 16:26

Наш WEB-SDR

Сообщение Vort » 21 сен 2021, 22:08

R2AJI писал(а):
21 сен 2021, 22:03
Вряд ли он Вам поможет
Потому, что скачивания файла нету.
Данные идут вебсокетом.

~~othersjj?chseq=, кстати, это обновление никнеймов и частот юзеров.


Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 21 сен 2021, 22:17

То я с локалки тянул, не успевало :) Вот через интернет, здесь процесс и записи и скачивания.
изображение.png
Ну хоть так хоть эдак :)
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

Аватара пользователя
Vort
Сообщения: 20
Зарегистрирован: 22 фев 2021, 16:26

Наш WEB-SDR

Сообщение Vort » 21 сен 2021, 22:50

~~fetchdx? - это тоже не файл, если что. Это - метки станций.

Процесс, как я понимаю, такой:
WebSocket -> магия №1 -> wav файл в оперативке (блобе) -> диск юзера
WebSocket -> магия №2 -> звук в колонках

В JS websdr для разбора формата того, что течёт по сокету, пока что не полезу ).
Помнится мне, что код там не самый удобный для понимания.
Хотя разбираться в этом полезно.

К примеру, хорошо было бы понять, почему звук и wav отличаются.
(Если я где-то с математикой не натупил, то wav имеет меньшую полосу)

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

Наш WEB-SDR

Сообщение MiB » 23 сен 2021, 11:09

Проанализировал websdr-base.js
Секция начинается с "// recording"

вывод: пишется все в blob на стороне клиента через soundapplet...

Код: Выделить всё

//----------------------------------------------------------------------------------------
// recording

var rec_showtimer;
var rec_downloadurl;

function record_show()
{
   document.getElementById('reccontrol').innerHTML=Math.round(soundapplet.rec_length_kB())+" kB";
}

function record_start() { 
   document.getElementById('reccontrol').innerHTML=0+" kB";
   if (rec_downloadurl) { URL.revokeObjectURL(rec_downloadurl); rec_downloadurl=null; }
   rec_showtimer=setInterval('record_show()',250);
   soundapplet.rec_start(); 
}

function record_stop()
{
   clearInterval(rec_showtimer);
   var res = soundapplet.rec_finish();

   var wavhead = new ArrayBuffer(44);
   var dv=new DataView(wavhead);
   var i=0;
   var sr=Math.round(res.sr);
   dv.setUint8(i++,82);  dv.setUint8(i++,73); dv.setUint8(i++,70); dv.setUint8(i++,70); // RIFF  (is there really no less verbose way to initialize this thing?)
   dv.setUint32(i,res.len+44,true); i+=4;  // total length; WAV files are little-endian
   dv.setUint8(i++,87);  dv.setUint8(i++,65); dv.setUint8(i++,86); dv.setUint8(i++,69); // WAVE
   dv.setUint8(i++,102);  dv.setUint8(i++,109); dv.setUint8(i++,116); dv.setUint8(i++,32); // fmt
     dv.setUint32(i,16,true);   i+=4;   // length of fmt
     dv.setUint16(i,1,true);    i+=2;   // PCM
     dv.setUint16(i,1,true);    i+=2;   // mono
     dv.setUint32(i,sr,true);   i+=4;   // samplerate
     dv.setUint32(i,2*sr,true); i+=4;   // 2*samplerate
     dv.setUint16(i,2,true);    i+=2;   // bytes per sample
     dv.setUint16(i,16,true);   i+=2;   // bits per sample
   dv.setUint8(i++,100);  dv.setUint8(i++,97); dv.setUint8(i++,116); dv.setUint8(i++,97); // data
     dv.setUint32(i,res.len,true);  // length of data

   var wavdata = res.wavdata;
   wavdata.unshift(wavhead);

   var mimetype = 'application/binary';
   var bb = new Blob(wavdata, {type: mimetype});
   if (!bb) document.getElementById('recwarning').style.display="block";
   rec_downloadurl = window.URL.createObjectURL(bb);
   if (rec_downloadurl.indexOf('http')>=0) document.getElementById('recwarning').style.display="block";
   var fname='';
   try {
      fname=(new Date().toISOString()).replace(/\.[0-9]{3}/,"");
   } catch (e) {};
   fname="websdr_recording_"+fname+"_"+nominalfreq().toFixed(1)+"kHz.wav";
   document.getElementById('reccontrol').innerHTML="<a href='"+rec_downloadurl+"' download='"+fname+"'>download</a>";
}

function record_click()
{
   var bt=document.getElementById('recbutton');
   if (bt.innerHTML=="stop") {
      bt.innerHTML="start";
      record_stop();
   } else {
      bt.innerHTML="stop";
      record_start();
   }
}


и в теории "красное предупреждение" должно появляться только в том случае когда blob не создан(if (!bb)).... но у меня в опере появляется всегда.

Аватара пользователя
Vort
Сообщения: 20
Зарегистрирован: 22 фев 2021, 16:26

Наш WEB-SDR

Сообщение Vort » 23 сен 2021, 11:58

MiB писал(а):
23 сен 2021, 11:09
и в теории "красное предупреждение" должно появляться только в том случае когда blob не создан(if (!bb)).... но у меня в опере появляется всегда.
У сайта же был редизайн, может он что-то сломал?

Аватара пользователя
R2AJI
Сообщения: 746
Зарегистрирован: 12 окт 2019, 22:48
Город: Россошь
Благодарил (а): 183 раза
Поблагодарили: 240 раз

Наш WEB-SDR

Сообщение R2AJI » 23 сен 2021, 15:44

Да, действительно.
Пишется в оперативку.
И да, вполне возможно что-то сломалось при "натягивании" дизайна страницы. Сейчас это исправлять не буду, так как скоро переезд сервера и там все будет развернуто с нуля, но не сразу :)
Родилась идея нового дизайна, думаю как это все грамотно исполнить.
Все вопросы про радио, на форум пожалуйста, в личные сообщения, только личные вопросы.
В противном случае, все равно отправлю на форум.

YouTube канал HAM Radio Channel

RW9Y
Сообщения: 1
Зарегистрирован: 24 сен 2021, 16:06
Позывной: RW9Y
Город: Barnaul
Имя: Vasilii

Наш WEB-SDR

Сообщение RW9Y » 24 сен 2021, 16:12

послушал SDR не плохо принимает, ЗАЧЕТ
есть пожелание - поставьте на сайте сопряжение с OMNIRIG как на Челябинском сайте http://sdr.r9a.ru/ CAT4WEB програмуля позволяет при прокрутке колеса валкодера менять частоту SDR на сайте = очень удобно

Аватара пользователя
MiB
Сообщения: 187
Зарегистрирован: 26 фев 2021, 19:14
Позывной: R3KEE
Город: Novovoronezh
Имя: Roman
Благодарил (а): 26 раз
Поблагодарили: 19 раз

Наш WEB-SDR

Сообщение MiB » 26 сен 2021, 19:26

Vort писал(а):
23 сен 2021, 11:58
У сайта же был редизайн, может он что-то сломал?
вряд ли, я у себя дизайн не менял, а надпись появляется...
видимо blob в разных браузерах по разному создается. соответвенно и проверять его надо по разному...

Аватара пользователя
Vort
Сообщения: 20
Зарегистрирован: 22 фев 2021, 16:26

Наш WEB-SDR

Сообщение Vort » 26 сен 2021, 20:03

MiB, есть ли надпись в коде сайта utwente?
Там проблем нет. Можно сравнением попытаться выловить проблему.

Ответить

Вернуться в «SDR приемники»