Patching 2600

Help
Alan Brown
2009-02-26
2013-05-23
  • Alan Brown

    Alan Brown - 2009-02-26

    Hi, I have just started using Bristol, and I am really enjoying it. Scrolling through the different progs on the synthesiser I can see the patch cables in place and they seem to be overriding the performance patch. However removing the cables seems not to affect the sound any (or adding cables to make my own patch). I have tried adding patch cables to the basic live patch, saving the prog and restarting Bristol, my new cables are there but - it still does not appear to have overidden the default settings. Should I be able to do this? I am running ver 0.30.5 on ubuntustudio 8.10 using jack.

    a

     
    • Nick Copeland

      Nick Copeland - 2009-02-26

      This is supposed to repatch the synth, ie, if you click on either end of a cable it is removed and I should notify the engine to use different buffer pointers. I will be honest that I have not done an exhaustive test of every possible connection, there are too many output to input pairs possible here.

      Which ones are you specifically trying to tie together? Alternatively, you should be able to find your memory files in $HOME/.bristol/memory/arp2600/arp2600*.mem, the last numbers are the memory index. If you send me those files I can load them up here and have a listen to the result.

      So, yes they are supposed to work but I will not rule out bugs in some connections.

      Kind regards, Nick.

       
    • Alan Brown

      Alan Brown - 2009-02-27

      Nick,

      I've just been following an arp 2600 user guide and I tried to patch the sine output from vco3 to the vcf input (vco3 triangular) and put this straight through to the mixer. I have also tried sending wave forms directly to the mixer, but it does not seem to override the default patch. I have found the arp26001.mem file - how do I send the file, I cannot attach it here.

      Alan

       
    • Nick Copeland

      Nick Copeland - 2009-02-27

      Hi Alan,

      Good point. You could email it to nickycopeland@hotmail.com but here is what I have found:

      I repatched VCO3 sin to the VCF, VCF to the output, raised the output volume, removed the FX (delay) volumes. Increased the filter cutoff until I heard the sin wave at least, then saved this in memory #1.

      On restarting the 2600 it loads memory #0, not #1 so I had to go up one location to get my saved memory back, but it did work. If I save my memory now in #0 it gets loaded at startup per default.

      You can also try the '-load 1' option to load memory #1 at start.

      I have another question though - do you here the sin wave going through the filter? Is the problem with the actual sound, ie, my signal routing, or with reloading/saving the memories? If the problem is with reloading the memory the see if you have a directory $HOME/.bristol/memory/arp2600 and make sure you have write permissions here, otherwise you will not be able to save your memories.

      Kind regards,

      Nick.

       
    • Nick Copeland

      Nick Copeland - 2009-02-27

      And on a related topic  I am very interested to know how you get on with walking through the patches from the manual. I never owned a 2600 so when I built this I used one version of the manual to make sure the routing was comparable. if you find major differences then I may need to make changes but am happy to do that.

      Regards, Nick.

       
    • Alan Brown

      Alan Brown - 2009-03-02

      Nick,

      Thanks for sending your email addr, I have sent the patches I have saved to it. It does look like any changes that I make to the patch cables - although they show in the GUI, do not have any change on the resultant sound. So I am unable to hear the resultant sine wave. When I played with the -mini option earlier, I could get the sine wave sound from all of the oscillators quite easily.

      As for the user guide I did a quick google search for the manual and found one at http://www.guitarfool.com/ARP2600.html. So far the walkthrough on the live patch has done what I expected and it has been fun. In fact I found the owners guide introduction to synthesis very useful and it has helped me understand quite a bit.

      regards Alan

       
    • Nick Copeland

      Nick Copeland - 2009-03-02

      Hi Alan,

      I have the files and will try and have a look through them this evening, perhaps some of my buffer offsets are broken. If I need more debugging I will let you know.

      I agree that the ARP manuals are a very good read, they go step for step through patching different routes through the device but manage to do it in an accessible fashion, not to heavy on technical issues but more what you do and what you can then expect.

      Regards, Nick.

       
    • Nick Copeland

      Nick Copeland - 2009-03-02

      Ok, bad news, both of these patches work here, I get a nice clean sine albeit that the filter output signal is a lot stronger than the direct signal from patch #2. Perhaps I should rework a few parts of the signal path to correct that however it is not immediately important - that just requires I change some of the signal level EQ for the filter output.

      There are a couple of things I would be interested in.

      Firstly, how do you start bristol? Which options to you give and which midi interface do you use? My testing was just with ALSA: 'startBristol -2600 -load 1'. That should not make any difference however the messages may be sent differently with different MIDI interfaces.

      Secondly, what kind of output do you get on the screen. From the command above I get the following (amongst other debugging output):

      Read Configuration: arp2600
      brightonWorldChanged(886 500 10 10)
      going operational
      /home/nicky/.bristol/memory/arp2600/arp26001.mem
      ...
      ...
      ...
      arp2600AddPatch(10, 20)

      The main interest here is the arp2600AddPatch() call - 10 and 20 are the buffer information, 10 is VCO3-Sin_out and 20 is Filter-VCO3_TRI_In so the link requested here seems to be correct. This message is printed by the engine which implies it has received the command from the GUI linking the patch cable. Do you get these message when you repatch the links?

      Finally, is this the first release of bristol that you have installed or is 0.30.5 a reinstalled version? I found a bug in some of the build scripts where to get Jack to link I was including /usr/local/lib early in the library path - this means the binaries may have been linked against a different bristol library version if you had a previous installation and could cause some really odd issues. If you do a 'make uninstall && make clean && make install' you can prevent this from happening and it has been fixed now only not in the release you have on your system.

      Kind regards,
      Nick.

       
    • Alan Brown

      Alan Brown - 2009-03-03

      Right I thought so, it looks like it is just not working for me. The command I use is 'startBristol -jack -2600'. I can only really get Bristol working with the jack driver. I have done make uninstall, clean and then I updated to v 0.30.6, however I still have the same problems. I have enclosed Full debugging from the start at the end of this post.

      Looking at the addpatch line on my start up I get 'arp2600AddPatch(10, 21)' and following your logic even though the patch cable goes from VCO3-Sin_out to Filter-VCO3_TRI_In. If I close the VCO3_TRI_In and open the Noise Gen input to the filter I get a pure sine wave - it looks like the numbers do not quite match up to the patch cables on my installation.

      Indeed another experiment patching VCO3-Sin_out to the vco1 square input to VCO2 produces arp2600AddPatch(10, 11) which I believe is the next input along noise gen input to VCO2 pulse width modulation. So I can now have a sine sweep modulating the pulse output of VCO2. I can patch - but it is more confusing.

      alan@hal-linux:~$ startBristol -jack -2600 -load 1
      generate bandwidth limited waveforms(31, 12)
      spawning midi thread
      Fixing samplerate at 44100
      midi sequencer
      Opened listening control socket: 5028
      midiOpen: bristol(100)
      Client ID = 131
      Queue ID = 2
      Registering 0 1
      Registered 131 0
      Device name "bristol" did not parse, defaults 128.0
      opened midi device: 0/1
      parent going into idle loop
      Got midi thread OK status
      bristol version 0.30.6
      connected to :0.0
      display is 1280 by 800 pixels
      Window is w 1280, h 800, d 24, 0 0 0
      Using DirectColor display
      Initialise the arp2600 link to bristol: 1af4a80
      hostname is localhost, bristol
      TCP port: 5028
      Accepted connection from 0 (3) onto 2 (5)
      Connected to the bristol control socket: 4
      bristolengine already active
      created 32 voices: allocated 32 to synth
      spawning audio thread
      registering jack interface: bristol
      rescheduled thread: 75
      Jack init waiting for audio thread OK status
      SSE2 detected
      initialising one arp2600
      No private microtonal mapping for apr2600
      veloc first 0.00 last 1.00
      user r 1000/1000, e 1000/1000
      Client ID = 132
      Queue ID = 3
      Registering 0 1
      Registered 132 0
      Device name "brighton" did not parse, defaults 128.0
      opened GUI midi handle: 1, fd 5
      Read Configuration: arp2600
      brightonWorldChanged(886 500 10 10)
      going operational
      /home/alan/.bristol/memory/arp2600/arp26001.mem
      F 0.600000, C 0.500000, W 0.500000, G 0.000000 ? 1.000000
      F 0.600000, C 0.500000, W 0.500000, G 0.000000 ? 0.000000
      F 0.600000, C 0.500000, W 0.500000, G 0.000000 ? 0.000000
      F 0.000000, C 0.500000, W 0.500000, G 0.000000 ? 0.000000
      F 0.000000, C 0.000000, W 0.500000, G 0.000000 ? 0.000000
      F 0.000000, C 0.000000, W 0.000000, G 0.000000 ? 0.000000
      arp2600AddPatch(10, 21)
      Found port system:playback_1
      Found port system:playback_2
      Found port system:midi_playback_1
      Found port system:midi_playback_2
      Found port system:midi_playback_3
      Found port system:midi_playback_4
      Found port system:midi_playback_5
      Found port system:midi_playback_9
      Found port system:midi_playback_10
      Bristol Defaulted Conn: bristol:out_left to system:playback_1
      Bristol Defaulted Conn: bristol:out_right to system:playback_2
      Found port system:midi_capture_1
      Bristol Defaulted Conn: system:midi_capture_1 to bristol:in failed

       
    • Nick Copeland

      Nick Copeland - 2009-03-03

      Strange problem. I will try here with jack and see what difference it makes and additionally I might try and get you some more debugging to see if it is the GUI or the engine that sends/interprets the commands incorrectly.

      There were two things in the console output, one of which is unimportant:

      1. Init output has a typo - I think this is only a typo and should not affect any operation:

      initialising one arp2600
      No private microtonal mapping for apr2600

      2. The defaulted connections fail with Jack and Jack Midi?

      Bristol Defaulted Conn: bristol:out_left to system:playback_1
      Bristol Defaulted Conn: bristol:out_right to system:playback_2
      Found port system:midi_capture_1
      Bristol Defaulted Conn: system:midi_capture_1 to bristol:in failed

      That last line is strange and may be related, the engine has attempted to connect a midi port (since it is the first input that it find) to its default input port. Perhaps I should check further for the input status to see if it is audio or midi? I have never done that check since the bristol audio interface to jack was written before jack supported MIDI.

      Let me find some time to test here with Jack and see if I see anything similar.

      Regards,

      Nick

       
    • Nick Copeland

      Nick Copeland - 2009-03-03

      Hi Alan,

      Do you have a 64 bit system?

      Nick

       
    • Nick Copeland

      Nick Copeland - 2009-03-04

      I should be able to send you a couple of files later today that should resolve this, the engine and the GUI are not always in sync with regards to the device offsets and these files should fix the issue.

      I opened bug 2658901 to cover this issue since it is a strange one. Your feedback from the files would be appreciated.

      Regards Nick

       
    • Alan Brown

      Alan Brown - 2009-03-04

      Nick,

      Yes it is a 64 bit system, I will try the new files later when I can get to my home machine.

       
    • Alan Brown

      Alan Brown - 2009-03-04

      Nick,

      Thanks for the files, doing another make install with those files has fixed the problem. The patch cables go to the right sockets and I am hearing the correct sounds. Also patching directly to the mixer (patch 2) is now at the same volume as patch 1. Many thanks for all of the effort you have put in fixing this specific problem, I hope it is something that you can re use. I have enclosed the start-up with the fix in place as it might be useful. Back to the arp manual :)

      alan@hal-linux:~$ startBristol -jack -2600 -load 1
      generate bandwidth limited waveforms(31, 12)
      spawning midi thread
      Fixing samplerate at 44100
      midi sequencer
      Opened listening control socket: 5028
      midiOpen: bristol(100)
      parent going into idle loop
      Init waiting for midi thread OK status
      Client ID = 131
      Queue ID = 2
      Registering 0 1
      Registered 131 0
      Device name "bristol" did not parse, defaults 128.0
      opened midi device: 0/1
      Got midi thread OK status
      bristol version 0.30.6
      connected to :0.0
      display is 1280 by 800 pixels
      Window is w 1280, h 800, d 24, 0 0 0
      Using DirectColor display
      Initialise the arp2600 link to bristol: 98fa80
      hostname is localhost, bristol
      TCP port: 5028
      Accepted connection from 0 (3) onto 2 (5)
      Connected to the bristol control socket: 4
      bristolengine already active
      created 32 voices: allocated 32 to synth
      spawning audio thread
      registering jack interface: bristol
      rescheduled thread: 75
      Jack init waiting for audio thread OK status
      SSE2 detected
      initialising arp2600
      No private microtonal mapping for apr2600
      veloc first 0.00 last 1.00
      user r 1000/1000, e 1000/1000
      Client ID = 132
      Queue ID = 3
      Registering 0 1
      Registered 132 0
      Device name "brighton" did not parse, defaults 128.0
      opened GUI midi handle: 1, fd 5
      Read Configuration: arp2600
      brightonWorldChanged(886 500 10 10)
      going operational
      /home/alan/.bristol/memory/arp2600/arp26001.mem
      F 0.600000, C 0.500000, W 0.500000, G 0.000000 ? 1.000000
      F 0.600000, C 0.500000, W 0.500000, G 0.000000 ? 0.000000
      F 0.600000, C 0.500000, W 0.500000, G 0.000000 ? 0.000000
      F 0.000000, C 0.500000, W 0.500000, G 0.000000 ? 0.000000
      F 0.000000, C 0.000000, W 0.500000, G 0.000000 ? 0.000000
      F 0.000000, C 0.000000, W 0.000000, G 0.000000 ? 0.000000
      arp2600AddPatch(10, 20)
      Found port system:playback_1
      Found port system:playback_2
      Found port system:midi_playback_1
      Found port system:midi_playback_2
      Found port system:midi_playback_3
      Found port system:midi_playback_4
      Found port system:midi_playback_5
      Found port system:midi_playback_8
      Found port system:midi_playback_9
      Bristol Defaulted Conn: bristol:out_left to system:playback_1
      Bristol Defaulted Conn: bristol:out_right to system:playback_2
      Found port system:midi_capture_1
      Bristol Defaulted Conn: system:midi_capture_1 to bristol:in failed

       
    • Nick Copeland

      Nick Copeland - 2009-03-04

      Hi Alan,

      Very pleased this now works. You have at least one other fix but that will come in the next release:

      Found port system:midi_capture_1
      Bristol Defaulted Conn: system:midi_capture_1 to bristol:in failed

      That is not correct, an attempt is made to link my audio input from Jacks Midi output. It fails and after going through the code it should not result in any problems. I have resolved it so that I add some checks before attempting these connections however Jack seems a bit sloppy here, I cannot find a way to see the midi capture really is midi except from the name. Thats probably my error but it should go from the next release.

      Another issue is that you don't have an input - your sound card does not appear to have a capture channel for audio. Again, that does not matter, all I wanted to say is that the audio input and envelope follower are not widely tested so probably would not work.

      Finally you will have to see how things go on with your 64  bit system. This bug was there - it was my fault in the coding however it is evident that the 64 bit distributions work differently, your libraries were rounding rather than truncating cast different types. That is probably also correct however it might affect your sound quality for the same reason. You might also run into other bugs for the same reason.

      So a last word, I am always more than happy to get problem reports and to have them resolved - every fix makes the application better, they all go into the main codestream and I will do the same for the next issue you encounter. As I already explained, I have not tested every possible link exhaustively so you may find different signal levels here and there and other anomalies. Let me know.

      Kind regards, Nick.

       
    • Alan Brown

      Alan Brown - 2009-03-06

      Yes you are right - my card does not have a capture, I cannot get it to work with jack. But with this project I am interested in generating sound, so I am not too woried about this. Thanks again - I have got a bit further in the manual and I have come up with something else, I will start a new thread with this.

       
    • Nick Copeland

      Nick Copeland - 2009-03-06

      HI Alan,

      If it is a different issue it would make sense to be in another thread.

      At the moment there is one other fix that has gone into the 2600: the CPU goes to 100% when no inputs are driven into the filter. Its called denormal behaviour and is fixed.

      will watch out for the new thread.

      Regards, nIck.

       

Log in to post a comment.