--- freebirth-0.3.2.orig/Makefile +++ freebirth-0.3.2/Makefile @@ -2,9 +2,9 @@ # CC=gcc -LOADLIBES=-lm $(shell gtk-config --libs) -CFLAGS=-g -O6 -Wall $(shell gtk-config --cflags) -LDFLAGS= +LOADLIBES=-lm -L/usr/lib -lgtk-x11-2.0 +CFLAGS=-g -Wall $(shell pkg-config --cflags gtk+-2.0) +LDFLAGS=$(LOADLIBES) $(shell pkg-config --libs gtk+-2.0) OFILES=\ oscillator.o sequencer.o envelope.o filter.o gtkdial.o mixer.o \ @@ -19,14 +19,13 @@ all: freebirth clean: Makefile.deps - -rm -f *.o freebirth fusebirth fused_loop.c Makefile.deps *~ + -rm -f *.o freebirth fusebirth Makefile.deps *~ freebirth: $(OFILES) fused_loop.o freebirth.o - -fused_loop.c: fusebirth - ./fusebirth > fused_loop.c 2>/dev/null + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) fusebirth: $(OFILES) fuse_loops.o fusebirth.o + $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) fusebirth.o: freebirth.c $(CC) -c $(CFLAGS) -DFUSE_LOOPS -o fusebirth.o freebirth.c --- freebirth-0.3.2.orig/debian/README.Debian +++ freebirth-0.3.2/debian/README.Debian @@ -0,0 +1,9 @@ +freebirth (0.3.2-5) unstable; urgency=low + + To record a song to a wave file, open a sound-mixer (e.g. aumix, alsamixer) + and select the appropriate channel to record from. Make freebirth play, then + record the sound with another program (for instance: + ecasound -i /dev/dsp -o recording.wav ). + + -- Paul Brossier Sun, 10 Jul 2005 13:36:31 +0100 + --- freebirth-0.3.2.orig/debian/changelog +++ freebirth-0.3.2/debian/changelog @@ -0,0 +1,91 @@ +freebirth (0.3.2-9.1) unstable; urgency=medium + + * Non-maintainer upload. + * fused_loop.c: Include auto-generated C-file (closes: #769264). + * Makefile: Do not generate or remove fused_loop.c. + + -- Michael Banck Sat, 22 Nov 2014 20:36:11 +0100 + +freebirth (0.3.2-9) unstable; urgency=medium + + * debian/control: add homepage, thanks to Francisco Javier Garrote Cruz + (closes: #734774) + * debian/control: add git.debian.org + * Makefile: fix FTBFS with ld --as-needed, thanks to Matthias Klose + (closes: #642102) + * Makefile: add LOADLIBES to LDFLAGS + * debian/rules: do not ignore make clean error + * debian/menu: update section to Applications/Sound + * debian/compat: bump to 5 + * debian/control: add misc:Depends + * debian/freebirth-alsa: add a simple script to use aoss + * debian/freebirth.links: freebirth-alsa.1 links to freebirth.1 + * debian/control: add depends on alsa-oss + * debian/freebirth.desktop, debian/menu: use freebirth-alsa + + -- Paul Brossier Sun, 16 Mar 2014 13:25:47 -0300 + +freebirth (0.3.2-8) unstable; urgency=low + + * Conflicts against << 0.3.2-5, not -4 (closes: #391042). + * Use source:Version, not Source-Version. + * Bump to Standards-Version 3.7.2. + + -- Paul Brossier Wed, 4 Oct 2006 22:57:27 +0200 + +freebirth (0.3.2-7) unstable; urgency=low + + * Update Makefile and debian/rules (closes: #355824) + * Include endian.h in fuse_loops.c and raw_wave.h (closes: #360965) + + -- Paul Brossier Mon, 17 Apr 2006 00:52:48 +0200 + +freebirth (0.3.2-6) unstable; urgency=low + + * Update to gtk-2 + * Remove obsolete homepage in description + + -- Paul Brossier Mon, 11 Jul 2005 22:30:56 +0100 + +freebirth (0.3.2-5) unstable; urgency=low + + * Fixed endianess issue + * Move arch-indep file into -data (closes: #233348) + * Add menu icon (closes: #299416), quote strings in debian/menu + * Add a note about recording (closes: #302898) + * New maintainer (closes: #302897) + * Moved DH_COMPAT to debian/compat, bumped Standards-Version + * Change -O6 to -O2 in Makefile, add -g to CFLAGS + * Include string.h in raw_wave.c + * Updated copyright file + + -- Paul Brossier Mon, 11 Jul 2005 00:40:29 +0100 + +freebirth (0.3.2-4) unstable; urgency=low + + * New maintainer (Closes: #176475) + * Fixed segmentation fault on file load in Sample Pitch (Closes: #189679) + * Updated to policy version 3.5.9.0 (removed INSTALL file and + dh_testversion from debian/rules) + * Corrected package description a bit + + -- Niklas Vainio Sat, 10 May 2003 14:56:33 +0300 + +freebirth (0.3.2-3) unstable; urgency=low + + * Fix build-dependencies for gtk/glib to libgtk1.2-dev (Closes: #89604) + + -- Matt Zimmerman Wed, 14 Mar 2001 17:18:53 -0500 + +freebirth (0.3.2-2) unstable; urgency=low + + * Added missing build-dependency on docbook-to-man + + -- Matt Zimmerman Wed, 7 Feb 2001 15:09:21 -0500 + +freebirth (0.3.2-1) unstable; urgency=low + + * Initial Release. + + -- Matt Zimmerman Sat, 6 Jan 2001 11:22:21 -0500 + --- freebirth-0.3.2.orig/debian/compat +++ freebirth-0.3.2/debian/compat @@ -0,0 +1 @@ +5 --- freebirth-0.3.2.orig/debian/control +++ freebirth-0.3.2/debian/control @@ -0,0 +1,40 @@ +Source: freebirth +Section: sound +Priority: extra +Maintainer: Paul Brossier +Build-Depends: debhelper (>> 4.0.0), libgtk2.0-dev, docbook-to-man +Standards-Version: 3.7.2 +Homepage: http://freebirth.sourceforge.net/ +Vcs-Git: git://git.debian.org/collab-maint/freebirth.git +Vcs-Browser: http://git.debian.org/?p=collab-maint/freebirth.git;a=summary + +Package: freebirth +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, alsa-oss, freebirth-data (= ${source:Version}) +Description: Bass synthesizer/sample player/sequencer + Freebirth is a free software bass synthesizer / step sequencer / sample player + similar to Rebirth. The bass synthesizer resembles a 303 but also has other + capabilities such as + . + - Three oscillators (saw, sin, sqr) + - Phase offsets for each oscillator + - Separate filter and amplitude envelopes + - Separate tuning for each oscillator + - Two effects busses (reverb and delay). + +Package: freebirth-data +Architecture: all +Depends: ${shlibs:Depends}, ${misc:Depends} +Conflicts: freebirth (<< 0.3.2-5) +Description: Bass synthesizer/sample player/sequencer -- sound samples + This package contains sound samples for freebirth. + . + Freebirth is a free software bass synthesizer / step sequencer / sample player + similar to Rebirth. The bass synthesizer resembles the 303 but also has other + capabilities such as + . + - Three oscillators (saw, sin, sqr) + - Phase offsets for each oscillator + - Separate filter and amplitude envelopes + - Separate tuning for each oscillator + - Two effects busses (reverb and delay). --- freebirth-0.3.2.orig/debian/copyright +++ freebirth-0.3.2/debian/copyright @@ -0,0 +1,21 @@ +This package was debianized by Matt Zimmerman on +Sat, 6 Jan 2001 11:22:21 -0500. + +It was downloaded from http://www.bitmechanic.com/projects/freebirth/ + +Upstream Authors: + + Freebirth was developed by Topher Lafata and Jake Donham + . + Graphic contributions were made by Steve DeBrun . + +Copyright: + + Copyright (C) 1999 topher lafata , + Jake Donham + +License: + + You are free to distribute this software under the terms of the GNU General + Public License. On Debian systems, the complete text of the GNU General Public + License can be found in the file `/usr/share/common-licenses/GPL'. --- freebirth-0.3.2.orig/debian/dirs +++ freebirth-0.3.2/debian/dirs @@ -0,0 +1 @@ +usr/bin --- freebirth-0.3.2.orig/debian/docs +++ freebirth-0.3.2/debian/docs @@ -0,0 +1,2 @@ +README + --- freebirth-0.3.2.orig/debian/freebirth-16.xpm +++ freebirth-0.3.2/debian/freebirth-16.xpm @@ -0,0 +1,114 @@ +/* XPM */ +static char * freebirth_16_xpm[] = { +"16 16 95 2", +" c None", +". c #596692", +"+ c #5B6B9C", +"@ c #595A70", +"# c #5A5B71", +"$ c #384481", +"% c #3A4889", +"& c #3A498C", +"* c #3E4981", +"= c #383A5D", +"- c #3A3C62", +"; c #3E4064", +"> c #52546B", +", c #393C61", +"' c #393C62", +") c #838495", +"! c #52536A", +"~ c #53546D", +"{ c #393B61", +"] c #7D7E90", +"^ c #586185", +"/ c #3F528F", +"( c #394682", +"_ c #3A3C63", +": c #3A3D60", +"< c #3A3C61", +"[ c #575975", +"} c #797C9A", +"| c #5F72A7", +"1 c #3A519B", +"2 c #3A3D68", +"3 c #3F4164", +"4 c #65667E", +"5 c #63647C", +"6 c #464969", +"7 c #494B6A", +"8 c #57586E", +"9 c #565872", +"0 c #6D7497", +"a c #8183A8", +"b c #7885AE", +"c c #6672A1", +"d c #67687F", +"e c #424464", +"f c #3A4272", +"g c #4F67A5", +"h c #7885AF", +"i c #53546C", +"j c #48588F", +"k c #6F7BA8", +"l c #8391B5", +"m c #3B4883", +"n c #405AA3", +"o c #7B88AF", +"p c #3C3E5B", +"q c #394477", +"r c #3C5AA5", +"s c #5767A4", +"t c #53546A", +"u c #3C3E5C", +"v c #545573", +"w c #686880", +"x c #656781", +"y c #48558E", +"z c #3A4C94", +"A c #45528D", +"B c #545776", +"C c #56576D", +"D c #373A5E", +"E c #5B5D78", +"F c #425BA2", +"G c #3C57A4", +"H c #415699", +"I c #3A3D65", +"J c #3D3F64", +"K c #52536B", +"L c #7E7E91", +"M c #777E9B", +"N c #777EA8", +"O c #6C76A6", +"P c #3A3E68", +"Q c #59648B", +"R c #3D4A80", +"S c #3E497D", +"T c #3C4678", +"U c #838395", +"V c #808198", +"W c #646E9E", +"X c #5167A4", +"Y c #7C81A8", +"Z c #7B80A7", +"` c #4D598C", +" . c #8083A8", +".. c #4A5485", +"+. c #404366", +" . + @ # ", +" $ % & * = - - ; ", +"> , - ' - ) ! - - - - ", +"~ { - - - ] ^ / ( _ : ", +" < - - - [ } | 1 2 3 ", +" 4 5 6 < 7 8 9 0 a b c d ", +" e - - f g h ", +" i - - j k l ", +" ! - - m n o ", +" p - - q r s ", +" t t u , v w x y z A B C ", +" D - - < E F G H I J ", +"K , - - - L M N O P < ", +"Q R S T I U V a W - < ", +" X Y Z ` ..., +. ", +" "}; --- freebirth-0.3.2.orig/debian/freebirth-alsa +++ freebirth-0.3.2/debian/freebirth-alsa @@ -0,0 +1,3 @@ +#! /bin/sh + +[ -f /usr/bin/aoss ] && /usr/bin/aoss /usr/bin/freebirth || ( echo "Could not find /usr/bin/aoss, please instal alsa-oss" && exit 1 ) --- freebirth-0.3.2.orig/debian/freebirth-data.docs +++ freebirth-0.3.2/debian/freebirth-data.docs @@ -0,0 +1 @@ +raw/README --- freebirth-0.3.2.orig/debian/freebirth.desktop +++ freebirth-0.3.2/debian/freebirth.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Freebirth +GenericName=Freebirth +Comment=Bass synthesizer/sample player/sequencer +Icon=/usr/share/pixmaps/freebirth.xpm +Exec=freebirth-alsa +Terminal=false +Type=Application +Categories=Application;AudioVideo;Audio; --- freebirth-0.3.2.orig/debian/freebirth.links +++ freebirth-0.3.2/debian/freebirth.links @@ -0,0 +1 @@ +usr/share/man/man1/freebirth.1.gz usr/share/man/man1/freebirth-alsa.1.gz --- freebirth-0.3.2.orig/debian/freebirth.manpages +++ freebirth-0.3.2/debian/freebirth.manpages @@ -0,0 +1 @@ +debian/freebirth.1 --- freebirth-0.3.2.orig/debian/freebirth.sgml +++ freebirth-0.3.2/debian/freebirth.sgml @@ -0,0 +1,92 @@ +Matt"> + Zimmerman"> + January 6, 2001"> + 1"> + mdz@debian.org"> + + FREEBIRTH"> + + + Debian GNU/Linux"> + GNU"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2000 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + Bass synthesizer/sample player/sequencer + + + + &dhpackage; + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; program. + + This manual page was written for the &debian; distribution + because the original program does not ship with any + documentation. There are some instructions available on the + freebirth website. + + + + + + AUTHOR + + This manual page was written by &dhusername; &dhemail; for + the &debian; system (but may be used by others). + + + + +
+ + --- freebirth-0.3.2.orig/debian/freebirth.xpm +++ freebirth-0.3.2/debian/freebirth.xpm @@ -0,0 +1,344 @@ +/* XPM */ +static char * freebirth_xpm[] = { +"32 32 309 2", +" c None", +". c #6E707F", +"+ c #38436E", +"@ c #30407D", +"# c #30478F", +"$ c #304A95", +"% c #344C94", +"& c #4B5E9F", +"* c #706F75", +"= c #3A3B52", +"- c #303254", +"; c #2F3252", +"> c #303251", +", c #343656", +"' c #4F516D", +") c #676978", +"! c #313F79", +"~ c #3A4B91", +"{ c #394B91", +"] c #394E99", +"^ c #39519E", +"/ c #394D96", +"( c #3A4B90", +"_ c #4D5C99", +": c #6A6971", +"< c #313452", +"[ c #393C60", +"} c #3A3C61", +"| c #3A3C62", +"1 c #4C4E6E", +"2 c #343962", +"3 c #39427B", +"4 c #39437D", +"5 c #3A437C", +"6 c #3A4481", +"7 c #3A4582", +"8 c #3A427A", +"9 c #3A4072", +"0 c #3A406F", +"a c #7C7E95", +"b c #36384F", +"c c #797A8E", +"d c #343759", +"e c #393D61", +"f c #393C61", +"g c #3A3C63", +"h c #6D6E87", +"i c #353757", +"j c #5E607B", +"k c #35385A", +"l c #6C6E87", +"m c #37395A", +"n c #5A5C79", +"o c #36385B", +"p c #393B61", +"q c #6B6D86", +"r c #363C67", +"s c #394377", +"t c #3A447B", +"u c #394174", +"v c #393D67", +"w c #3A3D60", +"x c #37385C", +"y c #595B77", +"z c #7F828F", +"A c #475D9A", +"B c #4963A6", +"C c #3F5CA5", +"D c #3A539F", +"E c #39498C", +"F c #393E6A", +"G c #5E607C", +"H c #3F415E", +"I c #434568", +"J c #9C9BA4", +"K c #767784", +"L c #7B80A5", +"M c #6F7BA8", +"N c #4C68A7", +"O c #3A56A4", +"P c #3A4D95", +"Q c #3A4074", +"R c #3A3C60", +"S c #3A3D61", +"T c #808193", +"U c #767584", +"V c #3C3E61", +"W c #5E5F7B", +"X c #88878D", +"Y c #70728E", +"Z c #8083A8", +"` c #757EA7", +" . c #4D68A7", +".. c #3A55A2", +"+. c #3A4A8F", +"@. c #3A3D6A", +"#. c #535572", +"$. c #4E506F", +"%. c #454769", +"&. c #444668", +"*. c #3E4164", +"=. c #3A3D62", +"-. c #4D4F6E", +";. c #727284", +">. c #89888F", +",. c #86858D", +"'. c #6C6F7E", +"). c #6F718B", +"!. c #8083A7", +"~. c #8183A8", +"{. c #757EA8", +"]. c #526CA9", +"^. c #435DA6", +"/. c #45518D", +"(. c #44476A", +"_. c #494B6B", +":. c #65667E", +"<. c #96959E", +"[. c #707185", +"}. c #424465", +"|. c #393B5F", +"1. c #383A5B", +"2. c #373959", +"3. c #373958", +"4. c #353C68", +"5. c #596BA0", +"6. c #8285A9", +"7. c #9298B5", +"8. c #959FB7", +"9. c #8B8A93", +"0. c #3C3F5F", +"a. c #3A4070", +"b. c #435AA0", +"c. c #6C79A8", +"d. c #727CA8", +"e. c #949BB9", +"f. c #626274", +"g. c #393D66", +"h. c #3B4D8F", +"i. c #4561A5", +"j. c #4A67A7", +"k. c #4963A9", +"l. c #A5A9B9", +"m. c #7E7D84", +"n. c #37395D", +"o. c #3A4377", +"p. c #586DA7", +"q. c #787FA8", +"r. c #6475A8", +"s. c #627AB4", +"t. c #828187", +"u. c #394378", +"v. c #566BA6", +"w. c #6877A7", +"x. c #768AB8", +"y. c #828186", +"z. c #36385A", +"A. c #3A3F6F", +"B. c #3E58A1", +"C. c #4A66A7", +"D. c #415EA6", +"E. c #647DB6", +"F. c #7B797F", +"G. c #3A4E96", +"H. c #3A56A6", +"I. c #3A4E98", +"J. c #5969A6", +"K. c #52525E", +"L. c #383B5F", +"M. c #393D62", +"N. c #394D92", +"O. c #3B5CA7", +"P. c #3A529E", +"Q. c #42559B", +"R. c #9FA4B9", +"S. c #77777C", +"T. c #31334F", +"U. c #393D60", +"V. c #3A4888", +"W. c #4060A6", +"X. c #3B5AA7", +"Y. c #3A519E", +"Z. c #5A6AA4", +"`. c #9FA0AD", +" + c #7C7B80", +".+ c #535360", +"++ c #313350", +"@+ c #3D3F64", +"#+ c #47486A", +"$+ c #48496B", +"%+ c #47496A", +"&+ c #40456F", +"*+ c #3A4A8B", +"=+ c #394F98", +"-+ c #3A4C93", +";+ c #47528B", +">+ c #656789", +",+ c #63626C", +"'+ c #343652", +")+ c #353858", +"!+ c #36395A", +"~+ c #383B5E", +"{+ c #3B3E62", +"]+ c #62647D", +"^+ c #8F8E99", +"/+ c #77778D", +"(+ c #434E86", +"_+ c #39488B", +":+ c #384075", +"<+ c #373A5E", +"[+ c #393B5C", +"}+ c #474968", +"|+ c #62626A", +"1+ c #323555", +"2+ c #6B6C83", +"3+ c #9192A3", +"4+ c #3F569E", +"5+ c #3A57A7", +"6+ c #3A54A5", +"7+ c #3A509C", +"8+ c #3A4E97", +"9+ c #3A4785", +"0+ c #3A3D64", +"a+ c #494B6C", +"b+ c #34354E", +"c+ c #464869", +"d+ c #A2A2A9", +"e+ c #5F719E", +"f+ c #3955A4", +"g+ c #3B58A7", +"h+ c #425FA7", +"i+ c #5068A7", +"j+ c #4159A0", +"k+ c #393F6E", +"l+ c #78798E", +"m+ c #343758", +"n+ c #5B5D7A", +"o+ c #8A8D9A", +"p+ c #5F70A2", +"q+ c #6575A8", +"r+ c #747DA8", +"s+ c #7D81A8", +"t+ c #586BA4", +"u+ c #394071", +"v+ c #5C5E7A", +"w+ c #393C62", +"x+ c #6C6E86", +"y+ c #797B9D", +"z+ c #8183A9", +"A+ c #5A6BA2", +"B+ c #393F6C", +"C+ c #5A5C78", +"D+ c #353D6D", +"E+ c #393E68", +"F+ c #393D64", +"G+ c #393C64", +"H+ c #393C63", +"I+ c #6C6D86", +"J+ c #797B9C", +"K+ c #50619B", +"L+ c #3A3D65", +"M+ c #47609E", +"N+ c #41599D", +"O+ c #405497", +"P+ c #425595", +"Q+ c #445696", +"R+ c #425493", +"S+ c #3D4C88", +"T+ c #393F6F", +"U+ c #6D6F87", +"V+ c #7A7D9D", +"W+ c #7B81A8", +"X+ c #44528D", +"Y+ c #61637E", +"Z+ c #556B9F", +"`+ c #516AA7", +" @ c #6676A7", +".@ c #7A80A8", +"+@ c #7C82A8", +"@@ c #7B81A7", +"#@ c #717BA7", +"$@ c #455898", +"%@ c #3B3F68", +"&@ c #828293", +"*@ c #81839E", +"=@ c #8084A8", +"-@ c #6975A5", +";@ c #3A4375", +">@ c #808192", +",@ c #7983A3", +"'@ c #3C549C", +")@ c #4C65A6", +"!@ c #7A81A7", +"~@ c #5E6EA4", +"{@ c #596089", +"]@ c #8385A7", +"^@ c #7E82A7", +"/@ c #4B5A94", +"(@ c #5A5C77", +"_@ c #5B73AB", +":@ c #7B83A8", +"<@ c #8689A8", +"[@ c #8589A8", +"}@ c #8D90AE", +"|@ c #969CB6", +"1@ c #7E86AB", +"2@ c #495281", +"3@ c #474A6A", +"4@ c #6B6C81", +" ", +" . + @ # $ % & * = - ; > , ' ", +" ) ! ~ { ] ^ / ( _ : < [ } | | | | 1 ", +" 2 3 4 5 6 7 8 9 0 a b [ } } | | | } } c ", +" d e f | g g f | | h i } | | | | | | f j ", +" k f [ } } f f | } l m } | | | | | | f n ", +" o p p | | | | | } q r s t u v f } w f n ", +" x | p | | | | | } y z A B C D E F } w f G ", +" H f f | | | | | } I J K L M N O P Q } R S T ", +" U V f | | | | | | e W X Y Z ` ...+.@.} } #. ", +" $.%.&.&.*.S f f =.-.;.>. ,.'.).!.~.{.].^./.(._.:. ", +" <.[.}.} } } |.1.2.3.4.5.Z ~.6.7.8. ", +" 9.0.f | | } | f a.b.c.d.e. ", +" f.[ | | | | g.h.i.j.k.l. ", +" m.n.| | | | o.p.q.r.s. ", +" t.o | | | | u.v.q.w.x. ", +" y.z.| | | | A.B.C.D.E. ", +" F.o | | | | g.G.H.I.J. ", +" K.L.| | | | M.N.O.P.Q.R. ", +" S.T.f | | | | U.V.W.X.Y.Z.`. ", +" +.+++f f | @+#+$+%+&+*+=+-++.;+>+ ", +" ,+'+)+m 2.!+~+} f {+]+^+ /+(+P I.-+_+:+<+m [+}+ ", +" |+1+[ } } } f e e S 2+ 3+4+5+6+7+8+9+0+} } a+ ", +" b+f f | | | | | } c+d+ e+f+g+h+i+j+k+| | e l+ ", +" m+e f | | | | | } n+ o+p+q+r+s+t+u+| | f v+ ", +" k f f w+f f f | | x+ y+Z z+Z A+B+| } U.C+ ", +" D+E+F+G+F+H+w+| | I+ J+~.z+Z K+L+| } U.C+ ", +" M+N+O+P+Q+R+S+T+} U+ V+Z Z W+X+f | | f Y+ ", +" Z+`+ @.@+@@@#@$@%@&@ *@Z =@-@;@f | | S >@ ", +" ,@'@)@!@Z ~.~.~@{@ ]@^@/@F+f } S (@ ", +" _@:@<@[@}@|@ 1@2@3@3@$.4@ ", +" "}; --- freebirth-0.3.2.orig/debian/menu +++ freebirth-0.3.2/debian/menu @@ -0,0 +1,4 @@ +?package(freebirth):needs="X11" section="Applications/Sound"\ + title="Freebirth" command="/usr/bin/freebirth-alsa" \ + icon32x32="/usr/share/pixmaps/freebirth.xpm" \ + icon16x16="/usr/share/pixmaps/freebirth-16.xpm" --- freebirth-0.3.2.orig/debian/rules +++ freebirth-0.3.2/debian/rules @@ -0,0 +1,96 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +CFLAGS=-g -Wall $(shell pkg-config --cflags gtk+-2.0) +LDFLAGS=$(shell pkg-config --libs gtk+-2.0) + +# Handle DEB_BUILD_OPTIONS +ifneq "$(findstring noopt,$(DEB_BUILD_OPTIONS))" "" + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + +build: configure-stamp build-stamp +build-stamp: + dh_testdir + + # Add here commands to compile the package. + $(MAKE) CFLAGS="$(CFLAGS)" + /usr/bin/docbook-to-man debian/freebirth.sgml > debian/freebirth.1 + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + rm -f debian/freebirth.1 + + dh_clean + + +install-arch: + dh_testdir + dh_testroot + dh_clean -k -a + dh_installdirs + + # Add here commands to install the package into debian/freebirth. + dh_install freebirth usr/bin + dh_install debian/freebirth-alsa usr/bin + dh_install debian/freebirth.desktop usr/share/applications + dh_install debian/freebirth.xpm usr/share/pixmaps + dh_install debian/freebirth-16.xpm usr/share/pixmaps + +install-indep: + dh_testdir + dh_testroot + dh_clean -k -i + dh_installdirs + + dh_install -XCVS -XREADME -i raw usr/share/freebirth + +install: install-indep install-arch + +# Build architecture-dependent files here. +binary-common: + dh_testdir + dh_testroot + dh_installdocs + dh_installmenu + dh_installman + dh_installchangelogs CHANGES + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb +# Build architecture independant packages using the common target. +binary-indep: install-indep + $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common + +# Build architecture dependant packages using the common target. +binary-arch: build install-arch + $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure --- freebirth-0.3.2.orig/freebirth.c +++ freebirth-0.3.2/freebirth.c @@ -248,15 +248,15 @@ //bass_e = env_new(1025,10000,(sample_producer *)osc_blender); sl = g_slist_append(sl, bass_e); - kick = raw_wave_new("raw/kick.raw"); + kick = raw_wave_new("/usr/share/freebirth/raw/kick.raw"); sl = g_slist_append(sl, kick); - snare = raw_wave_new("raw/snare.raw"); + snare = raw_wave_new("/usr/share/freebirth/raw/snare.raw"); sl = g_slist_append(sl, snare); - cl_hat = raw_wave_new("raw/cl_hat.raw"); + cl_hat = raw_wave_new("/usr/share/freebirth/raw/cl_hat.raw"); sl = g_slist_append(sl, cl_hat); - op_hat = raw_wave_new("raw/op_hat.raw"); + op_hat = raw_wave_new("/usr/share/freebirth/raw/op_hat.raw"); sl = g_slist_append(sl, op_hat); - samp_1 = raw_wave_new("raw/samp_1.raw"); + samp_1 = raw_wave_new("/usr/share/freebirth/raw/samp_1.raw"); sl = g_slist_append(sl, samp_1); sources = (sample_producer**) @@ -1087,7 +1087,7 @@ /*effect window */ - effect_window = gtk_window_new (GTK_WINDOW_DIALOG); + effect_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (effect_window), "Effects"); gtk_widget_set_style(effect_window,window_style); effect_box = gtk_vbox_new(FALSE,10); @@ -1109,7 +1109,7 @@ /* sample freq window */ - sample_freq_window = gtk_window_new (GTK_WINDOW_DIALOG); + sample_freq_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW (sample_freq_window), "Sample Pitch"); sample_freq_box = gtk_vbox_new(TRUE,10); gtk_widget_set_style(sample_freq_window,window_style); --- freebirth-0.3.2.orig/fuse_loops.c +++ freebirth-0.3.2/fuse_loops.c @@ -122,7 +122,18 @@ fprintf(file, "/* generated file -- don't edit */\n"); fprintf(file, "#include \n"); fprintf(file, "#include \n"); + fprintf(file, "#include \n"); fprintf(file, "#include \"freebirth.h\"\n"); + fprintf(file, "/* borrowed from glib2 */\n"); + fprintf(file, "#define SHORT_SWAP_LE_BE(val) ((short) ( \\\n"); + fprintf(file, " (short) ((short) (val) >> 8) | \\\n"); + fprintf(file, " (short) ((short) (val) << 8)))\n"); + fprintf(file, "static void swap_endian(short *data, int length)\n"); + fprintf(file, "{\n"); + fprintf(file, " int i;\n"); + fprintf(file, " for (i = 0; i < length; i += 1, data++)\n"); + fprintf(file, " *data = SHORT_SWAP_LE_BE(*data);\n"); + fprintf(file, "}\n"); fprintf(file, "\n"); fprintf(file, "sample_producer *sp[%d];\n", g_list_length(order)); @@ -172,6 +183,9 @@ fprintf(file, " }\n"); fprintf(file, "\n"); + fprintf(file, "#if __BYTE_ORDER == __BIG_ENDIAN\n"); + fprintf(file, " swap_endian(buffer, 2 * TBASS_BUFF_SIZE);\n"); + fprintf(file, "#endif\n"); fprintf(file, " write(fd, buffer, 2 * TBASS_BUFF_SIZE * sizeof(short));\n"); fprintf(file, "\n"); --- freebirth-0.3.2.orig/fused_loop.c +++ freebirth-0.3.2/fused_loop.c @@ -0,0 +1,597 @@ +/* generated file -- don't edit */ +#include +#include +#include +#include "freebirth.h" +/* borrowed from glib2 */ +#define SHORT_SWAP_LE_BE(val) ((short) ( \ + (short) ((short) (val) >> 8) | \ + (short) ((short) (val) << 8))) +static void swap_endian(short *data, int length) +{ + int i; + for (i = 0; i < length; i += 1, data++) + *data = SHORT_SWAP_LE_BE(*data); +} + +sample_producer *sp[31]; + +int play_buffer(gpointer data, gint source, GdkInputCondition condition) +{ + int i; + short buffer[TBASS_BUFF_SIZE * 2]; + + sample samp0; + sample samp1; + sample samp2; + sample samp3; + sample samp4; + sample samp5; + sample samp6; + sample samp7; + sample samp8; + sample samp9; + sample samp10; + sample samp11; + sample samp12; + sample samp13; + sample samp14; + sample samp15; + sample samp16; + sample samp17; + sample samp18; + sample samp19; + sample samp20; + sample samp21; + sample samp22; + sample samp23; + sample samp24; + sample samp25; + sample samp26; + sample samp27; + sample samp28; + sample samp29; + sample samp30; + + int seq_off = sequencer->current_sample_offset; + int seq_spb = sequencer->spb; + event_list *el; + int j; + + sample *n0_table = ((raw_wave *)sp[0])->table; + int n0_length = ((raw_wave *)sp[0])->length; + sample n0_s1, n0_s2; + double n0_ci_w, n0_ci_f, n0_pitch = ((raw_wave *)sp[0])->pitch; + + sample *n1_table = ((raw_wave *)sp[1])->table; + int n1_length = ((raw_wave *)sp[1])->length; + sample n1_s1, n1_s2; + double n1_ci_w, n1_ci_f, n1_pitch = ((raw_wave *)sp[1])->pitch; + + sample *n2_table = ((raw_wave *)sp[2])->table; + int n2_length = ((raw_wave *)sp[2])->length; + sample n2_s1, n2_s2; + double n2_ci_w, n2_ci_f, n2_pitch = ((raw_wave *)sp[2])->pitch; + + sample *n3_table = ((raw_wave *)sp[3])->table; + int n3_length = ((raw_wave *)sp[3])->length; + sample n3_s1, n3_s2; + double n3_ci_w, n3_ci_f, n3_pitch = ((raw_wave *)sp[3])->pitch; + + sample *n4_table = ((raw_wave *)sp[4])->table; + int n4_length = ((raw_wave *)sp[4])->length; + sample n4_s1, n4_s2; + double n4_ci_w, n4_ci_f, n4_pitch = ((raw_wave *)sp[4])->pitch; + + int n5_phase_offset = ((osc *)sp[5])->phase_offset; + double n5_freq_offset = ((osc *)sp[5])->freq_offset; + int n5_freq = ((osc *)sp[5])->freq; + int n5_phase_factor = n5_phase_offset / n5_freq; + sample *n5_table = ((osc *)sp[5])->table; + int n5_i = ((osc *)sp[5])->current_index; + + int n6_phase_offset = ((osc *)sp[6])->phase_offset; + double n6_freq_offset = ((osc *)sp[6])->freq_offset; + int n6_freq = ((osc *)sp[6])->freq; + int n6_phase_factor = n6_phase_offset / n6_freq; + sample *n6_table = ((osc *)sp[6])->table; + int n6_i = ((osc *)sp[6])->current_index; + + int n7_phase_offset = ((osc *)sp[7])->phase_offset; + double n7_freq_offset = ((osc *)sp[7])->freq_offset; + int n7_freq = ((osc *)sp[7])->freq; + int n7_phase_factor = n7_phase_offset / n7_freq; + sample *n7_table = ((osc *)sp[7])->table; + int n7_i = ((osc *)sp[7])->current_index; + + int n8_blend = ((blender *)sp[8])->blend_factor; + int n8_strength0 = ((blender *)sp[8])->strength[0]; + int n8_strength1 = ((blender *)sp[8])->strength[1]; + int n8_strength2 = ((blender *)sp[8])->strength[2]; + + int n9_attack = ((env *)sp[9])->attack; + int n9_release = ((env *)sp[9])->release; + + int n10_fc = ((filter *)sp[10])->fc; + float n10_Q = ((filter *)sp[10])->Q; + float n10_s; + + int n11_attack = ((env *)sp[11])->attack; + int n11_release = ((env *)sp[11])->release; + + int n12_amp0 = ((mixer *)sp[12])->amplitude[0]; + int n12_amp1 = ((mixer *)sp[12])->amplitude[1]; + int n12_amp2 = ((mixer *)sp[12])->amplitude[2]; + int n12_amp3 = ((mixer *)sp[12])->amplitude[3]; + int n12_amp4 = ((mixer *)sp[12])->amplitude[4]; + int n12_amp5 = ((mixer *)sp[12])->amplitude[5]; + int n12_mute0 = ((mixer *)sp[12])->mute_map[0]; + int n12_mute1 = ((mixer *)sp[12])->mute_map[1]; + int n12_mute2 = ((mixer *)sp[12])->mute_map[2]; + int n12_mute3 = ((mixer *)sp[12])->mute_map[3]; + int n12_mute4 = ((mixer *)sp[12])->mute_map[4]; + int n12_mute5 = ((mixer *)sp[12])->mute_map[5]; + + int n13_i = ((delay *)sp[13])->d_index; + int n13_size = ((delay *)sp[13])->delay_size; + int n13_feedback = ((delay *)sp[13])->feedback; + sample *n13_buf = ((delay *)sp[13])->delay_buffer; + + int n14_i = ((delay *)sp[14])->d_index; + int n14_size = ((delay *)sp[14])->delay_size; + int n14_feedback = ((delay *)sp[14])->feedback; + sample *n14_buf = ((delay *)sp[14])->delay_buffer; + + int n15_i = ((delay *)sp[15])->d_index; + int n15_size = ((delay *)sp[15])->delay_size; + int n15_feedback = ((delay *)sp[15])->feedback; + sample *n15_buf = ((delay *)sp[15])->delay_buffer; + + int n16_amp0 = ((mixer *)sp[16])->amplitude[0]; + int n16_amp1 = ((mixer *)sp[16])->amplitude[1]; + int n16_amp2 = ((mixer *)sp[16])->amplitude[2]; + int n16_mute0 = ((mixer *)sp[16])->mute_map[0]; + int n16_mute1 = ((mixer *)sp[16])->mute_map[1]; + int n16_mute2 = ((mixer *)sp[16])->mute_map[2]; + + + int n18_amp0 = ((mixer *)sp[18])->amplitude[0]; + int n18_amp1 = ((mixer *)sp[18])->amplitude[1]; + int n18_amp2 = ((mixer *)sp[18])->amplitude[2]; + int n18_amp3 = ((mixer *)sp[18])->amplitude[3]; + int n18_amp4 = ((mixer *)sp[18])->amplitude[4]; + int n18_amp5 = ((mixer *)sp[18])->amplitude[5]; + int n18_mute0 = ((mixer *)sp[18])->mute_map[0]; + int n18_mute1 = ((mixer *)sp[18])->mute_map[1]; + int n18_mute2 = ((mixer *)sp[18])->mute_map[2]; + int n18_mute3 = ((mixer *)sp[18])->mute_map[3]; + int n18_mute4 = ((mixer *)sp[18])->mute_map[4]; + int n18_mute5 = ((mixer *)sp[18])->mute_map[5]; + + int n19_i = ((delay *)sp[19])->d_index; + int n19_size = ((delay *)sp[19])->delay_size; + int n19_feedback = ((delay *)sp[19])->feedback; + sample *n19_buf = ((delay *)sp[19])->delay_buffer; + + int n20_i = ((delay *)sp[20])->d_index; + int n20_size = ((delay *)sp[20])->delay_size; + int n20_feedback = ((delay *)sp[20])->feedback; + sample *n20_buf = ((delay *)sp[20])->delay_buffer; + + int n21_i = ((delay *)sp[21])->d_index; + int n21_size = ((delay *)sp[21])->delay_size; + int n21_feedback = ((delay *)sp[21])->feedback; + sample *n21_buf = ((delay *)sp[21])->delay_buffer; + + int n22_i = ((delay *)sp[22])->d_index; + int n22_size = ((delay *)sp[22])->delay_size; + int n22_feedback = ((delay *)sp[22])->feedback; + sample *n22_buf = ((delay *)sp[22])->delay_buffer; + + int n23_i = ((delay *)sp[23])->d_index; + int n23_size = ((delay *)sp[23])->delay_size; + int n23_feedback = ((delay *)sp[23])->feedback; + sample *n23_buf = ((delay *)sp[23])->delay_buffer; + + int n24_i = ((delay *)sp[24])->d_index; + int n24_size = ((delay *)sp[24])->delay_size; + int n24_feedback = ((delay *)sp[24])->feedback; + sample *n24_buf = ((delay *)sp[24])->delay_buffer; + + int n25_amp0 = ((mixer *)sp[25])->amplitude[0]; + int n25_amp1 = ((mixer *)sp[25])->amplitude[1]; + int n25_amp2 = ((mixer *)sp[25])->amplitude[2]; + int n25_amp3 = ((mixer *)sp[25])->amplitude[3]; + int n25_amp4 = ((mixer *)sp[25])->amplitude[4]; + int n25_amp5 = ((mixer *)sp[25])->amplitude[5]; + int n25_mute0 = ((mixer *)sp[25])->mute_map[0]; + int n25_mute1 = ((mixer *)sp[25])->mute_map[1]; + int n25_mute2 = ((mixer *)sp[25])->mute_map[2]; + int n25_mute3 = ((mixer *)sp[25])->mute_map[3]; + int n25_mute4 = ((mixer *)sp[25])->mute_map[4]; + int n25_mute5 = ((mixer *)sp[25])->mute_map[5]; + + int n26_i = ((all_pass *)sp[26])->d_index; + int n26_size = ((all_pass *)sp[26])->delay_size; + int n26_feedback = ((all_pass *)sp[26])->feedback; + sample *n26_buf = ((all_pass *)sp[26])->delay_buffer; + + int n27_i = ((all_pass *)sp[27])->d_index; + int n27_size = ((all_pass *)sp[27])->delay_size; + int n27_feedback = ((all_pass *)sp[27])->feedback; + sample *n27_buf = ((all_pass *)sp[27])->delay_buffer; + + + int n29_amp0 = ((mixer *)sp[29])->amplitude[0]; + int n29_amp1 = ((mixer *)sp[29])->amplitude[1]; + int n29_amp2 = ((mixer *)sp[29])->amplitude[2]; + int n29_amp3 = ((mixer *)sp[29])->amplitude[3]; + int n29_amp4 = ((mixer *)sp[29])->amplitude[4]; + int n29_amp5 = ((mixer *)sp[29])->amplitude[5]; + int n29_amp6 = ((mixer *)sp[29])->amplitude[6]; + int n29_amp7 = ((mixer *)sp[29])->amplitude[7]; + int n29_mute0 = ((mixer *)sp[29])->mute_map[0]; + int n29_mute1 = ((mixer *)sp[29])->mute_map[1]; + int n29_mute2 = ((mixer *)sp[29])->mute_map[2]; + int n29_mute3 = ((mixer *)sp[29])->mute_map[3]; + int n29_mute4 = ((mixer *)sp[29])->mute_map[4]; + int n29_mute5 = ((mixer *)sp[29])->mute_map[5]; + int n29_mute6 = ((mixer *)sp[29])->mute_map[6]; + int n29_mute7 = ((mixer *)sp[29])->mute_map[7]; + + int n30_amp0 = ((mixer *)sp[30])->amplitude[0]; + int n30_amp1 = ((mixer *)sp[30])->amplitude[1]; + int n30_amp2 = ((mixer *)sp[30])->amplitude[2]; + int n30_amp3 = ((mixer *)sp[30])->amplitude[3]; + int n30_amp4 = ((mixer *)sp[30])->amplitude[4]; + int n30_amp5 = ((mixer *)sp[30])->amplitude[5]; + int n30_amp6 = ((mixer *)sp[30])->amplitude[6]; + int n30_amp7 = ((mixer *)sp[30])->amplitude[7]; + int n30_mute0 = ((mixer *)sp[30])->mute_map[0]; + int n30_mute1 = ((mixer *)sp[30])->mute_map[1]; + int n30_mute2 = ((mixer *)sp[30])->mute_map[2]; + int n30_mute3 = ((mixer *)sp[30])->mute_map[3]; + int n30_mute4 = ((mixer *)sp[30])->mute_map[4]; + int n30_mute5 = ((mixer *)sp[30])->mute_map[5]; + int n30_mute6 = ((mixer *)sp[30])->mute_map[6]; + int n30_mute7 = ((mixer *)sp[30])->mute_map[7]; + + for (i = 0; i < TBASS_BUFF_SIZE; i++) { + seq_off++; + if (seq_off >= seq_spb) { + sequencer->current_step++; + if (sequencer->current_step >= sequencer->length) + sequencer->current_step = 0; + sequencer->callback(sequencer->current_step); + seq_off -= seq_spb; + el = sequencer->event_map[sequencer->current_step]; + for (j=0; j < el->length; j++) { + event *e = el->events[j]; + e->fire(e, sequencer->victims[e->seq_handle]); + } + } + + if (((raw_wave *)sp[0])->current_index >= n0_length) + samp0 = 0; + else { + n0_ci_f = modf(((raw_wave *)sp[0])->current_index, &n0_ci_w); + n0_s1 = n0_table[(int)n0_ci_w]; + n0_s2 = n0_table[(int)n0_ci_w +1]; + ((raw_wave *)sp[0])->current_index += n0_pitch; + samp0 = (n0_s2 - n0_s1) * n0_ci_f + n0_s1; + } + + if (((raw_wave *)sp[1])->current_index >= n1_length) + samp1 = 0; + else { + n1_ci_f = modf(((raw_wave *)sp[1])->current_index, &n1_ci_w); + n1_s1 = n1_table[(int)n1_ci_w]; + n1_s2 = n1_table[(int)n1_ci_w +1]; + ((raw_wave *)sp[1])->current_index += n1_pitch; + samp1 = (n1_s2 - n1_s1) * n1_ci_f + n1_s1; + } + + if (((raw_wave *)sp[2])->current_index >= n2_length) + samp2 = 0; + else { + n2_ci_f = modf(((raw_wave *)sp[2])->current_index, &n2_ci_w); + n2_s1 = n2_table[(int)n2_ci_w]; + n2_s2 = n2_table[(int)n2_ci_w +1]; + ((raw_wave *)sp[2])->current_index += n2_pitch; + samp2 = (n2_s2 - n2_s1) * n2_ci_f + n2_s1; + } + + if (((raw_wave *)sp[3])->current_index >= n3_length) + samp3 = 0; + else { + n3_ci_f = modf(((raw_wave *)sp[3])->current_index, &n3_ci_w); + n3_s1 = n3_table[(int)n3_ci_w]; + n3_s2 = n3_table[(int)n3_ci_w +1]; + ((raw_wave *)sp[3])->current_index += n3_pitch; + samp3 = (n3_s2 - n3_s1) * n3_ci_f + n3_s1; + } + + if (((raw_wave *)sp[4])->current_index >= n4_length) + samp4 = 0; + else { + n4_ci_f = modf(((raw_wave *)sp[4])->current_index, &n4_ci_w); + n4_s1 = n4_table[(int)n4_ci_w]; + n4_s2 = n4_table[(int)n4_ci_w +1]; + ((raw_wave *)sp[4])->current_index += n4_pitch; + samp4 = (n4_s2 - n4_s1) * n4_ci_f + n4_s1; + } + + samp5 = n5_table[n5_i + n5_phase_factor]; + n5_i += n5_freq + (n5_freq * n5_freq_offset) / MAX_FREQ_OFFSET; + if (n5_i + n5_phase_factor >= RATE) + n5_i = n5_i + n5_phase_factor - RATE; + + samp6 = n6_table[n6_i + n6_phase_factor]; + n6_i += n6_freq + (n6_freq * n6_freq_offset) / MAX_FREQ_OFFSET; + if (n6_i + n6_phase_factor >= RATE) + n6_i = n6_i + n6_phase_factor - RATE; + + samp7 = n7_table[n7_i + n7_phase_factor]; + n7_i += n7_freq + (n7_freq * n7_freq_offset) / MAX_FREQ_OFFSET; + if (n7_i + n7_phase_factor >= RATE) + n7_i = n7_i + n7_phase_factor - RATE; + + samp8 = (samp5 * n8_strength0 / n8_blend) + (samp6 * n8_strength1 / n8_blend) + (samp7 * n8_strength2 / n8_blend); + + if (((env *)sp[9])->current_index < n9_attack) + samp9 = (SAMPLE_MAX - ((env *)sp[9])->start) * ((env *)sp[9])->current_index / n9_attack + ((env *)sp[9])->start; + else if (((env *)sp[9])->current_index < (n9_attack + n9_release)) + samp9 = -SAMPLE_MAX * (((env *)sp[9])->current_index - n9_attack) / n9_release + SAMPLE_MAX; + else + samp9 = 0; + ((env *)sp[9])->current_index++; + + filter_set_coeffs((filter *)sp[10], n10_fc * + (samp9 * (SAMPLE_MAX - LIMIT) / SAMPLE_MAX + LIMIT) / + SAMPLE_MAX, n10_Q); + n10_s = filter_process_sample((filter *)sp[10], samp8); + if (n10_s > SAMPLE_MAX) n10_s = SAMPLE_MAX; + else if (n10_s < SAMPLE_MIN) n10_s = SAMPLE_MIN; + samp10 = n10_s; + + if (((env *)sp[11])->current_index < n11_attack) + samp11 = ((SAMPLE_MAX - ((env *)sp[11])->start) * ((env *)sp[11])->current_index / + n11_attack + ((env *)sp[11])->start) * samp10 / SAMPLE_MAX; + else if (((env *)sp[11])->current_index < (n11_attack + n11_release)) + samp11 = (-SAMPLE_MAX * (((env *)sp[11])->current_index - n11_attack) / n11_release + SAMPLE_MAX) * + samp10 / SAMPLE_MAX; + else + samp11 = 0; + ((env *)sp[11])->current_index++; + + if(n12_mute0 > 0) + n12_amp0 = 0; +if(n12_mute1 > 0) + n12_amp1 = 0; +if(n12_mute2 > 0) + n12_amp2 = 0; +if(n12_mute3 > 0) + n12_amp3 = 0; +if(n12_mute4 > 0) + n12_amp4 = 0; +if(n12_mute5 > 0) + n12_amp5 = 0; + + samp12 = (samp0 * n12_amp0 / MIX_MAX_AMP) + (samp1 * n12_amp1 / MIX_MAX_AMP) + (samp2 * n12_amp2 / MIX_MAX_AMP) + (samp3 * n12_amp3 / MIX_MAX_AMP) + (samp4 * n12_amp4 / MIX_MAX_AMP) + (samp11 * n12_amp5 / MIX_MAX_AMP); + + if (n13_i >= n13_size) + n13_i = 0; + samp13 = n13_buf[n13_i]; + n13_buf[n13_i] = samp12 + n13_buf[n13_i] * n13_feedback / MAX_FEEDBACK; + n13_i++; + + if (n14_i >= n14_size) + n14_i = 0; + samp14 = n14_buf[n14_i]; + n14_buf[n14_i] = samp13 + n14_buf[n14_i] * n14_feedback / MAX_FEEDBACK; + n14_i++; + + if (n15_i >= n15_size) + n15_i = 0; + samp15 = n15_buf[n15_i]; + n15_buf[n15_i] = samp14 + n15_buf[n15_i] * n15_feedback / MAX_FEEDBACK; + n15_i++; + + if(n16_mute0 > 0) + n16_amp0 = 0; +if(n16_mute1 > 0) + n16_amp1 = 0; +if(n16_mute2 > 0) + n16_amp2 = 0; + + samp16 = (samp13 * n16_amp0 / MIX_MAX_AMP) + (samp14 * n16_amp1 / MIX_MAX_AMP) + (samp15 * n16_amp2 / MIX_MAX_AMP); + + samp17 = samp16; + + if(n18_mute0 > 0) + n18_amp0 = 0; +if(n18_mute1 > 0) + n18_amp1 = 0; +if(n18_mute2 > 0) + n18_amp2 = 0; +if(n18_mute3 > 0) + n18_amp3 = 0; +if(n18_mute4 > 0) + n18_amp4 = 0; +if(n18_mute5 > 0) + n18_amp5 = 0; + + samp18 = (samp0 * n18_amp0 / MIX_MAX_AMP) + (samp1 * n18_amp1 / MIX_MAX_AMP) + (samp2 * n18_amp2 / MIX_MAX_AMP) + (samp3 * n18_amp3 / MIX_MAX_AMP) + (samp4 * n18_amp4 / MIX_MAX_AMP) + (samp11 * n18_amp5 / MIX_MAX_AMP); + + if (n19_i >= n19_size) + n19_i = 0; + samp19 = n19_buf[n19_i]; + n19_buf[n19_i] = samp18 + n19_buf[n19_i] * n19_feedback / MAX_FEEDBACK; + n19_i++; + + if (n20_i >= n20_size) + n20_i = 0; + samp20 = n20_buf[n20_i]; + n20_buf[n20_i] = samp18 + n20_buf[n20_i] * n20_feedback / MAX_FEEDBACK; + n20_i++; + + if (n21_i >= n21_size) + n21_i = 0; + samp21 = n21_buf[n21_i]; + n21_buf[n21_i] = samp18 + n21_buf[n21_i] * n21_feedback / MAX_FEEDBACK; + n21_i++; + + if (n22_i >= n22_size) + n22_i = 0; + samp22 = n22_buf[n22_i]; + n22_buf[n22_i] = samp18 + n22_buf[n22_i] * n22_feedback / MAX_FEEDBACK; + n22_i++; + + if (n23_i >= n23_size) + n23_i = 0; + samp23 = n23_buf[n23_i]; + n23_buf[n23_i] = samp18 + n23_buf[n23_i] * n23_feedback / MAX_FEEDBACK; + n23_i++; + + if (n24_i >= n24_size) + n24_i = 0; + samp24 = n24_buf[n24_i]; + n24_buf[n24_i] = samp18 + n24_buf[n24_i] * n24_feedback / MAX_FEEDBACK; + n24_i++; + + if(n25_mute0 > 0) + n25_amp0 = 0; +if(n25_mute1 > 0) + n25_amp1 = 0; +if(n25_mute2 > 0) + n25_amp2 = 0; +if(n25_mute3 > 0) + n25_amp3 = 0; +if(n25_mute4 > 0) + n25_amp4 = 0; +if(n25_mute5 > 0) + n25_amp5 = 0; + + samp25 = (samp19 * n25_amp0 / MIX_MAX_AMP) + (samp20 * n25_amp1 / MIX_MAX_AMP) + (samp21 * n25_amp2 / MIX_MAX_AMP) + (samp22 * n25_amp3 / MIX_MAX_AMP) + (samp23 * n25_amp4 / MIX_MAX_AMP) + (samp24 * n25_amp5 / MIX_MAX_AMP); + + if (n26_i >= n26_size) + n26_i = 0; + samp26 = (long)n26_buf[n26_i] + + (samp25 * -n26_feedback / MAX_FEEDBACK); + n26_buf[n26_i] = samp25 + (long)n26_buf[n26_i] * n26_feedback / MAX_FEEDBACK; + n26_i++; + + if (n27_i >= n27_size) + n27_i = 0; + samp27 = (long)n27_buf[n27_i] + + (samp26 * -n27_feedback / MAX_FEEDBACK); + n27_buf[n27_i] = samp26 + (long)n27_buf[n27_i] * n27_feedback / MAX_FEEDBACK; + n27_i++; + + samp28 = samp27; + + if(n29_mute0 > 0) + n29_amp0 = 0; +if(n29_mute1 > 0) + n29_amp1 = 0; +if(n29_mute2 > 0) + n29_amp2 = 0; +if(n29_mute3 > 0) + n29_amp3 = 0; +if(n29_mute4 > 0) + n29_amp4 = 0; +if(n29_mute5 > 0) + n29_amp5 = 0; +if(n29_mute6 > 0) + n29_amp6 = 0; +if(n29_mute7 > 0) + n29_amp7 = 0; + + samp29 = (samp0 * n29_amp0 / MIX_MAX_AMP) + (samp1 * n29_amp1 / MIX_MAX_AMP) + (samp2 * n29_amp2 / MIX_MAX_AMP) + (samp3 * n29_amp3 / MIX_MAX_AMP) + (samp4 * n29_amp4 / MIX_MAX_AMP) + (samp11 * n29_amp5 / MIX_MAX_AMP) + (samp17 * n29_amp6 / MIX_MAX_AMP) + (samp28 * n29_amp7 / MIX_MAX_AMP); + + if(n30_mute0 > 0) + n30_amp0 = 0; +if(n30_mute1 > 0) + n30_amp1 = 0; +if(n30_mute2 > 0) + n30_amp2 = 0; +if(n30_mute3 > 0) + n30_amp3 = 0; +if(n30_mute4 > 0) + n30_amp4 = 0; +if(n30_mute5 > 0) + n30_amp5 = 0; +if(n30_mute6 > 0) + n30_amp6 = 0; +if(n30_mute7 > 0) + n30_amp7 = 0; + + samp30 = (samp0 * n30_amp0 / MIX_MAX_AMP) + (samp1 * n30_amp1 / MIX_MAX_AMP) + (samp2 * n30_amp2 / MIX_MAX_AMP) + (samp3 * n30_amp3 / MIX_MAX_AMP) + (samp4 * n30_amp4 / MIX_MAX_AMP) + (samp11 * n30_amp5 / MIX_MAX_AMP) + (samp17 * n30_amp6 / MIX_MAX_AMP) + (samp28 * n30_amp7 / MIX_MAX_AMP); + if ((samp29 < CLIP) && (samp29 >-CLIP)) + buffer[2 * i] = (short)samp29; + else if (samp29 > 0) + buffer[2 * i] = (short)MIX_MAX_AMP-(CLIP_A/(CLIP_B+samp29)); + else + buffer[2 * i] = (short)-(MIX_MAX_AMP-(CLIP_A/(CLIP_B-samp29))); + if ((samp30 < CLIP) && (samp30 >-CLIP)) + buffer[2 * i + 1] = (short)samp30; + else if (samp30 > 0) + buffer[2 * i + 1] = (short)MIX_MAX_AMP-(CLIP_A/(CLIP_B+samp30)); + else + buffer[2 * i + 1] = (short)-(MIX_MAX_AMP-(CLIP_A/(CLIP_B-samp30))); + } + +#if __BYTE_ORDER == __BIG_ENDIAN + swap_endian(buffer, 2 * TBASS_BUFF_SIZE); +#endif + write(fd, buffer, 2 * TBASS_BUFF_SIZE * sizeof(short)); + + sequencer->current_sample_offset = seq_off; + + + + + + + ((osc *)sp[5])->current_index = n5_i; + + ((osc *)sp[6])->current_index = n6_i; + + ((osc *)sp[7])->current_index = n7_i; + + + + + + + ((delay *)sp[13])->d_index = n13_i; + + ((delay *)sp[14])->d_index = n14_i; + + ((delay *)sp[15])->d_index = n15_i; + + + + + ((delay *)sp[19])->d_index = n19_i; + + ((delay *)sp[20])->d_index = n20_i; + + ((delay *)sp[21])->d_index = n21_i; + + ((delay *)sp[22])->d_index = n22_i; + + ((delay *)sp[23])->d_index = n23_i; + + ((delay *)sp[24])->d_index = n24_i; + + + ((all_pass *)sp[26])->d_index = n26_i; + + ((all_pass *)sp[27])->d_index = n27_i; + + + + + return 1; +} --- freebirth-0.3.2.orig/gtkdial.c +++ freebirth-0.3.2/gtkdial.c @@ -75,8 +75,6 @@ sizeof (GtkDialClass), (GtkClassInitFunc) gtk_dial_class_init, (GtkObjectInitFunc) gtk_dial_init, - (GtkArgSetFunc) NULL, - (GtkArgGetFunc) NULL, }; dial_type = gtk_type_unique (gtk_widget_get_type (), &dial_info); --- freebirth-0.3.2.orig/raw_wave.c +++ freebirth-0.3.2/raw_wave.c @@ -21,18 +21,36 @@ #include "raw_wave.h" #include #include +#include #include +#include + +/* borrowed from glib2 */ +#define SHORT_SWAP_LE_BE(val) ((short) ( \ + (short) ((short) (val) >> 8) | \ + (short) ((short) (val) << 8))) +static void swap_endian(short *data, int length) +{ + int i; + for (i = 0; i < length; i += 1, data++) + *data = SHORT_SWAP_LE_BE(*data); +} static char *get_full_path(char *fn) { char *full_fn; char *fb_samples; - if (fn == NULL || fn[0] == '/') return fn; fb_samples = getenv("FB_SAMPLES"); if (fb_samples == NULL) fb_samples = FB_SAMPLES; - sprintf(full_fn = (char *)malloc(strlen(fb_samples) + 1 + strlen(fn) + 1), - "%s/%s", fb_samples, fn); + full_fn = (char *)malloc(strlen(fb_samples) + 1 + strlen(fn) + 1); + + if (fn == NULL || fn[0] == '/') { /* path is valid already */ + sprintf(full_fn, "%s", fn); + } else { + sprintf(full_fn, "%s/%s", fb_samples, fn); /* add path */ + } + return full_fn; } @@ -76,10 +94,13 @@ } this->length += count; +#if __BYTE_ORDER == __BIG_ENDIAN + swap_endian(tmp, this->length); +#endif this->table = (sample *)malloc(sizeof(sample) * this->length); - for(i = 0; i < this->length;i++) + for(i = 0; i < this->length;i++) { this->table[i] = (sample)tmp[i]; - + } fclose(in); free(tmp); } @@ -126,6 +147,7 @@ } } + return this->buffer; } @@ -145,7 +167,7 @@ void raw_wave_set_sample_file(raw_wave* this, char *filename) { FILE *in; - if (this->filename != 0) free(this->filename); + if (this->filename != NULL) free(this->filename); this->filename = get_full_path(filename); in = fopen(this->filename,"r"); if( in==NULL ) @@ -243,7 +265,7 @@ /* set table to zero here check if it is zero in */ /* _fill_table */ out->table = 0; - out->filename = 0; + out->filename = NULL; raw_wave_set_sample_file(out, filename); out->buffer = (sample *)malloc(sizeof(sample) * TBASS_BUFF_SIZE);