<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Звук на C</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html</link>
    <description>Понадобилось впиндюрить пикалку в программку на чистом С (ну может С99), &lt;br&gt;ну типа как у Аськи &quot;а-аа&quot;, и очень не хочется приклеивать внешнюю библиотеку.&lt;br&gt;&lt;br&gt;В идеале, есть ли возможность воспроизвести WAV (только не MIDI), &lt;br&gt;перекодированный в HEX значения в виде массива int Wave&#091;&#093; = &#123;...&#125;;,&lt;br&gt;и засланный в /dev/audio &lt;br&gt;&lt;br&gt;А может, вообще, можно так перекодировать WAV, чтоб заиграло через &lt;br&gt;fwrite(Wave,  sizeof(Wave), sizeof(Wave), &quot;/dev/dsp&quot;);&lt;br&gt;&lt;br&gt;???&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#10</link>
    <pubDate>Thu, 12 May 2011 14:24:20 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; перекодированный в HEX значения в виде массива int Wave&#091;&#093; = &#123;...&#125;;, &lt;br&gt;&amp;gt;&amp;gt; и засланный в /dev/audio &lt;br&gt;&amp;gt;&amp;gt; А может, вообще, можно так перекодировать WAV, чтоб заиграло через &lt;br&gt;&amp;gt;&amp;gt; fwrite(Wave,  sizeof(Wave), sizeof(Wave), &quot;/dev/dsp&quot;); &lt;br&gt;&amp;gt;&amp;gt; ???&lt;br&gt;&amp;gt; можно к примеру так &lt;br&gt;&amp;gt; sox  test1.wav  --comment &quot;&quot; -e u-law  test1.au &lt;br&gt;&amp;gt; dd bs=2k if=test1.au  of=/dev/audio &lt;br&gt;&amp;gt; или &lt;br&gt;&amp;gt; cat test1.wav &amp;gt;/dev/audio &lt;br&gt;&lt;br&gt;Кстати, это я знаю, старая фишка, но пробовал и не заработало.&lt;br&gt;&lt;br&gt;&amp;gt; ну и там всякую фигню добавить со сжатием, а то файлы большие получаются &lt;br&gt;&amp;gt; ну а записывать через дсп &lt;br&gt;&amp;gt; sox -r 48000 -t ossdsp -w -s /dev/dsp -r 48000 sound1.wav &lt;br&gt;&lt;br&gt;Ну да... Спасибо, вроде разобрался. &lt;br&gt;&lt;br&gt;Примеры, из сообщений выше, работают как надо!&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (NuINu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#9</link>
    <pubDate>Thu, 12 May 2011 14:20:13 GMT</pubDate>
    <description>&amp;gt; Понадобилось впиндюрить пикалку в программку на чистом С (ну может С99), &lt;br&gt;&amp;gt; ну типа как у Аськи &quot;а-аа&quot;, и очень не хочется приклеивать внешнюю &lt;br&gt;&amp;gt; библиотеку.&lt;br&gt;&amp;gt; В идеале, есть ли возможность воспроизвести WAV (только не MIDI), &lt;br&gt;&amp;gt; перекодированный в HEX значения в виде массива int Wave&#091;&#093; = &#123;...&#125;;, &lt;br&gt;&amp;gt; и засланный в /dev/audio &lt;br&gt;&amp;gt; А может, вообще, можно так перекодировать WAV, чтоб заиграло через &lt;br&gt;&amp;gt; fwrite(Wave,  sizeof(Wave), sizeof(Wave), &quot;/dev/dsp&quot;); &lt;br&gt;&amp;gt; ???&lt;br&gt;&lt;br&gt;можно к примеру так&lt;br&gt;sox  test1.wav  --comment &quot;&quot; -e u-law  test1.au &lt;br&gt;dd bs=2k if=test1.au  of=/dev/audio&lt;br&gt;или&lt;br&gt;cat test1.wav &amp;gt;/dev/audio &lt;br&gt;ну и там всякую фигню добавить со сжатием, а то файлы большие получаются&lt;br&gt;&lt;br&gt;ну а записывать через дсп&lt;br&gt;sox -r 48000 -t ossdsp -w -s /dev/dsp -r 48000 sound1.wav&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#8</link>
    <pubDate>Thu, 12 May 2011 14:03:17 GMT</pubDate>
    <description>&amp;gt; В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты &lt;br&gt;&amp;gt; слышишь один щелчок, а не два.&lt;br&gt;&lt;br&gt;Хошь прикол?! &lt;br&gt;&lt;br&gt;Я же когда WAV перегонял в HEX, заголовок WAV не удалил&lt;br&gt;То есть, там, в массиве, первые 44 байта надо выкинуть. :) &lt;br&gt;&lt;br&gt;http://pavlinux.ru/sound.h&lt;br&gt;&lt;br&gt;ну и чуток поправил код, выкинул переменные не нужные.&lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;br&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;br&gt;#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;#include &amp;lt;linux/soundcard.h&amp;gt;&lt;br&gt;&lt;br&gt;#include &quot;sound.h&quot;&lt;br&gt;&lt;br&gt;int main(void)&lt;br&gt;&#123;&lt;br&gt;        ssize_t arg; &lt;br&gt;        int fd;&lt;br&gt;&lt;br&gt;        fd = open(&quot;/dev/dsp&quot;, O_RDWR);&lt;br&gt;        &lt;br&gt;        arg = 0;            ioctl(fd, SOUND_PCM_SYNC,           &amp;arg);&lt;br&gt;        arg = RATE;         ioctl(fd, SOUND_PCM_WRITE_RATE,     &amp;arg);&lt;br&gt;        arg = SIZE;         ioctl(fd, SOUND_PCM_WRITE_BITS,     &amp;arg);&lt;br&gt;        arg = CHANNELS;     ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &amp;arg);&lt;br&gt;        arg = AFMT_U16_BE;  ioctl(fd, SOUND_PCM_SETFMT,         &amp;arg);&lt;br&gt;        arg = 4</description>
</item>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#7</link>
    <pubDate>Thu, 12 May 2011 13:50:41 GMT</pubDate>
    <description>&amp;gt; В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты &lt;br&gt;&amp;gt; слышишь один щелчок, а не два.&lt;br&gt;&lt;br&gt;Кстати, чем нынче модно WAV редактировать?&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#6</link>
    <pubDate>Thu, 12 May 2011 10:11:55 GMT</pubDate>
    <description>&amp;gt; В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты &lt;br&gt;&amp;gt; слышишь один щелчок, а не два.&lt;br&gt;&lt;br&gt;Ну вот если только... &lt;br&gt;Вечером попробую.&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#5</link>
    <pubDate>Thu, 12 May 2011 09:52:00 GMT</pubDate>
    <description>В самом сэмпле смикшируй атаку и затухание. Затухание там нормальное, поэтому ты слышишь один щелчок, а не два.&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#4</link>
    <pubDate>Wed, 11 May 2011 22:59:58 GMT</pubDate>
    <description>Вот код, но обнаружился косяк - щелкает перед проигрыванием. &lt;br&gt;&lt;br&gt;&#091;code&#093;&lt;br&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;br&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;br&gt;#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;#include &amp;lt;linux/soundcard.h&amp;gt;&lt;br&gt;&lt;br&gt;#include &quot;sound.h&quot;&lt;br&gt;&lt;br&gt;int main(void)&lt;br&gt;&#123;&lt;br&gt;        int fd, arg, status, fmt, sz, div;&lt;br&gt;&lt;br&gt;        fd = open(&quot;/dev/dsp&quot;, O_RDWR);&lt;br&gt;&lt;br&gt;        ioctl(fd, SOUND_PCM_RESET, 0);&lt;br&gt;&lt;br&gt;        arg = SIZE;&lt;br&gt;        ioctl(fd, SOUND_PCM_WRITE_BITS, &amp;arg);&lt;br&gt;        arg = CHANNELS;&lt;br&gt;        ioctl(fd, SOUND_PCM_WRITE_CHANNELS, &amp;arg);&lt;br&gt;        arg = RATE;&lt;br&gt;        ioctl(fd, SOUND_PCM_WRITE_RATE, &amp;arg);&lt;br&gt;        fmt = AFMT_U16_BE;&lt;br&gt;        ioctl(fd, SOUND_PCM_SETFMT, &amp;fmt);&lt;br&gt;&lt;br&gt;        printf(&quot;Play:&#092;n&quot;);&lt;br&gt;&lt;br&gt;        sz = sizeof(Wave);&lt;br&gt;&lt;br&gt;        div = 4;&lt;br&gt;        ioctl(fd, SOUND_PCM_SUBDIVIDE, &amp;div);&lt;br&gt;&lt;br&gt;        write(fd, Wave, sz);&lt;br&gt;&lt;br&gt;        ioctl(fd, SOUND_PCM_SYNC, 0);&lt;br&gt;        close(fd);&lt;br&gt;&lt;br&gt;&lt;br&gt; return (0);&lt;br&gt;&#125;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;&quot;sound.h&quot; - тут - http://pavlinux.ru/sound.h&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#3</link>
    <pubDate>Wed, 11 May 2011 00:09:57 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&lt;br&gt;ТЛЯЯЯЯЯЯЯЯ ЗАРАБОТАЛО, СЛАВА МНЕ !!!!&lt;br&gt;</description>
</item>

<item>
    <title>Звук на C (pavlinux)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/9124.html#2</link>
    <pubDate>Wed, 11 May 2011 00:02:34 GMT</pubDate>
    <description>&amp;gt;&amp;gt; А может, вообще, можно так перекодировать WAV, чтоб заиграло через &lt;br&gt;&amp;gt;&amp;gt; fwrite(Wave,  sizeof(Wave), sizeof(Wave), &quot;/dev/dsp&quot;); &lt;br&gt;&amp;gt; Там не WAV кодировать нужно, а дрочить /dev/dsp через ioctl: http://www.oreilly.de/catalog/multilinux/excerpt/ch14-05.htm &lt;br&gt;&lt;br&gt;Ужо надрочил &lt;br&gt;&lt;br&gt;:-P&lt;br&gt;</description>
</item>

</channel>
</rss>
