MacMusic.org  |  PcMusic.org  |  440Software  |  440Forums.com  |  440Tv  |  Zicos.com  |  AudioLexic.org
Loading... visiteurs connectés

darkeye

Profil
Photo personnelle
Avatar
Members

Newbie
Note
 
Options
Options
Pro Infos

Infos personnelles
Sexe non défini
Anniversaire inconnu
1066 Budapest
Hongrie
darkeye n'a pas de présentation personnelle pour le moment.
Statistiques
Inscrit : 25 févr. 04
Vus : 243*
Dernière visite : lundi 11 mai 2009, 07:22
Heure locale : mar. 24 déc. 2024, 00:31
1 message(s) (0 par jour)
Contact
AIM Aucune information
Yahoo Aucune information
ICQ Aucune information
MSN Aucune information
* Le compteur est mis à jour chaque heure
Sujets
Messages
Blog
Commentaires
Amis
Mon contenu
25 Feb 2004
Hi,

I'm new to MacOS programming, but have considerable background in different UNIX systems. I'm trying to port my project, DarkIce to MacOS. For this, I need to be able to simply record audio from an audio device. More precisely:
  • open the audio device
  • configure for appropriate parameters (e.g. 44.1kHz, 16 bit, 2 channel, PCM recording)
  • read from the device
  • close the device
for example, on Solaris / OpenBSD / NetBSD, the following code achieves just this:
CODE
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <sys/audioio.h>

#define FILE_NAME "/dev/audio"
#define SAMPLE_RATE 22050
#define CHANNEL 2
#define BITS_PER_SAMPLE 16
#define BUF_SIZE 4

int main(int argc, char **argv) {
   int             fd;
   audio_info_t    audioInfo;
   unsigned char   buf[BUF_SIZE];
   unsigned int    len = BUF_SIZE;
   ssize_t         ret;

   fd = open( FILE_NAME, O_RDONLY);

   AUDIO_INITINFO( &audioInfo);
   audioInfo.record.sample_rate = SAMPLE_RATE;
   audioInfo.record.channels    = CHANNEL;
   audioInfo.record.precision   = BITS_PER_SAMPLE;
   audioInfo.record.encoding    = AUDIO_ENCODING_LINEAR;

   if ( ioctl(fd, AUDIO_SETINFO, &audioInfo) ) {
       printf("can't set audio info, error: %d\n", errno);
   }

   ret = read(fd, buf, len);

   printf("%d returned by read\n", ret);
   if ( ret == -1 ) {
       printf("error code %d\n", errno);
   }

   close(fd);

   return 0;
}

What I hear is that MacOS uses a callback pattern to access audio data from the sound card. if so, probably I'm looking for a sample that does:
  • initialize the whole thing
  • set the audio parameters (e.g. 44.1kHz 16 bit stereo PCM recording)
  • register my callback function
  • shut down
Can anyone help me?
Derniers visiteurs
darkeye n'a aucun visiteur à afficher..

Commentaires
Les autres utilisateurs n'ont laissé aucun commentaire pour darkeye.

Amis
Il n'y a aucun ami à afficher.
Version bas débit - mardi 24 déc. 2024, 01:31
- © 440 Forums 2011