Date: Sat, 19 Feb 2000 17:22:24 +0100 (CET) From: Juergen Lock <nox@jelal.kn-bremen.de> To: FreeBSD-gnats-submit@freebsd.org Cc: naddy@mips.rhein-neckar.de Subject: ports/16819: new port audio/gramofile Message-ID: <200002191622.RAA43447@saturn.kn-bremen.de>
next in thread | raw e-mail | index | archive | help
>Number: 16819 >Category: ports >Synopsis: new port audio/gramofile >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Feb 19 08:30:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Juergen Lock >Release: FreeBSD 3.4-STABLE i386 >Organization: me? organized?? >Environment: 3.4-STABLE i386, and an isa sb16 hooked up as `tape 2' on the stereo (interesting what such a cheap card can do with a `real' amp and speakers... :) >Description: I wanted to record longer audio files than short clips, and this one finally does it. (it also doesn't need X and uses shared memory for buffering, so you could probably use that old box thats doing nothing in the corner to do your recordings and then won't have to worry about losing data because of too much swapping etc. on the main box...) It also has some other interesting features for eg digitizing vinyl records (see pkg/DESCR), but that i haven't yet tried. Oh and for playback it also uses shared memory which makes it skip less than eg sox' /usr/local/bin/play... Definitely a candidate for 4.0 i'd say. >How-To-Repeat: as usual, unshar, make install >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # Makefile # pkg/ # pkg/COMMENT # pkg/DESCR # pkg/PLIST # files/ # files/md5 # patches/ # patches/patch-aa # patches/patch-ab # patches/patch-ac # echo x - Makefile sed 's/^X//' >Makefile << 'END-of-Makefile' X# New ports collection makefile for: gramofile X# Version required: 1.5 X# Date created: Fri Jan 28 18:40:38 CET 2000 X# Whom: nox@jelal.kn-bremen.de X# X# $FreeBSD: $ X# X XDISTNAME= gramofile-1.5 XCATEGORIES= audio XMASTER_SITES= http://cardit.et.tudelft.nl/~card06/ X XMAINTAINER= nox@jelal.kn-bremen.de X XALL_TARGET= gramofile XUSE_GMAKE= yes X XSTRIP= X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/gramofile ${WRKSRC}/bplay_gramo ${PREFIX}/bin X ${MKDIR} ${PREFIX}/share/doc/gramofile X ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/gramofile X ${LN} -s bplay_gramo ${PREFIX}/bin/brec_gramo X X.include <bsd.port.mk> END-of-Makefile echo c - pkg/ mkdir -p pkg/ > /dev/null 2>&1 echo x - pkg/COMMENT sed 's/^X//' >pkg/COMMENT << 'END-of-pkg/COMMENT' Xaudio recording and tick/scratch reduction for e.g. vinyl records END-of-pkg/COMMENT echo x - pkg/DESCR sed 's/^X//' >pkg/DESCR << 'END-of-pkg/DESCR' XThis is version 1.5 of GramoFile, released February 15, 1999. With this Xprogram you can record audio of (for example) gramophone records, process Xthe signal and listen to the results. Because sound files of the X.WAV-format are used, it is possible to exchange the files with many other Xprograms. Cdrecord(1) can burn CD-Recordables of these, so you can make XCDs with the music of your favorite records. The user interface of XGramoFile has a windows-like look-and-feel, making it fairly easy to use. X XOne of the most important parts of GramoFile is the ability to process Xdigital audio signals. Through the application of several filters it is Xpossible to accomplish a significant reduction of disturbances like ticks Xand scratches. These filters have been programmed in such a fashion that Xthey can be applied in a random order (and multiple times) in a single Xrun, thus evading the use of temporary files. There is a possibility of Xadjusting the properties of each filter independently, so in every Xsituation an optimal result can be achieved. X XAnother interesting feature is the track splitting. Just make one .wav file Xof an entire side of an record and GramoFile will detect where the individual Xtracks are located. This happens fully automatically, without need to set Xany options. More experienced users may fine-tune the algorithm, or change Xthe detected track starts and ends, but generally that will not be Xnecessary. Track-times are saved in an editable (plaintext) .tracks file, Xthat will be used during the signal processing to produce one processed X.wav file for each individual track. X XWWW: http://cardit.et.tudelft.nl/~card06/ END-of-pkg/DESCR echo x - pkg/PLIST sed 's/^X//' >pkg/PLIST << 'END-of-pkg/PLIST' Xbin/gramofile Xbin/bplay_gramo Xbin/brec_gramo Xshare/doc/gramofile/README X@dirrm share/doc/gramofile END-of-pkg/PLIST echo c - files/ mkdir -p files/ > /dev/null 2>&1 echo x - files/md5 sed 's/^X//' >files/md5 << 'END-of-files/md5' XMD5 (gramofile-1.5.tar.gz) = 3727bbab7c8894d7225b1e9bdfb38022 END-of-files/md5 echo c - patches/ mkdir -p patches/ > /dev/null 2>&1 echo x - patches/patch-aa sed 's/^X//' >patches/patch-aa << 'END-of-patches/patch-aa' XIndex: Makefile X@@ -14,15 +14,24 @@ X SHELL = /bin/sh X X CC = gcc X-DEPS = $(OBJS) makebplay X-CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER X LDFLAGS = X-LIBS = -lcurses -lm X+# For Linux (and maybe others), uncomment these: X+#CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER X+#LIBS = -lcurses -lm X+#DEPS = $(OBJS) makebplay X+#COPY_P = -a X X # For IRIX (and maybe others), uncomment these: X #CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER -DSWAP_ENDIAN X+#LIBS = -lcurses -lm X #DEPS = $(OBJS) X+#COPY_P = -a X X+# For FreBSD (and maybe others), uncomment these: X+CFLAGS = -Wall -O2 -DTURBO_MEDIAN -DTURBO_BUFFER -DHAVE_NCURSES X+LIBS = -lncurses -lm X+DEPS = $(OBJS) makebplay X+COPY_P = -p X X $(PROG): $(DEPS) X $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(LIBS) X@@ -36,7 +45,7 @@ X clrscr.o secshms.o X $(MAKE) -C bplaysrc X -rm bplay_gramo brec_gramo X- cp -a bplaysrc/bplay ./bplay_gramo X+ cp ${COPY_P} bplaysrc/bplay ./bplay_gramo X ln -s bplay_gramo brec_gramo X X .PHONY: clean XIndex: bplaysrc/Makefile X@@ -7,9 +7,14 @@ X #SRCS = bplay.c sndfunc.o shmbuf.c X X CC = gcc X-CFLAGS = -Wall -O2 -DUSEBUFFLOCK -DREDHAT50 -DLP2CD -DVUMETER # -DDEBUG X LDFLAGS = X-LIBS = -lcurses X+# For Linux (and maybe others), uncomment these: X+#CFLAGS = -Wall -O2 -DUSEBUFFLOCK -DREDHAT50 -DLP2CD -DVUMETER # -DDEBUG X+#LIBS = -lcurses X+ X+# For FreBSD (and maybe others), uncomment these: X+CFLAGS = -Wall -O2 -DLP2CD -DVUMETER -DHAVE_NCURSES # -DDEBUG X+LIBS = -lncurses X X $(PROG): $(OBJS) X $(CC) $(LDFLAGS) $(OBJS) -o $(PROG) $(LIBS) END-of-patches/patch-aa echo x - patches/patch-ab sed 's/^X//' >patches/patch-ab << 'END-of-patches/patch-ab' XIndex: bplaysrc/bplay.c X@@ -20,14 +20,22 @@ X #include <sys/time.h> X #include <sys/resource.h> X X+#ifndef __FreeBSD__ X #include <sys/soundcard.h> X+#else X+#include <machine/soundcard.h> X+#endif X X #include "fmtheaders.h" X X #include "../yesnowindow.h" X void init_curses(void); X void finish_curses(int sig); X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include "../errorwindow.h" X #include "../clrscr.h" X #include "../reclp_main.h" X@@ -45,11 +53,15 @@ X X /* Prototypes */ X X+#ifdef linux X /* This is in libc, but not in the header files. -- but it IS in X- Red Hat 5.0.... Libc6? */ X+ Red Hat 5.0.... Libc6? X+ well i'd guess its not in the headers because its nonstandard, i.e. X+ (probably) only exists on linux... -nox */ X #ifndef REDHAT50 X extern char *basename(char *name); X #endif X+#endif X X void Usage(void); X void ErrDie(char *err); X@@ -98,7 +109,13 @@ X X init_curses(); X X+#ifdef linux X progname = basename(argv[0]); /* For errors */ X+#else X+ progname = strrchr(argv[0], '/'); /* For errors */ X+ if (!progname || !*++progname) X+ progname = argv[0]; X+#endif X X /* Ok, find out if we record or play */ X if (strcmp(progname, "brec_gramo") == 0) XIndex: bplaysrc/shmbuf.c X@@ -28,12 +28,24 @@ X #include "../reclp_main.h" X #include "../boxes.h" X #include "../buttons.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <string.h> X X #ifndef SEMMSL X+#ifdef __FreeBSD__ X+/* X+ * you may want to adjust this to whats configured into your kernel, X+ * 30 is just the current default. (see <sys/sem.h>) X+ */ X+#define SEMMSL 30 X+#else X #define SEMMSL 32 X #endif X+#endif X X extern void finish_curses(int sig); X X@@ -107,7 +119,7 @@ X */ X shmid2 = shmget(IPC_PRIVATE, numbuffs*sizeof(blockinf_t), X IPC_EXCL | IPC_CREAT | 0600); X- if (shmid == -1) X+ if (shmid2 == -1) X ErrDie("shmget"); X buffinf = (blockinf_t*)shmat(shmid2, IPC_RMID, SHM_RND); X if (buffinf == (blockinf_t*)((char*)-1)) X@@ -410,6 +422,9 @@ X } X /* Tidy up and wait for the child */ X close(audio); X+ /* XXX fix the occasional deadlock in the following wait() -nox */ X+ for (i = 0; i < numbuffs; i++) X+ up(disksemid, i); X wait(NULL); X X /* Free all the semaphores */ XIndex: bplaysrc/sndfunc.c X@@ -11,7 +11,11 @@ X #include <fcntl.h> X #include <unistd.h> X #include <sys/types.h> X+#ifndef __FreeBSD__ X #include <sys/soundcard.h> X+#else X+#include <machine/soundcard.h> X+#endif X #include <sys/ioctl.h> X X #define AUDIO "/dev/dsp" END-of-patches/patch-ab echo x - patches/patch-ac sed 's/^X//' >patches/patch-ac << 'END-of-patches/patch-ac' XIndex: boxes.c X@@ -8,7 +8,11 @@ X */ X X #include "boxes.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: buttons.c X@@ -8,7 +8,11 @@ X */ X X #include "buttons.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: clrscr.c X@@ -8,7 +8,11 @@ X */ X X #include "clrscr.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: errorwindow.c X@@ -11,7 +11,11 @@ X #include "buttons.h" X #include "boxes.h" X #include "textwindow.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: gramofile.c X@@ -9,7 +9,11 @@ X X #include "mainmenu.h" X #include "splashscr.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <signal.h> X #include <unistd.h> X #include <string.h> XIndex: helpline.c X@@ -8,7 +8,11 @@ X */ X X #include "helpline.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: mainmenu.c X@@ -20,7 +20,11 @@ X #include "playwav.h" X #include "tracksplit.h" X #include <stdlib.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <unistd.h> X X XIndex: playwav.c X@@ -23,7 +23,11 @@ X #include "fmtheaders.h" X #include "signpr_main.h" X X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <sys/stat.h> X #include <string.h> XIndex: reclp_filenm.c X@@ -21,7 +21,11 @@ X #include "clrscr.h" X #include "reclp_main.h" X X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <sys/stat.h> X #include <string.h> XIndex: reclp_main.c X@@ -12,7 +12,11 @@ X #include "errorwindow.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: scrollmenu.c X@@ -8,7 +8,11 @@ X */ X X #include "scrollmenu.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X X XIndex: signpr_cmf.c X@@ -30,7 +30,11 @@ X #include "yesnowindow.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <math.h> X X /* Macros I used first: XIndex: signpr_cmf2.c X@@ -28,7 +28,11 @@ X #include "yesnowindow.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <math.h> X X XIndex: signpr_doubmed.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_filtmenu.c X@@ -16,7 +16,11 @@ X #include "errorwindow.h" X #include "stringinput.h" X #include "secshms.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <string.h> X XIndex: signpr_general.c X@@ -21,7 +21,11 @@ X #include "signpr_exper.h" X #include <stdio.h> X #include <stdlib.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_infilenm.c X@@ -20,7 +20,11 @@ X #include "helpline.h" X #include "clrscr.h" X X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <sys/stat.h> X #include <string.h> XIndex: signpr_main.c X@@ -18,7 +18,11 @@ X #include "clrscr.h" X #include "secshms.h" X #include <sys/stat.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <string.h> X #include <stdlib.h> X XIndex: signpr_mean.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_median.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: signpr_outfilenm.c X@@ -20,7 +20,11 @@ X #include "helpline.h" X #include "clrscr.h" X X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <sys/stat.h> X #include <string.h> XIndex: signpr_rms.c X@@ -17,7 +17,11 @@ X #include "helpline.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <math.h> X X void XIndex: splashscr.c X@@ -7,7 +7,11 @@ X * See the file `COPYING' in this directory. X */ X X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <unistd.h> X X XIndex: stringinput.c X@@ -8,7 +8,11 @@ X */ X X #include "stringinput.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X void XIndex: textwindow.c X@@ -8,7 +8,11 @@ X */ X X #include "textwindow.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <string.h> X XIndex: tracksplit.c X@@ -19,7 +19,11 @@ X X #include <sys/stat.h> X #include <stdlib.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <math.h> X #include <string.h> X XIndex: tracksplit_filenm.c X@@ -20,7 +20,11 @@ X #include "helpline.h" X #include "clrscr.h" X X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X #include <stdlib.h> X #include <sys/stat.h> X #include <string.h> XIndex: tracksplit_parammenu.c X@@ -16,7 +16,11 @@ X #include "helpline.h" X #include <stdlib.h> X #include <stdio.h> X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X int XIndex: yesnowindow.c X@@ -11,7 +11,11 @@ X #include "buttons.h" X #include "boxes.h" X #include "textwindow.h" X+#ifndef HAVE_NCURSES X #include <curses.h> X+#else /* HAVE_NCURSES */ X+#include <ncurses.h> X+#endif /* HAVE_NCURSES */ X X X int END-of-patches/patch-ac exit >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200002191622.RAA43447>