Форум программистов, компьютерный форум CyberForum.ru

Генератор звука нужной частоты - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Как перекинуть акк(уч.запись майкрософт) с андройд на комп вин10 http://www.cyberforum.ru/android-dev/thread1803834.html
ребят у меня такой вопрос играю в игру марш престолов(уч.запись майкрософт) на андройде, хочу перенести свой акк на комп вин10, как это сделать подскажите пожалуйста Добавлено через 29 минут простите ошибся игра Марш империй.
Android Акселерометр и ускорение земного притяжения Видно у меня совсем плохо с физикой , но я совершенно не понимаю документацию по SENSOR EVENT of Accelerometer. Дело в том, что моя программа стирает изображение , когда пользователь встряхивает экран. Начну с самых простых вопросов. На сайте есть примеры: Examples: 1)When the device lies flat on a table and is pushed on its left side toward the right, the x acceleration value is positive.... http://www.cyberforum.ru/android-dev/thread1803794.html
Android SeekBar и Arduino
Здравствуйте! Помогите реализовать:при нажатии кнопки происходит передача значений ползунков ардуине ,значения те которые выставлены в seekBar.
Выдать напряжение с телефона Android
Есть смартфон на андроид и шнур к нему... Можно ли через приложение, подавать кратковременно напряжение на шнур. Мол как сигнал... Шнур можно обрезать или подключить разъем usb к нему, а далее от искать где напряжение... Добавлено через 1 минуту Я толком не разбираюсь... Нужно что то придумать, дабы этот сигнал не услышал или не заметил препод...
Android Конструктор форм http://www.cyberforum.ru/android-dev/thread1803508.html
Всем доброго времени суток. Очень давно не касался программирования вообще, тут решил поковыряться... Хочу побаловаться для андройд... Подскажите пожалуйста, есть ли такая IDE, где днищу будет максимально комфортно... Например как Delphi, грамотный конструктор форм, но вот в конечном итоге Delphi не особо то и хорош для программирования под android, хотя довольно просто там писать простенький...
Android Приложение не запускается на Android 5.1 и выше Сделал приложение в Android Studio на API 21. Начал тестить на устройстве. На версии Android 5.0 всё работает отлично, а на версиях Android 5.1 и выше приложение закрывается сразу после запуска. Как можно решить данную проблему? Вот сам apk файл - ТЫК (для теста) подробнее

Показать сообщение отдельно
gvsp
13 / 2 / 0
Регистрация: 10.11.2015
Сообщений: 71
01.10.2016, 10:07  [ТС]     Генератор звука нужной частоты
В итоге без заиканий короткие звуки удалось получить только с записью в файл wav и выводом их через Soundpool.
От щелчков избавился добавив атаку и релиз.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
    int sampleRate = 44100; // стандартная частота дискретизации для wav файла
    int Attack = 200;  // Атака. Сглаживание переднего фронта
    int Release = 500;  // Релиз. Сглаживание заднего фронта
    durationDot = 60 // длительность звука в мс
// вычисляем переменные
        int countDot = (int)( sampleRate * 2.0 * (durationDot / 1000.0)) &~1;
        int totalDataLen = countDot + 36;
        long byteRate = 16 * sampleRate / 8;
        FileDot = new byte[44 + countDot];
// генерируем заголовок wav файла
        FileDot[0] = 'R'; // 'RIFF'
        FileDot[1] = 'I';
        FileDot[2] = 'F';
        FileDot[3] = 'F';
        FileDot[4] = (byte) (totalDataLen & 0xff); // totalDataLen  размер файла
        FileDot[5] = (byte) ((totalDataLen >> 8) & 0xff);
        FileDot[6] = (byte) ((totalDataLen >> 16) & 0xff);
        FileDot[7] = (byte) ((totalDataLen >> 24) & 0xff);
        FileDot[8] = 'W';
        FileDot[9] = 'A';
        FileDot[10] = 'V';
        FileDot[11] = 'E';
        FileDot[12] = 'f'; // 'fmt' - chunk
        FileDot[13] = 'm';
        FileDot[14] = 't';
        FileDot[15] = ' ';
        FileDot[16] = 16; // 16 для формата PCM
        FileDot[17] = 0;
        FileDot[18] = 0;
        FileDot[19] = 0;
        FileDot[20] = 1; //Для PCM = 1
        FileDot[21] = 0;
        FileDot[22] = 1; // Количество каналов. Моно = 1
        FileDot[23] = 0;
        FileDot[24] = (byte) (sampleRate & 0xff); // longSampleRate частота дискретизаии (44100)
        FileDot[26] = (byte) ((sampleRate >> 16) & 0xff);FileDot[25] = (byte) ((sampleRate >> 8) & 0xff);
        FileDot[27] = (byte) ((sampleRate >> 24) & 0xff);
        FileDot[28] = (byte) (byteRate & 0xff); // byteRate битрейт
        FileDot[29] = (byte) ((byteRate >> 8) & 0xff);
        FileDot[30] = (byte) ((byteRate >> 16) & 0xff);
        FileDot[31] = (byte) ((byteRate >> 24) & 0xff);
        FileDot[32] = (byte) (1 * 16 / 8); // block align
        FileDot[33] = 0;
        FileDot[34] = 16; // бит в сэмпле (16)
        FileDot[35] = 0;
        FileDot[36] = 'd';
        FileDot[37] = 'a';
        FileDot[38] = 't';
        FileDot[39] = 'a';
        FileDot[40] = (byte) (countDot & 0xff);
        FileDot[41] = (byte) ((countDot >> 8) & 0xff);
        FileDot[42] = (byte) ((countDot >> 16) & 0xff);
        FileDot[43] = (byte) ((countDot >> 24) & 0xff);
// генерируем тело wav файла
      //  начало с плавным возрастанием амплитуды
        for(int i = 0; i < countDot; i += 2){
            if (i < Attack) { // Атака плавное возрастание звука
                short sample = (short) ((Math.sin(Math.PI * i / (sampleRate / Frequence)) * 0x7FFF)  *  i / Attack);
                FileDot[44+i] = (byte) (sample & 0xff);
                FileDot[44+i+1] = (byte) ((sample >> 8) & 0xff);
            }
           //  конец с плавным затуханием амплитуды
            else if (i > (countDot-Release)) { // Релиз затухание звука
                short sample = (short) ((Math.sin(Math.PI * i /
                        (sampleRate / Frequence)) * 0x7FFF) * (countDot-i)/ Release);
                FileDot[44+i] = (byte) (sample & 0xff);
                FileDot[44+i+1] = (byte) ((sample >> 8) & 0xff);
            }
           // середина синусоиды без изменений
            else { 
                short sample = (short)(Math.sin(Math.PI * i /
                        (sampleRate / Frequence)) * 0x7FFF);
                FileDot[44+i] = (byte) (sample & 0xff);
                FileDot[44+i+1] = (byte) ((sample >> 8) & 0xff);
            }
        }
 
        // записываем в файл
        String FileDotName = "Dot.wav"; // имя файла
        FileOutputStream fos = null;
        try {
            fos = openFileOutput(FileDotName, Context.MODE_PRIVATE);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        try {
            fos.write(FileDot);
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
Текущее время: 01:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru