Конвертировать МП3 в формат воспроизводимый АТтини13

ArduNub
Offline
Зарегистрирован: 15.10.2020

Хочу заставить тиньку13 воспроизвести звук НЛО.
Но как это сделать не знаю.
Вот звук https://www.zedge.net/ringtone/b0b10adf-ad33-3ab7-8665-55bba373abf9
В интернете есть много разных мелодий
К примеру Star Wars: https://create.arduino.cc/projecthub/HiHiHiHiiHiiIiH/star-wars-on-a-buzzer-0814f2
Ютюб https://www.youtube.com/watch?v=PfVIKd1BEQ4&ab_channel=Arduino%C3%87al%C...
Как конвертировать mp3 в набор частот? Вручную? Или есть какой то способ?
Или уже есть готовые скейчи со звуком НЛО?
Вот тут можно проанализировать звуковой диапазон
файла mp3: https://academo.org/demos/spectrum-analyzer/
 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Надо конвертировать MP3 в WAV. Только где ты этот  хранить собираешься? В атини не поместится. А что бы поместилось ищи звуки в MIDI. Но MP3 в миди особо не сконвертируешь. Хотя может и придумали уже чего. 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ArduNub пишет:
Хочу заставить тиньку13 воспроизвести звук

Б-ть! Откуда вы на свет лезете? 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

DetSimen пишет:

ArduNub пишет:
Хочу заставить тиньку13 воспроизвести звук

Б-ть! Откуда вы на свет лезете? 

Что-то злой, дед, сегодня... Не накатил еще поди?

ArduNub
Offline
Зарегистрирован: 15.10.2020

DetSimen пишет:

ArduNub пишет:
Хочу заставить тиньку13 воспроизвести звук

Б-ть! Откуда вы на свет лезете? 

Вы, месье, как человек опытный, скажите: тяжело быть слабоумным?
Вот реализация похожего проекта: https://www.youtube.com/watch?v=8TigO_mFi0k

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

ArduNub пишет:

DetSimen пишет:

ArduNub пишет:
Хочу заставить тиньку13 воспроизвести звук

Б-ть! Откуда вы на свет лезете? 

Вы, месье, как человек опытный, скажите: тяжело быть слабоумным?
Вот реализация похожего проекта: https://www.youtube.com/watch?v=8TigO_mFi0k

Ну дык, как человек сильноумный, реализуйте, чего тогда спрашиваете?

ArduNub
Offline
Зарегистрирован: 15.10.2020

asam пишет:

Ну дык, как человек сильноумный, реализуйте, чего тогда спрашиваете?


Будьте добры указать на тот факт, который который позволил Вам предположить то, что я "сильноумный".

P.S. Почему на этом говнофоруме в ответ на любой вопрос переходят на личности?
Я ведь описал задачу. Если есть специалисты, то подскажите куда копать.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Дак в том и дело, спицалисты-то есть, тока они в большинстве своём - слабоумные. 

Kakmyc
Offline
Зарегистрирован: 15.01.2018

ArduNub пишет:

Вот реализация похожего проекта: https://www.youtube.com/watch?v=8TigO_mFi0k

Т.е сильно умная голова даже не может понять, что на реализацию одного этого бипа, ушли все ресурсы МК ?
Однозначно, если бы была техническая возможность сыграть так хотя бы кузнечика, его бы сыграли

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

asam пишет:

Надо конвертировать MP3 в WAV. Только где ты этот  хранить собираешься? В атини не поместится. А что бы поместилось ищи звуки в MIDI. Но MP3 в миди особо не сконвертируешь. Хотя может и придумали уже чего. 

не, не взлетит, там автор две синусоиды генерит с обертонами
 

/*
 * Bell.c
 *
 * Зуммер "Колокольчик"
 * 
 * Author: Погребняк Дмитрий, г. Самара, 2014
 *
 * Помещённый здесь код является свободным. Т.е. допускается его свободное использование для любых целей,
 * включая коммерческие, при условии указания ссылки на автора (Погребняк Дмитрий, http://aterlux.ru/).
 */ 


#include <avr/io.h>
#include <avr/pgmspace.h>

#define WAVE1_FADE_STEP 200
#define WAVE2_FADE_STEP 150

#define WAVE1_INITIAL_AMP 180
#define WAVE2_INITIAL_AMP 200

// возвращает знаковое произведение знакового и беззнакового параметров, сдвинутое вправо на 8 разрядов
extern int8_t mul_s_u_shr8(int8_t, uint8_t); 

// Частота тона = 9600000 (частота МК) / 256 (период таймера) / размер_массива = 37500 / размер_массива
/*// Колокольчик 585 Гц, размер массива = 64
const int8_t wave1[] PROGMEM = { // Форманта (синусоида)
  0, 6, 12, 19, 24, 30, 36, 41, 45, 49, 53, 56, 59, 61, 63, 64, 64, 
   64, 63, 61, 59, 56, 53, 49, 45, 41, 36, 30, 24, 19, 12, 6, 0, 
   -6, -12, -19, -24, -30, -36, -41, -45, -49, -53, -56, -59, -61, -63, -64, -64, 
   -64, -63, -61, -59, -56, -53, -49, -45, -41, -36, -30, -24, -19, -12, -6
};

const int8_t wave2[] PROGMEM = { // Обертоны
  0, 27, 47, 59, 62, 59, 53, 45, 37, 28, 20, 12, 6, -1, -6, -11, -14, 
   -18, -20, -22, -23, -23, -23, -22, -21, -19, -17, -15, -12, -10, -6, -3, 0, 
   3, 6, 10, 12, 15, 17, 19, 21, 22, 23, 23, 23, 22, 20, 18, 14, 
   11, 6, 1, -6, -12, -20, -28, -37, -45, -53, -59, -62, -59, -47, -27
};
*/
// Колокольчик 893 Гц, размер массива = 42
const int8_t wave1[] PROGMEM = { // Форманта (синусоида)
  0, 10, 19, 28, 36, 44, 50, 55, 60, 62, 64, 64, 62, 60, 55, 50, 44, 
   36, 28, 19, 10, 0, -10, -19, -28, -36, -44, -50, -55, -60, -62, -64, -64, 
   -62, -60, -55, -50, -44, -36, -28, -19, -10
};

const int8_t wave2[] PROGMEM = { // Обертоны
  0, 12, 23, 32, 38, 41, 42, 42, 42, 40, 38, 36, 34, 32, 30, 28, 26, 
   24, 22, 20, 18, 16, 15, 13, 12, 10, 9, 7, 6, 4, 3, 1, 0, 
   -1, -3, -4, -6, -7, -9, -10, -12, -13
};


int main(void)
{
  DDRB = (1 << PORTB0);
  PORTB = 0;
  
  uint8_t wave_pos = 0;
  uint8_t w1amp = 0;
  uint8_t w2amp = 0;
  uint8_t w1step = 0;
  uint8_t w2step = 0;
  
  OCR0A = 128;
  TCCR0A = 0b11000011;
  TCCR0B = 0b00000001; 
  
  while(1)
  {
    if (!w1step) {
      w1step = WAVE1_FADE_STEP;
      if (!w1amp) {
        w1amp = WAVE1_INITIAL_AMP;
        w2amp = WAVE2_INITIAL_AMP;
        w2step = WAVE2_FADE_STEP;
        wave_pos = 0;
      } else {
        w1amp--;
      }
    } else {
      w1step--;
    }
    if (!w2step) {
      w2step = WAVE2_FADE_STEP;
      if (w2amp) {
        w2amp--;
      }
    } else {
      w2step--;
    }
    uint8_t a = 128 + 
        mul_s_u_shr8((int8_t)pgm_read_byte(&wave1[wave_pos]), w1amp) +
        mul_s_u_shr8((int8_t)pgm_read_byte(&wave2[wave_pos]), w2amp);
    wave_pos++;
    if (wave_pos >= sizeof(wave1))
      wave_pos = 0;
     
    while (!(TIFR0 & (1 << TOV0)));
    OCR0A = a;
    TIFR0 |= (1 << TOV0);
        //TODO:: Please write your application code 
  }

 

ArduNub
Offline
Зарегистрирован: 15.10.2020

DetSimen пишет:

Дак в том и дело, спицалисты-то есть, тока они в большинстве своём - слабоумные. 


Вы, будьте добры, как встретите кого то из специалистов, дайте им ссылку на эту тему.

Kakmyc пишет:
ArduNub пишет:

Вот реализация похожего проекта: https://www.youtube.com/watch?v=8TigO_mFi0k

Т.е сильно умная голова даже не может понять, что на реализацию одного этого бипа, ушли все ресурсы МК ? Однозначно, если бы была техническая возможность сыграть так хотя бы кузнечика, его бы сыграли

1 Ещё раз прошу указать на то, что заставляет Вас думать что я счёл себя умным.
2 А мне других ресурсов МК и не нужно.
3 Я ведь не лунную сонату хочу. А всего лишь короткий звук. Длинной 3-5 сек.

ArduNub
Offline
Зарегистрирован: 15.10.2020

ua6em пишет:
 
не, не взлетит, там автор две синусоиды генерит с обертонами

 Как написать строчки 43-45 и 49-51. В ручную подбирать? Или есть средства автоматизации?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ArduNub, без использования внешних хранителей данных придётся писать свою программу звукогенерации.  Тот звук на 4 тона с вибрато и плавным понижением последнего тона предполагаю, что можно поместить в тиньку13. Но для начинающего это будет непосильная задача.  Для вас реальнее всё таки с sd-карточкой. Самый бюджетный вариант: тинька85 с прошивкой от эльм чена и sd-карточка. Самый простой по повторяемости -ардуино и готовый мп3/wav модуль.

ArduNub
Offline
Зарегистрирован: 15.10.2020

Я же не говорю о полном повторении этого звука.
Его спектрограмма ооочень сложна. 
Есть маленькая игрушка, в форме НЛО.
Я хочу приделать к ней звуковое сопровождение.
Основная цель этого проекта не выпустить товар с серией стотыщ мильёнов.
А научится решать эту задачу с помощью этого контроллера.
Ещё раз повторю: нужен звук похожий на НЛО. А не получасовая соната в качестве долбисюрраунд.

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

ArduNub пишет:

Я же не говорю о полном повторении этого звука.
Его спектрограмма ооочень сложна. 
Есть маленькая игрушка, в форме НЛО.
Я хочу приделать к ней звуковое сопровождение.
Основная цель этого проекта не выпустить товар с серией стотыщ мильёнов.
А научится решать эту задачу с помощью этого контроллера.
Ещё раз повторю: нужен звук похожий на НЛО. А не получасовая соната в качестве долбисюрраунд.

 

Есть игрушечный самосвальчик, я хочу научиться перевозить на нем 2 тонны груза...

Ну нет простого способа на тиньке сделать такой НЛО звук. Пропищать мелодию монотональными звуками это пожалуйста.

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Кстати, на чем нибудь вроде 45 тиньки, можно попробовать, что-то похожее выдать генерируя вибратто на 2-х таймерах.

Но для ТС это, все равно, неподъемная вещь.

ArduNub
Offline
Зарегистрирован: 15.10.2020

asam пишет:

Ну нет простого способа на тиньке сделать такой НЛО звук. Пропищать мелодию монотональными звуками это пожалуйста.

А в чём принципиальное отличие звука колокольчика от звука НЛО?
Звук колокольчика ведь можно.

P.S. Давайте наверное на том и закончим. Я понял что нужно подбирать вручную и основной звук и обертоны.

P.P.S Признателен всем кто высказал конструктивные мнения.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ТС ушел уже, но мне все еще интересно, почему же, и не он первый, упираются Attiny13? и 45 и 85 полностью совместимы и по ножкам и по габаритам. То есть на плату для тиньки13 впаивается 45 или 85. Зачем этот мазохизм?

Если задача просто для оттачивания своих навыков, то её решают не на форуме, а самостоятельно, "для души". Если же задача практическая, то взять 85-ую и не маяться дурью. Там ресурсов хватит. Цена - тоже никак не аргумент, они стоят почти одинаково и очень мало. Даже если в мастерской еще валяются тиньки13 и все мыслимые термостаты и кодовые брелки уже сделаны, то нужно их просто выбросить. Хоть это и звучит варварски ;)))).

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Конвертируйте на здоровье:

Качество как раз для НЛО

https://www.aliexpress.com/i/4001111011632.html

ArduNub
Offline
Зарегистрирован: 15.10.2020

wdrakula пишет:
ТС ушел уже, но мне все еще интересно, почему же, и не он первый, упираются Attiny13? и 45 и 85 полностью совместимы и по ножкам и по габаритам. То есть на плату для тиньки13 впаивается 45 или 85. Зачем этот мазохизм?

Ответ прост. Новички работают в АрдуиноИДЕ. А не в АтмэлСтудио или других спец программах.
А в ней, даже 13-ую запустить не просто. А под 45 или 85 прошивок ещё меньше (если они вообще есть).

wdrakula пишет:

Если задача просто для оттачивания своих навыков, то её решают не на форуме, а самостоятельно, "для души". Если же задача практическая, то взять 85-ую и не маяться дурью. Там ресурсов хватит. Цена - тоже никак не аргумент, они стоят почти одинаково и очень мало. Даже если в мастерской еще валяются тиньки13 и все мыслимые термостаты и кодовые брелки уже сделаны, то нужно их просто выбросить. Хоть это и звучит варварски ;)))).

Вы вероятно олдфаг. Из той эры когда интернет имел скорость 56 кб/сек. (я не пытаюсь обидеть или оскорбить).
Я считаю что оттачивание в повторении. А если просто тыкать провода в бреадборд не имея понимания, то это не обучение, а это и есть тот самый мазохизм.
Это всё равно что изучать МК без даташита. Тоже можно, но зачем?
Если эту задачу уже давно решили, то проще спросить.

b707
Offline
Зарегистрирован: 26.05.2017

ArduNub пишет:

Ответ прост. Новички работают в АрдуиноИДЕ. А не в АтмэлСтудио или других спец программах.
А в ней, даже 13-ую запустить не просто. А под 45 или 85 прошивок ещё меньше (если они вообще есть).

все с точностью до наоборот. Программировать 13-ую в Ардуино в разы сложнее, чем 85-ую.Если писать для тини13 в АрдуиноИДЕ, то там обычный блинк уже полностью занимает все ресурсы МК. А в тини45 или 85 этих ресурсов в 4-8 раз больше и потому даже в рамках АрдуиноИДЕ в них многое можно всунуть.

ардуино-проектов для тини85 просто вагон и маленькая тележка. Кстати, на нашем форуме пробегал музыкальный звонок на тини85 - думаю, это то что вам нужно.

А в тини13 вы этого не засунете, даже не пытайтесь. Судя по сообщениям, в ардуино вы почти ноль - так что не надо спорить, слушайте тех. кто умнее.

b707
Offline
Зарегистрирован: 26.05.2017

ТС таки не хочет признавать очевидное и поставил минус :)))

А может рассчитывал на готовый код... Ведь для него "дзен - в повторении" :))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ArduNub пишет:

Вы вероятно олдфаг. Из той эры когда интернет имел скорость 56 кб/сек.

это скорее я, когда интернет был 7 (Семь) байт в секунду

SLKH
Offline
Зарегистрирован: 17.08.2015

ua6em пишет:

ArduNub пишет:

Вы вероятно олдфаг. Из той эры когда интернет имел скорость 56 кб/сек.

это скорее я, когда интернет был 7 (Семь) байт в секунду

у тя интернет на АТ-50 работал, что ли?

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

ArduNub пишет:

А в чём принципиальное отличие звука колокольчика от звука НЛО?
Звук колокольчика ведь можно.

Ну в колокольчике:

 звук формируется из сложения двух вейвформ, амплитуды которых меняются по-разному во времени.
 

А в HЛО там вибратто на 3 разных частотах одновременно. Плюс еще всякие обертоны

Цитата:
Я же не говорю о полном повторении этого звука.

Ну если вы сможете описать как должно синтезироваться "неполное повторение" этого звука (чисто с музыкальной точки зрения) тогда  и можно будет разбираться как это сделать на тиньке. 

ArduNub
Offline
Зарегистрирован: 15.10.2020

b707 пишет:
все с точностью до наоборот. Программировать 13-ую в Ардуино в разы сложнее, чем 85-ую.Если писать для тини13 в АрдуиноИДЕ, то там обычный блинк уже полностью занимает все ресурсы МК. А в тини45 или 85 этих ресурсов в 4-8 раз больше и потому даже в рамках АрдуиноИДЕ в них многое можно всунуть.

ардуино-проектов для тини85 просто вагон и маленькая тележка. Кстати, на нашем форуме пробегал музыкальный звонок на тини85 - думаю, это то что вам нужно.


Вы правы. Я погуглил и действительно 85-ая в разы популярней 13-ой.
Но почему то в разных обучающих видео я постоянно встречал именно 13-ую.
b707 пишет:
 
А в тини13 вы этого не засунете, даже не пытайтесь. Судя по сообщениям, в ардуино вы почти ноль - так что не надо спорить, слушайте тех. кто умнее.

Тема "умности" идёт красной нитью в этой ветке.
Почему то всех так задел ответ который я писал человеку, который вместо "здрасти" откровенно нахамил.
Ну ок.
Вот только мне интересно. Когда Вы мне советуете (или может даже приказываете) "слушать тех кто умнее", Вы кого имеете ввиду? И исходя из каких индикаторов вы сделали такие выводы?
Рискну предположить, что Вы имеете ввиду себя. И считаете Вы так, потому что вы уже овладели специализированными навыками по программированию встроенных систем на базе МК Атмел.
Если это так, то я рекомендую Вам подумать ещё.
asam пишет:

Ну в колокольчике:
 звук формируется из сложения двух вейвформ, амплитуды которых меняются по-разному во времени.
А в HЛО там вибратто на 3 разных частотах одновременно. Плюс еще всякие обертоны

Спасибо. Это именно тот конструктив, за которым я сюда и пришёл.

Ок буду думать. Возможно другой звук. Возможно другой контроллер. Возможно дополнение периферией, в виде Isd1820. А возможно и оставить эту задачу.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

SLKH пишет:

ua6em пишет:

ArduNub пишет:

Вы вероятно олдфаг. Из той эры когда интернет имел скорость 56 кб/сек.

это скорее я, когда интернет был 7 (Семь) байт в секунду

у тя интернет на АТ-50 работал, что ли?

модем был 2400 (других в то время не было 300/1200/2400) и столько же был канал на всех, а там еще и телеметрия шла )))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Уважаемый, начем с того, что одним из первых же своих сообщений:

ArduNub пишет:

Вы, месье, как человек опытный, скажите: тяжело быть слабоумным?

Вот реализация похожего проекта: https://www.youtube.com/watch?v=8TigO_mFi0k

Вы показали, что:

1. Являетесь человеком хамоватым.

2. Абсолютно не разбираетесь в предмете.

ArduNub пишет:

А всего лишь короткий звук. Длинной 3-5 сек.

3. Попутно - не в ладах с арифметикой: 2.5 секунды произвольного звука "весят" 440 кБайт, что многовато даже для Меги, не говоря о более "народных" разновидностях Ардуино.

4. При всем при этом берущий на себя смелость делать безапелляционные выводы о предмете, в котором совершенно не разбираетесь, а заодно давать оценки уважаемым участникам форума.

 

Назовите мне форум, где любят людей с перечисленными выше качествами.

ArduNub пишет:

А в чём принципиальное отличие звука колокольчика от звука НЛО?
Звук колокольчика ведь можно.

Вот с этого надо было начинать.

Перебирая простые алгоритмы генерации звука можно получить весьма интересные варианты. Не факт, что получится именно колокольчик, но что-то любопытное рано или поздно получится. И тогда к "этому" можно будет подобрать подходящее название. Например, "колокольчик".

С другой стороны, в Вашем первоначальном сообщении речь шла об MP3, т.е. по сути о произвольном звуке. А для произвольного звука нет простого алгоритма генерации, а его воспроизведение может оказаться в сотни раз более ресурсоемко, чем подобранный простой алгоритм.

Понимаете, одно дело идти по улице и случайно найти рубль, и совсем другое - составлять бизнес-план, как ежедневно находить на улице хотя бы по паре тысяч рублей. Вы же утверждаете, что это практически одно и то же. Отсюда и отношение к Вам, как к человеку несерьезному.