Hi Jeff, Did you have time to have a look into this tempo scaling issue? I have ordered a Raspberry PI 5 to run both setbfree and BB on the same computer. Did you fix the issues you mentioned in another post about running BB on RPI?
Hmmm. Must be a bug. Selecting "Full range slider" should interpolate the range so that 127 sets 255 BPM. But for some reason, it's being ignored. I'll look into it.
Hi Jeff, I am still stuck on this tempo setting topic. Let me describe my actions on BB step by step : Setup > Human > Controller > Device > Software Select 'bb_ctrl MIDI Out' (my Arduino renamed by ttymidi) Setup > Human > Controller Master Channel = 11 Setup > Commands > Tempo > BPM Type = Wheel / Full motion slider / Midi Channel = 11 Exit BB, save my settings. Relaunch BB. Press Start/Stop button on the Arduino -> OK Press 'Set Tempo 15' Arduino button -> displays "15 BPM" on BB UI Press 'Set...
Yes, go to the Commands screen. Click on "Tempo ->BPM". Make sure "MIDI knob" is checked. By default, MOD Wheel (cc #1) controls tempo. Double-click on Tempo -> BPM, and check the box "Full motion slider". That should scale your Mod Wheel messages so that a value of 127 sets tempo to 255. (Of course by scaling, you have a more coarse control of tempo, but that shouldn't be a big deal. You can always fine tune the tempo + or - one step using "Tempo -> Decrease" and "Tempo ->Increase" messages).
Yes, go to the Commands screen. Click on "Tempo ->BPM". Make sure "MIDI knob" is checked. By default, MOD Wheel (cc #1) controls tempo. Double-click on Tempo -> BPM, and check the box "Full motion slider". That should scale your Mod Wheel messages so that a valus of 127 sets tempo to 255. (Of course by scaling, you have a more coarse control of tempo, but that shouldn't be a big deal. You can always fine tune the tempo + or - one step using "Tempo -> Decrease" and "Tempo ->Increase" messages).
Hi Jeff, Since the maximum value of a MIDI CC message is 127, how can I set a higher value on tempo? BB's GUI allows 255 BPM max. Did you implement a scaling mechanism or anything else in BB source code to support high tempo values?
I'm currently working on the ARM port of BB. I'm so glad to read this ! Thank you Jeff ! As I recall, you have to set the MIDI chan with the GUI version, and save the config file. This seems indeed to be the only way to set it. It may be easier to change SetBFree to use chans 11 and 12 for the two organ manuals. Then you can leave BB at its default setup. Oh yes it is ! With an empty /Prefs folder, I am using the following command line with the Arduino sending MIDI messages on chn 11 and 12 and BB...
I'm currently working on the ARM port of BB. But I'm also going out of town this coming week, so it may be a week before I can put out some updated code. As I recall, you have to set the MIDI chan with the GUI version, and save the config file. It may be easier to change SetBFree to use chans 11 and 12 for the two organ manuals. Then you can leave BB at its default setup. (Plus, you'll be able to allow the user to layer, or solo, BB's patches for bass, guitar, piano, strings, etc, by changing a manual's...
Hi Jeff ! Thanks a lot for making this clear. I can get almost all the required settings from the command line, but let me first show you something strange I have noticed. ./BBNoGui -JACKOUT -SEQIN bb_ctrl -MASTER 1 -FULLKEY -OFF SOLO This command line launches BBNoGui with no issue : I can see the Loading and start messages displayed into the terminal window. BBNoGui reacts to messages sent by my Arduino. ./BBNoGui -JACKOUT -SEQIN bb_ctrl -OFF SOLO -MASTER 1 -FULLKEY With this command line, the...
By playing patches, I mean using the "Human Player" part of BB, and all the patches associated with it. Your human player appears to be confined to playing BFree's organ sounds. You're using only BB's robots (and their patches). So you don't need a MIDI output device for BB's Human Player. Set it "Off". This means that every midi msg not on one of the robots channels, will be used to play chords. By making sure no robot is set to chan 1 or 2, then these chans play chords (rather than notes on some...
Thank you Jeff for the continuous help you provide me with, but your last message lets me puzzled... since you're not using BB to play patches.. To play patches? What does this mean? What is the proper command line syntax corresponding to the settings you suggest? Set "Human -> MIDI Controller -> Device" to None Can I get the equivalent from -SEQIN None? Not sure... Set "Robot -> Bass -> Channel" to 5. I really don't know how to program this from the command line. Set Master Channel to 1. -MASTER...
ok. So you want both hands to play chords. And you want chans 1 and 2 to trigger chords. Set "Human -> MIDI Controller -> Device" to None (since you're not using BB to play patches). Set "Robot -> Bass -> Channel" to 5. Set Master Channel to 1.
Hi Jeff ! Thanks for the quick reply! Is BB flexible enough to produce consistent accompaniements when receiving MIDI note ON/OFF messages on different channels? It's an usual practice to play the organ on both keyboards and setBfree imposes the organ MIDI controller to send Notes ON/OFF messages on channel 1 for upper and 2 for lower KB. These channels numbers can be modified, but they have to be different though. Therefore, BB will have to build an accompaniement from a sequence of Notes messages...
Is BB flexible enough to produce consistent accompaniements when receiving MIDI note ON/OFF messages on different channels? Not sure what you're asking here. BB has a very complex and versatile MIDI implementation. You should be able to control anything via MIDI (although you may need to setup BB on the Commands screen if you need to use specific MIDI messages to control specific features). Can I build and run BBNoGui on a RPI with no issue? I don't have an RPI to test. But I do have two small Single...
Hi Jeff, Thanks a lot you for your help on this topic ! Using the regular BB, I mean BB WITH UI, from the command line, the app displays a warning message about Drums, Bass, Guitar, etc that are assigned to the internal synth, but have no sampled instruments. The BBNoGui version works fine and this is the version I want to use, so it's fine with me. I have got BBNoGui working with this command line : ./BackupBandNoGui -JACKOUT -SEQIN bb_ctrl -MASTER 8 "bb_ctrl MIDI Out" does not seem to be necessary....
Try running back up band from a terminal window, and specify the arduino MIdi Output like so: ./backupband -SEQIN "bb_ctrl MIDI Out" This will cause BackupBand to look for a seq Output port named "bb_ctrl" and connect its Midi IN to it. (You won't need to manually connect using QJackCtl). Make sure your auduino is already running before you run BackupBand. You can also have BB automatically connect to jack's system out:" ./backupband -JACKOUT -SEQIN "bb_ctrl MIDI Out" BB has its own "session manager"...
Try running back up band from a terminal window, and specify the arduino MIdi Output like so: ./backupband -SEQIN bb_ctrl MIDI Out This will cause BackupBand to look for a seq Output port named "bb_ctrl" and connect its Midi IN to it. (You won't need to manually connect using QJackCtl). Make sure your auduino is already running before you run BackupBand. You can also have BB automatically connect to jack's system out:" ./backupband -JACKOUT -SEQIN bb_ctrl MIDI Out BB has its own "session manager"...
Try running back up band from a terminal window, and specify the arduino MIdi Output like so: ./backupband -SEQIN bb_ctrl This will cause BackupBand to look for a seq Output port named "bb_ctrl" and connect its Midi IN to it. (You won't need to manually connect using QJackCtl). Make sure your auduino is already running before you run BackupBand. You can also have BB automatically connect to jack's system out:" ./backupband -JACKOUT -SEQIN bb_ctrl BB has its own "session manager" built-in, so you...
Also, in order for your arduino to select styles, you need the arduino to send program change messages on the Master Channel. (Set Master Channel via "Human -> MIDI Controller"). To start/stop play, you can send a controller number 67 on the Master Channel. To control tempo, send a controller 1. Use BB's MIDI Event Test window to check that BB is receiving the arduino mesages, and that they are activating the desired BB functions.
Also, in order for your arduino to select styles, you need the arduino to send program change messages on the Master Channel. (Set Master Channel via "Human -> MIDI Controller"). To start/stop play, you can send a controller number 67 on the Master Channel. To control tempo, send a controller 1. Use BB's MIDI Event Test window to check that BB is receiving the arduino mesages, and that they are activating the desried BB functions.
Try running back up band from a terminal window, and specify the arduino MIdi Output like so: ./backupband -SEQIN bb_ctrl This will cause BackupBand to look for a seq Output port named "bb_ctrl" and connect its Midi IN to it. (You won't need to manually connect using QJackCtl). Make sure your auduino is already running before you run BackupBand. You can also have BB automatically connect to jack's system out:" ./backupband -SEQIN bb_ctrl -JACKOUT BB has its own "session manager" built-in, so you...
Hi Everyone ! My Hammond B3 organ clone based on setBfree is completed and I would like to add it an auto-arranger. I have chosen BackupBand because it works fine and runs on Linux. The goal is to get it running on a Raspberry PI, which is the computer I use to run setBfree, but I want to check first my understanding of BB's behaviour on my Linux Mint desktop, when BB is driven by a MIDI controller. I want BB to use Jack since I have to route both BB and setBfree outputs to the system audio. My experimental...
I recently got an ARM system, and have discovered that the gnu compiler generates some very different code on Intel versus ARM CPUs. In some cases, it even results in crashes, particularly with regard to signed versus unsigned variables. Basically anyplace where you have a signed value recast as unsigned, it can be trouble under arm. For example, this works under intel, but can do weird things under arm: unsigned char MyVariable; MyVariable = (unsigned char)-1; I'm currently cleaning up the code...
If you have trouble using Jack, I'd suggest that you first set BackupBand to directly use your audio output card. Set sample rate to either 44 or 48 KHz. Then make sure jack is stopped. If you get audio to work directly, then the problem is with jack. Jack is very complicated to setup (plus it has been hacked so much, including having its own libraries replaced by Pipewire, that it's a nightmare to troubleshoot). I make jack output available in BackupBand to try, but I don't recommend jack, and I...
Yes, it does. I'm a solo keyboardist, and I use the program for live gigs. In fact, I'm the author of the program, and I've been using it for a decade of weekly gigs. It runs only on Linux. It started out as a Windows program, but later I switched to Linux. I may consider porting it back to Windows at some point. If you've ever played an "auto-arranger" product like a Yamaha PSR, Korg PA, Roland BK, etc, then you've got the idea how this program functions. If you want to control it while playing...
I'm a guitar player in a duo with a singer, and want on-the-fly live bass and guitar accompaniment that follows my chords changes as I play. Can this software do that? I looked at OMB Guitars (https://ombguitars.com/) for this purpose but they don't have any US affiliates and didn't want to order a guitar all the way from Israel for logistical reasons.
Hi I have an XPS 15 running Ubuntu 20.04. I can't seem to get the audio working despite fidgeting between the JACK and Intel audio card options, and the various audio frequencies. This is apparent when I try to play the sample sounds and nothing plays. Can anyone provide some advice on how to properly set up JACK audio for even getting some sound from the app?
Hi I have an XPS 15 running Ubuntu 20.04. I can't seem to get the audio working despite fidgeting between the JACK and Intel audio card options, and the various audio frequencies. This is apparent when I try to play the sample sounds and nothing plays. Can anyone provide some advice on how to properly set up JACK audio for even getting some sound from the app?
I also see a message, "DBus exception: org.jackaudio.Error.Generic: Failed to open server" in the terminal window I used to start BackupBand...
I placed directories Styles and Instruments in the same folder as the executable, BackupBand. I started Jack using qJackctl, then BackupBand. BB hangs, showing "Please Wait", and "Loading audio/midi devices" Hints, please. Thank you, Dave
bug fixes
Added version without GUI
Hi, First thanks Jeffg for this great software! I'm using it with my Linux Mint Pc, and now I want to play the backupband with my Raspberry with Pachtbox OS (raspbian 32 bits) and Pisound sound card.... I find out that using the flag -fsigned-char flag was neccessary to compile it, otherwise I got a warning “value less than minimum” and the software did not run properly, no reaction to START to play. After that I was able to use the External Synth and get some MIDI OUT with JACK. But looks it's not...
The directory name for the 44kHz samples is wrong in the zip files. IIRC it's just 44k/ whilst the program is looking for 44khz/ (all lower case) I can't remember if the 48k is the same. Incidentally, I first tried 44kHz, presuming the upper-case H, but that doesn't work.
Hmm ... building the debug version removes warning and makes a version that runs OK. Whatever ... 9 -> 12 does enable the missing chord roots.
I think this needs NumOfLabels on line 423 of SongSheet.c altered from 9 to 12 (ignoring re-spelling for the moment). I've failed to prove that, though, as at present my build version aborts with a claimed buffer overflow: *** buffer overflow detected ***: ./BackupBand terminated Aborted (core dumped)
Hi Jeff, I've just downloaded the Feb 2019 version. Nice improvements! I've been trying the song editor and chord assign, but I've been unable to get chords between C#/Db and D#/Eb. This looks to me like an oversight or bug, but it may be my lack of understanding. A related thing that would be nice, though hardly vital, would be the alternative spellings as above.
closing BB stops Jack
Fixed in version 0.D
I think to possibility to lock things from the song file during the song is very good, but it helps to know the feature is there and how to use it.
I think to possibility to lock things from the song during the song is very good, but it helps to know the feature is there and how to use it.
I think to possibility to lock things from the sone during the song is very good, but it helps to know the feature is there and how to use it.
An extra note in the main docs
This limitation has been removed as of version 0.C
Apparent array overrun.
Fixed in version 0.C
Installed but not working properly
41k instruments not recognized
Updated the zip files with the correct filenames
closing BB stops Jack
Sorry, checked again: renaming DID work.
41k instruments not recognized
Open the file 22.layout (in the BackupBand/Styles/Window folder) with a text editor. Change line 48 from this: VOLBOOST line 5 to this: VOLBOOST line=5 There was a missing = sign. Save the file.
Installed but not working properly
BackupBand is Linux only. But I did initially write it for Windows, so there's a really old version of that. I'm going to bring that version uptodate, so eventually there will be Windows and Linux. I don't do Mac software, so that's right out.
Hmmm. ConfigFile.c is for an older version. It should no longer be in the new sources. Did you have a previous version of the source code? If so, delete that .git directory, and download the latest source code. (It fixes one of the errors you got above).
Hi, I've downloaded the source, apt'ed the dependencies but is giving error on configure, as below. Can you help me? gcc -O pkg-config cairo-xlib-xrender --cflags -c -o src/BackupBand.o src/BackupBand.c In file included from /usr/include/string.h:494:0, from src/XLibGuiCtls.h:5, from src/GuiCtls.h:9, from src/Main.h:3, from src/BackupBand.c:18: In function ‘strcpy’, inlined from ‘ctl_update_tempo’ at src/BackupBand.c:3036:3: /usr/include/i386-linux-gnu/bits/string_fortified.h:90:10: warning: ‘builtinstrcpy_chk’...
Hi, I've downloaded the source, apt'ed the dependencies but is giving error on configure, as below. Can you help me? gcc -O pkg-config cairo-xlib-xrender --cflags -c -o src/BackupBand.o src/BackupBand.c In file included from /usr/include/string.h:494:0, from src/XLibGuiCtls.h:5, from src/GuiCtls.h:9, from src/Main.h:3, from src/BackupBand.c:18: In function ‘strcpy’, inlined from ‘ctl_update_tempo’ at src/BackupBand.c:3036:3: /usr/include/i386-linux-gnu/bits/string_fortified.h:90:10: warning: ‘builtinstrcpy_chk’...
How to do it...little doc may be?
I would like to add this to my free-software music page: http://blog.wolftune.com/p/software-recommendations-and-more.html but that emphasizes options for people not yet on GNU/Linux. Is BackupBand an option for Windows or MacOS or no? Would be good to add a clear description about platform compatibility on the main page here…
BTW, It appears that the code is trying to reject that file, as it pops up an error(*) and offers, IIRC, Cancel/Abort/Ignore, but whatever response I give, it goes on to core-dump. (*) from here (my file-name/line-num addition): format_text_err("(StyleData 1729) unknown id %s", lineNum, field);
BTW, It appears that the code is trying to reject that file, as it pops up an error(*) and offers, IIRC, Cancel/Abort/Ignore, but whatever response I give, it goes on to core-dump. (*) from here: format_text_err("(StyleData 1729) unknown id %s", lineNum, field);
Hi Jeff, I see odd problems, but I'm a bit unsure at present how best to debug. I was getting a core-dump in a locally compiled copy from GIT. I found the cause, which was related to a test file it was trying to read as a category file., but only by adding some extra diagnostic code and then using some sensible guesses. What is and/or is there a preferred way, please? Gordon.
Apparent array overrun.
turns auto-repeat off in all of X11, leaves it off.
execution abort, FYI.
I replaced the strlen's with memcpy. That should bypass gcc's overly aggressive buffer checking. I deliberately called strlen, not nstrlen. Gcc shouldn't be substituting.
execution abort, FYI.
Although the code seems to suggest StyleEdit should find files somewhere under either '.' or $HOME, only the latter seems to work for me. Creating ~/BackupBand and copying Styles/ into it, makes it work. There might be an argument for a path identifier of some kind, perhaps $BBSTYLES or some such, or an option --stylepath='whatever'.
Hi, How does one access files in/for StyleEdit, please? I've tried from it's home, in the various patter directories, with the file oin the command line, left-clicks, right-clicks. I just seem unable to get any file to be found or shown. I presume if I run StyleEdit and press one of the buttons, I should see a list of files that I could select, but I see nothing other that the Up/Down arrows and the Cancel/OK buttons. Thanks. Gordon.
An extra note in the main docs