Coder Social home page Coder Social logo

pantherb / setbfree Goto Github PK

View Code? Open in Web Editor NEW
186.0 186.0 34.0 15.81 MB

DSP tonewheel organ

Home Page: http://setbfree.org

License: GNU General Public License v2.0

Makefile 1.77% C++ 1.44% C 94.96% Shell 0.20% Objective-C++ 1.02% HTML 0.20% CSS 0.41%

setbfree's People

Contributors

brunetton avatar chrisdiamand avatar falktx avatar pantherb avatar snd1 avatar spotlightkid avatar tartina avatar trebmuh avatar vallsv avatar x42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

setbfree's Issues

setBfree crash when compiled with convolve

I just installed setbfree, on my gentoo, and when compiled with ENABLE_CONVOLUTION=yes, it crash at startup with

$ setBfree-start
init.. Audio : Scanner : Oscillators : Overdrive : Reverb : Whirl : Convolve : /usr/bin/setBfree-start : ligne 56 : 8396 Erreur de segmentation $SBF "$@"
ERROR: cannot connect port BKeyboard:out to setBfree:midi_in

With gdb, I get:

(gdb) run
Starting program: /usr/bin/setBfree
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
init.. Audio : [New Thread 0x7ffff7fb3700 (LWP 32153)]
[New Thread 0x7ffff7f32700 (LWP 32154)]
Scanner : Oscillators : Overdrive : Reverb : Whirl : Convolve :
Program received signal SIGSEGV, Segmentation fault.
__pthread_getschedparam (threadid=0, policy=0x7fffffffb2ac,
param=0x7fffffffb2a0) at pthread_getschedparam.c:35
35 pthread_getschedparam.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __pthread_getschedparam (threadid=0, policy=0x7fffffffb2ac,

param=0x7fffffffb2a0) at pthread_getschedparam.c:35

#1 0x000000000040f178 in initAll () at main.c:325
#2 main (argc=, argv=) at main.c:638

Add MIDI out (notify) to command line version

Hi,

I will be using setBfree on stage in a few weeks ! I installed it on a Raspberry, and, as my midi controller doesn't have physical drawbar, I added a cheap Android tablet that access via local Wi-Fi an instance of Open Stage Control configured correctly to command drawbars and switches.
For now, everything is doing well, and I'm very enthusiastic !
But to be really usable I need a "feedback" from setBfree on program changes. I configured 20 programs, inspired from the great popular.pgm. When I load a program I need the drawbars to move on the tablet and the buttons to activate, to see the current status of the organ and be able to change slightly the sound from this starting point.
It works quite well on the UI version, that exposes a notify MIDI out channel (I understand this was added when porting to LV2 plugin): I can see my buttons light on and "drawbars" (that are actually just linear faders for now) moving; but command line version does not exposes any out channel.

I'm saying to myself that it shouldn't be very hard to add it to command line version, as the code is already here. Maybe I'm totally wrong, I didn't dove onto the code deep.

I'm bad at C++ programming, I didn't done it since I was 16 and it would take me too much time to do this :(
Is it something you think of implement one day ?

Thanks for your time !
And of course, all of it will be an open source project; explaining how to configure a Pi to get an Hammond, with optional Wifi device to control drawbars and switches, with live performances videos (Blues and swing) ! I'll let you informed.

Percussion Slow vs Fast backwards in tonegen.c

From the GUI, clicking on percussion fast makes it slow and visa versa. I tracked this down to setPercDecayFromMIDI in tonegen.c. Everywhere else, 'fast' is TRUE or 1 or >=64. But here u<64 is TRUE, which seems wrong. I changed this to:

setPercussionFast(t, u < 64 ? FALSE: TRUE);

...and recompiled and the percussion speed button seemed to work correctly.

setBfree installation+sound problem!

Hi, when i'm trying to install setBfree as it should be installed on linux(raspbian) (cd /home/pi/src/setBfree-master -> make ) i get an error :

-c -o overdrive.o overdrive.c
ccl;error:unrecognized command line option '-msse'
ccl;error:unrecognized command line option '-msse2'
ccl;error:unrecognized command line option '-mfpmath=sse'
Makefile:45: recipe for target 'overdrive.o' failed
make[1]: *** [overdrive.o] Error 1
make[1]: Leaving directory '/home/pi/src/setBfree-master/b_overdrive'
Makefile:17:recipe for target 'b_overdrive' failed
make: *** [b_overdrive] Error 2

Meanwhile, if i delete those 3 commands (-msse,-msse2,-mfpmath=sse) from common.mak i get it installed and it works pretty good ,till im trying to play on my midi keyboard(plugged,configured with jack and dozens of diffrents ways were tried) when i'm pressing too much notes at the same time (specially black and white(from Fa to Si or more) i get a noise and it stucks for few seconds(for some settings in Jack it even stops de system from responding) so i thought that maybe those 3 commands that i have removed in the installation are the reason for that, becose i've tried lots of different settings and even bought an additional usb sound card in case that the RPI was too weak ,but all the same...

What does helped a little with de sound, was enabling the realtime mode in jack and setting the Dither to triangular ,but the noise continues, a little weaker, but it still too loud and stuck for about a second(impossible to play ).

Every additional program that you proposed i have installed and the Jack Audio works without any error messages so i have really no idea what is the reason for such a problem(i'm new to Linux ).

Any suggestions will be appreciated !

New install. Crashes my Ubuntu 14.04

I just installed this program. Computer is an Acer AM1610-U1201A.
I have an M-Audio Keystation 61es connected by USB
When I start up setBfree, I see the drawbars and buttons and keyboards. I can adjust drawbars and press buttons at first.
The M-audio keyboard is apparently not recognized.
When I click any of the keys in the setBfree window, my computer locks up. I can't close the program. program buttons stop working.
I have to hold my power button in for 10 seconds to turn off my computer.

fully dynamic digital organ

One knob to dial the age of the organ (crackle, x-talk, bleeding,,..)

tonegen.c: implement either of the two variants:

  1. shadow-copy oscillators[] and list-elements (lep); allow to re-compile terminalMix and playMatrix and swap on the fly.
  2. re-init the synth engine - short silence.

Abstraction of parameters , look-up-table age -> osc.* parameters or .cfg file?

Is jboverdrive expected to be installed?

Hi,
I'm using setbfree from the debian stretch repo. I saw that there is a jboverdrive manpage installed by the package which (when reading at) looks to be a binary that I could use from the command line. That said, the debian package doesn't provide such a binary.
Before getting in touch with the debian people, I'd like to ask here if this jboverdrive binary is expected to be installed from your upstream point of view?
Thanks.

end-user documentation

Add simple "getting started" info that is suitable for non-coder musicians.

  • update README - include simple version, links to doc
  • website -> PDF ?

Info to include:

  • how to set up JACK and JACK-MIDI (qjackctl, a2jmidid -e)
  • possibly mention midi.driver=alsa option
  • selected MIDI-CC - full list: ./src/setBfree -d
  • how to split manual (program 57, 58, 59) or use multiple keyboards for each manual (midi-channels 0..2)

assert on sample rates higher than 48k(66953.846784 to be precise)

Step to reproduce:

  • run jackd with -r 96000
  • run setBfree in terminal
  • now we get:
$ setBfree

init.. Audio : Scanner : Oscillators : setBfree: tonegen.c:1791: fitWave: Assertion `minWaves <= maxWaves' failed

that's because Hz * maxSamples(hardcoded to 2048), which is 66954hz for a lowest note, less than jackd samplerate.

I tried to increase maxSamples value to 4096 (tonegen.c:2031) and it seems to work well, but i think it's not the best solution, maybe we should calculate it according to current sample rate?

Vibrato switches are not sent back when program change

Hi again.
Still trying to get a full MIDI feedback with command line version, I came across some little things that you maybe would to be aware of. Here is one of those things:

Command line version nor UI sent me back any CC MIDI message for a Program Change implying vibrato switch.
For example, given this programs file:

# Program 1
2 {
   name="Program 1",
   vibratoupper=on,
   perc=on,
  }

# Program 2
3 {
   name="Program 2",
   vibratoupper=off,
   perc=off,
  }

And this config file:

midi.controller.upper.80=percussion.enable
midi.controller.upper.84=vibrato.upper

Switching between Program 1 and Program 2 repetelively only send back CC 80 0 and CC 80 127, not CC 84 0 and CC 84 127

Debian copyright file patch

A patch to prevent lintian from nagging.

--- setBfree.orig/debian/copyright      2012-07-31 10:29:42.560171341 +0200
+++ setBfree/debian/copyright   2012-07-31 10:48:32.124681109 +0200
@@ -1,6 +1,5 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: setBfree
-Maintainer: Robin Gareus <[email protected]>
 Upstream-Contact:
   Robin Gareus <[email protected]>
        Will Panther <[email protected]>
@@ -14,11 +13,13 @@
 License: GPL-2+

 Files: vb3kb/*
+Copyright:
   1997-2000 by Takashi Iwai
   2012 Robin Gareus <[email protected]>
 License: GPL-2+

 Files: b_whirl/*
+Copyright:
   2003-2004 Fredrik Kilander <[email protected]>
   2008-2012 Robin Gareus <[email protected]>
   2010 Ken Restivo <[email protected]>
@@ -26,15 +27,18 @@
 License: GPL-2+

 Files: b_conv/*
+Copyright:
   2012 Robin Gareus <[email protected]>
 License: GPL-2+

 Files: b_conv/ir/ir_leslie-*.wav
+Copyright:
   2009 Ken Restivo <[email protected]>
   2012 Robin Gareus <[email protected]>
 License: CC-BY-SA-3.0

 Files: debian/*
+Copyright:
   2012 Robin Gareus <[email protected]>
 License: GPL-2+

@@ -60,7 +64,7 @@
  The work is protected by copyright and/or other applicable law. Any use of
  the work other than as authorized under this license or copyright law is
  prohibited.
-
+ .
  By exercising any rights to the work provided here, you accept and agree to
  be bound by the terms of this license. To the extent this license may be
  considered to be a contract, the licensor grants you the rights contained

JACK MIDI timing

Currently all MIDI events in one jack-period are merged and processed at the beginning of each cycle.

Especially with larger period sizes this behaviour introduces jitter and it is possible to skip short notes (note on + note off in same cycle) completely.

Fix when addressing #4

expose LV2 pre-runtime static config

Allow to set static configuration - ie. settings that need to be passed during initialization such as MIDI-CC assignments and synth-engine configuration that can not [yet] be changed at runtime. -- see also #6

Absolute build path to robtk source files ends up in generated binaries

Hi @x42 ,

while updating the AUR build definitions for setBfree v0.8.7 I have noticed the following output during the package build process (re-testing the previous version v0.8.5 showed that this is not a new issue, it has been there before):

==> Checking for packaging issues...
==> WARNING: Package contains reference to $srcdir
usr/bin/setBfreeUI
usr/bin/x42-whirl
usr/lib/lv2/b_whirl/b_whirlUI_gl.so

greping the installed files from the package with the absolute src path used during build indeed shows these matches:

$ cd /usr
$ grep -R "/home/jm/build/aur-packaging/setbfree/src" * 2>/dev/null | grep matches
Binary file bin/setBfreeUI matches
Binary file bin/x42-whirl matches
Binary file lib/lv2/b_whirl/b_whirlUI_gl.so matches

These matches don't seem to be vital, as running grep on the hexdump only reveals what seem to be mere references to the source files, i.e. it's most probably only debugging info (the other two files have similar matches):

$ xxd lib/lv2/b_whirl/b_whirlUI_gl.so | grep -A5 home
0002baf0: 0000 0000 0000 0000 2f68 6f6d 652f 6a6d  ......../home/jm
0002bb00: 2f62 7569 6c64 2f61 7572 2d70 6163 6b61  /build/aur-packa
0002bb10: 6769 6e67 2f73 6574 6266 7265 652f 7372  ging/setbfree/sr
0002bb20: 632f 7365 7442 6672 6565 2d30 2e38 2e37  c/setBfree-0.8.7
0002bb30: 2f72 6f62 746b 2f67 6c2f 6c61 796f 7574  /robtk/gl/layout
0002bb40: 2e68 0000 0000 0000 726f 6277 6964 6765  .h......robwidge
--
0002bc00: 2f68 6f6d 652f 6a6d 2f62 7569 6c64 2f61  /home/jm/build/a
0002bc10: 7572 2d70 6163 6b61 6769 6e67 2f73 6574  ur-packaging/set
0002bc20: 6266 7265 652f 7372 632f 7365 7442 6672  bfree/src/setBfr
0002bc30: 6565 2d30 2e38 2e37 2f72 6f62 746b 2f75  ee-0.8.7/robtk/u
0002bc40: 695f 676c 2e63 0000 726f 6274 6b3a 206f  i_gl.c..robtk: o
0002bc50: 7065 6e67 6c20 7375 7266 6163 6520 6f75  pengl surface ou
--
0002bcc0: 2f68 6f6d 652f 6a6d 2f62 7569 6c64 2f61  /home/jm/build/a
0002bcd0: 7572 2d70 6163 6b61 6769 6e67 2f73 6574  ur-packaging/set
0002bce0: 6266 7265 652f 7372 632f 7365 7442 6672  bfree/src/setBfr
0002bcf0: 6565 2d30 2e38 2e37 2f72 6f62 746b 2f67  ee-0.8.7/robtk/g
0002bd00: 6c2f 726f 6277 6964 6765 745f 676c 2e68  l/robwidget_gl.h
0002bd10: 0000 0000 0000 0000 2f68 6f6d 652f 6a6d  ......../home/jm
0002bd20: 2f62 7569 6c64 2f61 7572 2d70 6163 6b61  /build/aur-packa
0002bd30: 6769 6e67 2f73 6574 6266 7265 652f 7372  ging/setbfree/sr
0002bd40: 632f 7365 7442 6672 6565 2d30 2e38 2e37  c/setBfree-0.8.7
0002bd50: 2f72 6f62 746b 2f77 6964 6765 7473 2f72  /robtk/widgets/r
0002bd60: 6f62 746b 5f64 6961 6c2e 6800 0000 0000  obtk_dial.h.....
--
0002bd90: 2f68 6f6d 652f 6a6d 2f62 7569 6c64 2f61  /home/jm/build/a
0002bda0: 7572 2d70 6163 6b61 6769 6e67 2f73 6574  ur-packaging/set
0002bdb0: 6266 7265 652f 7372 632f 7365 7442 6672  bfree/src/setBfr
0002bdc0: 6565 2d30 2e38 2e37 2f72 6f62 746b 2f77  ee-0.8.7/robtk/w
0002bdd0: 6964 6765 7473 2f72 6f62 746b 5f73 656c  idgets/robtk_sel
0002bde0: 6563 746f 722e 6800 7077 203e 3d20 7277  ector.h.pw >= rw
--
0002bf70: 3a25 2e31 660a 0000 2f68 6f6d 652f 6a6d  :%.1f.../home/jm
0002bf80: 2f62 7569 6c64 2f61 7572 2d70 6163 6b61  /build/aur-packa
0002bf90: 6769 6e67 2f73 6574 6266 7265 652f 7372  ging/setbfree/sr
0002bfa0: 632f 7365 7442 6672 6565 2d30 2e38 2e37  c/setBfree-0.8.7
0002bfb0: 2f72 6f62 746b 2f67 6c2f 636f 6d6d 6f6e  /robtk/gl/common
0002bfc0: 5f63 676c 2e68 0000 2021 2121 204f 5554  _cgl.h.. !!! OUT
--
0002c020: 2f68 6f6d 652f 6a6d 2f62 7569 6c64 2f61  /home/jm/build/a
0002c030: 7572 2d70 6163 6b61 6769 6e67 2f73 6574  ur-packaging/set
0002c040: 6266 7265 652f 7372 632f 7365 7442 6672  bfree/src/setBfr
0002c050: 6565 2d30 2e38 2e37 2f72 6f62 746b 2f77  ee-0.8.7/robtk/w
0002c060: 6964 6765 7473 2f72 6f62 746b 5f63 6865  idgets/robtk_che
0002c070: 636b 6275 7474 6f6e 2e68 0000 0000 0000  ckbutton.h......

From a quick glance I found an abspath command in:

RW=$(abspath $(ROBTK))/

While deleting the build directory does no harm (i.e. you can still run the apps and the plugin GUI without crashes), as it is to be expected if they are only debugging info, I still wanted to know if/how it would be possible to suppress the adding of the absolute build path to the linked executables and libraries. Users who build this package from the AUR will see those messages and might be thinking that this is a packaging bug.

FYI, the files were already stripped during build (at least stripping them manually after the build has finished doesn't change anything).

Add xdg desktop files to tarball

The source tarball doesn't have the XDG desktop files (found in the debian folder). As these files are useful on any Linux distribution, they are nothing Debian-specific and should be shipped in a contrib folder or similar.

ARM - Crash - computeOffsets: Assertion `maxhn + w->hornSpacing[i] < ((unsigned int) (1 << 10))' failed.

Hi,
First of all, I want to thank you VERY much for this wonderful software.
I'm currently trying to embed setBfree to a Raspberry-PI and use it as an Hammond emulator on stage.
As Raspbian version of setBfree is quite old (0.7.5), and new versions seems to "sounds better" (I am wrong ?) I wanted to compile a new version on the Pi(3).

Steps to reproduce:

aptitude install libasound2-dev lv2-dev libglu1-mesa-dev ttf-bitstream-vera libjack-jackd2-dev libftgl-dev
git clone [email protected]:pantherb/setBfree.git
cd setBfree
make OPTIMIZATIONS=-O2
./src/setBfree

The result is :

init.. Audio : Oscillators : Scanner : Overdrive : Reverb : Whirl : setBfree: ../b_whirl/whirl.c:539: 
computeOffsets: Assertion `maxhn + w->hornSpacing[i] < ((unsigned int) (1 << 10))' failed.
Aborted

Did I missed something ? The problem seems to be in the Leslie simulation module. It's annoying, this is quite important for the sound !

Do you have any ideas ? Thanks !

Compilation fails when using -jn with n > 1

Compilation fails with make -j9 .

Error : g++: erreur: tonegen.o: no such file or directory

With make only, it compiles.

You should add to the documentation that parallel compilation is not supported , at least, or really fix the problem.

laptop keyboard drawbar control

I've not managed to compile the gui for reasons. I'd like to gig this on a laptop and not have to shell out for MIDI control surfaces but as far as I can see the GUI requires mouse control to move the drawbars (I might be wrong).
wouldn't it be easier if laptop keys were mapped to the upper manual drawbars

1 2 3 4 5 6 7 8 9    <--- Drawbar-number
Q W E R T Y U I O    <--- fader pipe down (push drawbar in)
A S D F G H J K L    <--- fade pipe up (pull drawbar out)

and maybe keys z x c v being mapped to Reverb, Brightness, perc 4' perc 2 2/3 and other things like presets or something (number keys?).

Or is there another jack/alsamidi program I could use to do this?

Rotary Speaker effect sounds strange

Hi! After installing, everything works, but the rotary sound is weak.

I've tried the default settings, the default.cfg file that came with the package with the options set to read it, uncommented the whirl parameters as they were, and modifying some of them, but can't get much satisfaction. I didn't specify the zitaconvolver option in the make process, but the libzitaconvolver is there. I didn't supply any IR files yet, as I didn't think the convolver was in play, although the status at the top of the setBfree screen did mention IR I believe. Would the problem have anything to do with my system being 64-bit? Or did I make some other mistake in the install process? It definitely doesn't sound like the supplied demo. If more info is needed, please let me know. I'm not extremely experienced in making and installing, but I do try to follow instructions. Thanks for your help.

Kevin

Problem with compilation on Raspberry (LV2UI)

Hello,

I try to install setBfree with make OPTIMIZATIONS=-O2 (after having installed the mandatory libraries), but the compilation is very long (10-15 min) and it fails at the end :

../b_synth/ui.c:4717:1: error: unknown type name 'LV2UI_Idle_Interface'
../b_synth/ui.c:4717:1: warning: initialization makes integer from pointer without a cast [enabled by default]
../b_synth/ui.c:4717:1: warning: (near initialization for 'idle_iface') [enabled by default]
../b_synth/ui.c: In function 'extension_data':
../b_synth/ui.c:4724:8: error: 'LV2_UI__idleInterface' undeclared (first use in this function)
../b_synth/ui.c:4724:8: note: each undeclared identifier is reported only once for each function it appears in
../b_synth/ui.c:4724:8: warning: left-hand operand of comma expression has no effect [-Wunused-value]
../b_synth/ui.c:4724:8: warning: left-hand operand of comma expression has no effect [-Wunused-value]
Makefile:44: recipe for target 'setBfreeUI' failed
make[1]: *** [setBfreeUI] Error 1
make[1]: Leaving directory '/home/pi/setBfree-master/ui'
Makefile:13: recipe for target 'ui' failed
make: *** [ui] Error 2

I have to precise that setBfree was working after a first attempt to install it. Someone helped me to install it. The only problem he met was the missing "sse2" message in common.mak. It was solved by commenting it.
I wanted to re-compile it after a modification in tonegene.c (inverting values for drawbars).

Could you help me please?

PS : Many thanks to those who keep this beautiful project alive :-) !! ๐Ÿ‘

`make FONTFILE=verabd.h ...` embeds the font correctly, but loading fails

Hi @x42

I read your comment to #54 that setting FONTFILE=verabd.h should include the font into the GUI applications.

However, this doesn't hold true for the main GUI application, which even in case of FONTFILE=verabd.h tries to load the font from the default path given in common.mak.

This is a problem if, like on ArchLinux, the standard font path is different from the standard Debian path that is given in common.mak.

Would it be possible to allow embedding the font in every GUI application with FONTFILE=verabd.h?
Or else, could you suggest the "right way" how to both embed the font in the LV2 plugin and use another path to your system font?

Rotary slow speed doesn't work in RaspberryPi

I'm using the setBfree in the zynthian project (http://zynthian.org). The system is Raspbian Jessie and this is the script used to compile and install:

git clone https://github.com/pantherb/setBfree.git
cd setBfree
sed -i -- "s/-msse -msse2 -mfpmath=sse/$CFLAGS/g" common.mak
sed -i -- 's/^lv2dir = \$(PREFIX)\/lib\/lv2/lv2dir = \/zynthian\/zynthian-plugins\/lv2/' common.mak
make -j 4
make install

where:

CFLAGS=-mcpu=cortex-a7 -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mvectorize-with-neon-quad -funsafe-loop-optimizations -funsafe-math-optimizations

I've tested with different optimizations, or without optimizations at all, but the result is always the same, rotary slow speed doesn't work at all. It sounds exactly the same than stopped.

I've tried with rotary.speed-preset (assigned to MIDI-CC 91 by default), and "choracle" sounds the same than stopped. Also with rotary.speed-select (assigned to MIDI-CC 65 in my config file) and other "configurations" where horn or drum should sound slow, it sound stopped.

Fast speed works perfectly for horn & drum, and also acceleration/deccelaration.

Thanks!

ALSA tab

Hi,

I have a new MIDI controller, a KORG nanoKEY2. The controller works fine with ZynAddSubFX. The controller does not show up in the QjackCtl ALSA tab with setBfree.

I dragged the setBfree icon to my text editor. I see the following
information:

[Desktop Entry]
Type=Application
Name=setBfree
GenericName=DSP tonewheel organ
Comment=MIDI-controlled, software synthesizer using JACK
Icon=setBfree
Exec=setBfree-start
Terminal=false
Categories=AudioVideo;Audio;

I am guessing the setBfree icon I am clicking on is not firing up setBfree with the necessary parameters, to see the nanoKEY2 on the ALSA tab in QjackCtl. Is this hypothesis correct? If so, can you please provide the syntax I need to run from the command line, so setBfree can see the nanoKEY2, so I can use the nanoKEY2 to play setBfree? setBfree --help from the command line certainly provides loads of information, but it is not clear to me what syntax I need to run.

Thank You,
SHD

leslie break

allow to configure the break, deceleration speed as well as stop-position (see b_whirl/whirl.c:1102)

Midi code cleanup

rework src/midi.c. Break-out:

  • hardware I/O (ALSA-Sequencer, JACK-MIDI)
  • move/merge internal API to tonegen.c
  • separate key-mapping, manual splitting

VST/VSTi wrappers

expose effects as x-platform VST, synth as VSTi.

probably only after GUI #3 rewrite -- strictly speaking a GUI is not really necessary, but VST users are spoiled by look&feel :)

add presets for commonly used drawbar MIDI controllers

This basically boils down to creating .cfg files with

midi.controller.{upper|lower|pedal}.<CC>=<function>

parameters for commonly used MIDI controllers.

It would also be nice to have a website or mechanism to easily share .cfg files and presets.

session management

Allow to resume with current settings.

  • create snapshot of running config incl port-connections
  • write current config and program table to file (Note: programs can't change but the referenced program-file may)
  • JACK session support
  • NSM session support ?

Midi-learn functionality

Provide an easy way to [re]assign MIDI controller mappings.

e.g. GUI matrix display or click+learn functionality.
see also #5 (CC-presets), #4 (midi cleanup) and #3 (GUI).

Font path for Fedora

When I try to build the gui it fails with
Makefile:17: "GUI will not be built"
Makefile:18: "either openGL/GLU is not available - install glu-dev, ftgl-dev"
Makefile:19: "or /usr/share/fonts/truetype/ttf-bitstream-vera/VeraBd.ttf cannot be found"

In Fedora (21) it is /usr/share/fonts/bitstream-vera/VeraBd.ttf provided by the bitstream-vera-sans-fonts package

GUI inconsitencies, shortcomings and whishlist

Right,, the current GUI was never meant to be included in the release but it ended up being too handy to be excluded. This issue is intended to document its shortcomings and plan a proper front-end.

Known issues:

  • the state of the GUI does not reflect the actual state of the synth-engine. It's a one way communication. In particular loading MIDI-programs from the GUI will not update the state that the program sets.
  • the --advanced-mode which allows to send raw MIDI-CC is undocumented and not really usable - a short-term solution to send MIDI-CCs will come in handy
  • the MIDI-programs are hardcoded and do not reflect any programs loaded with setBfree -p option.

Whishlist:

  • the new GUI should be able to run standalone and as well be usable in the synth-Plugins (LV2, VSTi,..)
  • the standalone version should have the look&feel of a B3 and include the piano-manual
  • the plugin version should probably be limited to drawbars and switches (no piano)
    ...

Minor Debian rules issue

dh_auto_clean is calling make distclean but there is no distclean routine in the Makefile. Had to add an (empty) override_dh_auto_clean to the rules file. Tried it first with $(MAKE) clean as the override command but that didn't work:

make[3]: Entering directory /home/music/PPA/setbfree/setBfree/src'
Makefile:40: *** "JACK is required - install libjack-dev or libjack-jackd2-dev". Stop.
make[3]: Leaving directory /home/music/PPA/setbfree/setBfree/src' make[2]: *** [src] Error 2 make[2]: Leaving directory /home/music/PPA/setbfree/setBfree'
make[1]: *** [override_dh_auto_clean] Error 2
make[1]: Leaving directory /home/music/PPA/setbfree/setBfree' make: *** [clean] Error 2

Ubuntu 12.04.

Best,

Jeremy

Won't compile - Am I missing something??

This looks like a great project. Very interested, but no luck compiling. It completes the "make" section and fails on "sudo make install" command.

Am I doing something wrong? I've collected all of the dependencies and tried versions 0.7.5 and 0.7.4.

Would love to play with this...

Thanks in Advance - Graham

Here's the error information:

/Downloads/setBfree-0.7.4$ sudo make install
make -C b_overdrive install
make[1]: Entering directory /home/oem/Downloads/setBfree-0.7.4/b_overdrive' install -d /usr/local/bin install -m755 jboverdrive /usr/local/bin install -d /usr/local/lib/lv2/b_overdrive install -m755 b_overdrive.so /usr/local/lib/lv2/b_overdrive install: cannot statb_overdrive.so': No such file or directory
make[1]: *** [install] Error 1
make[1]: Leaving directory `/home/oem/Downloads/setBfree-0.7.4/b_overdrive'
make: *** [b_overdrive] Error 2

b_whirl/whirl.c: 4 * pointless calls to memset ?

Near the end of the zeroBuffers function, there are four pointless calls to memset to
init buffers HLbuf, HRbuf, DLbuf, DRbuf.

memset(w->HLbuf, 0, WHIRL_BUF_SIZE_SAMPLES);
memset(w->HRbuf, 0, WHIRL_BUF_SIZE_SAMPLES);
memset(w->DLbuf, 0, WHIRL_BUF_SIZE_SAMPLES);
memset(w->DRbuf, 0, WHIRL_BUF_SIZE_SAMPLES);

Suggest remove.

Vibrato switches MIDI CC values are linked

Hi again.
Still trying to get a full MIDI feedback with command line version, I came across some little things that you maybe would to be aware of. Here is one of those things:

Contrary to all percussion switches that all send 0 or 127 values, the two vibrato buttons sent values are "linked": the value sent by one depends of the actual value of the other:

Vibrato lower Vibrato upper CC value
off on -> off 0
off off -> on 64
on on -> off 32
on off -> on 96
on -> off off 0
off -> on off 32
on -> off on 64
off -> on on 96

Is there any reason for that ?

Expected values:

Vibrato lower Vibrato upper CC value
off on -> off 0
off off -> on 127
on on -> off 0
on off -> on 127
on -> off off 0
off -> on off 127
on -> off on 0
off -> on on 127

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.